[PATCH] [TEST][Addition] : Adding 02_reverse.py tc to verify ReferencedProfile

# HG changeset patch # User Deepti B. Kalakeri <deeptik@linux.vnet.ibm.com> # Date 1207042694 -19800 # Node ID 78d46047fb435f32afc4f1b913a4c90f83866d4c # Parent 560b0f60eaa938d4346d9019d9a71f8b35cd7dfa [TEST][Addition] : Adding 02_reverse.py tc to verify ReferencedProfile. Signed-off-by: Deepti B. Kalakeri <deeptik@linux.vnet.ibm.com> diff -r 560b0f60eaa9 -r 78d46047fb43 suites/libvirt-cim/cimtest/ReferencedProfile/02_reverse.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/suites/libvirt-cim/cimtest/ReferencedProfile/02_reverse.py Tue Apr 01 15:08:14 2008 +0530 @@ -0,0 +1,168 @@ +#!/usr/bin/python +# +# Copyright 2008 IBM Corp. +# +# Authors: +# Deepti B. Kalakeri <dkalaker@in.ibm.com> +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# The following test case is used to verify the ReferencedProfile supported +# by the VSM providers. +# +# Command: +# ------- +# +# wbemcli ai -ac Xen_ReferencedProfile 'http://localhost:5988/root/interop: +# Xen_RegisteredProfile.InstanceID="CIM:DSP1042-SystemVirtualization-1.0.0"' +# +# Output: +# ------- +# localhost:5988/root/interop:Xen_RegisteredProfile.InstanceID="CIM:DSP1057-VirtualSystem-1.0.0a" +# -InstanceID="CIM:DSP1057-VirtualSystem-1.0.0a" +# -RegisteredOrganization=2 +# -RegisteredName="Virtual System Profile" +# -RegisteredVersion="1.0.0a" +# +# localhost:5988/root/interop:Xen_RegisteredProfile. +# InstanceID="CIM:DSP1059-GenericDeviceResourceVirtualization-1.0.0" +# ..... +# localhost:5988/root/interop:Xen_RegisteredProfile. +# InstanceID="CIM:DSP1045-MemoryResourceVirtualization-1.0.0" +# ...... +# localhost:5988/root/interop:Xen_RegisteredProfile. +# InstanceID="CIM:DSP1081-VirtualSystemMigration-1.0" +# ...... +# Date : 31-03-2008 +import sys +from XenKvmLib.assoc import Associators +from CimTest import Globals +from CimTest.Globals import log_param, logger, CIM_ERROR_ASSOCIATORS +from CimTest.Globals import do_main +from XenKvmLib.classes import get_typed_class +from CimTest.ReturnCodes import FAIL, PASS +from XenKvmLib.common_util import check_len + +sup_types = ['Xen', 'KVM', 'XenFV'] + + +def init_list(): + vs_prof = { + "InstanceID" : "CIM:DSP1057-VirtualSystem-1.0.0a", + "RegisteredOrganization" : 2, + "RegisteredName" : "Virtual System Profile", + "RegisteredVersion" : "1.0.0a" + } + gen_dev_prof = { + "InstanceID" : + "CIM:DSP1059-GenericDeviceResourceVirtualization-1.0.0", + "RegisteredOrganization" : 2, + "RegisteredName" : "Generic Device Resource Virtualization", + "RegisteredVersion" : "1.0.0" + } + mem_res_prof = { + "InstanceID" : "CIM:DSP1045-MemoryResourceVirtualization-1.0.0", + "RegisteredOrganization" : 2, + "RegisteredName" : "Memory Resource Virtualization", + "RegisteredVersion" : "1.0.0" + } + vs_mig_prof = { + "InstanceID" : "CIM:DSP1081-VirtualSystemMigration-1.0", + "RegisteredOrganization" : 2, + "RegisteredName" : "Virtual System Migration", + "RegisteredVersion" : "1.0" + } + + return vs_prof, gen_dev_prof, mem_res_prof, vs_mig_prof + +def print_field_error(fieldname, ret_value, exp_value): + logger.error("%s Mismatch", fieldname) + logger.error("Returned '%s' instead of '%s'", ret_value, exp_value) + + +def verify_fields(assoc_info, prof_info): + if assoc_info['InstanceID'] != prof_info['InstanceID']: + print_field_error('InstanceID', assoc_info['InstanceID'], prof_info['InstanceID']) + return FAIL + if assoc_info['RegisteredOrganization'] != prof_info['RegisteredOrganization']: + print_field_error('RegisteredOrganization', assoc_info['RegisteredOrganization'], \ + prof_info['RegisteredOrganization']) + return FAIL + if assoc_info['RegisteredName'] != prof_info['RegisteredName']: + print_field_error('RegisteredName', assoc_info['RegisteredName'], \ + prof_info['RegisteredName']) + return FAIL + if assoc_info['RegisteredVersion'] != prof_info['RegisteredVersion']: + print_field_error('RegisteredVersion', assoc_info['RegisteredVersion'], \ + prof_info['RegisteredVersion']) + return FAIL + return PASS + + +def verify_ref_assoc_info(assoc_info): + status = PASS + vs_prof, gen_dev_prof, mem_res_prof, vs_mig_prof = init_list() + for i in range(len(assoc_info)): + instid = assoc_info[i]['InstanceID'] + if instid.find("DSP1045") >=0 : + status = verify_fields(assoc_info[i], mem_res_prof) + elif instid.find("DSP1057") >=0 : + status = verify_fields(assoc_info[i], vs_prof) + elif instid.find("DSP1059") >=0 : + status = verify_fields(assoc_info[i], gen_dev_prof) + elif instid.find("DSP1081") >=0 : + status = verify_fields(assoc_info[i], vs_mig_prof) + else: + status = FAIL + if status != PASS: + break + return status + +def get_refprof_verify_info(): + assoc_info = [] + assoc_name = get_typed_class(virt, 'ReferencedProfile') + instid = "CIM:DSP1042-SystemVirtualization-1.0.0" + try: + assoc_info = Associators(server, assoc_name, reg_classname, virt, InstanceID = instid, + CreationClassName = reg_classname) + status = check_len(assoc_name, assoc_info, 'Profile', crit='ne', exp_len=4) + if status != PASS: + return status + status = verify_ref_assoc_info(assoc_info) + except Exception, detail: + logger.error(CIM_ERROR_ASSOCIATORS, assoc_name) + logger.error("Exception: %s", detail) + status = FAIL + return status + +@do_main(sup_types) +def main(): + log_param() + options = main.options + global virt, server, reg_classname + virt = options.virt + server = options.ip + status = PASS + prev_namespace = Globals.CIM_NS + Globals.CIM_NS = 'root/interop' + + reg_classname = get_typed_class(virt, 'RegisteredProfile') + status = get_refprof_verify_info() + + Globals.CIM_NS = prev_namespace + return status + +if __name__ == "__main__": + sys.exit(main())
participants (1)
-
Deepti B. Kalakeri