diff --git a/tests/utils.py b/tests/utils.py index 017e6edbc..237f66efc 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -210,7 +210,7 @@ def get_basic_fullyvirt_guest(typ="xen", installer=None): gdev = VirtualGraphics(_conn) gdev.type = "sdl" g.add_device(gdev) - g.features['pae'] = 0 + g.features.pae = False g.vcpus = 5 if installer: g.installer = installer diff --git a/tests/xmlparse.py b/tests/xmlparse.py index 1f01070f4..52b56d481 100644 --- a/tests/xmlparse.py +++ b/tests/xmlparse.py @@ -146,17 +146,8 @@ class XMLParseTest(unittest.TestCase): check = self._make_checker(guest.features) check("acpi", True, False) - check("apic", True, False) - check("pae", False, True) - - def feature_checker(prop, origval, newval): - self.assertEqual(guest.features[prop], origval) - guest.features[prop] = newval - self.assertEqual(guest.features[prop], newval) - - feature_checker("acpi", False, False) - feature_checker("apic", False, True) - feature_checker("pae", True, False) + check("apic", True, False, True) + check("pae", False, True, False) check = self._make_checker(guest.cpu) check("match", "exact", "strict") diff --git a/virt-image b/virt-image index b0f42caca..c7b37dcdb 100755 --- a/virt-image +++ b/virt-image @@ -165,9 +165,9 @@ def main(conn=None): if guest.os.is_hvm(): if options.noacpi: - guest.features["acpi"] = False + guest.features.acpi = False if options.noapic: - guest.features["apic"] = False + guest.features.apic = False if not guest.get_devices("input"): guest.add_default_input_device() diff --git a/virt-install b/virt-install index 9f92a2db8..767c23546 100755 --- a/virt-install +++ b/virt-install @@ -501,8 +501,8 @@ def build_guest_instance(conn, options): cli.parse_boot(guest, options.bootopts) guest.autostart = options.autostart guest.description = options.description - guest.features["acpi"] = not options.noacpi - guest.features["apic"] = not options.noapic + guest.features.acpi = not options.noacpi + guest.features.apic = not options.noapic # Non-default devices diff --git a/virtManager/domain.py b/virtManager/domain.py index 39c461b75..b3b9875bf 100644 --- a/virtManager/domain.py +++ b/virtManager/domain.py @@ -556,11 +556,11 @@ class vmmDomain(vmmLibvirtObject): # Machine config define methods def define_acpi(self, newvalue): def change(guest): - guest.features["acpi"] = newvalue + guest.features.acpi = newvalue return self._redefine(change) def define_apic(self, newvalue): def change(guest): - guest.features["apic"] = newvalue + guest.features.apic = newvalue return self._redefine(change) def define_clock(self, newvalue): @@ -1003,9 +1003,9 @@ class vmmDomain(vmmLibvirtObject): def get_emulator(self): return self.get_xmlobj().emulator def get_acpi(self): - return self.get_xmlobj().features["acpi"] + return self.get_xmlobj().features.acpi def get_apic(self): - return self.get_xmlobj().features["apic"] + return self.get_xmlobj().features.apic def get_clock(self): return self.get_xmlobj().clock.offset def get_machtype(self): diff --git a/virtinst/domainfeatures.py b/virtinst/domainfeatures.py index 3ebb3b2be..1049c00cd 100644 --- a/virtinst/domainfeatures.py +++ b/virtinst/domainfeatures.py @@ -36,10 +36,3 @@ class DomainFeatures(XMLBuilder): pae = XMLProperty("./pae", is_bool=True, default_name="default", default_cb=lambda s: False) - - def __setitem__(self, attr, val): - return setattr(self, attr, bool(val)) - def __getitem__(self, attr): - return getattr(self, attr) - def __delitem__(self, attr): - return setattr(self, attr, None) diff --git a/virtinst/guest.py b/virtinst/guest.py index e4f631590..fd5ceb4e5 100644 --- a/virtinst/guest.py +++ b/virtinst/guest.py @@ -628,12 +628,12 @@ class Guest(XMLBuilder): self.type)): default = False - if self.features["acpi"] == "default": - self.features["acpi"] = self._lookup_osdict_key("acpi", default) - if self.features["apic"] == "default": - self.features["apic"] = self._lookup_osdict_key("apic", default) - if self.features["pae"] == "default": - self.features["pae"] = self.conn.caps.support_pae() + if self.features.acpi == "default": + self.features.acpi = self._lookup_osdict_key("acpi", default) + if self.features.apic == "default": + self.features.apic = self._lookup_osdict_key("apic", default) + if self.features.pae == "default": + self.features.pae = self.conn.caps.support_pae() def _add_implied_controllers(self): for dev in self.get_all_devices(): diff --git a/virtinst/virtimage.py b/virtinst/virtimage.py index 5993a9865..38c04def5 100644 --- a/virtinst/virtimage.py +++ b/virtinst/virtimage.py @@ -379,9 +379,9 @@ class ImageInstaller(Installer): for f in ['pae', 'acpi', 'apic']: if self.boot_caps.features[f] & CapabilitiesParser.FEATURE_ON: - guest.features[f] = True + setattr(guest.features, f, True) elif self.boot_caps.features[f] & CapabilitiesParser.FEATURE_OFF: - guest.features[f] = False + setattr(guest.features, f, False) guest.os.kernel = self.boot_caps.kernel guest.os.initrd = self.boot_caps.initrd