如何通过vSphere Client API获取VMWare中的适配器类型列表

时间:2017-05-15 14:54:19

标签: java vsphere esxi

我想通过配置的适配器类型在ESXi 6.0上创建虚拟机。 基本上,这3个(E1000,Vmxnet2,VMXNET3)在创建虚拟机时列出,但我在java中找不到任何API。 我正在导入以下包裹:

import com.vmware.vim25.VirtualEthernetCard;
import com.vmware.vim25.VirtualEthernetCardNetworkBackingInfo;
import com.vmware.vim25.VirtualHardware;
import com.vmware.vim25.VirtualMachineConfigInfo;
import com.vmware.vim25.VirtualMachineConfigSpec;
import com.vmware.vim25.VirtualMachineNetworkInfo; 



 ArrayList<HostSystem> hosts = OperationHelper.GetAllHostReferene();
 ArrayList<String> networkNames = new ArrayList<String>();
 Network[] nws = null;
    for(HostSystem host : hosts) {
        Datastore[] dts = host.getDatastores();
        for(Datastore d : dts){
            if(d.getName().equals(m_datastore)) {
                log.info("Found host for datastore");
                nws = host.getNetworks();
              for(Network n : nws){
                 networkNames.add(n.getName());                 
              }
           }
       }
   }

我通过上面的代码获得网络接口卡列表。但我无法获得适配器类型。 请帮忙。

1 个答案:

答案 0 :(得分:1)

每个VM网络适配器都继承自VirtualEthernetCard。例如:

VirtualEthernetCard&lt; | - VirtualVmxnet&lt; | - VirtualVmxnet3&lt; | - VirtualVmxnet3Vrdma

在调用ReconfigureVM()时,您应该将这些类的实例传递给VM设备列表。