dom0/backup-restore: set network dependencies when all VMs are restored
To avoid complex restore order resolution.
This commit is contained in:
parent
1b966eae80
commit
924886a639
@ -1077,12 +1077,6 @@ def backup_restore_do(backup_dir, restore_info, host_collection = None, print_ca
|
|||||||
template_name = vm_info['template']
|
template_name = vm_info['template']
|
||||||
template = host_collection.get_vm_by_name(template_name)
|
template = host_collection.get_vm_by_name(template_name)
|
||||||
|
|
||||||
if not vm.uses_default_netvm:
|
|
||||||
uses_default_netvm = False
|
|
||||||
netvm = host_collection.get_vm_by_name (vm_info['netvm']) if vm_info['netvm'] is not None else None
|
|
||||||
else:
|
|
||||||
uses_default_netvm = True
|
|
||||||
|
|
||||||
new_vm = None
|
new_vm = None
|
||||||
try:
|
try:
|
||||||
restore_vm_dir (backup_dir, vm.dir_path, qubes_servicevms_dir);
|
restore_vm_dir (backup_dir, vm.dir_path, qubes_servicevms_dir);
|
||||||
@ -1104,10 +1098,6 @@ def backup_restore_do(backup_dir, restore_info, host_collection = None, print_ca
|
|||||||
host_collection.pop(new_vm.qid)
|
host_collection.pop(new_vm.qid)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if vm.is_proxyvm() and not uses_default_netvm:
|
|
||||||
new_vm.uses_default_netvm = False
|
|
||||||
new_vm.netvm = netvm
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
new_vm.clone_attrs(vm)
|
new_vm.clone_attrs(vm)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
@ -1144,12 +1134,6 @@ def backup_restore_do(backup_dir, restore_info, host_collection = None, print_ca
|
|||||||
template_name = vm_info['template']
|
template_name = vm_info['template']
|
||||||
template = host_collection.get_vm_by_name(template_name)
|
template = host_collection.get_vm_by_name(template_name)
|
||||||
|
|
||||||
if not vm.uses_default_netvm:
|
|
||||||
uses_default_netvm = False
|
|
||||||
netvm = host_collection.get_vm_by_name (vm_info['netvm']) if vm_info['netvm'] is not None else None
|
|
||||||
else:
|
|
||||||
uses_default_netvm = True
|
|
||||||
|
|
||||||
new_vm = None
|
new_vm = None
|
||||||
try:
|
try:
|
||||||
restore_vm_dir (backup_dir, vm.dir_path, qubes_appvms_dir);
|
restore_vm_dir (backup_dir, vm.dir_path, qubes_appvms_dir);
|
||||||
@ -1168,10 +1152,6 @@ def backup_restore_do(backup_dir, restore_info, host_collection = None, print_ca
|
|||||||
host_collection.pop(new_vm.qid)
|
host_collection.pop(new_vm.qid)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if not uses_default_netvm:
|
|
||||||
new_vm.uses_default_netvm = False
|
|
||||||
new_vm.netvm = netvm
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
new_vm.clone_attrs(vm)
|
new_vm.clone_attrs(vm)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
@ -1192,6 +1172,21 @@ def backup_restore_do(backup_dir, restore_info, host_collection = None, print_ca
|
|||||||
host_collection.pop(new_vm.qid)
|
host_collection.pop(new_vm.qid)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
# Set network dependencies - only non-default netvm setting
|
||||||
|
for vm_info in restore_info.values():
|
||||||
|
if not vm_info['good-to-go']:
|
||||||
|
continue
|
||||||
|
if 'vm' not in vm_info:
|
||||||
|
continue
|
||||||
|
vm = vm_info['vm']
|
||||||
|
host_vm = host_collection.get_vm_by_name(vm.name)
|
||||||
|
if host_vm is None:
|
||||||
|
# Failed/skipped VM
|
||||||
|
continue
|
||||||
|
|
||||||
|
if not vm.uses_default_netvm:
|
||||||
|
host_vm.netvm = host_collection.get_vm_by_name (vm_info['netvm']) if vm_info['netvm'] is not None else None
|
||||||
|
|
||||||
host_collection.save()
|
host_collection.save()
|
||||||
if lock_obtained:
|
if lock_obtained:
|
||||||
host_collection.unlock_db()
|
host_collection.unlock_db()
|
||||||
|
Loading…
Reference in New Issue
Block a user