[Libvirt-cim] [PATCH 1/2] cimtest: Adding support for ConsoleRASD

John Ferlan jferlan at redhat.com
Wed Nov 13 15:56:26 UTC 2013


On 10/11/2013 07:09 AM, Viktor Mihajlovski wrote:
> The test domains are now defined with a ConsoleRASD if the
> tested libvirt-cim does support those. A few testcases had
> to be adjusted to properly handle the newly encountered instances
> and associations.
> 
> Signed-off-by: Viktor Mihajlovski <mihajlov at linux.vnet.ibm.com>
> ---
>  .../cimtest/ElementSettingData/01_forward.py       |    5 ++-
>  .../cimtest/HostSystem/02_hostsystem_to_rasd.py    |    2 ++
>  .../ResourceAllocationFromPool/01_forward.py       |    3 ++
>  .../ResourceAllocationFromPool/02_reverse.py       |    3 ++
>  .../libvirt-cim/cimtest/SystemDevice/01_forward.py |    5 +++
>  suites/libvirt-cim/cimtest/VSSD/04_vssd_to_rasd.py |   11 ++++--
>  .../02_reverse.py                                  |    9 +++--
>  suites/libvirt-cim/lib/XenKvmLib/devices.py        |    6 ++++
>  suites/libvirt-cim/lib/XenKvmLib/rasd.py           |   21 ++++++++++-
>  suites/libvirt-cim/lib/XenKvmLib/vsms.py           |   35 ++++++++++++++++++
>  suites/libvirt-cim/lib/XenKvmLib/vxml.py           |   38 ++++++++++++++------
>  11 files changed, 122 insertions(+), 16 deletions(-)
> 
> diff --git a/suites/libvirt-cim/cimtest/ElementSettingData/01_forward.py b/suites/libvirt-cim/cimtest/ElementSettingData/01_forward.py
> index 8c2a556..8b57b8f 100755
> --- a/suites/libvirt-cim/cimtest/ElementSettingData/01_forward.py
> +++ b/suites/libvirt-cim/cimtest/ElementSettingData/01_forward.py
> @@ -59,6 +59,7 @@ from XenKvmLib.const import do_main, get_provider_version
>  
>  sup_types = ['Xen', 'XenFV', 'KVM', 'LXC']
>  input_graphics_pool_rev = 757
> +console_rev = 1276
>  
>  test_dom = "esd_dom"
>  vmac = "00:11:22:33:44:aa"
> @@ -148,7 +149,9 @@ def main():
>          if curr_cim_rev >= input_graphics_pool_rev:
>              keys['InputResourceAllocationSettingData'] = input_device
>              keys['GraphicsResourceAllocationSettingData'] = "%s/vnc" % test_dom
> -               
> +        if curr_cim_rev >= console_rev:
> +            keys['ConsoleResourceAllocationSettingData'] = "%s/charconsole:0" % test_dom
> +
>      ret = cxml.cim_define(options.ip)
>      if not ret:
>          logger.error("Failed to define the dom: %s", test_dom)
> diff --git a/suites/libvirt-cim/cimtest/HostSystem/02_hostsystem_to_rasd.py b/suites/libvirt-cim/cimtest/HostSystem/02_hostsystem_to_rasd.py
> index fe0f2cc..78433e7 100644
> --- a/suites/libvirt-cim/cimtest/HostSystem/02_hostsystem_to_rasd.py
> +++ b/suites/libvirt-cim/cimtest/HostSystem/02_hostsystem_to_rasd.py
> @@ -182,6 +182,8 @@ def verify_RASD_values(server, sd_assoc_info, vsxml, virt="Xen"):
>                  status  = verify_memrasd_values(assoc_info[index], rasd)
>              elif 'GraphicsResourceAllocationSettingData' in CCName:
>                  status = verify_displayrasd_values(assoc_info[index], rasd)
> +            elif 'ConsoleResourceAllocationSettingData' in CCName:
> +                status = verify_displayrasd_values(assoc_info[index], rasd)
>              elif 'InputResourceAllocationSettingData' in CCName:
>                  status = verify_inputrasd_values(assoc_info[index], rasd)
>                  if status != PASS and virt == 'LXC':
> diff --git a/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py b/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py
> index a7d9c35..ec47c44 100644
> --- a/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py
> +++ b/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py
> @@ -75,6 +75,9 @@ def init_rasd_list(virt, ip, guest_name):
>          logger.error("Enum RASDs failed")
>          return rasd_insts, status
>  
> +    if rasds.has_key(get_typed_class(virt, 'ConsoleResourceAllocationSettingData')):
> +        del rasds[get_typed_class(virt, 'ConsoleResourceAllocationSettingData')]
> +
>      for rasd_cn, rasd_list in rasds.iteritems():
>          if virt == "LXC" and rasd_cn == disk_rasd_cn:
>              continue
> diff --git a/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/02_reverse.py b/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/02_reverse.py
> index bef114d..430d33f 100644
> --- a/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/02_reverse.py
> +++ b/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/02_reverse.py
> @@ -171,6 +171,9 @@ def main():
>          if status != PASS:
>              raise Exception("Unable to build pool instance list")
>  
> +        if rasds.has_key(get_typed_class(options.virt, 'ConsoleResourceAllocationSettingData')):
> +            del rasds[get_typed_class(options.virt, 'ConsoleResourceAllocationSettingData')]
> +
>          if len(rasds) != len(pools):
>              raise Exception("%d RASD insts != %d pool insts" % (len(rasds),
>                              len(pools)))
> diff --git a/suites/libvirt-cim/cimtest/SystemDevice/01_forward.py b/suites/libvirt-cim/cimtest/SystemDevice/01_forward.py
> index 15a4ff5..f956621 100644
> --- a/suites/libvirt-cim/cimtest/SystemDevice/01_forward.py
> +++ b/suites/libvirt-cim/cimtest/SystemDevice/01_forward.py
> @@ -36,6 +36,7 @@ from CimTest.ReturnCodes import PASS, FAIL
>  
>  sup_types = ['Xen', 'KVM', 'XenFV', 'LXC']
>  input_graphics_pool_rev = 757
> +console_dev_rev = 1276
>  
>  test_dom = "test_domain"
>  test_mac = "00:11:22:33:44:55"
> @@ -120,6 +121,10 @@ def main():
>              graphics_cn = get_typed_class(virt, "DisplayController")
>              exp_pllist[graphics_cn] = ['%s/vnc' % test_dom]
>  
> +        if curr_cim_rev >= console_dev_rev:
> +            console_cn = get_typed_class(virt, "ConsoleDisplayController")
> +            exp_pllist[console_cn] = ['%s/charconsole:0' % test_dom]
> +
>   
>      try:
>          res_pllist = {}
> diff --git a/suites/libvirt-cim/cimtest/VSSD/04_vssd_to_rasd.py b/suites/libvirt-cim/cimtest/VSSD/04_vssd_to_rasd.py
> index 04b0b6e..bdd91a8 100755
> --- a/suites/libvirt-cim/cimtest/VSSD/04_vssd_to_rasd.py
> +++ b/suites/libvirt-cim/cimtest/VSSD/04_vssd_to_rasd.py
> @@ -54,7 +54,7 @@ from XenKvmLib.classes import get_typed_class
>  from XenKvmLib import rasd
>  from XenKvmLib.rasd import verify_procrasd_values, verify_netrasd_values, \
>  verify_diskrasd_values, verify_memrasd_values, verify_displayrasd_values, \
> -rasd_init_list, verify_inputrasd_values
> +rasd_init_list, verify_inputrasd_values, verify_consolerasd_values
>  from XenKvmLib.const import default_network_name 
>  
>  libvirt_bug = "00009"
> @@ -173,6 +173,10 @@ def verify_rasd_values(rasd_values_info, server):
>      memrasd  =  rasd_values_list['%s'  %in_list['mem']]
>      displayrasd = rasd_values_list['%s' %in_list['display']]
>      inputrasd = rasd_values_list['%s' %in_list['point']]
> +    if 'console' in in_list:
> +        consolerasd = rasd_values_list['%s' %in_list['console']]
> +    else:
> +        consolerasd = []
>  
>      try:
>          for rasd_instance in rasd_values_info:
> @@ -186,7 +190,10 @@ def verify_rasd_values(rasd_values_info, server):
>              elif 'MemResourceAllocationSettingData' in CCName :
>                  status  = verify_memrasd_values(rasd_instance, memrasd)
>              elif 'GraphicsResourceAllocationSettingData' in CCName :
> -                status = verify_displayrasd_values(rasd_instance, displayrasd)
> +                if not 'console' in rasd_instance['InstanceID']:
> +                    status = verify_displayrasd_values(rasd_instance, displayrasd)
> +            elif 'ConsoleResourceAllocationSettingData' in CCName :
> +                status = verify_consolerasd_values(rasd_instance, consolerasd)

Hmm...  'console', 'cons_rasd', 'charconsole:0' - it's all so confusing
at least to me!

Perhaps this is where the two consoles using serial is coming from.

>              elif 'InputResourceAllocationSettingData' in CCName:
>                  status = verify_inputrasd_values(rasd_instance, inputrasd)
>                  if status != PASS and virt== 'LXC':
> diff --git a/suites/libvirt-cim/cimtest/VirtualSystemSettingDataComponent/02_reverse.py b/suites/libvirt-cim/cimtest/VirtualSystemSettingDataComponent/02_reverse.py
> index 3a13b2a..24e8440 100644
> --- a/suites/libvirt-cim/cimtest/VirtualSystemSettingDataComponent/02_reverse.py
> +++ b/suites/libvirt-cim/cimtest/VirtualSystemSettingDataComponent/02_reverse.py
> @@ -95,7 +95,8 @@ def assoc_values(ip, assoc_info, virt="Xen"):
>                   "disk_rasd" : '%s/%s' %(test_dom, test_disk),
>                   "mem_rasd"  : '%s/%s' %(test_dom, "mem"),
>                   "input_rasd": '%s/%s' %(test_dom, input_device),
> -                 "grap_rasd" : '%s/%s' %(test_dom, "vnc")
> +                 "grap_rasd" : '%s/%s' %(test_dom, "vnc"),
> +                 "cons_rasd" : '%s/%s' %(test_dom, "charconsole:0")
>  
>                  }
>  
> @@ -110,6 +111,7 @@ def assoc_values(ip, assoc_info, virt="Xen"):
>          mem_cn = get_typed_class(virt, 'MemResourceAllocationSettingData')
>          input_cn = get_typed_class(virt, 'InputResourceAllocationSettingData')
>          grap_cn = get_typed_class(virt, 'GraphicsResourceAllocationSettingData')
> +        cons_cn = get_typed_class(virt, 'ConsoleResourceAllocationSettingData')
>      
>          for inst in assoc_info: 
>              if inst.classname == proc_cn:
> @@ -132,8 +134,11 @@ def assoc_values(ip, assoc_info, virt="Xen"):
>              elif inst.classname == grap_cn:
>                  status = check_rasd_values(inst['InstanceID'],
>                                             rasd_list['grap_rasd'])
> +            elif inst.classname == cons_cn:
> +                status = check_rasd_values(inst['InstanceID'],
> +                                           rasd_list['cons_rasd'])
>              else:
> -                logger.error("Unexpected RASD instance type" )
> +                logger.error("Unexpected RASD instance type %s", inst.classname )
>                  status = FAIL
>  
>              if status == FAIL:
> diff --git a/suites/libvirt-cim/lib/XenKvmLib/devices.py b/suites/libvirt-cim/lib/XenKvmLib/devices.py
> index 0ddccbb..275acad 100755
> --- a/suites/libvirt-cim/lib/XenKvmLib/devices.py
> +++ b/suites/libvirt-cim/lib/XenKvmLib/devices.py
> @@ -33,6 +33,7 @@ from XenKvmLib.enumclass import EnumInstances
>  
>  graphics_dev_rev = 725
>  input_dev_rev = 745
> +console_dev_rev = 1276
>  
>  def get_class(classname):
>      return eval(classname)
> @@ -95,6 +96,8 @@ def dev_cn_to_rasd_cn(dev_cn, virt):
>          return get_typed_class(virt, "DiskResourceAllocationSettingData")
>      elif dev_cn.find('Memory') >= 0:
>          return get_typed_class(virt, "MemResourceAllocationSettingData")
> +    elif dev_cn.find('ConsoleDisplayController') >= 0:
> +        return get_typed_class(virt, "ConsoleResourceAllocationSettingData")
>      elif dev_cn.find('DisplayController') >= 0:
>          return get_typed_class(virt, "GraphicsResourceAllocationSettingData")
>      elif dev_cn.find('PointingDevice') >= 0:
> @@ -112,6 +115,9 @@ def enum_dev(virt, ip):
>      if curr_cim_rev >= input_dev_rev:
>          dev_list.append('PointingDevice')
>  
> +    if curr_cim_rev >= console_dev_rev:
> +        dev_list.append('ConsoleDisplayController')
> +

So this will I think upset some test which says it expects 6 device but
got 7 (I forget which one).

>      dev_insts = {}
>  
>      try:
> diff --git a/suites/libvirt-cim/lib/XenKvmLib/rasd.py b/suites/libvirt-cim/lib/XenKvmLib/rasd.py
> index 4d4240a..3675015 100644
> --- a/suites/libvirt-cim/lib/XenKvmLib/rasd.py
> +++ b/suites/libvirt-cim/lib/XenKvmLib/rasd.py
> @@ -50,9 +50,11 @@ memcn  =  'Memory'
>  netcn  =  'NetworkPort'
>  diskcn =  'LogicalDisk'
>  dccn = 'DisplayController'
> +cccn = 'ConsoleDisplayController'
>  pdcn = 'PointingDevice'
>  
>  libvirt_rasd_storagepool_changes = 934
> +vsms_console_sup = 1276
>  
>  def rasd_init_list(vsxml, virt, t_disk, t_dom, t_mac, t_mem, server):
>      """
> @@ -65,6 +67,7 @@ def rasd_init_list(vsxml, virt, t_disk, t_dom, t_mac, t_mem, server):
>      disk_cn = get_typed_class(virt, diskcn)
>      dc_cn = get_typed_class(virt, dccn)
>      pd_cn = get_typed_class(virt, pdcn)
> +    cc_cn = None
>  
>      in_list = { 'proc'    :      proc_cn,
>                  'mem'     :      mem_cn,
> @@ -75,6 +78,11 @@ def rasd_init_list(vsxml, virt, t_disk, t_dom, t_mac, t_mem, server):
>                 }
>      try:
>  
> +        curr_cim_rev, changeset = get_provider_version(virt, server)
> +        if curr_cim_rev >= vsms_console_sup:
> +            cc_cn = get_typed_class(virt, cccn)
> +            in_list['console'] = cc_cn
> +
>          disk_path = vsxml.xml_get_disk_source()
>          if virt == 'LXC':
>             disk_path = '/var/lib/libvirt/images/lxc_files'
> @@ -116,7 +124,11 @@ def rasd_init_list(vsxml, virt, t_disk, t_dom, t_mac, t_mem, server):
>                          pd_cn   : {
>                                      "InstanceID" : point_device
>                                    }
> -                      } 
> +                      }
> +        if cc_cn != None:
> +            rasd_values[cc_cn] = {
> +                "InstanceID" : "%s/%s" %(t_dom, "charconsole:0")
> +                }

Hmm.. no setting of the ResourceType value (nor anything else).

Furthermore it seems that rather than hardcoded numbers, then
RASD_TYPE_* constants should be used from XenKvmLib.vsms, right?  That
includes the settings in the fields above.  It certainly would make
things more clear...


>      except Exception, details:
>          logger.error("Exception: In fn rasd_init_list %s", details)
>          return FAIL, rasd_values, in_list
> @@ -150,6 +162,13 @@ def verify_displayrasd_values(assoc_info, displayrasd_list):
>          status = FAIL
>      return status
>  
> +def verify_consolerasd_values(assoc_info, consolerasd_list):
> +    status = PASS
> +    if assoc_info['InstanceID'] != consolerasd_list['InstanceID']:
> +        InstId_err(assoc_info, consolerasd_list)
> +        status = FAIL
> +    return status
> +
>  def verify_inputrasd_values(assoc_info, inputrasd_list):
>      status = PASS
>      if assoc_info['InstanceID'] != inputrasd_list['InstanceID']:
> diff --git a/suites/libvirt-cim/lib/XenKvmLib/vsms.py b/suites/libvirt-cim/lib/XenKvmLib/vsms.py
> index d7f33f9..955026f 100755
> --- a/suites/libvirt-cim/lib/XenKvmLib/vsms.py
> +++ b/suites/libvirt-cim/lib/XenKvmLib/vsms.py
> @@ -28,6 +28,7 @@ from CimTest import Globals
>  from XenKvmLib import const
>  from XenKvmLib.classes import get_typed_class, get_class_type, virt_types
>  
> +RASD_TYPE_OTHER = 1

Should this be 32769? I'm assuming they roughly follow CIM_RES_TYPE*
values in libvirt-cim

>  RASD_TYPE_PROC = 3
>  RASD_TYPE_MEM = 4
>  RASD_TYPE_NET_ETHER = 10
> @@ -259,6 +260,40 @@ class LXC_MemResourceAllocationSettingData(CIM_MemResourceAllocationSettingData)
>  def get_masd_class(virt):
>      pass
>  
> +class CIM_ConsoleResourceAllocationSettingData(CIMClassMOF):
> +    def __init__(self, name, source_type=2, target_type="virtio",
> +                 source_path=None, connect_URL=None, bind_URL=None):
> +        self.InstanceID = '%s/charconsole:0' %name
> +        self.ResourceType = RASD_TYPE_OTHER
> +        self.OtherResourceType = 'console'
> +
> +        if source_type != None:
> +            self.SourceType = source_type

source_type defaults to 2 or passed generally as 0, so None probably
doesn't work here, right?

> +
> +        if target_type != None:
> +            self.TargetType = target_type

target_type defaults to "virtio", so is None ever possible?
> +
> +        if source_path != None:
> +            self.SourcePath = source_path
> +
> +        if bind_URL != None:
> +            self.BindURL = bind_URL
> +
> +        if connect_URL != None:
> +            self.ConnectURL = connect_URL
> +
> +class Xen_ConsoleResourceAllocationSettingData(CIM_ConsoleResourceAllocationSettingData):
> +    pass
> +
> +class KVM_ConsoleResourceAllocationSettingData(CIM_ConsoleResourceAllocationSettingData):
> +    pass
> +
> +class LXC_ConsoleResourceAllocationSettingData(CIM_ConsoleResourceAllocationSettingData):
> +    pass
> +
> + at eval_cls('ConsoleResourceAllocationSettingData')
> +def get_casd_class(virt):
> +    pass
>  
>  class CIM_GraphicsResourceAllocationSettingData(CIMClassMOF):
>      def __init__(self, name, res_sub_type="vnc", ip=None, ipv6_flag=None, 
> diff --git a/suites/libvirt-cim/lib/XenKvmLib/vxml.py b/suites/libvirt-cim/lib/XenKvmLib/vxml.py
> index 74c4f23..9489a5c 100644
> --- a/suites/libvirt-cim/lib/XenKvmLib/vxml.py
> +++ b/suites/libvirt-cim/lib/XenKvmLib/vxml.py
> @@ -50,9 +50,11 @@ from CimTest.ReturnCodes import SKIP, PASS, FAIL
>  from XenKvmLib.classes import virt_types, get_typed_class
>  from XenKvmLib.enumclass  import GetInstance
>  from XenKvmLib.const import get_provider_version
> +from XenKvmLib.xm_virt_util import host_cpu_model
>  
>  vsms_graphics_sup = 763
>  vsms_inputdev_sup = 771
> +vsms_console_sup = 1276
>  
>  class XMLClass:
>      xml_string = ""
> @@ -598,7 +600,8 @@ class VirtCIM:
>      def __init__(self, virt, dom_name, uuid, pae, acpi, apic, disk_dev, 
>                   disk_source, net_type, net_name, net_mac, vcpus, mem,
>                   mem_allocunits, emu_type, grstype, ip,
> -                 is_ipv6_only, port_num, kmap, irstype, btype, vnc_passwd):
> +                 is_ipv6_only, port_num, kmap, irstype, btype, vnc_passwd,
> +                 con_source_type, con_target_type):
>          self.virt = virt
>          self.domain_name = dom_name
>          self.err_rc = None
> @@ -623,6 +626,9 @@ class VirtCIM:
>                                                    ipv6_flag=is_ipv6_only, 
>                                                    lport=port_num, keymap=kmap, 
>                                                    vnc_passwd=vnc_passwd)
> +            self.casd = vsms.get_casd_class(virt)(name=dom_name,
> +                                                  source_type=con_source_type,
> +                                                  target_type=con_target_type)
>          self.masd = vsms.get_masd_class(virt)(megabytes=mem, 
>                                                mallocunits=mem_allocunits,
>                                                name=dom_name)
> @@ -655,9 +661,14 @@ class VirtCIM:
>                  res_settings.append(str(self.gasd))
>  
>          if curr_cim_rev >= vsms_inputdev_sup:
> -            if self.iasd is not None:
> +            if self.iasd is not None  and \
> +                    not str(host_cpu_model(ip, self.virt)).startswith('s390'):

This probably should be in patch 2/2...

>                  res_settings.append(str(self.iasd))
>  
> +        if curr_cim_rev >= vsms_console_sup:
> +            if ref_conf is None and self.casd is not None:
> +                res_settings.append(str(self.casd))
> +
>          if ref_conf is None:
>               ref_conf = ' '
>  
> @@ -808,6 +819,8 @@ class VirtCIM:
>                  self.dasd = rasd
>              elif cn.find("NetResourceAllocationSettingData") >= 0:
>                  self.nasd = rasd
> +            elif cn.find("ConsoleResourceAllocationSettingData") >=0:
> +                self.casd = rasd
>              elif cn.find("GraphicsResourceAllocationSettingData") >= 0:
>                  self.gasd = rasd
>  
> @@ -849,7 +862,8 @@ class XenXML(VirtXML, VirtCIM):
>                         emu_type=None, grstype="vnc", address=None,
>                         is_ipv6_only=None,
>                         port_num='-1', keymap="en-us", irstype="mouse", 
> -                       btype="xen", vnc_passwd=None): 
> +                       btype="xen", vnc_passwd=None,
> +                       con_source_type=0, con_target_type="virtio"):
>          if not (os.path.exists(const.Xen_kernel_path) \
>                  and os.path.exists(const.Xen_init_path)):
>              logger.error('ERROR: Either the kernel image '
> @@ -863,7 +877,7 @@ class XenXML(VirtXML, VirtCIM):
>                           disk_file_path, ntype, net_name, mac, vcpus, mem, 
>                           mem_allocunits, emu_type, grstype, address, 
>                           is_ipv6_only, port_num, keymap, irstype, btype, 
> -                         vnc_passwd)
> +                         vnc_passwd, con_source_type, con_target_type)
>  
>      def _os(self, os_kernel, os_initrd):
>          os = self.get_node('/domain/os')
> @@ -920,7 +934,8 @@ class KVMXML(VirtXML, VirtCIM):
>                         emu_type=None, grstype="vnc", address=None,
>                         is_ipv6_only=None,
>                         port_num='-1', keymap="en-us", irstype="mouse", 
> -                       btype="ps2", vnc_passwd=None):
> +                       btype="ps2", vnc_passwd=None,
> +                       con_source_type=0, con_target_type="virtio"):
>          if not os.path.exists(disk_file_path):
>              logger.error('Error: Disk image %s does not exist', disk_file_path)
>              sys.exit(1)
> @@ -929,7 +944,7 @@ class KVMXML(VirtXML, VirtCIM):
>                           disk_file_path, ntype, net_name, mac, vcpus, mem, 
>                           mem_allocunits, emu_type, grstype, address, 
>                           is_ipv6_only, port_num, keymap, irstype, btype, 
> -                         vnc_passwd)
> +                         vnc_passwd, con_source_type, con_target_type)
>          self._os()
>          self._devices(const.KVM_default_emulator, ntype,
>                        disk_file_path, disk, mac, net_name)
> @@ -983,7 +998,8 @@ class XenFVXML(VirtXML, VirtCIM):
>                         emu_type=None, grstype="vnc", 
>                         address=None, is_ipv6_only=None, port_num='-1', 
>                         keymap="en-us",
> -                       irstype="mouse", btype="ps2", vnc_passwd=None):
> +                       irstype="mouse", btype="ps2", vnc_passwd=None,
> +                       con_source_type=0, con_target_type="virtio"):
>          if not os.path.exists(disk_file_path):
>              logger.error('Error: Disk image %s does not exist', disk_file_path)
>              sys.exit(1)
> @@ -992,7 +1008,8 @@ class XenFVXML(VirtXML, VirtCIM):
>                           disk_file_path, ntype, net_name, mac, vcpus, mem, 
>                           mem_allocunits, emu_type, grstype, address, 
>                           is_ipv6_only, port_num, 
> -                         keymap, irstype, btype, vnc_passwd)
> +                         keymap, irstype, btype, vnc_passwd,
> +                         con_source_type, con_target_type)
>          self._os(const.XenFV_default_loader)
>          self._devices(const.XenFV_default_emulator,
>                        ntype, mac, net_name, disk_file_path, disk) 
> @@ -1036,7 +1053,8 @@ class LXCXML(VirtXML, VirtCIM):
>                         tty=const.LXC_default_tty, grstype="vnc",
>                         address=None, is_ipv6_only=None, port_num='-1', 
>                         keymap="en-us",
> -                       irstype="mouse", btype="usb", vnc_passwd=None):
> +                       irstype="mouse", btype="usb", vnc_passwd=None,
> +                       con_source_type=0, con_target_type="virtio"):
>          VirtXML.__init__(self, 'lxc', test_dom, set_uuid(), mem, vcpus)
>          # pae, acpi and apic parameters doesn't make sense here, so we
>          # statically set them to False (a.k.a. ignore them)
> @@ -1045,7 +1063,7 @@ class LXCXML(VirtXML, VirtCIM):
>                           ntype, net_name, mac, vcpus, mem, 
>                           const.default_mallocunits, None, grstype, 
>                           address, is_ipv6_only, port_num, keymap, irstype, 
> -                         btype, vnc_passwd)
> +                         btype, vnc_passwd, con_source_type, con_target_type)
>          self._os(const.LXC_init_path)
>          self._devices(const.LXC_default_emulator, mac, ntype, net_name, const.LXC_default_tty)
>          self.create_lxc_file(CIM_IP, const.LXC_init_path)
> 




More information about the Libvirt-cim mailing list