Add functionality to acquire the CPU model from the libvirt domain capabilities. This is used to compare with the host CPU model. --- virtinst/domcapabilities.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/virtinst/domcapabilities.py b/virtinst/domcapabilities.py index f98c807..9b02c94 100644 --- a/virtinst/domcapabilities.py +++ b/virtinst/domcapabilities.py @@ -29,9 +29,27 @@ class _Enum(_HasValues): name = XMLProperty("./@name") +class _Model(XMLBuilder): + XML_NAME = "model" + model = XMLProperty(".") + + +class _HasModels(XMLBuilder): + models = XMLChildProperty(_Model) + + def get_models(self): + return [m.model for m in self.models] + + +class _CPUMode(_HasModels): + XML_NAME = "mode" + name = XMLProperty("./@name") + + class _CapsBlock(_HasValues): supported = XMLProperty("./@supported", is_yesno=True) enums = XMLChildProperty(_Enum) + modes = XMLChildProperty(_CPUMode) def enum_names(self): return [e.name for e in self.enums] @@ -40,6 +58,12 @@ class _CapsBlock(_HasValues): d = dict((e.name, e) for e in self.enums) return d[name] + def mode_names(self): + return [m.name for m in self.modes] + + def get_mode(self, name): + d = dict((m.name, m) for m in self.modes) + return d[name] def _make_capsblock(xml_root_name): class TmpClass(_CapsBlock): @@ -53,6 +77,11 @@ class _OS(_CapsBlock): loader = XMLChildProperty(_make_capsblock("loader"), is_single=True) +class _CPU(_CapsBlock): + XML_NAME = "cpu" + mode = XMLChildProperty(_make_capsblock("mode"), is_single=True) + + class _Devices(_CapsBlock): XML_NAME = "devices" hostdev = XMLChildProperty(_make_capsblock("hostdev"), is_single=True) @@ -151,6 +180,7 @@ class DomainCapabilities(XMLBuilder): XML_NAME = "domainCapabilities" os = XMLChildProperty(_OS, is_single=True) + cpu = XMLChildProperty(_CPU, is_single=True) devices = XMLChildProperty(_Devices, is_single=True) arch = XMLProperty("./arch") -- 1.8.5.6 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list