[libvirt] [test-API][PATCH] Add 2 methods to generate cdrom & floppy XML for test

Guannan Ren gren at redhat.com
Mon Sep 5 02:52:25 UTC 2011


On 09/02/2011 07:15 PM, Nan Zhang wrote:
> add the following 2 functions to utils/Python/xmlbuilder.py
> * build_cdrom()
> * build_floppy()
> ---
>   utils/Python/xmlbuilder.py   |   47 +++++++++++++++++++++++++++++++++++++++++-
>   utils/Python/xmlgenerator.py |   15 +++++++------
>   2 files changed, 54 insertions(+), 8 deletions(-)
>
> diff --git a/utils/Python/xmlbuilder.py b/utils/Python/xmlbuilder.py
> index 78230da..5a0f8c8 100644
> --- a/utils/Python/xmlbuilder.py
> +++ b/utils/Python/xmlbuilder.py
> @@ -112,6 +112,33 @@ class XmlBuilder:
>               self.write_toxml(disk)
>           return disk.toxml()
>
> +    def build_cdrom(self, params):
> +        if params.get('hdmodel', None) == None:
> +            params['hdmodel'] = 'ide'
> +
> +        if params['hdmodel'] == 'ide':
> +            target_dev = 'hdc'
> +        elif params['hdmodel'] == 'scsi':
> +            target_dev = 'sdc'
> +        else:
> +            print 'Wrong cdrom model.'
> +
> +        cdrom = xmlgenerator.disk_xml(params, True)
> +        if params['guesttype'] == 'xenpv':
> +            cdrom.getElementsByTagName("target")[0].setAttribute("dev", "xvdc")
> +        else:
> +            cdrom.getElementsByTagName("target")[0].setAttribute("dev",
> +                                                                target_dev)
> +        if __DEBUG__:
> +            self.write_toxml(cdrom)
> +        return cdrom.toxml()
> +
> +    def build_floppy(self, params):
> +        floppy = xmlgenerator.floppy_xml(params)
> +        if __DEBUG__:
> +            self.write_toxml(floppy)
> +        return floppy.toxml()
> +
>       def build_interface(self, params):
>           interface = xmlgenerator.interface_xml(params)
>           if __DEBUG__:
> @@ -177,11 +204,29 @@ if __name__ == "__main__":
>       print '=' * 30, 'disk xml', '=' * 30
>       params['guesttype'] = 'kvm'
>       params['guestname'] = 'foo'
> -    params['imagepath'] = '/images'
>       params['hdmodel'] = 'virtio'
>
>       diskxml = xmlobj.build_disk(params)
>
> +    #---------------------
> +    # get cdrom xml string
> +    #---------------------
> +    print '=' * 30, 'cdrom xml', '=' * 30
> +    params['guesttype'] = 'kvm'
> +    params['guestname'] = 'foo'
> +    params['hdmodel'] = 'ide'
> +    params['bootcd'] = '/tmp/cdrom.img'
> +
> +    cdromxml = xmlobj.build_cdrom(params)
> +
> +    #---------------------
> +    # get floppy xml string
> +    #---------------------
> +    print '=' * 30, 'floppy xml', '=' * 30
> +    params['floppysource'] = '/tmp/floppy.img'
> +
> +    floppyxml = xmlobj.build_floppy(params)
> +
>       #--------------------------
>       # get interface xml string
>       #--------------------------
> diff --git a/utils/Python/xmlgenerator.py b/utils/Python/xmlgenerator.py
> index c59ca9e..d57dd33 100644
> --- a/utils/Python/xmlgenerator.py
> +++ b/utils/Python/xmlgenerator.py
> @@ -308,7 +308,7 @@ def disk_xml(params, cdrom = False):
>                                         params['guestname']
>           elif hypertype == 'xen':
>               params['imagepath'] = '/var/lib/xen/images'
> -            params['fullimagepath'] = '/var/lib/xen/images' + '/' + \
> +            params['fullimagepath'] = params['imagepath'] + '/' + \
>                                         params['guestname']
>           else:
>               print 'DO NOT supported hypervisor.'
> @@ -367,14 +367,15 @@ def disk_xml(params, cdrom = False):
>   def floppy_xml(params):
>       # Disk element
>       floppy = xml.dom.minidom.Document()
> -    disk_element = floppy.createElement('disk')
> -    disk_element.setAttribute('device', 'floppy')
> -    floppy.appendChild(disk_element)
> +    floppy_element = floppy.createElement('disk')
> +    floppy_element.setAttribute('type', 'file')
> +    floppy_element.setAttribute('device', 'floppy')
> +    floppy.appendChild(floppy_element)
>
>       # Source element
>       source_element = floppy.createElement('source')
>       source_element.setAttribute('file', params['floppysource'])
> -    disk_element.appendChild(source_element)
> +    floppy_element.appendChild(source_element)
>
>       # Target element
>       target_element = floppy.createElement('target')
> @@ -384,11 +385,11 @@ def floppy_xml(params):
>           target_element.setAttribute('dev', 'fda')
>
>       target_element.setAttribute('bus', 'fdc')
> -    disk_element.appendChild(target_element)
> +    floppy_element.appendChild(target_element)
>
>       # Readonly
>       readonly = floppy.createElement('readonly')
> -    disk_element.appendChild(readonly)
> +    floppy_element.appendChild(readonly)
>
>       return floppy
>
      ACK and pushed

      Guannan Ren




More information about the libvir-list mailing list