vmware/pyvmomi-community-samples

fail to add nvdimm device

Open

#677 aperta il 7 set 2021

Vedi su GitHub
 (0 commenti) (0 reazioni) (0 assegnatari)Python (914 fork)batch import
help wanted

Metriche repository

Star
 (972 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

Hello, I'm able to add a nvdimm device via vcenter GUI, and I captured the code. However, when I tried to program it (similar to the captured code) to add the nvdimm device, I got error InvalidDeviceSpec error. Any idea? Appreciate any help here.

pyVmomi.VmomiSupport.InvalidDeviceSpec: (vim.fault.InvalidDeviceSpec) { dynamicType = , dynamicProperty = (vmodl.DynamicProperty) [], msg = "Invalid configuration for device '0'.", faultCause = , faultMessage = (vmodl.LocalizableMessage) [ (vmodl.LocalizableMessage) { dynamicType = , dynamicProperty = (vmodl.DynamicProperty) [], key = 'com.vmware.vim.vpxd.vmprov.invalidNVDIMMPolicy', arg = (vmodl.KeyAnyValue) [], message = 'com.vmware.vim.vpxd.vmprov.invalidNVDIMMPolicy' }, (vmodl.LocalizableMessage) { dynamicType = , dynamicProperty = (vmodl.DynamicProperty) [], key = 'com.vmware.vim.vpxd.vpx.vmprov.DeviceStr', arg = (vmodl.KeyAnyValue) [ (vmodl.KeyAnyValue) { dynamicType = , dynamicProperty = (vmodl.DynamicProperty) [], key = 'deviceStr', value = 'New NVDIMM' } ], message = 'Device: New NVDIMM.' } ], property = '', deviceIndex = 0 }

Captured code from vcenter for adding a 10G nvdimm device: #---------------ReconfigVM_Task--------------- spec = vim.vm.ConfigSpec() spec_deviceChange_0 = vim.vm.device.VirtualDeviceSpec() spec_deviceChange_0.fileOperation = create spec_deviceChange_0.device = vim.vm.device.VirtualNVDIMM() spec_deviceChange_0.device.backing = vim.vm.device.VirtualNVDIMM.BackingInfo() spec_deviceChange_0.device.backing.fileName = '' spec_deviceChange_0.device.controllerKey = 27000 spec_deviceChange_0.device.capacityInMB = 10240 spec_deviceChange_0.device.deviceInfo = vim.Description() spec_deviceChange_0.device.deviceInfo.summary = 'New NVDIMM' spec_deviceChange_0.device.deviceInfo.label = 'New NVDIMM' spec_deviceChange_0.device.key = -111 spec_deviceChange_0.operation = add spec.deviceChange = [spec_deviceChange_0] spec.cpuFeatureMask = [] managedObject.ReconfigVM_Task(spec) # VirtualMachine-vm-933962

Test code: def add_nvdimm_device(si, vm_obj): # Add NVDIMM device nvdimm_spec = vim.vm.device.VirtualDeviceSpec() nvdimm_spec.fileOperation = "create" nvdimm_spec.operation = vim.vm.device.VirtualDeviceSpec.Operation.add nvdimm_spec.device = vim.vm.device.VirtualNVDIMM() nvdimm_spec.device.deviceInfo = vim.Description() nvdimm_spec.device.deviceInfo.summary = "New NVDIMM" nvdimm_spec.device.deviceInfo.label = "New NVDIMM"

nvdimm_spec.device.backing = vim.vm.device.VirtualNVDIMM.BackingInfo()
nvdimm_spec.device.backing.fileName = ""
nvdimm_spec.device.capacityInMB = 8192
nvdimm_spec.device.key = -114
nvdimm_spec.device.controllerKey = 27000

spec = vim.vm.ConfigSpec()
spec.deviceChange = [nvdimm_spec]
spec.cpuFeatureMask = []
task = vm_obj.ReconfigVM_Task(spec=spec)
tasks.wait_for_tasks(si, [task])
return True

Guida contributor