Choose 'ise' or 'pseries' model for panic device 'default' model value. Fixed tests and add two new outputs for xml-2-xml tests. Set value --- src/qemu/qemu_command.c | 14 ++-------- src/qemu/qemu_domain.c | 9 +++++++ .../qemuxml2argvdata/qemuxml2argv-panic-double.xml | 2 +- .../qemuxml2argv-panic-no-address.xml | 2 +- .../qemuxml2argvdata/qemuxml2argv-pseries-disk.xml | 2 +- .../qemuxml2argv-pseries-nvram.xml | 2 +- tests/qemuxml2xmloutdata/qemuxml2xmlout-panic.xml | 31 ++++++++++++++++++++++ .../qemuxml2xmlout-pseries-panic-missing.xml | 2 +- .../qemuxml2xmlout-pseries-panic-no-address.xml | 30 +++++++++++++++++++++ tests/qemuxml2xmltest.c | 4 +-- 10 files changed, 79 insertions(+), 19 deletions(-) create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-panic.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-panic-no-address.xml diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 965b68e..2a44c25 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -11162,17 +11162,7 @@ qemuBuildCommandLine(virConnectPtr conn, } for (i = 0; i < def->npanics; i++) { - virDomainPanicModel model = def->panics[i]->model; - - if (model == VIR_DOMAIN_PANIC_MODEL_DEFAULT) { - if (ARCH_IS_PPC64(def->os.arch) && - STRPREFIX(def->os.machine, "pseries")) - model = VIR_DOMAIN_PANIC_MODEL_PSERIES; - else - model = VIR_DOMAIN_PANIC_MODEL_ISA; - } - - switch (model) { + switch ((virDomainPanicModel) def->panics[i]->model) { case VIR_DOMAIN_PANIC_MODEL_HYPERV: /* Panic with model 'hyperv' is not a device, it should * be configured in cpu commandline. The address @@ -11230,7 +11220,7 @@ qemuBuildCommandLine(virConnectPtr conn, goto error; } - /* default model value was changed before switch */ + /* default model value was changed is PostParse */ case VIR_DOMAIN_PANIC_MODEL_DEFAULT: case VIR_DOMAIN_PANIC_MODEL_LAST: break; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 19ae5f7..27f9146 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1366,6 +1366,15 @@ qemuDomainDeviceDefPostParse(virDomainDeviceDefPtr dev, goto cleanup; } + if (dev->type == VIR_DOMAIN_DEVICE_PANIC && + dev->data.panic->model == VIR_DOMAIN_PANIC_MODEL_DEFAULT) { + if (ARCH_IS_PPC64(def->os.arch) && + STRPREFIX(def->os.machine, "pseries")) + dev->data.panic->model = VIR_DOMAIN_PANIC_MODEL_PSERIES; + else + dev->data.panic->model = VIR_DOMAIN_PANIC_MODEL_ISA; + } + ret = 0; cleanup: diff --git a/tests/qemuxml2argvdata/qemuxml2argv-panic-double.xml b/tests/qemuxml2argvdata/qemuxml2argv-panic-double.xml index 63009d9..aadb758 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-panic-double.xml +++ b/tests/qemuxml2argvdata/qemuxml2argv-panic-double.xml @@ -21,7 +21,7 @@ <controller type='pci' index='0' model='pci-root'/> <memballoon model='none'/> <panic model='hyperv'/> - <panic> + <panic model='isa'> <address type='isa' iobase='0x505'/> </panic> </devices> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-panic-no-address.xml b/tests/qemuxml2argvdata/qemuxml2argv-panic-no-address.xml index 79f8a1e..f3f3fbb 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-panic-no-address.xml +++ b/tests/qemuxml2argvdata/qemuxml2argv-panic-no-address.xml @@ -24,6 +24,6 @@ <controller type='ide' index='0'/> <controller type='pci' index='0' model='pci-root'/> <memballoon model='virtio'/> - <panic/> + <panic model='isa'/> </devices> </domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-disk.xml b/tests/qemuxml2argvdata/qemuxml2argv-pseries-disk.xml index 3a96209..39f4a1f 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-disk.xml +++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-disk.xml @@ -37,6 +37,6 @@ <model type='cirrus' vram='16384' heads='1'/> </video> <memballoon model='none'/> - <panic/> + <panic model='pseries'/> </devices> </domain> diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pseries-nvram.xml b/tests/qemuxml2argvdata/qemuxml2argv-pseries-nvram.xml index 619186a..2da2832 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-pseries-nvram.xml +++ b/tests/qemuxml2argvdata/qemuxml2argv-pseries-nvram.xml @@ -20,6 +20,6 @@ <nvram> <address type='spapr-vio' reg='0x4000'/> </nvram> - <panic/> + <panic model='pseries'/> </devices> </domain> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-panic.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-panic.xml new file mode 100644 index 0000000..b9595a8 --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-panic.xml @@ -0,0 +1,31 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219136</memory> + <currentMemory unit='KiB'>219136</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='i686' machine='pc'>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> + <emulator>/usr/bin/qemu</emulator> + <disk type='block' device='disk'> + <source dev='/dev/HostVG/QEMUGuest1'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'/> + <controller type='fdc' index='0'/> + <controller type='ide' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <memballoon model='virtio'/> + <panic model='isa'> + <address type='isa' iobase='0x505'/> + </panic> + </devices> +</domain> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-panic-missing.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-panic-missing.xml index 9312975..8fcd644 100644 --- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-panic-missing.xml +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-panic-missing.xml @@ -25,6 +25,6 @@ <address type='spapr-vio'/> </console> <memballoon model='none'/> - <panic/> + <panic model='pseries'/> </devices> </domain> diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-panic-no-address.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-panic-no-address.xml new file mode 100644 index 0000000..8fcd644 --- /dev/null +++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-panic-no-address.xml @@ -0,0 +1,30 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>1ccfd97d-5eb4-478a-bbe6-88d254c16db7</uuid> + <memory unit='KiB'>524288</memory> + <currentMemory unit='KiB'>524288</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='ppc64' machine='pseries'>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> + <emulator>/usr/bin/qemu-system-ppc64</emulator> + <controller type='usb' index='0'/> + <controller type='pci' index='0' model='pci-root'/> + <serial type='pty'> + <target port='0'/> + <address type='spapr-vio'/> + </serial> + <console type='pty'> + <target type='serial' port='0'/> + <address type='spapr-vio'/> + </console> + <memballoon model='none'/> + <panic model='pseries'/> + </devices> +</domain> diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index ea75aff..fd58331 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -535,7 +535,7 @@ mymain(void) DO_TEST("pseries-nvram"); DO_TEST_DIFFERENT("pseries-panic-missing"); - DO_TEST("pseries-panic-no-address"); + DO_TEST_DIFFERENT("pseries-panic-no-address"); /* These tests generate different XML */ DO_TEST_DIFFERENT("balloon-device-auto"); @@ -591,7 +591,7 @@ mymain(void) DO_TEST("pcihole64-none"); DO_TEST("pcihole64-q35"); - DO_TEST("panic"); + DO_TEST_DIFFERENT("panic"); DO_TEST("panic-isa"); DO_TEST("panic-pseries"); DO_TEST("panic-double"); -- 1.8.3.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list