Vijava 学习笔记之NetWork(基础配置信息)

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值