[virt-tools-list] [PATCH virt-manager] panic notifier: display default value if not set

Chen Hanxiao chenhanxiao at cn.fujitsu.com
Mon Jan 13 08:32:50 UTC 2014


From: Chen Hanxiao <chenhanxiao at cn.fujitsu.com>

If we didn't set values for @type and @iobase in
XML, libvirt will use the default value.
Currently, virt-manager will display "-" if we don't
set any values.
This patch will use default values for display.
And add a test case to cover this scenario.

Signed-off-by: Chen Hanxiao <chenhanxiao at cn.fujitsu.com>
---
 .../change-panic-device-default-in.xml             | 61 +++++++++++++++++++++
 .../change-panic-device-default-out.xml            | 62 ++++++++++++++++++++++
 tests/xmlparse.py                                  | 10 ++++
 virtManager/details.py                             |  3 ++
 virtinst/devicepanic.py                            |  1 +
 5 files changed, 137 insertions(+)
 create mode 100644 tests/xmlparse-xml/change-panic-device-default-in.xml
 create mode 100644 tests/xmlparse-xml/change-panic-device-default-out.xml

diff --git a/tests/xmlparse-xml/change-panic-device-default-in.xml b/tests/xmlparse-xml/change-panic-device-default-in.xml
new file mode 100644
index 0000000..3094267
--- /dev/null
+++ b/tests/xmlparse-xml/change-panic-device-default-in.xml
@@ -0,0 +1,61 @@
+<domain type='kvm'>
+  <name>Ftest</name>
+  <uuid>9d544d2e-e001-a6b2-4aa7-7768796353ea</uuid>
+  <memory unit='KiB'>1048576</memory>
+  <currentMemory unit='KiB'>1048576</currentMemory>
+  <vcpu placement='static'>1</vcpu>
+  <os>
+    <type arch='i686' machine='pc-i440fx-1.4'>hvm</type>
+    <boot dev='hd'/>
+  </os>
+  <features>
+    <acpi/>
+    <apic/>
+    <pae/>
+  </features>
+  <clock offset='utc'/>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>restart</on_crash>
+  <devices>
+    <emulator>/usr/local/bin/qemu-system-x86_64</emulator>
+    <disk type='file' device='disk'>
+      <driver name='qemu' type='raw'/>
+      <source file='/home/IMG/F19_test.img'/>
+      <target dev='hda' bus='ide'/>
+    </disk>
+    <controller type='usb' index='0'>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+    </controller>
+    <controller type='pci' index='0' model='pci-root'/>
+    <controller type='ide' index='0'>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
+    </controller>
+    <controller type='virtio-serial' index='0'>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
+    </controller>
+    <interface type='network'>
+      <mac address='52:54:00:93:45:ce'/>
+      <source network='default'/>
+      <model type='rtl8139'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+    </interface>
+    <serial type='pty'>
+      <target port='0'/>
+    </serial>
+    <console type='pty'>
+      <target type='serial' port='0'/>
+    </console>
+    <input type='mouse' bus='ps2'/>
+    <graphics type='vnc' port='-1' autoport='yes'/>
+    <video>
+      <model type='vga' vram='9216' heads='1'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
+    </video>
+    <memballoon model='virtio'>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
+    </memballoon>
+    <panic>
+    </panic>
+  </devices>
+</domain>
diff --git a/tests/xmlparse-xml/change-panic-device-default-out.xml b/tests/xmlparse-xml/change-panic-device-default-out.xml
new file mode 100644
index 0000000..7aa732c
--- /dev/null
+++ b/tests/xmlparse-xml/change-panic-device-default-out.xml
@@ -0,0 +1,62 @@
+<domain type="kvm">
+  <name>Ftest</name>
+  <uuid>9d544d2e-e001-a6b2-4aa7-7768796353ea</uuid>
+  <memory unit="KiB">1048576</memory>
+  <currentMemory unit="KiB">1048576</currentMemory>
+  <vcpu placement="static">1</vcpu>
+  <os>
+    <type arch="i686" machine="pc-i440fx-1.4">hvm</type>
+    <boot dev="hd"/>
+  </os>
+  <features>
+    <acpi/>
+    <apic/>
+    <pae/>
+  </features>
+  <clock offset="utc"/>
+  <on_poweroff>destroy</on_poweroff>
+  <on_reboot>restart</on_reboot>
+  <on_crash>restart</on_crash>
+  <devices>
+    <emulator>/usr/local/bin/qemu-system-x86_64</emulator>
+    <disk type="file" device="disk">
+      <driver name="qemu" type="raw"/>
+      <source file="/home/IMG/F19_test.img"/>
+      <target dev="hda" bus="ide"/>
+    </disk>
+    <controller type="usb" index="0">
+      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x2"/>
+    </controller>
+    <controller type="pci" index="0" model="pci-root"/>
+    <controller type="ide" index="0">
+      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x1"/>
+    </controller>
+    <controller type="virtio-serial" index="0">
+      <address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0"/>
+    </controller>
+    <interface type="network">
+      <mac address="52:54:00:93:45:ce"/>
+      <source network="default"/>
+      <model type="rtl8139"/>
+      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x0"/>
+    </interface>
+    <serial type="pty">
+      <target port="0"/>
+    </serial>
+    <console type="pty">
+      <target type="serial" port="0"/>
+    </console>
+    <input type="mouse" bus="ps2"/>
+    <graphics type="vnc" port="-1" autoport="yes"/>
+    <video>
+      <model type="vga" vram="9216" heads="1"/>
+      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0"/>
+    </video>
+    <memballoon model="virtio">
+      <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x0"/>
+    </memballoon>
+    <panic>
+      <address type="isa" iobase="0x506"/>
+    </panic>
+  </devices>
+</domain>
diff --git a/tests/xmlparse.py b/tests/xmlparse.py
index 4567bb8..dfe196a 100644
--- a/tests/xmlparse.py
+++ b/tests/xmlparse.py
@@ -791,6 +791,16 @@ class XMLParseTest(unittest.TestCase):
         check("iobase", "0x505", "0x506")
         self._alter_compare(guest.get_xml_config(), outfile)
 
+    def testPanicDeviceDefault(self):
+        guest, outfile = self._get_test_content("change-panic-device-default")
+
+        dev1 = guest.get_devices("panic")[0]
+
+        check = self._make_checker(dev1)
+        check("type", None, "isa")
+        check("iobase", None, "0x506")
+        self._alter_compare(guest.get_xml_config(), outfile)
+
     def testAddRemoveDevices(self):
         guest, outfile = self._get_test_content("add-devices")
 
diff --git a/virtManager/details.py b/virtManager/details.py
index 51573f6..d8481dd 100644
--- a/virtManager/details.py
+++ b/virtManager/details.py
@@ -3110,6 +3110,9 @@ class vmmDetails(vmmGObjectUI):
             widgetname = "panic-" + param.replace("_", "-")
             if not val:
                 val = getattr(dev, param)
+                if not val:
+                    propername = param.upper() + "_DEFAULT"
+                    val = (eval("virtinst.VirtualPanicDevice." + propername)).upper()
 
             uihelpers.set_grid_row_visible(self.widget(widgetname), True)
             self.widget(widgetname).set_text(val or "-")
diff --git a/virtinst/devicepanic.py b/virtinst/devicepanic.py
index 5f7cbd8..a41af94 100644
--- a/virtinst/devicepanic.py
+++ b/virtinst/devicepanic.py
@@ -26,6 +26,7 @@ class VirtualPanicDevice(VirtualDevice):
 
     virtual_device_type = VirtualDevice.VIRTUAL_DEV_PANIC
     ADDRESS_TYPE_ISA = "isa"
+    TYPE_DEFAULT = ADDRESS_TYPE_ISA
     TYPES = [ADDRESS_TYPE_ISA]
     IOBASE_DEFAULT = "0x505"
 
-- 
1.8.2.1




More information about the virt-tools-list mailing list