[libvirt] [PATCH] [libvirt-test-API] Add "machine" option to supprot choose machine type in more architectures

Osier Yang jyang at redhat.com
Tue May 8 10:31:16 UTC 2012


On 2012年05月08日 15:45, Lin Qing wrote:
> 1.With machine option,user can specify macine type to emulate.
>    For example : define in xml file , machine='pc' or machine='pseries'.
> 2.Fix some indent issue in ksiso.sh.
>
> Signed-off-by: Qing Lin<qinglbj at linux.vnet.ibm.com>
> ---
>   cases/consumption_cpu_topology.conf                |    2 +
>   cases/consumption_domain_nfs_start.conf            |    2 +
>   cases/consumption_eventhandler.conf                |    2 +
>   cases/consumption_libvirtd.conf                    |    2 +
>   cases/consumption_ownership_test.conf              |    2 +
>   cases/domain_linux_net_inst.conf                   |    2 +
>   cases/linux_domain.conf                            |    6 ++
>   cases/snapshot.conf                                |    2 +
>   cases/windows_domain.conf                          |    4 ++
>   global.cfg                                         |    2 +
>   repos/domain/create.py                             |    2 +-
>   repos/domain/define.py                             |    2 +-
>   repos/domain/install_linux_cdrom.py                |    2 +-
>   repos/domain/install_linux_net.py                  |    2 +-
>   repos/domain/install_windows_cdrom.py              |    2 +-
>   repos/domain/xmls/kvm_guest_define.xml             |    2 +-
>   .../domain/xmls/kvm_linux_guest_install_cdrom.xml  |    2 +-
>   repos/domain/xmls/kvm_linux_guest_install_net.xml  |    2 +-
>   .../xmls/kvm_windows_guest_install_cdrom.xml       |    2 +-
>   .../multiple_thread_block_on_domain_create.py      |    2 +-
>   repos/regression/xmls/domain.xml                   |    2 +-
>   utils/ksiso.sh                                     |   51 ++++++++++---------
>   22 files changed, 64 insertions(+), 35 deletions(-)
>
> diff --git a/cases/consumption_cpu_topology.conf b/cases/consumption_cpu_topology.conf
> index c02ef2a..3849808 100644
> --- a/cases/consumption_cpu_topology.conf
> +++ b/cases/consumption_cpu_topology.conf
> @@ -5,6 +5,8 @@ domain:install_linux_cdrom
>           $defaultos
>       guestarch
>           $defaultarch
> +    guestmachine
> +        $defaultmachine
>       vcpu
>           $defaultvcpu
>       memory
> diff --git a/cases/consumption_domain_nfs_start.conf b/cases/consumption_domain_nfs_start.conf
> index 13b2449..3d70764 100644
> --- a/cases/consumption_domain_nfs_start.conf
> +++ b/cases/consumption_domain_nfs_start.conf
> @@ -5,6 +5,8 @@ domain:install_linux_cdrom
>           $defaultos
>       guestarch
>           $defaultarch
> +    guestmachine
> +        $defaultmachine
>       vcpu
>           $defaultvcpu
>       memory
> diff --git a/cases/consumption_eventhandler.conf b/cases/consumption_eventhandler.conf
> index 07bee07..6843dc9 100644
> --- a/cases/consumption_eventhandler.conf
> +++ b/cases/consumption_eventhandler.conf
> @@ -5,6 +5,8 @@ domain:install_linux_cdrom
>           $defaultos
>       guestarch
>           $defaultarch
> +    guestmachine
> +        $defaultmachine
>       vcpu
>           $defaultvcpu
>       memory
> diff --git a/cases/consumption_libvirtd.conf b/cases/consumption_libvirtd.conf
> index b0dfff9..6012e99 100644
> --- a/cases/consumption_libvirtd.conf
> +++ b/cases/consumption_libvirtd.conf
> @@ -5,6 +5,8 @@ domain:install_linux_cdrom
>           $defaultos
>       guestarch
>           $defaultarch
> +    guestmachine
> +        $defaultmachine
>       vcpu
>           $defaultvcpu
>       memory
> diff --git a/cases/consumption_ownership_test.conf b/cases/consumption_ownership_test.conf
> index a906b39..ead4002 100644
> --- a/cases/consumption_ownership_test.conf
> +++ b/cases/consumption_ownership_test.conf
> @@ -5,6 +5,8 @@ domain:install_linux_cdrom
>           $defaultos
>       guestarch
>           $defaultarch
> +    guestmachine
> +        $defaultmachine
>       vcpu
>           $defaultvcpu
>       memory
> diff --git a/cases/domain_linux_net_inst.conf b/cases/domain_linux_net_inst.conf
> index 7c97818..e2fb55c 100644
> --- a/cases/domain_linux_net_inst.conf
> +++ b/cases/domain_linux_net_inst.conf
> @@ -5,6 +5,8 @@ domain:install_linux_net
>           $defaultos
>       guestarch
>           $defaultarch
> +    guestmachine
> +        $defaultmachine
>       netmethod
>   	http
>       vcpu
> diff --git a/cases/linux_domain.conf b/cases/linux_domain.conf
> index e7d6bac..5296212 100644
> --- a/cases/linux_domain.conf
> +++ b/cases/linux_domain.conf
> @@ -5,6 +5,8 @@ domain:install_linux_cdrom
>           $defaultos
>       guestarch
>           $defaultarch
> +    guestmachine
> +        $defaultmachine
>       vcpu
>           $defaultvcpu
>       memory
> @@ -45,6 +47,10 @@ domain:undefine
>   domain:define
>       guestname
>           $defaultname
> +    guestarch
> +        $defaultarch
> +    guestmachine
> +        $defaultmachine
>       diskpath
>           /var/lib/libvirt/images/libvirt-test-api
>       vcpu
> diff --git a/cases/snapshot.conf b/cases/snapshot.conf
> index 4aac68b..d957310 100644
> --- a/cases/snapshot.conf
> +++ b/cases/snapshot.conf
> @@ -5,6 +5,8 @@ domain:install_linux_cdrom
>           $defaultos
>       guestarch
>           $defaultarch
> +    guestmachine
> +        $defaultmachine
>       vcpu
>           $defaultvcpu
>       memory
> diff --git a/cases/windows_domain.conf b/cases/windows_domain.conf
> index 68396a0..e89cdd6 100644
> --- a/cases/windows_domain.conf
> +++ b/cases/windows_domain.conf
> @@ -33,6 +33,10 @@ domain:undefine
>   domain:define
>       guestname
>           $defaultname
> +    guestarch
> +        $defaultarch
> +    guestmachine
> +        $defaultmachine
>       virt_type
>           $defaulthv
>
> diff --git a/global.cfg b/global.cfg
> index 9e28614..d4d78b9 100644
> --- a/global.cfg
> +++ b/global.cfg
> @@ -130,6 +130,8 @@ defaultname = libvirt_test_api
>   defaultos = rhel6u2
>   # default architecture to use for installing a new guest
>   defaultarch = x86_64
> +# default machine type to use for installing a new guest
> +defaultmachine = pc
>   # default the number of vcpu to use for defining or installing a guest
>   defaultvcpu = 1
>   # default the memory size(kilobytes) to use for defining or installing a guest
> diff --git a/repos/domain/create.py b/repos/domain/create.py
> index cfe0efd..b181066 100644
> --- a/repos/domain/create.py
> +++ b/repos/domain/create.py
> @@ -15,7 +15,7 @@ from utils import utils
>   NONE = 0
>   START_PAUSED = 1
>
> -required_params = ('guestname', 'diskpath',)
> +required_params = ('guestname', 'guestarch', 'guestmachine', 'diskpath',)

It should be in the optional_params.

>   optional_params = {'memory': 1048576,
>                      'vcpu': 1,
>                      'hddriver' : 'virtio',
> diff --git a/repos/domain/define.py b/repos/domain/define.py
> index 42dea86..8018d80 100644
> --- a/repos/domain/define.py
> +++ b/repos/domain/define.py
> @@ -13,7 +13,7 @@ from libvirt import libvirtError
>   from src import sharedmod
>   from utils import utils
>
> -required_params = ('guestname', 'diskpath',)
> +required_params = ('guestname', 'guestarch', 'guestmachine', 'diskpath',)
>   optional_params = {'memory': 1048576,
>                      'vcpu': 1,
>                      'hddriver' : 'virtio',
> diff --git a/repos/domain/install_linux_cdrom.py b/repos/domain/install_linux_cdrom.py
> index 9bbd6da..9c02eb2 100644
> --- a/repos/domain/install_linux_cdrom.py
> +++ b/repos/domain/install_linux_cdrom.py
> @@ -16,7 +16,7 @@ from src import sharedmod
>   from src import env_parser
>   from utils import utils
>
> -required_params = ('guestname', 'guestos', 'guestarch',)
> +required_params = ('guestname', 'guestos', 'guestarch', 'guestmachine',)
>   optional_params = {
>                      'memory': 1048576,
>                      'vcpu': 1,
> diff --git a/repos/domain/install_linux_net.py b/repos/domain/install_linux_net.py
> index d976ce1..33fc60c 100644
> --- a/repos/domain/install_linux_net.py
> +++ b/repos/domain/install_linux_net.py
> @@ -16,7 +16,7 @@ from src import sharedmod
>   from src import env_parser
>   from utils import utils
>
> -required_params = ('guestname', 'guestos', 'guestarch',)
> +required_params = ('guestname', 'guestos', 'guestarch', 'guestmachine',)
>   optional_params = {'memory': 1048576,
>                      'vcpu': 1,
>                      'disksize' : 10,
> diff --git a/repos/domain/install_windows_cdrom.py b/repos/domain/install_windows_cdrom.py
> index 3104bcd..ba0a503 100644
> --- a/repos/domain/install_windows_cdrom.py
> +++ b/repos/domain/install_windows_cdrom.py
> @@ -24,7 +24,7 @@ VM_UNDEFINE = "virsh undefine %s"
>   FLOOPY_IMG = "/tmp/floppy.img"
>   HOME_PATH = os.getcwd()
>
> -required_params = ('guestname', 'guestos', 'guestarch',)
> +required_params = ('guestname', 'guestos', 'guestarch', 'guestmachine',)
>   optional_params = {'memory': 1048576,
>                      'vcpu': 1,
>                      'disksize' : 20,
> diff --git a/repos/domain/xmls/kvm_guest_define.xml b/repos/domain/xmls/kvm_guest_define.xml
> index 385ec66..ae533c2 100644
> --- a/repos/domain/xmls/kvm_guest_define.xml
> +++ b/repos/domain/xmls/kvm_guest_define.xml
> @@ -5,7 +5,7 @@
>     <currentMemory unit='KiB'>MEMORY</currentMemory>
>     <vcpu>VCPU</vcpu>
>     <os>
> -<type arch='x86_64' machine='pc-0.14'>hvm</type>
> +<type arch="GUESTARCH" machine="GUESTMACHINE">hvm</type>
>       <boot dev='hd'/>
>     </os>
>     <features>
> diff --git a/repos/domain/xmls/kvm_linux_guest_install_cdrom.xml b/repos/domain/xmls/kvm_linux_guest_install_cdrom.xml
> index 84aed75..cb59e76 100644
> --- a/repos/domain/xmls/kvm_linux_guest_install_cdrom.xml
> +++ b/repos/domain/xmls/kvm_linux_guest_install_cdrom.xml
> @@ -4,7 +4,7 @@
>     <memory>MEMORY</memory>
>     <vcpu>VCPU</vcpu>
>     <os>
> -<type>hvm</type>
> +<type machine="GUESTMACHINE">hvm</type>

Ah, this should be fixed. Just uppercase is not enough to district
it from the valid XML value. e.g.

<name>IAMUPPERCASE</name>

But it can be a follow up patch.

>       <boot dev="cdrom"/>
>     </os>
>     <features>
> diff --git a/repos/domain/xmls/kvm_linux_guest_install_net.xml b/repos/domain/xmls/kvm_linux_guest_install_net.xml
> index 7d5cb45..c4a7de7 100644
> --- a/repos/domain/xmls/kvm_linux_guest_install_net.xml
> +++ b/repos/domain/xmls/kvm_linux_guest_install_net.xml
> @@ -3,7 +3,7 @@
>     <memory>MEMORY</memory>
>     <vcpu>VCPU</vcpu>
>     <os>
> -<type>hvm</type>
> +<type machine="GUESTMACHINE">hvm</type>
>       <kernel>KERNEL</kernel>
>       <initrd>INITRD</initrd>
>       <cmdline>ks=KS</cmdline>
> diff --git a/repos/domain/xmls/kvm_windows_guest_install_cdrom.xml b/repos/domain/xmls/kvm_windows_guest_install_cdrom.xml
> index 759a386..62bd002 100644
> --- a/repos/domain/xmls/kvm_windows_guest_install_cdrom.xml
> +++ b/repos/domain/xmls/kvm_windows_guest_install_cdrom.xml
> @@ -4,7 +4,7 @@
>     <memory>MEMORY</memory>
>     <vcpu>VCPU</vcpu>
>     <os>
> -<type>hvm</type>
> +<type machine="GUESTMACHINE">hvm</type>
>       <boot dev="cdrom"/>
>     </os>
>     <features>
> diff --git a/repos/regression/multiple_thread_block_on_domain_create.py b/repos/regression/multiple_thread_block_on_domain_create.py
> index 571621f..b19951f 100644
> --- a/repos/regression/multiple_thread_block_on_domain_create.py
> +++ b/repos/regression/multiple_thread_block_on_domain_create.py
> @@ -17,7 +17,7 @@ from src import sharedmod
>   from utils import utils
>   from src import env_parser
>
> -required_params = ('guestos', 'guestarch', 'guestnum', 'uri')
> +required_params = ('guestos', 'guestarch', 'guestmachine', 'guestnum', 'uri')
>   optional_params = {'xml' : 'xmls/domain.xml',
>                     }
>
> diff --git a/repos/regression/xmls/domain.xml b/repos/regression/xmls/domain.xml
> index 407f086..e70492d 100644
> --- a/repos/regression/xmls/domain.xml
> +++ b/repos/regression/xmls/domain.xml
> @@ -3,7 +3,7 @@
>     <memory>1048576</memory>
>     <vcpu>1</vcpu>
>     <os>
> -<type>hvm</type>
> +<type machine="GUESTMACHINE">hvm</type>
>       <kernel>/var/lib/libvirt/boot/vmlinuz</kernel>
>       <initrd>/var/lib/libvirt/boot/initrd.img</initrd>
>       <cmdline>KS</cmdline>
> diff --git a/utils/ksiso.sh b/utils/ksiso.sh
> index a431658..8cb3540 100755
> --- a/utils/ksiso.sh
> +++ b/utils/ksiso.sh

This should be separate patch, as it has no relationship
with introducing 'machine' type. Two different purposes.


> @@ -26,37 +26,40 @@ umount $boot_iso_dir
>   vlmid=`isoinfo -d -i $boot_iso |grep 'Volume id:'`
>   vlmid=${vlmid#"Volume id: "}
>   if [ -n "`echo $vlmid|grep ppc`" ];then
> -       echo "- edit yaboot.conf and add kickstart entry"
> -       WORKING_ISO="${custom_iso_dir}/etc/yaboot.conf"
> -       # change timeout and  add kickstart entry
> -       TIMEOUT_LINE=`cat $WORKING_ISO | grep timeout | head -1`
> -       APPEND_LINE=`cat $WORKING_ISO | grep append | head -1`
> -       cat $WORKING_ISO | sed "s#${TIMEOUT_LINE}#timeout=5#" | sed "s#${APPEND_LINE}#append= \"root=live:CDLABEL=$vlmid ks=cdrom:/$kscfg \"#">   isocfgtmp
> -       mv -f isocfgtmp $WORKING_ISO
> -       cd $custom_iso_dir
> -       mkisofs -R -V "$vlmid" -sysid PPC -chrp-boot -U -prep-boot ppc/chrp/yaboot -hfs-bless ppc/mac -no-desktop -allow-multidot -volset 4 -volset-size 1 -volset-seqno 1 -hfs-volid 4 -o $cwd/$custom_iso .
> +    echo "- copy kickstart to custom work directory"
> +    cp $kscfg $custom_iso_dir

And NACK for this, we use '4' spaces for the indention in Shell
codes. If '2' spaces are used somewhere, it should be fixed to
'4' spaces instead, but not from '4' spaces to '2' spaces.

Regards,
Osier




More information about the libvir-list mailing list