[virt-tools-list] [PATCH virt-manager] panic notifier: display default value if not set
Cole Robinson
crobinso at redhat.com
Mon Jan 13 23:59:13 UTC 2014
On 01/13/2014 03:32 AM, Chen Hanxiao wrote:
> 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")
>
This test case is kinda redundant. In the existing panic test case, you can
just do:
check("iobase", "0x505", None, "0x506")
to verify we are correctly reading and setting None.
> 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()
>
I don't like eval() here. You can do
getattr(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"
>
>
Otherwise looks fine.
Thanks,
Cole
More information about the virt-tools-list
mailing list