From 6068c7bc5025efb4d7e8e3c33971119e05bb7918 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Sun, 17 Jul 2016 03:52:40 +0200 Subject: [PATCH] core: fix handling uses_default_netvm property - for netvm it doesn't make sense, but instead of removing it (which surely will break some code), make it always False - when settings VM connections, uses_default_netvm is already loaded - handle it properly during backup restore (really use default netvm, istead of assuming it's the same as during backup) --- core-modules/005QubesNetVm.py | 1 + core/backup.py | 6 +++++- core/qubes.py | 7 +------ 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/core-modules/005QubesNetVm.py b/core-modules/005QubesNetVm.py index 33934f4b..904e74f1 100644 --- a/core-modules/005QubesNetVm.py +++ b/core-modules/005QubesNetVm.py @@ -42,6 +42,7 @@ class QubesNetVm(QubesVm): attrs_config['dir_path']['func'] = \ lambda value: value if value is not None else \ os.path.join(system_path["qubes_servicevms_dir"], self.name) + attrs_config['uses_default_netvm']['func'] = lambda x: False attrs_config['label']['default'] = defaults["servicevm_label"] attrs_config['memory']['default'] = 300 diff --git a/core/backup.py b/core/backup.py index 8e05c165..e9915d56 100644 --- a/core/backup.py +++ b/core/backup.py @@ -1706,7 +1706,11 @@ def restore_info_verify(restore_info, host_collection): # check netvm vm_info.pop('missing-netvm', None) - if vm_info['netvm']: + if vm_info['vm'].uses_default_netvm: + default_netvm = host_collection.get_default_netvm() + vm_info['netvm'] = default_netvm.name if \ + default_netvm else None + elif vm_info['netvm']: netvm_name = vm_info['netvm'] netvm_on_host = host_collection.get_vm_by_name(netvm_name) diff --git a/core/qubes.py b/core/qubes.py index 2fc9c140..f3be12d3 100755 --- a/core/qubes.py +++ b/core/qubes.py @@ -713,18 +713,13 @@ class QubesVmCollection(dict): def set_netvm_dependency(self, element): kwargs = {} - attr_list = ("qid", "uses_default_netvm", "netvm_qid") + attr_list = ("qid", "netvm_qid") for attribute in attr_list: kwargs[attribute] = element.get(attribute) vm = self[int(kwargs["qid"])] - if "uses_default_netvm" not in kwargs: - vm.uses_default_netvm = True - else: - vm.uses_default_netvm = ( - True if kwargs["uses_default_netvm"] == "True" else False) if vm.uses_default_netvm is True: if vm.is_proxyvm(): netvm = self.get_default_fw_netvm()