Commit 3d4d26b
committed
xapi_vm_lifecycle: Only consult data-cant-suspend-reason and feature-suspend for live VMs
Otherwise, a shutdown VM that had data/cant_suspend_reason populated during its
runtime will not be migratable with VM_NON_SUSPENDABLE error.
Additionally uses Xapi_vm_lifecycle_helpers.is_live (which checks for both
`Paused and `Running) instead of a check for `Running to determine if the VM is
live.
The following matrix of cases was tested:
[x] Test on migratable Windows (shouldn't block suspend) → OK
[x] Test on Windows with a non-migratable device (should block suspend as VM
lacks feature) → OK
[x] Test on migratable Linux with XenServer tools (shouldn't block) → OK
[x] Test on migratable Linux with XCP-ng tools (shouldn't block) → OK
[x] Test on Linux with a non-migratable device (should block) → OK
[x] Test nopv Windows/Linux without unmigratable devices with manual
`feature-suspend` xenstore entry forced (shouldn't block, should
resume correctly)
[x] Windows BIOS → OK
[x] Linux BIOS → OK
[x] Test VDI migration on VM that had cant_suspend_reason populated but was
shut down (shouldn't block VDI migration) → OK
Fixes: c895469 ("xapi_vm_lifecycle: Disallow suspend when cant_suspend_reason is present")
Signed-off-by: Andrii Sultanov <andriy.sultanov@vates.tech>1 parent fd19748 commit 3d4d26b
1 file changed
Lines changed: 5 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
193 | 193 | | |
194 | 194 | | |
195 | 195 | | |
196 | | - | |
197 | | - | |
| 196 | + | |
| 197 | + | |
198 | 198 | | |
199 | | - | |
| 199 | + | |
200 | 200 | | |
201 | 201 | | |
202 | 202 | | |
| |||
205 | 205 | | |
206 | 206 | | |
207 | 207 | | |
208 | | - | |
| 208 | + | |
209 | 209 | | |
210 | 210 | | |
211 | 211 | | |
| |||
610 | 610 | | |
611 | 611 | | |
612 | 612 | | |
613 | | - | |
614 | | - | |
| 613 | + | |
615 | 614 | | |
616 | 615 | | |
617 | 616 | | |
| |||
0 commit comments