On 04/08/2013 09:01 PM, liyang wrote:
> On 2013-4-8 23:17, Lucas Meneghel Rodrigues wrote:
>> On 08/04/13 06:48 AM, liyang wrote:
>>> Signed-off-by: Li Yang <[email protected]>
>>> ---
>>> libvirt/tests/cfg/virsh_cpu_compare.cfg | 21 ++++++++++++++-------
>>> libvirt/tests/virsh_cpu_compare.py | 18 ++++++++++++++----
>>> 2 files changed, 28 insertions(+), 11 deletions(-)
>>>
>>> diff --git a/libvirt/tests/virsh_cpu_compare.py
>>> b/libvirt/tests/virsh_cpu_compare.py
>>> index d64448b..d7aec70 100644
>>> --- a/libvirt/tests/virsh_cpu_compare.py
>>> +++ b/libvirt/tests/virsh_cpu_compare.py
>>> @@ -11,18 +11,22 @@ def run_virsh_cpu_compare(test, params, env):
>>> Compare host CPU with a CPU described by an XML file.
>>> 1.Get all parameters from configuration.
>>> 2.Prepare temp file saves of CPU infomation.
>>> - 3.Perform virsh net-compare operation.
>>> + 3.Perform virsh cpu-compare operation.
>>> 4.Confirm the result.
>>> """
>>> - def get_cpu_xml(mode, tmp_file):
>>> + def get_cpu_xml(target, mode, tmp_file):
>>> """
>>> Get CPU infomation and put it into a file.
>>>
>>> + @param: target: Test target, host or guest's cpu description.
>>> @param: mode: Test mode, decides file's detail.
>>> @param: tmp_file: File saves CPU infomation.
>>> """
>>> cpu_xml_file = open(tmp_file, 'wb')
>>> - domxml = virsh.capabilities()
>>> + if target == "host":
>>> + domxml = virsh.capabilities()
>>> + else:
>>> + domxml = virsh.dumpxml(vm_name)
>>
>> Turns out dumpxml for the domain has no element 'cpu'
>>
>> <domain type='kvm'>
>> <name>virt-tests-vm1</name>
>> <uuid>ae2a34e2-64f8-62c6-db92-449617c08361</uuid>
>> <memory unit='KiB'>1048576</memory>
>> <currentMemory unit='KiB'>1048576</currentMemory>
>> <vcpu placement='static'>2</vcpu>
>> <os>
>> <type arch='x86_64' 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/bin/qemu-kvm</emulator>
>> <disk type='file' device='disk'>
>> <driver name='qemu' type='qcow2'/>
>> <source
>> file='/home/lmr/Code/virt-test.git/shared/data/images/jeos-17-64.qcow2'/>
>> <target dev='vda' bus='virtio'/>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
>> </disk>
>> <controller type='usb' index='0'>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
>> </controller>
>> <interface type='bridge'>
>> <mac address='52:54:00:bf:c0:c1'/>
>> <source bridge='virbr0'/>
>> <model type='virtio'/>
>> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
>> </interface>
>> <serial type='file'>
>> <source path='/tmp/serial-20130408-121506-YySBxhLT'/>
>> <target port='0'/>
>> </serial>
>> <serial type='pty'>
>> <target port='1'/>
>> </serial>
>> <console type='file'>
>> <source path='/tmp/serial-20130408-121506-YySBxhLT'/>
>> <target type='serial' port='0'/>
>> </console>
>> <input type='mouse' bus='ps2'/>
>> <graphics type='vnc' port='-1' autoport='yes'/>
>> <video>
>> <model type='cirrus' 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>
>> </devices>
>> </domain>
>>
>> Therefore, all tests will fail. I am simply fixing the typo that went
>> unnoticed and NACKing all the rest of this patch.
> There's a problem in the test.:-( Before starting test, please confirm that
> the tested guest's xml definition contains information about cpu.(virsh
> dumpxml domain).
> If not, you must modify Processor's configuration in virt-manager
> manually(Select a model or
> use "Copy host CPU configuration" button) .After that,the guest's xml
> definition will contain
> the cpu information.
> Does any body have the way can make the action above be automated?
You can specify <cpu mode='host-model'/> in the XML and libvirt will do that
step for you automatically. Needs at least libvirt 0.9.10
- Cole
>>
>>> dom = parseString(domxml)
>>> cpu_node = dom.getElementsByTagName('cpu')[0]
>>> if mode == "modify":
>>> @@ -45,13 +49,19 @@ def run_virsh_cpu_compare(test, params, env):
>>> # Get all parameters.
>>> ref = params["cpu_compare_ref"]
>>> mode = params.get("cpu_compare_mode", "")
>>> + target = params.get("cpu_compare_target", "host")
>>> status_error = params.get("status_error", "no")
>>> extra = params.get("cpu_compare_extra", "")
>>> file_name = params.get("cpu_compare_file_name", "cpu.xml")
>>> tmp_file = os.path.join(test.tmpdir, file_name)
>>> + if target == "guest":
>>> + vm_name = params.get("main_vm")
>>> + vm = env.get_vm(vm_name)
>>> + if vm.is_alive():
>>> + vm.destroy()
>>>
>>> # Prepare temp file.
>>> - get_cpu_xml(mode, tmp_file)
>>> + get_cpu_xml(target, mode, tmp_file)
>>>
>>> if ref == "file":
>>> ref = tmp_file
>>> --
>>> 1.7.1
>>>
>>
>>
>>
>
>
_______________________________________________
Virt-test-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/virt-test-devel