Vijava 学习笔记之NetWork(基础配置信息)
来源:互联网 发布:python安装程序下载 编辑:程序博客网 时间:2024/06/06 00:50
Vijava 代码:
实体类:
package com.vmware.pojo;import java.util.List;/** * Created by vixuan-008 on 2015/4/24. */public class NetworkInfo { private List<VirtualNic> vnics;//虚拟网卡 private List<VirtualSwitch> vss;//虚拟交换机 public List<VirtualNic> getVnics() { return vnics; } public void setVnics(List<VirtualNic> vnics) { this.vnics = vnics; } public List<VirtualSwitch> getVss() { return vss; } public void setVss(List<VirtualSwitch> vss) { this.vss = vss; }}
package com.vmware.pojo;/** * Created by vixuan-008 on 2015/4/24. */public class VirtualNic { private String name; private String portgroup; private String mac; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPortgroup() { return portgroup; } public void setPortgroup(String portgroup) { this.portgroup = portgroup; } public String getMac() { return mac; } public void setMac(String mac) { this.mac = mac; }}
package com.vmware.pojo;/** * Created by vixuan-008 on 2015/4/24. */public class VirtualSwitch { private String name; private String mac; private String portgroup; public String getMac() { return mac; } public void setMac(String mac) { this.mac = mac; } public String getPortgroup() { return portgroup; } public void setPortgroup(String portgroup) { this.portgroup = portgroup; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void addPhysicalMAC(String key){ if(this.mac==null){ mac=key; }else{ mac=mac+";"+key; } setMac(mac); } public void addPortgroup(String key){ if(this.portgroup==null){ portgroup=key; }else{ portgroup=portgroup+";"+key; } setPortgroup(portgroup); }}
逻辑代码:
package com.vmware.HostSystemOption;import com.vmware.pojo.NetworkInfo;import com.vmware.pojo.VirtualNic;import com.vmware.pojo.VirtualSwitch;import com.vmware.vim25.*;import com.vmware.vim25.mo.HostSystem;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * Created by vixuan-008 on 2015/4/24. */public class HostSystemNetWork { public NetworkInfo getNetworkInfo(HostSystem esxserver) throws Exception { NetworkInfo ninfo = new NetworkInfo(); HostNetworkInfo nwi = esxserver.getConfig().getNetwork(); HostPortGroup[] portgroups = nwi.getPortgroup(); Map<String, String> pgMap = new HashMap<String, String>(); for (HostPortGroup portgroup : portgroups) { pgMap.put(portgroup.getKey(), portgroup.getSpec().getName()); } PhysicalNic[] pnics = nwi.getPnic(); Map<String, String> pnicMap = new HashMap<String, String>(); for (PhysicalNic pnic : pnics) { pnicMap.put(pnic.getKey(), pnic.getMac()); } List<VirtualSwitch> vss = new ArrayList<VirtualSwitch>(); HostVirtualSwitch[] vswtichs = nwi.getVswitch(); for (HostVirtualSwitch vswitch : vswtichs) { VirtualSwitch vs = new VirtualSwitch(); vs.setName(vswitch.getName()); String[] macKeys = vswitch.getPnic(); if (macKeys != null) { for (String key : macKeys) { vs.addPhysicalMAC(pnicMap.get(key)); } } String[] pgs = vswitch.getPortgroup(); if (pgs != null) { for (String pg : pgs) { vs.addPortgroup(pgMap.get(pg)); } }// TODO vss.add(vs); } ninfo.setVss(vss); List<VirtualNic> vnics = new ArrayList<VirtualNic>(); HostVirtualNic[] virtualnics = nwi.getVnic(); for (HostVirtualNic virtualnic : virtualnics) { VirtualNic vnic = new VirtualNic(); vnic.setName(virtualnic.getDevice()); vnic.setPortgroup(virtualnic.getPortgroup()); vnic.setMac(virtualnic.getSpec().getMac()); vnics.add(vnic); } ninfo.setVnics(vnics); return ninfo; }}
测试代码:
package com.vmware.main;import com.vmware.HostSystemOption.HostSystemNetWork;import com.vmware.pojo.NetworkInfo;import com.vmware.pojo.VirtualNic;import com.vmware.pojo.VirtualSwitch;import com.vmware.util.Session;import com.vmware.vim25.mo.*;import java.util.List;/** * Created by vixuan-008 on 2015/4/28. */public class HostSystemNetworkTest { public static void main(String[] args){ try{ String vmname="172.16.1.22"; ServiceInstance serviceInstance= Session.getInstance("172.16.1.20", "root", "vmware"); Folder rootFolder = serviceInstance.getRootFolder(); HostSystem hostSystem = (HostSystem) new InventoryNavigator( rootFolder).searchManagedEntity("HostSystem", vmname); if(hostSystem==null) { System.out.println("No VM " + vmname + " found"); serviceInstance.getServerConnection().logout(); return; } HostSystemNetWork hostSystemNetWork=new HostSystemNetWork(); NetworkInfo networkInfo=hostSystemNetWork.getNetworkInfo(hostSystem); if(networkInfo !=null){ //虚拟网卡 List<VirtualNic> vnics=networkInfo.getVnics(); if(vnics.size()>0){ for(VirtualNic virtualNic:vnics){ System.out.println("--------start-----------"); System.out.println("name:"+virtualNic.getName()); System.out.println("mac:"+virtualNic.getMac()); System.out.println("protgroup:"+virtualNic.getPortgroup()); System.out.println("--------end-----------"); } } //虚拟交换机 List<VirtualSwitch> vss=networkInfo.getVss(); if(vss.size()>0){ for(VirtualSwitch virtualSwitch:vss){ System.out.println("--------start1-----------"); System.out.println("name:"+virtualSwitch.getName()); System.out.println("mac:"+virtualSwitch.getMac()); System.out.println("protgroup:"+virtualSwitch.getPortgroup()); System.out.println("--------end1-----------"); } } } }catch (Exception e){ e.printStackTrace(); } }}
相关展示:
0 0
- Vijava 学习笔记之NetWork(基础配置信息)
- Vijava 学习笔记之VirtualMachine(基础配置信息{VirtualMachineConfigSummary})
- Vijava学习笔记之DataCenter(基础配置信息)
- Vijava学习笔记之Cluster(基础配置信息)
- Vijava 学习笔记之ResourcePool(基础配置信息)
- Vijava 学习笔记之 DataStore(基础配置信息)
- Vijava 学习笔记之(VirtualMachine 获取网卡配置信息)
- Vijava 学习笔记之(获取自定义规范定义的IP相关配置信息)
- Vijava 学习笔记之(Cluster 关联资源信息:CPU、内存、Datastore容量信息)
- Vijava 学习笔记之(VirtualMachineRelocateSpec类)
- Vijava 学习笔记之(获取用户自定义规范相关信息)
- Vijava 学习笔记之模板
- Vijava 学习笔记之(VirtualMachineCloneSpec)
- Vijava 学习笔记之CustomizationPassword
- Vijava 学习笔记之 VirtualMachine(状态(通电状态))
- Vijava 学习笔记之(模板生成虚拟机)
- Vijava 学习笔记之(HostSystem 关联VirtualMachine)
- Vijava 学习笔记之(获取用户指定自定义规范)
- 做个正能量的程序员
- jQuery实现 全选/反选
- 最常用的1000个Java类 (附代码示例)
- 在Windows XP系统安装SQL server 2000 企业版(图解版)
- IOS和android和C#中列表的排序
- Vijava 学习笔记之NetWork(基础配置信息)
- 前妻贾斯汀解读马斯克何以能“极度成功”:痴迷!痴迷!痴迷!
- 语音上传,播放
- 用Js的eval解析JSON中的注意点
- I2S总线协议简介
- NSDP协议免费版NAC-v1.0发布
- SpriteBatchNode与SpriteFrameCache加快渲染
- 全选反选、登陆、ajax删除等等 思路以及伪代码
- 撰写架构设计文档的心得体会