I debuged Hyper-V V1 API and Hyper-V V2 API for function get_vm_storage_paths.
I set breakpoint at function get_vm_storage_paths in vmutils.py, the debug output is as follows.
When using Hyper-V v1 API:
(Pdb) pp [r.ResourceSubType for r in rasds]
[u'Microsoft Virtual Keyboard',
u'Microsoft Virtual PS2 Mouse',
u'Microsoft S3 Display Controller',
u'Microsoft Synthetic Diskette Drive',
None,
u'Microsoft Serial Controller',
u'Microsoft Serial Port',
u'Microsoft Serial Port',
u'Microsoft Synthetic Disk Drive',
u'Microsoft Virtual Hard Disk',
u'Microsoft Synthetic DVD Drive',
u'Microsoft Virtual CD/DVD Disk',
u'Microsoft Emulated IDE Controller',
u'Microsoft Emulated IDE Controller',
u'Microsoft Synthetic Mouse',
u'Microsoft Synthetic Display Controller',
u'Microsoft Synthetic SCSI Controller']
(Pdb) jf = vmsettings[0].associators(wmi_result_class='Msvm_StorageAllocationSettingData')
(Pdb) pp [r.ResourceSubType for r in jf]
[]
There is 'Microsoft Virtual Hard Disk' in rasds' ResourceSubType and not i jf.
When using Hyper-V v2 API:
(Pdb) pp [r.ResourceSubType for r in rasds]
[u'Microsoft:Hyper-V:Virtual Keyboard',
u'Microsoft:Hyper-V:Virtual PS2 Mouse',
u'Microsoft:Hyper-V:S3 Display Controller',
u'Microsoft:Hyper-V:Synthetic Diskette Drive',
None,
u'Microsoft:Hyper-V:Serial Controller',
u'Microsoft:Hyper-V:Serial Port',
u'Microsoft:Hyper-V:Serial Port',
u'Microsoft:Hyper-V:Synthetic Disk Drive',
u'Microsoft:Hyper-V:Synthetic DVD Drive',
u'Microsoft:Hyper-V:Emulated IDE Controller',
u'Microsoft:Hyper-V:Emulated IDE Controller',
u'Microsoft:Hyper-V:Synthetic Mouse',
u'Microsoft:Hyper-V:Synthetic Display Controller',
u'Microsoft:Hyper-V:Synthetic SCSI Controller']
(Pdb) jf = vmsettings[0].associators(wmi_result_class='Msvm_StorageAllocationSettingData')
(Pdb) pp [r.ResourceSubType for r in jf]
[u'Microsoft:Hyper-V:Virtual Hard Disk',
u'Microsoft:Hyper-V:Virtual CD/DVD Disk']
(Pdb) pp ["obj.%s = %s" % (p, getattr(jf[0], p)) for p in jf[0]._properties]
[u'obj.HostExtentName = None',
u'obj.AutomaticDeallocation = True',
u'obj.InstanceID = Microsoft:2CD8141B-6228-49AC-8FF7-AE5CB2A1BB52\\83F8638B-8DCA-4152-9EDA-2CA8B33039B4\\0\\0\\L',
u'obj.VirtualResourceBlockSize = None',
u'obj.ResourceSubType = Microsoft:Hyper-V:Virtual Hard Disk',
u'obj.Access = None',
u"obj.HostResource = (u'd:\\\\hyper-v\\\\instances\\\\instance-0000001e\\\\root.vhd',)",
u'obj.OtherHostExtentNameNamespace = None',
u'obj.OtherHostExtentNameFormat = None',
u'obj.ElementName = Hard Disk Image',
u'obj.Description = Settings for the Microsoft Hard Disk Image.',
u'obj.Parent = \\\\ABBA-N06-HV01\\root\\virtualization\\v2:Msvm_ResourceAllocationSettingData.InstanceID="Microsoft:2CD
8141B-6228-49AC-8FF7-AE5CB2A1BB52\\\\83F8638B-8DCA-4152-9EDA-2CA8B33039B4\\\\0\\\\0\\\\D"',
u'obj.VirtualQuantity = 1',
u'obj.HostResourceBlockSize = None',
u'obj.AutomaticAllocation = True',
u'obj.PoolID = ',
u'obj.HostExtentStartingAddress = None',
u'obj.Reservation = 1',
u'obj.VirtualQuantityUnits = count(fixed size block)',
u'obj.AllocationUnits = count',
u'obj.MappingBehavior = None',
u'obj.Address = None',
u'obj.AddressOnParent = None',
u'obj.OtherResourceType = None',
u'obj.Caption = Hard Disk Image',
u'obj.ConsumerVisibility = 3',
u'obj.Limit = 1',
u'obj.ResourceType = 31',
u'obj.Weight = 0',
u'obj.HostExtentNameFormat = None',
u'obj.Connection = None',
u'obj.HostExtentNameNamespace = None']
There is 'Microsoft Virtual Hard Disk' in jf' ResourceSubType and not in rasds. also the storage path is in HostResource.
hi, @<email address hidden>, what's your opnion? thanks
I debuged Hyper-V V1 API and Hyper-V V2 API for function get_vm_ storage_ paths. storage_ paths in vmutils.py, the debug output is as follows.
I set breakpoint at function get_vm_
When using Hyper-V v1 API:
(Pdb) pp [r.ResourceSubType for r in rasds] 0].associators( wmi_result_ class=' Msvm_StorageAll ocationSettingD ata')
[u'Microsoft Virtual Keyboard',
u'Microsoft Virtual PS2 Mouse',
u'Microsoft S3 Display Controller',
u'Microsoft Synthetic Diskette Drive',
None,
u'Microsoft Serial Controller',
u'Microsoft Serial Port',
u'Microsoft Serial Port',
u'Microsoft Synthetic Disk Drive',
u'Microsoft Virtual Hard Disk',
u'Microsoft Synthetic DVD Drive',
u'Microsoft Virtual CD/DVD Disk',
u'Microsoft Emulated IDE Controller',
u'Microsoft Emulated IDE Controller',
u'Microsoft Synthetic Mouse',
u'Microsoft Synthetic Display Controller',
u'Microsoft Synthetic SCSI Controller']
(Pdb) jf = vmsettings[
(Pdb) pp [r.ResourceSubType for r in jf]
[]
There is 'Microsoft Virtual Hard Disk' in rasds' ResourceSubType and not i jf.
When using Hyper-V v2 API:
(Pdb) pp [r.ResourceSubType for r in rasds] Hyper-V: Virtual Keyboard', Hyper-V: Virtual PS2 Mouse', Hyper-V: S3 Display Controller', Hyper-V: Synthetic Diskette Drive', Hyper-V: Serial Controller', Hyper-V: Serial Port', Hyper-V: Serial Port', Hyper-V: Synthetic Disk Drive', Hyper-V: Synthetic DVD Drive', Hyper-V: Emulated IDE Controller', Hyper-V: Emulated IDE Controller', Hyper-V: Synthetic Mouse', Hyper-V: Synthetic Display Controller', Hyper-V: Synthetic SCSI Controller'] 0].associators( wmi_result_ class=' Msvm_StorageAll ocationSettingD ata') Hyper-V: Virtual Hard Disk', Hyper-V: Virtual CD/DVD Disk'] HostExtentName = None', AutomaticDeallo cation = True', 2CD8141B- 6228-49AC- 8FF7-AE5CB2A1BB 52\\83F8638B- 8DCA-4152- 9EDA-2CA8B33039 B4\\0\\ 0\\L', VirtualResource BlockSize = None', ResourceSubType = Microsoft: Hyper-V: Virtual Hard Disk', \\hyper- v\\\\instances\ \\\instance- 0000001e\ \\\root. vhd',)" , OtherHostExtent NameNamespace = None', OtherHostExtent NameFormat = None', N06-HV01\ \root\\ virtualization\ \v2:Msvm_ ResourceAllocat ionSettingData. InstanceID= "Microsoft: 2CD 49AC-8FF7- AE5CB2A1BB52\ \\\83F8638B- 8DCA-4152- 9EDA-2CA8B33039 B4\\\\0\ \\\0\\\ \D"', VirtualQuantity = 1', HostResourceBlo ckSize = None', AutomaticAlloca tion = True', HostExtentStart ingAddress = None', VirtualQuantity Units = count(fixed size block)', AllocationUnits = count', MappingBehavior = None', AddressOnParent = None', OtherResourceTy pe = None', ConsumerVisibil ity = 3', HostExtentNameF ormat = None', HostExtentNameN amespace = None']
[u'Microsoft:
u'Microsoft:
u'Microsoft:
u'Microsoft:
None,
u'Microsoft:
u'Microsoft:
u'Microsoft:
u'Microsoft:
u'Microsoft:
u'Microsoft:
u'Microsoft:
u'Microsoft:
u'Microsoft:
u'Microsoft:
(Pdb) jf = vmsettings[
(Pdb) pp [r.ResourceSubType for r in jf]
[u'Microsoft:
u'Microsoft:
(Pdb) pp ["obj.%s = %s" % (p, getattr(jf[0], p)) for p in jf[0]._properties]
[u'obj.
u'obj.
u'obj.InstanceID = Microsoft:
u'obj.
u'obj.
u'obj.Access = None',
u"obj.HostResource = (u'd:\\
u'obj.
u'obj.
u'obj.ElementName = Hard Disk Image',
u'obj.Description = Settings for the Microsoft Hard Disk Image.',
u'obj.Parent = \\\\ABBA-
8141B-6228-
u'obj.
u'obj.
u'obj.
u'obj.PoolID = ',
u'obj.
u'obj.Reservation = 1',
u'obj.
u'obj.
u'obj.
u'obj.Address = None',
u'obj.
u'obj.
u'obj.Caption = Hard Disk Image',
u'obj.
u'obj.Limit = 1',
u'obj.ResourceType = 31',
u'obj.Weight = 0',
u'obj.
u'obj.Connection = None',
u'obj.
There is 'Microsoft Virtual Hard Disk' in jf' ResourceSubType and not in rasds. also the storage path is in HostResource.
hi, @<email address hidden>, what's your opnion? thanks