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@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',)
 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>
     <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
@@ -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
+       
+    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 .
 else
-       echo "- copy kickstart to custom work directory"
-       cp $kscfg $custom_iso_dir
+    echo "- copy kickstart to custom work directory"
+    cp $kscfg $custom_iso_dir

-       echo "- edit isolinux.cfg and add kickstart entry"
-       WORKING_ISO="${custom_iso_dir}/isolinux/isolinux.cfg"
+    echo "- edit isolinux.cfg and add kickstart entry"
+    WORKING_ISO="${custom_iso_dir}/isolinux/isolinux.cfg"

-       echo "label custom_ks
-         kernel vmlinuz $kernel_args
-         append initrd=initrd.img ks=cdrom:/$kscfg ramdisk_size=20000">>  $WORKING_ISO
+    echo "label custom_ks
+      kernel vmlinuz $kernel_args
+      append initrd=initrd.img ks=cdrom:/$kscfg ramdisk_size=20000">>  $WORKING_ISO

-       # change default boot target and timeout
-       DEFAULT_LINE=`cat $WORKING_ISO | grep default | head -1`
-       TIMEOUT_LINE=`cat $WORKING_ISO | grep timeout | head -1`
+    # change default boot target and timeout
+    DEFAULT_LINE=`cat $WORKING_ISO | grep default | head -1`
+    TIMEOUT_LINE=`cat $WORKING_ISO | grep timeout | head -1`

-       cat $WORKING_ISO | sed "s/${DEFAULT_LINE}/default custom_ks/" | sed "s/${TIMEOUT_LINE}/timeout 5/">  isocfgtmp
+    cat $WORKING_ISO | sed "s/${DEFAULT_LINE}/default custom_ks/" | sed "s/${TIMEOUT_LINE}/timeout 5/">  isocfgtmp

-       mv -f isocfgtmp $WORKING_ISO
+    mv -f isocfgtmp $WORKING_ISO

-       # cd to custom_iso_dir, otherwise mkisofs seems to bomb...
-       cd $custom_iso_dir
-       mkisofs -R -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -o $cwd/$custom_iso .
+    # cd to custom_iso_dir, otherwise mkisofs seems to bomb...
+    cd $custom_iso_dir
+    mkisofs -R -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -o $cwd/$custom_iso .
 fi
 EXITVAL=$?
 if [ $EXITVAL -ne '0' ] ; then
-- 1.7.4.1