Я использую приведенный ниже код для того, чтобы добавить сетевую карту, выполненную с DistributedVirtualSwitch
к существующей виртуальной машине (через pyVmomi):PyVmomi добавить NIC с разомкнутым DVS ('config.distributedVirtualSwitch' является отключенным)
def __AddNIC(si, vmconf_dict, network_name):
vm = __get_vm(si, vmconf_dict)
print " Network label : " + network_name
devices = []
nicspec = vim.vm.device.VirtualDeviceSpec()
nicspec.operation = vim.vm.device.VirtualDeviceSpec.Operation.add
nicspec.device = vim.vm.device.VirtualVmxnet3()
nicspec.device.wakeOnLanEnabled = True
nicspec.device.deviceInfo = vim.Description()
nicspec.device.connectable = vim.vm.device.VirtualDevice.ConnectInfo()
nicspec.device.connectable.startConnected = True
nicspec.device.connectable.allowGuestControl = True
network_objref = _get_mor_by_property(si, vim.dvs.DistributedVirtualPortgroup, network_name)
dswitch_port_connection = vim.dvs.PortConnection(
portgroupKey=network_objref.key,
switchUuid=network_objref.config.distributedVirtualSwitch.uuid
)
nicspec.device.backing = vim.vm.device.VirtualEthernetCard.DistributedVirtualPortBackingInfo()
nicspec.device.backing.port = dswitch_port_connection
devices.append(nicspec)
vmconf = vim.vm.ConfigSpec(deviceChange=devices)
task = vm.ReconfigVM_Task(vmconf)
tasks.wait_for_tasks(si, [task])
I «получаю следующее исключение :
switchUuid=network_objref.config.distributedVirtualSwitch.uuid AttributeError: 'NoneType' object has no attribute 'uuid'
После экспертизы VCENTER управляемых объектов (через mob) он появляется, что часть DistributedVirtualPortgroup
ссылки на объект имеет свойство, что (VmwareDistributedVirtualSwitch
), в то время как другие обладают этим свойством Unset
.
Я пробовал несколько способов обойти это, например:
Окружение:
switchUuid=None
, которые дали:TypeError: Required field "switchUuid" not provided (not @optional)
Окружение:
dswitch_port_connection = None
, которые дали:TypeError: Required field "port" not provided (not @optional)
Примечание: Когда я использую VMware WebClient
для настройки выше она прекрасно работает.
Вопрос: Как сделать добавление сетевого адаптера, подобного этой работе?
Какую версию vSphere вы используете, и какую версию pyVmomi вы используете? –
@MichaelRice vSphere: 5.5.0 Build 1879799, Pyvmomi: 5.5.0.2014.1.1 Спасибо! – Vano