From 03bd6f024ea58dd4323df982ce143cc1d7d8f1e0 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Thu, 25 Jul 2013 15:27:42 -0400 Subject: [PATCH] xmlbuilder: Fix setting float value for is_int --- tests/clitest.py | 1 - tests/xmlparse.py | 3 ++- virtinst/xmlbuilder.py | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/clitest.py b/tests/clitest.py index 166213b23..7dbbc929e 100644 --- a/tests/clitest.py +++ b/tests/clitest.py @@ -412,7 +412,6 @@ vinst.add_valid("cpuram", "--numatune 1,2,3,5-7,^6") # Simple --numatune vinst.add_invalid("cpuram", "--vcpus 32 --cpuset=969-1000") # Bogus cpuset vinst.add_invalid("cpuram", "--vcpus 32 --cpuset=autofoo") # Bogus cpuset vinst.add_invalid("cpuram", "--vcpus 20 --check-cpu") # Over host vcpus w/ --check-cpu -vinst.add_invalid("cpuram", "--vcpus 5,maxvcpus=1") # maxvcpus less than cpus vinst.add_invalid("cpuram", "--vcpus foo=bar") # vcpus unknown option vinst.add_invalid("cpuram", "--cpu host") # --cpu host, but no host CPU in caps vinst.add_invalid("cpuram", "--numatune 1-3,4,mode=strict") # Non-escaped numatune diff --git a/tests/xmlparse.py b/tests/xmlparse.py index 97dc0694a..5381d92b5 100644 --- a/tests/xmlparse.py +++ b/tests/xmlparse.py @@ -161,7 +161,8 @@ class XMLParseTest(unittest.TestCase): check("vendor", "Intel", "qemuvendor") check("threads", 2, 1) check("cores", 5, 3) - check("sockets", 4, 4) + guest.cpu.sockets = 4.0 + check("sockets", 4) check = self._make_checker(guest.cpu.features[0]) check("name", "x2apic") diff --git a/virtinst/xmlbuilder.py b/virtinst/xmlbuilder.py index f13b26e97..afddc3359 100644 --- a/virtinst/xmlbuilder.py +++ b/virtinst/xmlbuilder.py @@ -403,9 +403,13 @@ class XMLProperty(property): def _convert_set_value(self, xmlbuilder, val): if self._default_name and val == self._default_name: val = self._default_cb(xmlbuilder) - elif self._is_yesno: - if val is not None: - val = bool(val) and "yes" or "no" + elif self._is_yesno and val is not None: + val = bool(val) and "yes" or "no" + elif self._is_int and val is not None: + intkwargs = {} + if "0x" in str(val): + intkwargs["base"] = 16 + val = int(val, **intkwargs) if self._convert_value_for_setter_cb: val = self._convert_value_for_setter_cb(xmlbuilder, val)