From 3721ae3e8ba81582d7c206947386a584064ba516 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Mon, 3 Jul 2017 23:13:23 +0200 Subject: [PATCH] vm/adminvm: setup libvirt_domain property Since libvirt do provide object for dom0 too, return it here. It's much easier than special-casing AdminVM everywhere. And in fact sometimes it is actually useful (for example attaching devices from/to dom0, adjusting memory). --- qubes/vm/adminvm.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/qubes/vm/adminvm.py b/qubes/vm/adminvm.py index a3246d09..82a9b975 100644 --- a/qubes/vm/adminvm.py +++ b/qubes/vm/adminvm.py @@ -49,6 +49,11 @@ class AdminVM(qubes.vm.BaseVM): default='00000000-0000-0000-0000-000000000000', setter=qubes.property.forbidden) + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + self._libvirt_domain = None + def __str__(self): return self.name @@ -71,12 +76,14 @@ class AdminVM(qubes.vm.BaseVM): @property def libvirt_domain(self): - '''Always :py:obj:`None`. + '''Libvirt object for dom0. .. seealso: :py:attr:`qubes.vm.qubesvm.QubesVM.libvirt_domain` ''' - return None + if self._libvirt_domain is None: + self._libvirt_domain = self.app.vmm.libvirt_conn.lookupByID(0) + return self._libvirt_domain @staticmethod def is_running():