
Many of the testcases assume the presence of graphical displays or pointing devices which are not present on s390. These are either adjusted to account for the s390 specifics or skipped where not possible. Signed-off-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com> --- .../cimtest/ElementSettingData/01_forward.py | 4 +++- .../cimtest/HostSystem/04_hs_to_EAPF.py | 24 ++++++++++++++------ .../cimtest/HostedAccessPoint/01_forward.py | 5 ++++ .../cimtest/HostedAccessPoint/02_reverse.py | 5 ++++ .../cimtest/KVMRedirectionSAP/01_enum_KVMredSAP.py | 5 ++++ .../cimtest/KVMRedirectionSAP/02_ipv6_support.py | 5 ++++ .../02_guest_add_mod_rem_rasd_ind.py | 9 ++++++-- .../RedirectionService/03_RedirectionSAP_errs.py | 5 ++++ .../cimtest/ServiceAccessBySAP/01_forward.py | 7 +++++- .../cimtest/ServiceAccessBySAP/02_reverse.py | 6 +++++ .../cimtest/ServiceAffectsElement/01_forward.py | 6 +++-- .../cimtest/ServiceAffectsElement/02_reverse.py | 12 ++++++---- .../libvirt-cim/cimtest/SystemDevice/01_forward.py | 11 ++++++--- suites/libvirt-cim/cimtest/VSSD/07_autostart.py | 5 ++++ .../01_forward.py | 4 +++- suites/libvirt-cim/lib/XenKvmLib/pool.py | 4 +++- 16 files changed, 94 insertions(+), 23 deletions(-) diff --git a/suites/libvirt-cim/cimtest/ElementSettingData/01_forward.py b/suites/libvirt-cim/cimtest/ElementSettingData/01_forward.py index 8b57b8f..1744c7f 100755 --- a/suites/libvirt-cim/cimtest/ElementSettingData/01_forward.py +++ b/suites/libvirt-cim/cimtest/ElementSettingData/01_forward.py @@ -56,6 +56,7 @@ from CimTest.Globals import logger, CIM_ERROR_ASSOCIATORS from CimTest.ReturnCodes import PASS, FAIL from XenKvmLib.vxml import get_class from XenKvmLib.const import do_main, get_provider_version +from XenKvmLib.xm_virt_util import host_cpu_model sup_types = ['Xen', 'XenFV', 'KVM', 'LXC'] input_graphics_pool_rev = 757 @@ -146,7 +147,8 @@ def main(): keys['NetResourceAllocationSettingData'] = "%s/%s" % (test_dom, vmac) curr_cim_rev, changeset = get_provider_version(options.virt, options.ip) - if curr_cim_rev >= input_graphics_pool_rev: + if curr_cim_rev >= input_graphics_pool_rev and \ + not host_cpu_model(options.ip, options.virt).startswith('s390'): keys['InputResourceAllocationSettingData'] = input_device keys['GraphicsResourceAllocationSettingData'] = "%s/vnc" % test_dom if curr_cim_rev >= console_rev: diff --git a/suites/libvirt-cim/cimtest/HostSystem/04_hs_to_EAPF.py b/suites/libvirt-cim/cimtest/HostSystem/04_hs_to_EAPF.py index bd9c42b..5a6a8b9 100644 --- a/suites/libvirt-cim/cimtest/HostSystem/04_hs_to_EAPF.py +++ b/suites/libvirt-cim/cimtest/HostSystem/04_hs_to_EAPF.py @@ -60,6 +60,7 @@ from CimTest.ReturnCodes import PASS, FAIL, SKIP from XenKvmLib.test_doms import destroy_and_undefine_all from XenKvmLib.logicaldevices import verify_device_values from XenKvmLib.const import get_provider_version +from XenKvmLib.xm_virt_util import host_cpu_model sup_types = ['Xen', 'KVM', 'XenFV', 'LXC'] @@ -73,7 +74,7 @@ def print_err(err, detail, cn): logger.error(err, cn) logger.error("Exception: %s", detail) -def pool_init_list(virt, pool_assoc, net_name, dp_InstID): +def pool_init_list(virt, server, pool_assoc, net_name, dp_InstID): """ Creating the lists that will be used for comparisons. """ @@ -94,8 +95,10 @@ def pool_init_list(virt, pool_assoc, net_name, dp_InstID): exp_pllist[npool] = '%s/%s' %('NetworkPool', net_name) exp_pllist[ppool] = 'ProcessorPool/0' exp_pllist[mpool] = 'MemoryPool/0' - exp_pllist[gpool] = 'GraphicsPool/0' - exp_pllist[ipool] = 'InputPool/0' + + if not host_cpu_model(server, virt).startswith('s390'): + exp_pllist[gpool] = 'GraphicsPool/0' + exp_pllist[ipool] = 'InputPool/0' for p_inst in pool_assoc: CName = p_inst.classname @@ -105,6 +108,9 @@ def pool_init_list(virt, pool_assoc, net_name, dp_InstID): if exp_pllist[CName] == InstID: in_pllist[CName] = InstID else: + if host_cpu_model(server, virt).startswith('s390') and \ + ('GraphicsPool' in CName or 'InputPool' in CName): + continue if exp_pllist[CName] == InstID: in_pllist[CName] = InstID @@ -160,9 +166,12 @@ def eapf_list(server, virt, test_disk): disk_inst : disk, net_inst : net, mem_inst : mem, - display_inst: display, - point_inst : point } + + if not host_cpu_model(server, virt).startswith('s390'): + eaf_values[display_inst] = display + eaf_values[point_inst] = point + return eaf_values def get_inst_for_dom(assoc_val): @@ -267,12 +276,13 @@ def main(): vsxml.undefine(server) return status - in_pllist = pool_init_list(virt, pool, net_name, default_pool_name) + in_pllist = pool_init_list(virt, server, pool, net_name, default_pool_name) curr_cim_rev, changeset = get_provider_version(virt, server) # One pool for each Device type, hence len should be 4 if virt == 'LXC': exp_len = 1 - elif curr_cim_rev >= libvirt_input_graphics_changeset: + elif curr_cim_rev >= libvirt_input_graphics_changeset and \ + not host_cpu_model(options.ip, options.virt).startswith('s390'): exp_len = 6 else: exp_len = 4 diff --git a/suites/libvirt-cim/cimtest/HostedAccessPoint/01_forward.py b/suites/libvirt-cim/cimtest/HostedAccessPoint/01_forward.py index 9ffd0fd..0b5a4b8 100644 --- a/suites/libvirt-cim/cimtest/HostedAccessPoint/01_forward.py +++ b/suites/libvirt-cim/cimtest/HostedAccessPoint/01_forward.py @@ -30,6 +30,7 @@ from XenKvmLib.const import do_main, get_provider_version from XenKvmLib.common_util import get_host_info from XenKvmLib.enumclass import EnumInstances from XenKvmLib.assoc import compare_all_prop +from XenKvmLib.xm_virt_util import host_cpu_model libvirtcim_hostedAccPnt_changes = 782 @@ -114,6 +115,10 @@ def main(): logger.info("VNC is not supported by LXC, hence skipping the tc ....") return SKIP + if host_cpu_model(options.ip, options.virt).startswith('s390'): + logger.info("Graphics is not supported by s390, hence skipping the tc ....") + return SKIP + status, cxml = setup_env(options.ip, options.virt) if status != PASS: cxml.undefine(options.ip) diff --git a/suites/libvirt-cim/cimtest/HostedAccessPoint/02_reverse.py b/suites/libvirt-cim/cimtest/HostedAccessPoint/02_reverse.py index 2d6daf1..cfa35cc 100644 --- a/suites/libvirt-cim/cimtest/HostedAccessPoint/02_reverse.py +++ b/suites/libvirt-cim/cimtest/HostedAccessPoint/02_reverse.py @@ -30,6 +30,7 @@ from XenKvmLib.const import do_main, get_provider_version from XenKvmLib.common_util import get_host_info from XenKvmLib.enumclass import EnumInstances from XenKvmLib.assoc import compare_all_prop +from XenKvmLib.xm_virt_util import host_cpu_model libvirtcim_hostedAccPnt_changes = 782 @@ -121,6 +122,10 @@ def main(): logger.info("VNC is not supported by LXC, hence skipping the tc ....") return SKIP + if host_cpu_model(options.ip, options.virt).startswith('s390'): + logger.info("Graphics is not supported by s390, hence skipping the tc ....") + return SKIP + status, cxml = setup_env(options.ip, options.virt) if status != PASS: cxml.undefine(options.ip) diff --git a/suites/libvirt-cim/cimtest/KVMRedirectionSAP/01_enum_KVMredSAP.py b/suites/libvirt-cim/cimtest/KVMRedirectionSAP/01_enum_KVMredSAP.py index af9b5c6..c75c1ad 100644 --- a/suites/libvirt-cim/cimtest/KVMRedirectionSAP/01_enum_KVMredSAP.py +++ b/suites/libvirt-cim/cimtest/KVMRedirectionSAP/01_enum_KVMredSAP.py @@ -43,6 +43,7 @@ from CimTest.Globals import logger, CIM_ERROR_ENUMERATE from CimTest.ReturnCodes import PASS, FAIL, SKIP from XenKvmLib.const import KVMRedSAP_proto, CIM_SAP_AVAILABLE_STATE, \ CIM_SAP_INACTIVE_STATE +from XenKvmLib.xm_virt_util import host_cpu_model sup_types = ['Xen', 'KVM', 'LXC'] libvirtcim_redSAP_changes = 716 @@ -104,6 +105,10 @@ def main(): logger.info("VNC is not supported by LXC, hence skipping the tc ....") return SKIP + if host_cpu_model(server, virt).startswith('s390'): + logger.info("Graphics is not supported by s390, hence skipping the tc ....") + return SKIP + vsxml = None action_start = False diff --git a/suites/libvirt-cim/cimtest/KVMRedirectionSAP/02_ipv6_support.py b/suites/libvirt-cim/cimtest/KVMRedirectionSAP/02_ipv6_support.py index 84f98c8..41ddf1a 100644 --- a/suites/libvirt-cim/cimtest/KVMRedirectionSAP/02_ipv6_support.py +++ b/suites/libvirt-cim/cimtest/KVMRedirectionSAP/02_ipv6_support.py @@ -42,6 +42,7 @@ from XenKvmLib.classes import get_typed_class from XenKvmLib.const import do_main, get_provider_version from CimTest.Globals import logger from CimTest.ReturnCodes import PASS, FAIL, SKIP +from XenKvmLib.xm_virt_util import host_cpu_model sup_types = ['Xen', 'KVM', 'XenFV'] libvirtcim_redSAP_changes = 1017 @@ -76,6 +77,10 @@ def main(): classname) return SKIP + if host_cpu_model(server, virt).startswith('s390'): + logger.info("Graphics is not supported by s390, hence skipping the tc ....") + return SKIP + vsxml = None try: diff --git a/suites/libvirt-cim/cimtest/RASDIndications/02_guest_add_mod_rem_rasd_ind.py b/suites/libvirt-cim/cimtest/RASDIndications/02_guest_add_mod_rem_rasd_ind.py index 6d513bd..4807599 100644 --- a/suites/libvirt-cim/cimtest/RASDIndications/02_guest_add_mod_rem_rasd_ind.py +++ b/suites/libvirt-cim/cimtest/RASDIndications/02_guest_add_mod_rem_rasd_ind.py @@ -41,6 +41,7 @@ from XenKvmLib.const import do_main, CIM_DISABLE, get_provider_version from CimTest.ReturnCodes import PASS, FAIL, SKIP from XenKvmLib.common_util import poll_for_state_change from XenKvmLib.indications import sub_ind, handle_request, poll_for_ind +from XenKvmLib.xm_virt_util import host_cpu_model sup_types = ['KVM', 'Xen', 'XenFV'] libvirt_guest_rasd_indication_rev = 980 @@ -107,8 +108,12 @@ def gen_indication(test_dom, s_sysname, virt, cxml, service, ind_name, rasd, nmem_disk) elif ind_name == 'delete': - cn = 'GraphicsResourceAllocationSettingData' - inst_id = '%s/%s' % (test_dom, "vnc") + if host_cpu_model(s_sysname, virt).startswith('s390'): + cn = 'ConsoleResourceAllocationSettingData' + inst_id = '%s/%s' % (test_dom, "charconsole:0") + else: + cn = 'GraphicsResourceAllocationSettingData' + inst_id = '%s/%s' % (test_dom, "vnc") classname = get_typed_class(virt, cn) nrasd = get_rasd_rec(virt, cn, s_sysname, inst_id) diff --git a/suites/libvirt-cim/cimtest/RedirectionService/03_RedirectionSAP_errs.py b/suites/libvirt-cim/cimtest/RedirectionService/03_RedirectionSAP_errs.py index 34d7b76..8481e75 100644 --- a/suites/libvirt-cim/cimtest/RedirectionService/03_RedirectionSAP_errs.py +++ b/suites/libvirt-cim/cimtest/RedirectionService/03_RedirectionSAP_errs.py @@ -40,6 +40,7 @@ from XenKvmLib.classes import get_typed_class from XenKvmLib import vxml from XenKvmLib.const import do_main, get_provider_version from XenKvmLib.enumclass import EnumInstances, CIM_CimtestClass +from XenKvmLib.xm_virt_util import host_cpu_model test_dom = "demo" test_vcpus = 1 @@ -80,6 +81,10 @@ def main(): logger.info("VNC is not supported by LXC, hence skipping the tc ....") return SKIP + if host_cpu_model(options.ip, options.virt).startswith('s390'): + logger.info("Graphics is not supported by s390, hence skipping the tc ....") + return SKIP + # Getting the VS list and deleting the test_dom if it already exists. cxml = vxml.get_class(options.virt)(test_dom, vcpus=test_vcpus) ret = cxml.cim_define(options.ip) diff --git a/suites/libvirt-cim/cimtest/ServiceAccessBySAP/01_forward.py b/suites/libvirt-cim/cimtest/ServiceAccessBySAP/01_forward.py index 4840522..6b77f52 100644 --- a/suites/libvirt-cim/cimtest/ServiceAccessBySAP/01_forward.py +++ b/suites/libvirt-cim/cimtest/ServiceAccessBySAP/01_forward.py @@ -32,6 +32,7 @@ from XenKvmLib.enumclass import EnumInstances from XenKvmLib.vxml import get_class from XenKvmLib.assoc import AssociatorNames from XenKvmLib.assoc import compare_all_prop +from XenKvmLib.xm_virt_util import host_cpu_model libvirtcim_servaccsap_changes = 784 @@ -131,7 +132,11 @@ def main(): "skipping the tc ....") return SKIP - + if host_cpu_model(server, virt).startswith('s390'): + logger.info("ServiceAccessBySAP not supported on s390, hence " + + "skipping the tc ....") + return SKIP + status, cxml = setup_env(options.ip, options.virt) if status != PASS: cxml.undefine(options.ip) diff --git a/suites/libvirt-cim/cimtest/ServiceAccessBySAP/02_reverse.py b/suites/libvirt-cim/cimtest/ServiceAccessBySAP/02_reverse.py index 14c0db1..214727c 100644 --- a/suites/libvirt-cim/cimtest/ServiceAccessBySAP/02_reverse.py +++ b/suites/libvirt-cim/cimtest/ServiceAccessBySAP/02_reverse.py @@ -31,6 +31,7 @@ from XenKvmLib.enumclass import EnumInstances from XenKvmLib.vxml import get_class from XenKvmLib.assoc import AssociatorNames from XenKvmLib.assoc import compare_all_prop +from XenKvmLib.xm_virt_util import host_cpu_model libvirtcim_servaccsap_changes = 784 @@ -146,6 +147,11 @@ def main(): "skipping the tc ....") return SKIP + if host_cpu_model(server, virt).startswith('s390'): + logger.info("ServiceAccessBySAP not supported on s390, hence " + + "skipping the tc ....") + return SKIP + status, cxml = setup_env(options.ip, options.virt) if status != PASS: cxml.undefine(options.ip) diff --git a/suites/libvirt-cim/cimtest/ServiceAffectsElement/01_forward.py b/suites/libvirt-cim/cimtest/ServiceAffectsElement/01_forward.py index fc1590d..b9d7b27 100644 --- a/suites/libvirt-cim/cimtest/ServiceAffectsElement/01_forward.py +++ b/suites/libvirt-cim/cimtest/ServiceAffectsElement/01_forward.py @@ -57,6 +57,7 @@ from XenKvmLib.enumclass import EnumInstances from XenKvmLib.common_util import parse_instance_id from XenKvmLib.const import do_main, get_provider_version from CimTest.ReturnCodes import FAIL, PASS +from XenKvmLib.xm_virt_util import host_cpu_model sup_types = ['Xen', 'KVM', 'XenFV', 'LXC'] sae_assoc_with_input_graphics_rev = 795 @@ -96,7 +97,8 @@ def get_dom_records(an_cn, assoc_ei_info, assoc_ei_insts): def init_list_for_compare(server, virt): c_list = [ 'ComputerSystem'] curr_cim_rev, changeset = get_provider_version(virt, server) - if curr_cim_rev >= sae_assoc_with_input_graphics_rev: + if curr_cim_rev >= sae_assoc_with_input_graphics_rev and \ + not host_cpu_model(server, virt).startswith('s390'): c_list.append('PointingDevice' ) c_list.append('DisplayController') @@ -119,7 +121,7 @@ def verify_assoc(server, virt, an, assoc_info): raise Exception("Failed to get insts for domain %s" % test_dom) in_list, status = init_list_for_compare(server, virt) - if status != PASS or len(in_list) != 3: + if status != PASS or len(in_list) == 0: raise Exception("Failed to get init_list") in_list_keys = Set(in_list.keys()) diff --git a/suites/libvirt-cim/cimtest/ServiceAffectsElement/02_reverse.py b/suites/libvirt-cim/cimtest/ServiceAffectsElement/02_reverse.py index 391ad42..65b030e 100644 --- a/suites/libvirt-cim/cimtest/ServiceAffectsElement/02_reverse.py +++ b/suites/libvirt-cim/cimtest/ServiceAffectsElement/02_reverse.py @@ -54,6 +54,7 @@ from XenKvmLib.common_util import parse_instance_id from XenKvmLib.const import do_main, get_provider_version from CimTest.ReturnCodes import FAIL, PASS from pywbem.cim_obj import CIMInstance +from XenKvmLib.xm_virt_util import host_cpu_model sup_types = ['Xen', 'KVM', 'XenFV', 'LXC'] pd_dev_rev = 746 @@ -93,11 +94,12 @@ def get_dom_records(cn, ei_info): def init_list_for_assoc(server, virt): c_list = [ 'ComputerSystem'] - curr_cim_rev, changeset = get_provider_version(virt, server) - if curr_cim_rev >= pd_dev_rev: - c_list.append('PointingDevice' ) - if curr_cim_rev >= dc_dev_rev: - c_list.append('DisplayController') + if not host_cpu_model(server, virt).startswith('s390'): + curr_cim_rev, changeset = get_provider_version(virt, server) + if curr_cim_rev >= pd_dev_rev: + c_list.append('PointingDevice' ) + if curr_cim_rev >= dc_dev_rev: + c_list.append('DisplayController') key_dict = {} for name in c_list: diff --git a/suites/libvirt-cim/cimtest/SystemDevice/01_forward.py b/suites/libvirt-cim/cimtest/SystemDevice/01_forward.py index f956621..022173b 100644 --- a/suites/libvirt-cim/cimtest/SystemDevice/01_forward.py +++ b/suites/libvirt-cim/cimtest/SystemDevice/01_forward.py @@ -33,6 +33,7 @@ from XenKvmLib.classes import get_typed_class from CimTest.Globals import logger from XenKvmLib.const import do_main, get_provider_version from CimTest.ReturnCodes import PASS, FAIL +from XenKvmLib.xm_virt_util import host_cpu_model sup_types = ['Xen', 'KVM', 'XenFV', 'LXC'] input_graphics_pool_rev = 757 @@ -99,10 +100,13 @@ def main(): point_device = "%s/%s" %(test_dom, "mouse:usb") elif virt == 'Xen': point_device = "%s/%s" %(test_dom, "mouse:xen") - else: + elif not host_cpu_model(server, virt).startswith('s390'): point_device = "%s/%s" %(test_dom, "mouse:ps2") + else: + point_device = None - exp_pllist[input_cn] = [point_device] + if point_device != None: + exp_pllist[input_cn] = [point_device] disk_cn = get_typed_class(virt, "LogicalDisk") exp_pllist[disk_cn] = [ '%s/%s' % (test_dom, test_disk)] @@ -117,7 +121,8 @@ def main(): exp_pllist[proc_cn].append( '%s/%s' % (test_dom, i)) curr_cim_rev, changeset = get_provider_version(virt, server) - if curr_cim_rev >= input_graphics_pool_rev: + if curr_cim_rev >= input_graphics_pool_rev and \ + not host_cpu_model(server, virt).startswith('s390'): graphics_cn = get_typed_class(virt, "DisplayController") exp_pllist[graphics_cn] = ['%s/vnc' % test_dom] diff --git a/suites/libvirt-cim/cimtest/VSSD/07_autostart.py b/suites/libvirt-cim/cimtest/VSSD/07_autostart.py index 408f5d0..d621fd1 100644 --- a/suites/libvirt-cim/cimtest/VSSD/07_autostart.py +++ b/suites/libvirt-cim/cimtest/VSSD/07_autostart.py @@ -37,6 +37,7 @@ from XenKvmLib.classes import get_typed_class, inst_to_mof from XenKvmLib.enumclass import GetInstance from XenKvmLib.const import get_provider_version from pywbem.cim_types import Uint16 +from XenKvmLib.xm_virt_util import host_cpu_model sup_types = ['Xen', 'KVM', 'XenFV', 'LXC'] default_dom = 'uuid_domain' @@ -69,6 +70,10 @@ def main(): virt = options.virt server = options.ip + if host_cpu_model(server, virt).startswith('s390'): + logger.info("Cannot run autostart test on s390, known endianness bug") + return SKIP + curr_cim_rev, changeset = get_provider_version(virt, server) if curr_cim_rev < autostart_support: logger.info("Need provider version %d or greater to run testcase", diff --git a/suites/libvirt-cim/cimtest/VirtualSystemSettingDataComponent/01_forward.py b/suites/libvirt-cim/cimtest/VirtualSystemSettingDataComponent/01_forward.py index 96c34d4..f996c60 100644 --- a/suites/libvirt-cim/cimtest/VirtualSystemSettingDataComponent/01_forward.py +++ b/suites/libvirt-cim/cimtest/VirtualSystemSettingDataComponent/01_forward.py @@ -61,6 +61,7 @@ from XenKvmLib.classes import get_typed_class from CimTest.Globals import logger from XenKvmLib.const import do_main, get_provider_version from CimTest.ReturnCodes import FAIL, PASS +from XenKvmLib.xm_virt_util import host_cpu_model sup_types = ['Xen', 'KVM', 'XenFV', 'LXC'] input_graphics_pool_rev = 757 @@ -94,7 +95,8 @@ def init_list(test_disk, test_mac, server, virt='Xen'): input_device = "mouse:ps2" curr_cim_rev, changeset = get_provider_version(virt, server) - if curr_cim_rev >= input_graphics_pool_rev: + if curr_cim_rev >= input_graphics_pool_rev and \ + not host_cpu_model(server, virt).startswith('s390'): input = get_typed_class(virt,'InputResourceAllocationSettingData') graphics = get_typed_class(virt,'GraphicsResourceAllocationSettingData') rlist.append(input) diff --git a/suites/libvirt-cim/lib/XenKvmLib/pool.py b/suites/libvirt-cim/lib/XenKvmLib/pool.py index ddbe532..c4ae519 100644 --- a/suites/libvirt-cim/lib/XenKvmLib/pool.py +++ b/suites/libvirt-cim/lib/XenKvmLib/pool.py @@ -38,6 +38,7 @@ from XenKvmLib.vxml import NetXML, PoolXML from XenKvmLib.xm_virt_util import virsh_version, virsh_version_cmp from XenKvmLib.vsms import RASD_TYPE_STOREVOL from XenKvmLib.common_util import destroy_diskpool +from XenKvmLib.xm_virt_util import host_cpu_model cim_errno = pywbem.CIM_ERR_NOT_SUPPORTED cim_mname = "CreateChildResourcePool" @@ -76,7 +77,8 @@ def enum_pools(virt, ip): pool_list = ['ProcessorPool', 'MemoryPool', 'NetworkPool', 'DiskPool'] curr_cim_rev, changeset = get_provider_version(virt, ip) - if curr_cim_rev >= input_graphics_pool_rev: + if curr_cim_rev >= input_graphics_pool_rev \ + and not host_cpu_model(ip, virt).startswith('s390'): pool_list.append('GraphicsPool') pool_list.append('InputPool') -- 1.7.9.5