[Libvirt-cim] [PATCH] [TEST][Addition] : Adding 01_forward.py tc to verify ReferencedProfile

Deepti B. Kalakeri deeptik at linux.vnet.ibm.com
Tue Apr 1 09:37:49 UTC 2008


# HG changeset patch
# User Deepti B. Kalakeri <deeptik at linux.vnet.ibm.com>
# Date 1207042611 -19800
# Node ID 560b0f60eaa938d4346d9019d9a71f8b35cd7dfa
# Parent  9b12b065560215945ce8175fad6d34136069bd06
[TEST][Addition] : Adding 01_forward.py tc to verify ReferencedProfile.

Signed-off-by: Deepti B. Kalakeri <deeptik at linux.vnet.ibm.com>

diff -r 9b12b0655602 -r 560b0f60eaa9 suites/libvirt-cim/cimtest/ReferencedProfile/01_forward.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/suites/libvirt-cim/cimtest/ReferencedProfile/01_forward.py	Tue Apr 01 15:06:51 2008 +0530
@@ -0,0 +1,159 @@
+#!/usr/bin/python
+#
+# Copyright 2008 IBM Corp.
+#
+# Authors:
+#    Deepti B. Kalakeri <dkalaker at 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 provider. 
+#
+#Ex Command:
+#-----------
+# wbemcli ain -ac Xen_ReferencedProfile 'http://localhost:5988/root/interop:
+# Xen_RegisteredProfile.InstanceID="CIM:DSP1057-VirtualSystem-1.0.0a"'
+# 
+# wbemcli ain -ac Xen_ReferencedProfile 'http://localhost:5988/root/interop:
+# Xen_RegisteredProfile.InstanceID="CIM:DSP1059-GenericDeviceResourceVirtualization-1.0.0"'
+# 
+# wbemcli ain -ac Xen_ReferencedProfile 'http://localhost:5988/root/interop:
+# Xen_RegisteredProfile.InstanceID="CIM:DSP1045-MemoryResourceVirtualization-1.0.0"'
+# 
+# wbemcli ain -ac Xen_ReferencedProfile 'http://localhost:5988/root/interop:
+# Xen_RegisteredProfile.InstanceID="CIM:DSP1081-VirtualSystemMigration-1.0"'
+#
+# Output:
+# -------
+# All the above examples have the following as result.
+# 
+# localhost:5988/root/interop:Xen_RegisteredProfile.
+# InstanceID="CIM:DSP1042-SystemVirtualization-1.0.0"
+# ......
+# InstanceID="CIM:DSP1042-SystemVirtualization-1.0.0"
+# RegisteredOrganization=2
+# RegisteredName="System Virtualization"
+# RegisteredVersion="1.0.0"
+# ....
+# 
+#                                                           Date : 31-03-2008 
+import sys
+from XenKvmLib import enumclass
+from XenKvmLib.assoc import Associators
+from CimTest import Globals
+from CimTest.Globals import log_param, logger, CIM_ERROR_ENUMERATE, 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():
+    sys_prof_info = {
+                       "InstanceID"              : "CIM:DSP1042-SystemVirtualization-1.0.0", 
+                       "RegisteredOrganization"  : 2, 
+                       "RegisteredName"          : "System Virtualization", 
+                       "RegisteredVersion"       : "1.0.0"
+                    }
+    return sys_prof_info
+
+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 get_proflist():
+    proflist = []
+    status = PASS
+    try: 
+        key_list = ["InstanceID"]
+        proflist = enumclass.enumerate(server, eval('enumclass.' + reg_classname), key_list, virt) 
+        status   = check_len(reg_classname, proflist, 'Profile', crit='lt', exp_len=5)
+    except Exception, detail:
+        logger.error(CIM_ERROR_ENUMERATE, reg_classname)
+        logger.error("Exception: %s", detail)
+        status = FAIL
+    if status != PASS:
+        return status, proflist
+    profiles_instid_list = []
+    for profile  in proflist:
+        if not ("DSP1042" in profile.InstanceID):
+            profiles_instid_list.append(profile.InstanceID)
+    return status, profiles_instid_list 
+
+def verify_ref_assoc_info(assoc_info, sys_prof_info):
+    if assoc_info['InstanceID'] != sys_prof_info['InstanceID']:
+        print_field_error('InstanceID', assoc_info['InstanceID'], sys_prof_info['InstanceID']) 
+        return FAIL
+    if assoc_info['RegisteredOrganization'] != sys_prof_info['RegisteredOrganization']:
+        print_field_error('RegisteredOrganization', assoc_info['RegisteredOrganization'], 
+                                                  sys_prof_info['RegisteredOrganization']) 
+        return FAIL
+    if assoc_info['RegisteredName'] != sys_prof_info['RegisteredName']:
+        print_field_error('RegisteredName', assoc_info['RegisteredName'], 
+                                           sys_prof_info['RegisteredName']) 
+        return FAIL
+    if assoc_info['RegisteredVersion'] != sys_prof_info['RegisteredVersion']:
+        print_field_error('RegisteredVersion', assoc_info['RegisteredVersion'], 
+                                               sys_prof_info['RegisteredVersion']) 
+        return FAIL
+    return PASS
+    
+
+
+def get_refprof_verify_info(proflist):
+    assoc_info = []
+    assoc_name =  get_typed_class(virt, 'ReferencedProfile')
+    sys_prof_info = init_list()
+    for instid in proflist:
+        try:
+            assoc_info = Associators(server, assoc_name, reg_classname, virt, InstanceID = instid, 
+                                                                CreationClassName = reg_classname)
+            status = check_len(assoc_name, assoc_info, 'SystemVirtualization', crit='ne', exp_len=1)
+            if status != PASS:
+                break 
+            status = verify_ref_assoc_info(assoc_info[0], sys_prof_info)
+            if status != PASS:
+                break 
+        except Exception, detail:
+            logger.error(CIM_ERROR_ASSOCIATORS, assoc_name)
+            logger.error("Exception: %s", detail)
+            status = FAIL
+    return status
+
+ at 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, proflist = get_proflist()
+    if status != PASS :
+        Globals.CIM_NS = prev_namespace
+        return status 
+    
+    status = get_refprof_verify_info(proflist)
+    Globals.CIM_NS = prev_namespace
+    return status 
+
+if __name__ == "__main__":
+    sys.exit(main())




More information about the Libvirt-cim mailing list