Cannot resize VM to a different compute node when using hyperv_utils_v2
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
High
|
Feng Ju | ||
Havana |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
The bug is when you resize a VM to another compute node using Hyper-V VMUtilsV2, there will be an exception in the compute node which the VM located before resizing.
The exception is "Cannot find boot VHD file for instance: instance-0000000e".
After debuged, the issue maybe in funtion get_vm_
If using Hyper-V v1, the get_vm_
[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']
If using Hyper-V v2, the get_vm_
Microsoft:
Microsoft:
Microsoft:
Microsoft:
None
Microsoft:
Microsoft:
Microsoft:
Microsoft:
Microsoft:
Microsoft:
Microsoft:
Microsoft:
Microsoft:
Microsoft:
I also find in Hyper-V v2 I can find Microsoft Virtual Hard Disk from class Msvm_StorageAll
Maybe the Hyper-V v2 api changed, but the codes in nova didn't change.
Changed in nova: | |
status: | New → In Progress |
assignee: | nobody → Feng Ju (jufeng) |
Changed in nova: | |
importance: | Undecided → High |
Changed in nova: | |
milestone: | none → icehouse-2 |
Changed in nova: | |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | icehouse-2 → 2014.1 |
If I change Msvm_ResourceAl locationSetting Data in get_vm_ storage_ paths function in vmutils.py to Msvm_StorageAll ocationSettingD ata, the disk_resource. Connection at line 398 will be null in get_vm_ storage_ paths function in vmutils.py. Connection will be something like this (u'd:\\ hyper-v\ \instances\ \instance- 0000001d\ \root.vhd' ,)
In Hyper-V v1 the disk_resource.