diff options
author | Cole Robinson <crobinso@redhat.com> | 2014-01-25 14:57:10 -0500 |
---|---|---|
committer | Cole Robinson <crobinso@redhat.com> | 2014-01-25 17:20:30 -0500 |
commit | 9f5a842a3ab2bea5ba2ff6eb60206b30a1ad8a22 (patch) | |
tree | 49c56adb4453367360d1ee05a9fac5ce5dde4f0f | |
parent | 16c8c31cbd66ff8ad24bef970773dcc261f8c114 (diff) | |
download | virt-manager-9f5a842a3ab2bea5ba2ff6eb60206b30a1ad8a22.tar.gz |
xmlbuilder: Make clear() remove unknown XML properties
-rw-r--r-- | tests/xmlparse-xml/clear-cpu-unknown-vals-in.xml | 20 | ||||
-rw-r--r-- | tests/xmlparse-xml/clear-cpu-unknown-vals-out.xml | 16 | ||||
-rw-r--r-- | tests/xmlparse.py | 10 | ||||
-rw-r--r-- | virtinst/xmlbuilder.py | 3 |
4 files changed, 49 insertions, 0 deletions
diff --git a/tests/xmlparse-xml/clear-cpu-unknown-vals-in.xml b/tests/xmlparse-xml/clear-cpu-unknown-vals-in.xml new file mode 100644 index 00000000..26434081 --- /dev/null +++ b/tests/xmlparse-xml/clear-cpu-unknown-vals-in.xml @@ -0,0 +1,20 @@ +<domain type="test"> + <name>test-cpu-unknown-clear</name> + <memory unit="KiB">8388608</memory> + <currentMemory unit="KiB">2097152</currentMemory> + <vcpu placement="static">2</vcpu> + <os> + <type arch="i686">hvm</type> + <boot dev="hd"/> + </os> + <cpu> + <foo bar="baz"/> + <blah/> + </cpu> + <clock offset="utc"/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + </devices> +</domain> diff --git a/tests/xmlparse-xml/clear-cpu-unknown-vals-out.xml b/tests/xmlparse-xml/clear-cpu-unknown-vals-out.xml new file mode 100644 index 00000000..50c06b8f --- /dev/null +++ b/tests/xmlparse-xml/clear-cpu-unknown-vals-out.xml @@ -0,0 +1,16 @@ +<domain type="test"> + <name>test-cpu-unknown-clear</name> + <memory unit="KiB">8388608</memory> + <currentMemory unit="KiB">2097152</currentMemory> + <vcpu placement="static">2</vcpu> + <os> + <type arch="i686">hvm</type> + <boot dev="hd"/> + </os> + <clock offset="utc"/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + </devices> +</domain> diff --git a/tests/xmlparse.py b/tests/xmlparse.py index 5e149688..ef62757b 100644 --- a/tests/xmlparse.py +++ b/tests/xmlparse.py @@ -1104,6 +1104,16 @@ class XMLParseTest(unittest.TestCase): # Misc tests # ############## + def testCPUUnknownClear(self): + # Make sure .clear() even removes XML elements we don't know about + basename = "clear-cpu-unknown-vals" + infile = "tests/xmlparse-xml/%s-in.xml" % basename + outfile = "tests/xmlparse-xml/%s-out.xml" % basename + guest = virtinst.Guest(conn, parsexml=file(infile).read()) + + guest.cpu.clear() + utils.diff_compare(guest.get_xml_config(), outfile) + def testzzzzCheckProps(self): # pylint: disable=W0212 # Access to protected member, needed to unittest stuff diff --git a/virtinst/xmlbuilder.py b/virtinst/xmlbuilder.py index e1a5fe11..9416af27 100644 --- a/virtinst/xmlbuilder.py +++ b/virtinst/xmlbuilder.py @@ -855,6 +855,9 @@ class XMLBuilder(object): for prop in props: prop.clear(self) + _remove_xpath_node(self._xmlstate.xml_ctx, + self.get_root_xpath()) + def validate(self): """ Validate any set values and raise an exception if there's |