mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-09 03:36:48 +00:00
fix(instances): a migrated VM's source definition is always removed
Migration left the VM defined on the source host unless "Delete original" was ticked (VIR_MIGRATE_UNDEFINE_SOURCE). With the shared storage migration needs, that definition points at the disks the destination VM is running on: the VM showed on both hosts and could be started (or autostarted) a second time against the same disks; only a configured lock manager stops that. moveto now always passes VIR_MIGRATE_UNDEFINE_SOURCE with VIR_MIGRATE_PERSIST_DEST. The option is gone from the form, the view, the API (MigrateSerializer.xml_del) and the clone auto-migration. It removes the definition, not the disk files.
This commit is contained in:
parent
1ce7dbf18e
commit
25b3671c33
8 changed files with 56 additions and 22 deletions
|
|
@ -113,13 +113,14 @@ class wvmInstances(wvmConnect):
|
|||
name,
|
||||
live,
|
||||
unsafe,
|
||||
undefine,
|
||||
offline,
|
||||
autoconverge=False,
|
||||
compress=False,
|
||||
postcopy=False,
|
||||
):
|
||||
flags = VIR_MIGRATE_PERSIST_DEST
|
||||
# The source definition always goes: one left behind points at the
|
||||
# same (shared) disks as the migrated VM and could be started again.
|
||||
flags = VIR_MIGRATE_PERSIST_DEST | VIR_MIGRATE_UNDEFINE_SOURCE
|
||||
if live and conn.get_status() != 5:
|
||||
flags |= VIR_MIGRATE_LIVE
|
||||
if unsafe and conn.get_status() == 1:
|
||||
|
|
@ -132,8 +133,6 @@ class wvmInstances(wvmConnect):
|
|||
flags |= VIR_MIGRATE_COMPRESSED
|
||||
if not offline and postcopy and conn.get_status() == 1:
|
||||
flags |= VIR_MIGRATE_POSTCOPY
|
||||
if undefine:
|
||||
flags |= VIR_MIGRATE_UNDEFINE_SOURCE
|
||||
|
||||
dom = conn.instance
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue