Vijava 学习笔记之HostSystem 包含虚拟机和虚拟网卡v
2015-04-29 11:53
591 查看
vijava 代码:
实体类:
逻辑层:
测试代码:
效果展示:
实体类:
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.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.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(); } } }
效果展示:
相关文章推荐
- Vijava 学习笔记之(HostSystem 关联VirtualMachine)
- Vijava学习笔记之(HostSystem 内存(总容量和已使用))
- Vijava 学习笔记之HostSystem(内存利用率)
- Vijava 学习笔记之(VirtualMachine 与HostSystem 宿主关系)
- Vijava 学习笔记之 虚拟机连接
- Vijava学习笔记之(为指定的SCSI控制器,添加关联磁盘。主要针对虚拟机)
- Vijava 学习笔记之(虚拟机可扩容CPU核数、内存大小和关联DataStore)
- Vijava 学习笔记 删除虚拟机(delete Virtual Machine)
- Linux学习笔记-----虚拟机的三种网卡模式
- vmware 学习笔记==常见虚拟机创建工具(虚拟机3种联网模式+网络模式切换时+配置静态ip时 的网络(网卡VMnetxxx)的配置###不熟悉!!!很常用)
- Vijava 学习笔记之(VirtualMachine 更改虚拟机系统磁盘大小)
- Vijava 学习笔记之(Template 克隆虚拟机并修改Template 指定虚拟磁盘大小)
- VMware 虚拟上网的的三种模式 ——bridged、host-only、NAT 模式--学习整理笔记
- Vijava 学习笔记之(Template 克隆虚拟机并指定自定义规范)
- Vijava 学习笔记之(VirtualMachine 获取网卡配置信息)
- Vijava 学习笔记(指定虚拟机添加虚拟磁盘修订功能版本)
- 主机通过host-only虚拟网卡连接VBOX虚拟机
- Vijava 学习笔记之(模板生成虚拟机)
- Java学习笔记25(System类)
- 虚拟机CentOS6.3环境下配置ip地址(慕课学习笔记)