From dcec14fc0c5c63e892ae8fed7be15fecb5ed5f1f Mon Sep 17 00:00:00 2001 From: Feodor Tersin Date: Sun, 25 Dec 2016 01:53:03 +0300 Subject: [PATCH] libvirt: Introduce Guest.get_config method There are some places in libvirt driver code which have to get and parse domain xml manually. This patch adds get_config method to Guest object, dedicated to be used there instead. Change-Id: I9a28570ebe00f9973aaa9ed2c7f2d5254fd1216e --- nova/tests/unit/virt/libvirt/test_guest.py | 8 ++++++++ nova/virt/libvirt/guest.py | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/nova/tests/unit/virt/libvirt/test_guest.py b/nova/tests/unit/virt/libvirt/test_guest.py index 780ad076dd32..ed1519afd819 100644 --- a/nova/tests/unit/virt/libvirt/test_guest.py +++ b/nova/tests/unit/virt/libvirt/test_guest.py @@ -359,6 +359,14 @@ class GuestTestCase(test.NoDBTestCase): self.guest.set_user_password("foo", "123") self.domain.setUserPassword.assert_called_once_with("foo", "123", 0) + def test_get_config(self): + xml = "fake" + self.domain.XMLDesc.return_value = xml + result = self.guest.get_config() + self.assertIsInstance(result, vconfig.LibvirtConfigGuest) + self.assertEqual('kvm', result.virt_type) + self.assertEqual('fake', result.name) + def test_get_devices(self): xml = """ diff --git a/nova/virt/libvirt/guest.py b/nova/virt/libvirt/guest.py index 87a7d3573f63..6dc706b73712 100644 --- a/nova/virt/libvirt/guest.py +++ b/nova/virt/libvirt/guest.py @@ -308,6 +308,15 @@ class Guest(object): LOG.debug("attach device xml: %s", device_xml) self._domain.attachDeviceFlags(device_xml, flags=flags) + def get_config(self): + """Returns the config instance for a guest + + :returns: LibvirtConfigGuest instance + """ + config = vconfig.LibvirtConfigGuest() + config.parse_str(self._domain.XMLDesc(0)) + return config + def get_disk(self, device): """Returns the disk mounted at device