Cimtest Report for Xen on RHEL 5.2 (2008/06/30)
by Guo Lian Yun
Distro : RHEL 5.2 Beta
Kernel : kernel-2.6.18-92.el5
Xen version : xen-3.0.3-64.el5
Libvirt : libvirt-0.3.3-7.el5
CIMOM : pegasus
PyWBEM : pywbem-3.14
CIM Schema : cimv216Experimental
LibCMPIutil : 79
LibVirtCIM : 621
CIMTEST : 233
=========================================================
PASS : 106
FAILED : 17
XFAIL : 3
SKIP : 3
Total : 129
==========================================================
llocationCapabilities - 01_enum.py: PASS
AllocationCapabilities - 02_alloccap_gi_errs.py: PASS
ComputerSystem - 01_enum.py: PASS
ComputerSystem - 02_nosystems.py: SKIP
ERROR - System has defined domains; unable to run
ComputerSystem - 03_defineVS.py: PASS
ComputerSystem - 04_defineStartVS.py: PASS
ComputerSystem - 05_activate_defined_start.py: XFAIL Bug: 00002
ERROR - ERROR: VS DomST1 transition from Defined State to Activate state
was not Successful
Bug:<00002>
ComputerSystem - 06_paused_active_suspend.py: XFAIL Bug: 00002
ERROR - ERROR: VS DomST1 transition from suspend State to Activate state
was not Successful
Bug:<00002>
ComputerSystem - 22_define_suspend.py: PASS
ComputerSystem - 23_suspend_suspend.py: FAIL
ERROR - RequestedState should be 2 not 12
ERROR - Attributes for dom test_domain not set as expected.
ComputerSystem - 27_define_suspend_errs.py: PASS
ComputerSystem - 32_start_reboot.py: FAIL
ERROR - RequestedState should be 2 not 12
ERROR - Attributes for dom test_domain not set as expected.
ComputerSystem - 33_suspend_reboot.py: FAIL
ERROR - RequestedState should be 2 not 12
ERROR - Attributes for dom test_domain not set as expected.
ComputerSystem - 35_start_reset.py: FAIL
ERROR - RequestedState should be 2 not 12
ERROR - Attributes for dom test_domain not set as expected.
ComputerSystem - 40_RSC_start.py: XFAIL Bug: 00002
ERROR - RequestedState should be 2 not 12
ERROR - Exception: Attributes were not set as expected for domain:
'test_domain'
Bug:<00002>
ComputerSystem - 41_cs_to_settingdefinestate.py: PASS
ComputerSystem - 42_cs_gi_errs.py: PASS
ComputerSystemIndication - 01_created_indication.py: PASS
ElementAllocatedFromPool - 01_forward.py: PASS
ElementAllocatedFromPool - 02_reverse.py: PASS
ElementAllocatedFromPool - 03_reverse_errs.py: PASS
ElementAllocatedFromPool - 04_forward_errs.py: PASS
ElementCapabilities - 01_forward.py: PASS
ElementCapabilities - 02_reverse.py: PASS
ElementCapabilities - 03_forward_errs.py: PASS
ElementCapabilities - 04_reverse_errs.py: PASS
ElementCapabilities - 05_hostsystem_cap.py: PASS
ElementConforms - 01_forward.py: FAIL
ERROR - Failed to get associators information for
ElementConformsToProfile
ERROR - Exception: not enough arguments for format string
ElementConforms - 02_reverse.py: PASS
ElementConforms - 03_ectp_fwd_errs.py: PASS
ElementConforms - 04_ectp_rev_errs.py: PASS
ElementSettingData - 01_forward.py: FAIL
ERROR - ElementSettingData returned 0 VirtualSystemSettingData instances
ERROR - Unable to get associated VirtualSystemSettingData from
ElementSettingData
CIM_ERR_NOT_FOUND: No such instance (domgst)
ElementSettingData - 03_esd_assoc_with_rasd_errs.py: PASS
EnabledLogicalElementCapabilities - 01_enum.py: PASS
EnabledLogicalElementCapabilities - 02_elecap_gi_errs.py: PASS
HostSystem - 01_enum.py: PASS
HostSystem - 02_hostsystem_to_rasd.py: PASS
HostSystem - 03_hs_to_settdefcap.py: PASS
HostSystem - 04_hs_to_EAPF.py: FAIL
ERROR - NumberOfBlocks Mismatch
ERROR - Returned 131072 instead of 128
{'Xen_NetworkPort': {'CreationClassName': 'Xen_NetworkPort',
'NetworkAddresses': '00:11:22:33:44:aa', 'SystemName':
'CrossClass_GuestDom', 'DeviceID':
'CrossClass_GuestDom/00:11:22:33:44:aa'}, 'Xen_Memory': {'NumberOfBlocks':
128, 'CreationClassName': 'Xen_Memory', 'SystemName':
'CrossClass_GuestDom', 'DeviceID': 'CrossClass_GuestDom/mem'},
'Xen_Processor': {'CreationClassName': 'Xen_Processor', 'SystemName':
'CrossClass_GuestDom', 'DeviceID': 'CrossClass_GuestDom/0'},
'Xen_LogicalDisk': {'CreationClassName': 'Xen_LogicalDisk', 'SystemName':
'CrossClass_GuestDom', 'DeviceID': 'CrossClass_GuestDom/xvdb', 'Name':
'xvdb'}}
HostSystem - 05_hs_gi_errs.py: PASS
HostSystem - 06_hs_to_vsms.py: PASS
HostedDependency - 01_forward.py: PASS
HostedDependency - 02_reverse.py: PASS
HostedDependency - 03_enabledstate.py: PASS
HostedDependency - 04_reverse_errs.py: PASS
HostedResourcePool - 01_forward.py: PASS
HostedResourcePool - 02_reverse.py: PASS
HostedResourcePool - 03_forward_errs.py: PASS
HostedResourcePool - 04_reverse_errs.py: PASS
HostedService - 01_forward.py: PASS
HostedService - 02_reverse.py: PASS
HostedService - 03_forward_errs.py: PASS
HostedService - 04_reverse_errs.py: PASS
LogicalDisk - 01_disk.py: PASS
LogicalDisk - 02_nodevs.py: SKIP
ERROR - System has defined domains; unable to run
LogicalDisk - 03_ld_gi_errs.py: FAIL
ERROR - Failed to get instance by the class of Xen_LogicalDisk
ERROR - Exception: (6, u'CIM_ERR_NOT_FOUND: No such instance
(hd_domain/xvda)')
Memory - 01_memory.py: FAIL
ERROR - Capacity should be 262144 MB instead of 131072 MB
Memory - 02_defgetmem.py: PASS
Memory - 03_mem_gi_errs.py: PASS
NetworkPort - 01_netport.py: FAIL
ERROR - Exception: (6, u'CIM_ERR_NOT_FOUND: No such instance
(test_domain/00:11:22:33:44:55)')
NetworkPort - 02_np_gi_errors.py: PASS
NetworkPort - 03_user_netport.py: SKIP
Processor - 01_processor.py: PASS
Processor - 02_definesys_get_procs.py: PASS
Processor - 03_proc_gi_errs.py: PASS
Profile - 01_enum.py: PASS
Profile - 02_profile_to_elec.py: PASS
Profile - 03_rprofile_gi_errs.py: PASS
RASD - 01_verify_rasd_fields.py: PASS
RASD - 02_enum.py: PASS
RASD - 03_rasd_errs.py: PASS
ReferencedProfile - 01_verify_refprof.py: PASS
ReferencedProfile - 02_refprofile_errs.py: PASS
ResourceAllocationFromPool - 01_forward.py: PASS
ResourceAllocationFromPool - 02_reverse.py: PASS
ResourceAllocationFromPool - 03_forward_errs.py: PASS
ResourceAllocationFromPool - 04_reverse_errs.py: PASS
ResourceAllocationFromPool - 05_RAPF_err.py: PASS
ResourcePool - 01_enum.py: PASS
ResourcePool - 02_rp_gi_errors.py: PASS
ResourcePoolConfigurationCapabilities - 01_enum.py: PASS
ResourcePoolConfigurationCapabilities - 02_rpcc_gi_errs.py: PASS
ResourcePoolConfigurationService - 01_enum.py: PASS
ResourcePoolConfigurationService - 02_rcps_gi_errors.py: PASS
ResourcePoolConfigurationService - 03_CreateResourcePool.py: PASS
ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: PASS
ResourcePoolConfigurationService - 05_AddResourcesToResourcePool.py: PASS
ResourcePoolConfigurationService - 06_RemoveResourcesFromResourcePool.py:
PASS
ResourcePoolConfigurationService - 07_DeleteResourcePool.py: PASS
SettingsDefine - 01_forward.py: PASS
SettingsDefine - 02_reverse.py: PASS
SettingsDefine - 03_sds_fwd_errs.py: PASS
SettingsDefine - 04_sds_rev_errs.py: PASS
SettingsDefineCapabilities - 01_forward.py: PASS
SettingsDefineCapabilities - 03_forward_errs.py: PASS
SettingsDefineCapabilities - 04_forward_vsmsdata.py: PASS
SettingsDefineCapabilities - 05_reverse_vsmcap.py: PASS
SystemDevice - 01_forward.py: PASS
SystemDevice - 02_reverse.py: PASS
SystemDevice - 03_fwderrs.py: PASS
VSSD - 01_enum.py: PASS
VSSD - 02_bootldr.py: FAIL
ERROR - NameError : global name 'BaseException' is not defined
CIM_ERR_NOT_FOUND: No such instance (dom)
VSSD - 03_vssd_gi_errs.py: PASS
VSSD - 04_vssd_to_rasd.py: PASS
VirtualSystemManagementCapabilities - 01_enum.py: PASS
VirtualSystemManagementCapabilities - 02_vsmcap_gi_errs.py: PASS
VirtualSystemManagementService - 01_definesystem_name.py: PASS
VirtualSystemManagementService - 02_destroysystem.py: FAIL
ERROR - Unknow exception happened
ERROR - (1, u'CIM_ERR_FAILED: Unable to retrieve domain name.')
ERROR - Destroyed multiple domains
InvokeMethod(DestroySystem): CIM_ERR_FAILED: Unable to retrieve domain
name.
VirtualSystemManagementService - 03_definesystem_ess.py: PASS
VirtualSystemManagementService - 04_definesystem_ers.py: PASS
VirtualSystemManagementService - 05_destroysystem_neg.py: PASS
VirtualSystemManagementService - 06_addresource.py: FAIL
ERROR - Error invoking AddRS: add_disk_res
ERROR - (1, u"CIM_ERR_FAILED: Unknown system `rstest_domain'")
InvokeMethod(AddResourceSettings): CIM_ERR_FAILED: Unknown system
`rstest_domain'
VirtualSystemManagementService - 07_addresource_neg.py: PASS
VirtualSystemManagementService - 08_modifyresource.py: FAIL
ERROR - Error invoking ModifyRS: mod_vcpu_res
ERROR - (1, u"CIM_ERR_FAILED: Unknown system `rstest_domain'")
InvokeMethod(ModifyResourceSettings): CIM_ERR_FAILED: Unknown system
`rstest_domain'
VirtualSystemManagementService - 09_procrasd_persist.py: PASS
VirtualSystemMigrationCapabilities - 01_enum.py: PASS
VirtualSystemMigrationCapabilities - 02_vsmc_gi_errs.py: PASS
VirtualSystemMigrationService - 01_migratable_host.py: FAIL
ERROR - Failed to enumerate the class of Virt_MigrationJob
ERROR - Invalid class type
VirtualSystemMigrationService - 02_host_migrate_type.py: FAIL
ERROR - Failed to enumerate the class of Virt_MigrationJob
ERROR - Invalid class type
VirtualSystemMigrationService - 05_migratable_host_errs.py: PASS
VirtualSystemMigrationSettingData - 01_enum.py: PASS
VirtualSystemMigrationSettingData - 02_vsmsd_gi_errs.py: PASS
VirtualSystemSettingDataComponent - 01_forward.py: FAIL
ERROR - Xen_VirtualSystemSettingDataComponent returned 0 Resource
objects for class 'Xen_ProcResourceAllocationSettingData'
ERROR - Xen_VirtualSystemSettingDataComponent returned 0 Resource
objects for class 'Xen_ProcResourceAllocationSettingData'
CIM_ERR_NOT_FOUND: No such instance (VSSDC_dom/xvda)
CIM_ERR_NOT_FOUND: No such instance (VSSDC_dom/mem)
VirtualSystemSettingDataComponent - 02_reverse.py: PASS
VirtualSystemSettingDataComponent - 03_vssdc_fwd_errs.py: PASS
VirtualSystemSettingDataComponent - 04_vssdc_rev_errs.py: PASS
VirtualSystemSnapshotService - 01_enum.py: PASS
VirtualSystemSnapshotService - 02_vs_sservice_gi_errs.py: PASS
VirtualSystemSnapshotServiceCapabilities - 01_enum.py: PASS
VirtualSystemSnapshotServiceCapabilities - 02_vs_sservicecap_gi_errs.py:
PASS
Best,
Regards
Daisy (运国莲)
VSM Team, China Systems & Technology Labs (CSTL)
E-mail: yunguol(a)cn.ibm.com
TEL: (86)-21-60922144
Building 10, 399 Ke Yuan Rd, Pudong Shanghai, 201203
16 years, 6 months
[PATCH] Add in default scheduler parameters for Xen domains
by Dan Smith
# HG changeset patch
# User Dan Smith <danms(a)us.ibm.com>
# Date 1214582349 25200
# Node ID b123b6b1fb08c3ab956f1c33801e743e082192b9
# Parent edf96787c23dc7a91a008916b4b00b22fc22703a
Add in default scheduler parameters for Xen domains
This fixes the case where you don't specify them and they're assumed to
be zero (which is an invalid value for Xen's weight parameter).
diff -r edf96787c23d -r b123b6b1fb08 src/Virt_VirtualSystemManagementService.c
--- a/src/Virt_VirtualSystemManagementService.c Wed Jun 25 12:34:09 2008 -0700
+++ b/src/Virt_VirtualSystemManagementService.c Fri Jun 27 08:59:09 2008 -0700
@@ -55,6 +55,7 @@
#include "config.h"
#define DEFAULT_MAC_PREFIX "00:16:3e"
+#define DEFAULT_XEN_WEIGHT 1024
const static CMPIBroker *_BROKER;
@@ -471,9 +472,29 @@ static const char *proc_rasd_to_vdev(CMP
static const char *proc_rasd_to_vdev(CMPIInstance *inst,
struct virt_device *dev)
{
+ CMPIObjectPath *op = NULL;
+ CMPIrc rc;
+ uint32_t def_weight = 0;
+ uint64_t def_limit = 0;
+
cu_get_u64_prop(inst, "VirtualQuantity", &dev->dev.vcpu.quantity);
- cu_get_u64_prop(inst, "Limit", &dev->dev.vcpu.limit);
- cu_get_u32_prop(inst, "Weight", &dev->dev.vcpu.weight);
+
+ op = CMGetObjectPath(inst, NULL);
+ if (op == NULL) {
+ CU_DEBUG("Unable to determine class of ProcRASD");
+ return NULL;
+ }
+
+ if (STARTS_WITH(CLASSNAME(op), "Xen"))
+ def_weight = DEFAULT_XEN_WEIGHT;
+
+ rc = cu_get_u64_prop(inst, "Limit", &dev->dev.vcpu.limit);
+ if (rc != CMPI_RC_OK)
+ dev->dev.vcpu.limit = def_limit;
+
+ rc = cu_get_u32_prop(inst, "Weight", &dev->dev.vcpu.weight);
+ if (rc != CMPI_RC_OK)
+ dev->dev.vcpu.weight = def_weight;
return NULL;
}
16 years, 6 months
[PATCH] [TEST] #8 Update RAFP.01 for LXC support
by yunguol@cn.ibm.com
# HG changeset patch
# User Guolian Yun <yunguol(a)cn.ibm.com>
# Date 1214531831 -28800
# Node ID fc04e9a959fc33ef8c552fbc8f74d839ac6c1105
# Parent 727d97c09d77d73f3542ba49a9dd19ba119a67eb
[TEST] #8 Update RAFP.01 for LXC support
This patch remove else statement in the for loop of verify_rasd() function
Signed-off-by: Guolian Yun <yunguol(a)cn.ibm.com>
diff -r 727d97c09d77 -r fc04e9a959fc suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py
--- a/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py Tue Jun 10 18:26:20 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py Fri Jun 27 09:57:11 2008 +0800
@@ -26,66 +26,133 @@
from VirtLib import utils
from XenKvmLib import assoc
from XenKvmLib import enumclass
-from XenKvmLib.classes import get_typed_class
+from XenKvmLib.classes import get_typed_class
+from XenKvmLib.test_doms import destroy_and_undefine_all
+from XenKvmLib.vxml import get_class
from CimTest import Globals
from CimTest.Globals import logger, do_main
from CimTest.ReturnCodes import PASS, FAIL, XFAIL
+from XenKvmLib.common_util import cleanup_restore, create_diskpool_conf, \
+create_netpool_conf
-sup_types = ['Xen', 'XenFV', 'KVM']
+sup_types = ['Xen', 'XenFV', 'KVM', 'LXC']
+test_dom = "RAFP_dom"
+test_vcpus = 1
+test_mem = 128
+test_mac = "00:11:22:33:44:aa"
+
+def setup_env(server, virt):
+ destroy_and_undefine_all(server)
+ vsxml = None
+ if virt == "Xen":
+ test_disk = "xvda"
+ elif virt == "XenFV" or virt=="KVM":
+ test_disk = "hda"
+ else:
+ test_disk = None
+
+ virtxml = get_class(virt)
+ if virt == 'LXC':
+ vsxml = virtxml(test_dom)
+ else:
+ vsxml = virtxml(test_dom, mem=test_mem, vcpus = test_vcpus,
+ mac = test_mac, disk = test_disk)
+ try:
+ ret = vsxml.define(server)
+ if not ret:
+ logger.error("Failed to Define the domain: %s", test_dom)
+ return FAIL, vsxml, test_disk
+
+ except Exception, details:
+ logger.error("Exception : %s", details)
+ return FAIL, vsxml, test_disk
+
+ return PASS, vsxml, test_disk
+
+def get_instance(server, pool, list, virt='Xen'):
+ try:
+ inst = enumclass.getInstance(server,
+ pool,
+ list,
+ virt)
+ except Exception:
+ logger.error(Globals.CIM_ERROR_GETINSTANCE % pool)
+ return FAIL, inst
+
+ return PASS, inst
+
+def verify_rasd(server, assoc_cn, cn, virt, list, rasd):
+ try:
+ data = assoc.AssociatorNames(server,
+ assoc_cn,
+ cn,
+ virt,
+ InstanceID=list)
+ except Exception:
+ logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % cn)
+ return FAIL
+
+ if len(data) < 1:
+ logger.error("Return NULL, expect at least one instance")
+ return FAIL
+
+ for item in data:
+ if item['InstanceID'] == rasd[cn]:
+ logger.info("%s InstanceID match - expect %s, got %s" \
+ % (cn, rasd[cn], item['InstanceID']))
+ return PASS
+ logger.error("RASD instance with InstanceID %s not found" % rasd[cn])
+ return FAIL
+
@do_main(sup_types)
def main():
options = main.options
status = PASS
- try:
- key_list = { 'InstanceID' : "MemoryPool/0" }
- mempool = enumclass.getInstance(options.ip,
- "MemoryPool",
- key_list,
- options.virt)
- except Exception:
- logger.error(Globals.CIM_ERROR_GETINSTANCE % "MemoryPool")
- return FAIL
+
+ status, vsxml, test_disk = setup_env(options.ip, options.virt)
+ if status != PASS:
+ return status
+
+ status, diskid = create_diskpool_conf(options.ip, options.virt)
+ if status != PASS:
+ cleanup_restore(options.ip, options.virt)
+ vsxml.undefine(options.ip)
+ return status
- try:
- key_list = { 'InstanceID' : "ProcessorPool/0" }
- procpool = enumclass.getInstance(options.ip,
- "ProcessorPool",
- key_list,
- options.virt)
- except Exception:
- logger.error(Globals.CIM_ERROR_GETINSTANCE % "ProcessorPool")
- return FAIL
-
- try:
- memdata = assoc.AssociatorNames(options.ip, "ResourceAllocationFromPool",
- "MemoryPool",
- options.virt,
- InstanceID = mempool.InstanceID)
- except Exception:
- logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % mempool.InstanceID)
- status = FAIL
-
- for i in range(len(memdata)):
- if memdata[i].classname != get_typed_class(options.virt, "MemResourceAllocationSettingData"):
- logger.error("ERROR: Association result error")
- status = FAIL
-
- try:
- procdata = assoc.AssociatorNames(options.ip, "ResourceAllocationFromPool",
- "ProcessorPool",
- options.virt,
- InstanceID = procpool.InstanceID)
- except Exception:
- logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % procpool.InstanceID)
- status = FAIL
-
- for j in range(len(procdata)):
- if procdata[j].classname != get_typed_class(options.virt, "ProcResourceAllocationSettingData"):
- logger.error("ERROR: Association result error")
- status = FAIL
+ status, test_network = create_netpool_conf(options.ip, options.virt)
+ if status != PASS:
+ cleanup_restore(options.ip, options.virt)
+ vsxml.undefine(options.ip)
+ return status
+
+ if options.virt == 'LXC':
+ pool = { "MemoryPool" : {'InstanceID' : "MemoryPool/0"} }
+ rasd = { "MemoryPool" : "%s/mem" % test_dom }
+ else:
+ pool = { "MemoryPool" : {'InstanceID' : "MemoryPool/0"},
+ "ProcessorPool" : {'InstanceID' : "ProcessorPool/0"},
+ "DiskPool" : {'InstanceID' : diskid},
+ "NetworkPool" : {'InstanceID' : "NetworkPool/%s" \
+ % test_network }}
+ rasd = { "MemoryPool" : "%s/mem" % test_dom,
+ "ProcessorPool" : "%s/proc" % test_dom,
+ "DiskPool" : "%s/%s" %(test_dom, test_disk),
+ "NetworkPool" : "%s/%s" % (test_dom, test_mac) }
+ for k, v in pool.iteritems():
+ status, inst = get_instance(options.ip, k, v, options.virt)
+ if status != PASS:
+ break
+ status = verify_rasd(options.ip, "ResourceAllocationFromPool",
+ k, options.virt, inst.InstanceID,
+ rasd)
+ if status != PASS:
+ break
+
+ cleanup_restore(options.ip, options.virt)
+ vsxml.undefine(options.ip)
return status
16 years, 6 months
[PATCH] [TEST] #7 Update RAFP.01 for LXC support
by yunguol@cn.ibm.com
# HG changeset patch
# User Guolian Yun <yunguol(a)cn.ibm.com>
# Date 1214446556 -28800
# Node ID 5845fbc3a61daa48343f121f284dfdf011b5f9d4
# Parent 727d97c09d77d73f3542ba49a9dd19ba119a67eb
[TEST] #7 Update RAFP.01 for LXC support
This patch includes the following changes:
1. Update duplicated verification code into a simple loop
2. Use break instead of duplicating the cleanup code in get_instance() and verify_rasd() call
diff -r 727d97c09d77 -r 5845fbc3a61d suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py
--- a/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py Tue Jun 10 18:26:20 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py Thu Jun 26 10:15:56 2008 +0800
@@ -26,66 +26,134 @@
from VirtLib import utils
from XenKvmLib import assoc
from XenKvmLib import enumclass
-from XenKvmLib.classes import get_typed_class
+from XenKvmLib.classes import get_typed_class
+from XenKvmLib.test_doms import destroy_and_undefine_all
+from XenKvmLib.vxml import get_class
from CimTest import Globals
from CimTest.Globals import logger, do_main
from CimTest.ReturnCodes import PASS, FAIL, XFAIL
+from XenKvmLib.common_util import cleanup_restore, create_diskpool_conf, \
+create_netpool_conf
-sup_types = ['Xen', 'XenFV', 'KVM']
+sup_types = ['Xen', 'XenFV', 'KVM', 'LXC']
+test_dom = "RAFP_dom"
+test_vcpus = 1
+test_mem = 128
+test_mac = "00:11:22:33:44:aa"
+
+def setup_env(server, virt):
+ destroy_and_undefine_all(server)
+ vsxml = None
+ if virt == "Xen":
+ test_disk = "xvda"
+ elif virt == "XenFV" or virt=="KVM":
+ test_disk = "hda"
+ else:
+ test_disk = None
+
+ virtxml = get_class(virt)
+ if virt == 'LXC':
+ vsxml = virtxml(test_dom)
+ else:
+ vsxml = virtxml(test_dom, mem=test_mem, vcpus = test_vcpus,
+ mac = test_mac, disk = test_disk)
+ try:
+ ret = vsxml.define(server)
+ if not ret:
+ logger.error("Failed to Define the domain: %s", test_dom)
+ return FAIL, vsxml, test_disk
+
+ except Exception, details:
+ logger.error("Exception : %s", details)
+ return FAIL, vsxml, test_disk
+
+ return PASS, vsxml, test_disk
+
+def get_instance(server, pool, list, virt='Xen'):
+ try:
+ inst = enumclass.getInstance(server,
+ pool,
+ list,
+ virt)
+ except Exception:
+ logger.error(Globals.CIM_ERROR_GETINSTANCE % pool)
+ return FAIL, inst
+
+ return PASS, inst
+
+def verify_rasd(server, assoc_cn, cn, virt, list, rasd):
+ try:
+ data = assoc.AssociatorNames(server,
+ assoc_cn,
+ cn,
+ virt,
+ InstanceID=list)
+ except Exception:
+ logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % cn)
+ return FAIL
+
+ if len(data) < 1:
+ logger.error("Return NULL, expect at least one instance")
+ return FAIL
+
+ for item in data:
+ if item['InstanceID'] == rasd[cn]:
+ logger.info("%s InstanceID match - expect %s, got %s" \
+ % (cn, rasd[cn], item['InstanceID']))
+ return PASS
+ else:
+ logger.error("RASD instance with InstanceID %s not found" % rasd[cn])
+ return FAIL
+
@do_main(sup_types)
def main():
options = main.options
status = PASS
- try:
- key_list = { 'InstanceID' : "MemoryPool/0" }
- mempool = enumclass.getInstance(options.ip,
- "MemoryPool",
- key_list,
- options.virt)
- except Exception:
- logger.error(Globals.CIM_ERROR_GETINSTANCE % "MemoryPool")
- return FAIL
+
+ status, vsxml, test_disk = setup_env(options.ip, options.virt)
+ if status != PASS:
+ return status
+
+ status, diskid = create_diskpool_conf(options.ip, options.virt)
+ if status != PASS:
+ cleanup_restore(options.ip, options.virt)
+ vsxml.undefine(options.ip)
+ return status
- try:
- key_list = { 'InstanceID' : "ProcessorPool/0" }
- procpool = enumclass.getInstance(options.ip,
- "ProcessorPool",
- key_list,
- options.virt)
- except Exception:
- logger.error(Globals.CIM_ERROR_GETINSTANCE % "ProcessorPool")
- return FAIL
-
- try:
- memdata = assoc.AssociatorNames(options.ip, "ResourceAllocationFromPool",
- "MemoryPool",
- options.virt,
- InstanceID = mempool.InstanceID)
- except Exception:
- logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % mempool.InstanceID)
- status = FAIL
-
- for i in range(len(memdata)):
- if memdata[i].classname != get_typed_class(options.virt, "MemResourceAllocationSettingData"):
- logger.error("ERROR: Association result error")
- status = FAIL
-
- try:
- procdata = assoc.AssociatorNames(options.ip, "ResourceAllocationFromPool",
- "ProcessorPool",
- options.virt,
- InstanceID = procpool.InstanceID)
- except Exception:
- logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % procpool.InstanceID)
- status = FAIL
-
- for j in range(len(procdata)):
- if procdata[j].classname != get_typed_class(options.virt, "ProcResourceAllocationSettingData"):
- logger.error("ERROR: Association result error")
- status = FAIL
+ status, test_network = create_netpool_conf(options.ip, options.virt)
+ if status != PASS:
+ cleanup_restore(options.ip, options.virt)
+ vsxml.undefine(options.ip)
+ return status
+
+ if options.virt == 'LXC':
+ pool = { "MemoryPool" : {'InstanceID' : "MemoryPool/0"} }
+ rasd = { "MemoryPool" : "%s/mem" % test_dom }
+ else:
+ pool = { "MemoryPool" : {'InstanceID' : "MemoryPool/0"},
+ "ProcessorPool" : {'InstanceID' : "ProcessorPool/0"},
+ "DiskPool" : {'InstanceID' : diskid},
+ "NetworkPool" : {'InstanceID' : "NetworkPool/%s" \
+ % test_network }}
+ rasd = { "MemoryPool" : "%s/mem" % test_dom,
+ "ProcessorPool" : "%s/proc" % test_dom,
+ "DiskPool" : "%s/%s" %(test_dom, test_disk),
+ "NetworkPool" : "%s/%s" % (test_dom, test_mac) }
+ for k, v in pool.iteritems():
+ status, inst = get_instance(options.ip, k, v, options.virt)
+ if status != PASS:
+ break
+ status = verify_rasd(options.ip, "ResourceAllocationFromPool",
+ k, options.virt, inst.InstanceID,
+ rasd)
+ if status != PASS:
+ break
+
+ cleanup_restore(options.ip, options.virt)
+ vsxml.undefine(options.ip)
return status
16 years, 6 months
CimTest Report on XenFV 26-06-2008
by Deepti B Kalakeri
======================================
CIM Test Report for XenFV
======================================
Distro : RHEL 5.2 Beta
Kernel : 2.6.18-88.el5xen
Xen version : 3.1.2-88.el5
Libvirt : libvirt-0.3.3-7.el5
CIMOM : pegasus
PyWBEM : pywbem-3.14
CIM Schema : cimv216Experimental
LibCMPIutil : 79
LibVirtCIM : 620+
CIMTEST : 229
======================================
PASS : 87
TOTAL FAILED : 17 [10 test cases passed when ran manually]
ACTUAL FAILED : 7
XFAIL : 1
SKIP : 24
-----------------
Total : 129
======================================
List of tc that are failing:
ComputerSystem - 03_defineVS.py: FAIL
--Passed when run manually
ComputerSystem - 05_activate_defined_start.py: FAIL
ComputerSystem - 06_paused_active_suspend.py: FAIL
ComputerSystem - 23_suspend_suspend.py: FAIL
ComputerSystem - 32_start_reboot.py: FAIL
ComputerSystem - 33_suspend_reboot.py: FAIL
ComputerSystem - 35_start_reset.py: FAIL
ElementConforms - 01_forward.py: FAIL
--Passed when run manually
EnabledLogicalElementCapabilities - 01_enum.py: FAIL
--Passed when run manually
HostSystem - 02_hostsystem_to_rasd.py: FAIL
--Passed when run manually
LogicalDisk - 03_ld_gi_errs.py: FAIL
--Passed when run manually
Memory - 01_memory.py: FAIL
--Passed when run manually
NetworkPort - 01_netport.py: FAIL
--Passed when run manually
ResourceAllocationFromPool - 02_reverse.py: FAIL
--Passed when run manually
ResourceAllocationFromPool - 05_RAPF_err.py: FAIL
--Passed when run manually
VSSD - 04_vssd_to_rasd.py: FAIL
--Passed when run manually
VirtualSystemManagementService - 02_destroysystem.py: FAIL
Please find the complete report attached with the mail.
Thanks and Regards,
Deepti.
Starting test suite: libvirt-cim
Cleaned log files.
Testing XenFV hypervisor
AllocationCapabilities - 01_enum.py: PASS
AllocationCapabilities - 02_alloccap_gi_errs.py: PASS
ComputerSystem - 01_enum.py: PASS
ComputerSystem - 02_nosystems.py: SKIP
ERROR - System has defined domains; unable to run
ComputerSystem - 03_defineVS.py: FAIL
ERROR - Failed to enumerate the class of Xen_ComputerSystem
ERROR - Exception: No defined domain (domU1) is found
ERROR - Error: property values are not set for VS domU1
ComputerSystem - 04_defineStartVS.py: PASS
libvir: Xen error : Domain not found: xenUnifiedDomainLookupByName
libvir: Domain error : invalid domain pointer in virDomainFree
ComputerSystem - 05_activate_defined_start.py: FAIL
ERROR - Exception: (6, u'CIM_ERR_NOT_FOUND: No such instance (DomST1).')
ComputerSystem - 06_paused_active_suspend.py: FAIL
ERROR - Exception: (1, u'CIM_ERR_FAILED: Domain not running')
ERROR - Unable to suspend dom DomST1 using RequestedStateChange()
InvokeMethod(RequestStateChange): CIM_ERR_FAILED: Domain not running
ComputerSystem - 22_define_suspend.py: PASS
libvir: Xen error : invalid argument in xenHypervisorSetSchedulerParameters: Credit scheduler weight parameter (0) is out of range (1-65535)
ComputerSystem - 23_suspend_suspend.py: FAIL
ERROR - RequestedState should be 2 not 12
ERROR - Attributes for dom test_domain not set as expected.
ComputerSystem - 27_define_suspend_errs.py: PASS
libvir: Xen error : invalid argument in xenHypervisorSetSchedulerParameters: Credit scheduler weight parameter (0) is out of range (1-65535)
ComputerSystem - 32_start_reboot.py: FAIL
ERROR - RequestedState should be 2 not 12
ERROR - Attributes for dom test_domain not set as expected.
libvir: Xen error : invalid argument in xenHypervisorSetSchedulerParameters: Credit scheduler weight parameter (0) is out of range (1-65535)
ComputerSystem - 33_suspend_reboot.py: FAIL
ERROR - RequestedState should be 2 not 12
ERROR - Attributes for dom test_domain not set as expected.
libvir: Xen error : invalid argument in xenHypervisorSetSchedulerParameters: Credit scheduler weight parameter (0) is out of range (1-65535)
ComputerSystem - 35_start_reset.py: FAIL
ERROR - RequestedState should be 2 not 12
ERROR - Attributes for dom test_domain not set as expected.
libvir: Xen error : invalid argument in xenHypervisorSetSchedulerParameters: Credit scheduler weight parameter (0) is out of range (1-65535)
ComputerSystem - 40_RSC_start.py: XFAIL Bug: 00002
ERROR - RequestedState should be 2 not 12
ERROR - Exception: Attributes were not set as expected for domain: 'test_domain'
Bug:<00002>
ComputerSystem - 41_cs_to_settingdefinestate.py: SKIP
libvir: Xen error : Domain not found: xenUnifiedDomainLookupByName
libvir: Domain error : invalid domain pointer in virDomainFree
ComputerSystem - 42_cs_gi_errs.py: PASS
ComputerSystemIndication - 01_created_indication.py: PASS
ElementAllocatedFromPool - 01_forward.py: SKIP
ElementAllocatedFromPool - 02_reverse.py: SKIP
ElementAllocatedFromPool - 03_reverse_errs.py: PASS
ElementAllocatedFromPool - 04_forward_errs.py: PASS
ElementCapabilities - 01_forward.py: PASS
ElementCapabilities - 02_reverse.py: PASS
libvir: Xen error : Domain not found: xenUnifiedDomainLookupByName
libvir: Domain error : invalid domain pointer in virDomainFree
ElementCapabilities - 03_forward_errs.py: PASS
libvir: Xen error : Domain not found: xenUnifiedDomainLookupByName
ElementCapabilities - 04_reverse_errs.py: PASS
ElementCapabilities - 05_hostsystem_cap.py: PASS
ElementConforms - 01_forward.py: FAIL
ERROR - Failed to get associators information for ElementConformsToProfile
ERROR - Exception: not enough arguments for format string
ElementConforms - 02_reverse.py: PASS
ElementConforms - 03_ectp_fwd_errs.py: PASS
libvir: Xen error : Domain not found: xenUnifiedDomainLookupByName
libvir: Domain error : invalid domain pointer in virDomainFree
ElementConforms - 04_ectp_rev_errs.py: PASS
ElementSettingData - 01_forward.py: SKIP
ElementSettingData - 03_esd_assoc_with_rasd_errs.py: SKIP
EnabledLogicalElementCapabilities - 01_enum.py: FAIL
ERROR - Get domain list error, the number of domains is not equal
libvir: Xen error : Domain not found: xenUnifiedDomainLookupByName
EnabledLogicalElementCapabilities - 02_elecap_gi_errs.py: PASS
HostSystem - 01_enum.py: PASS
HostSystem - 02_hostsystem_to_rasd.py: FAIL
ERROR - Xen_HostSystem with CrossClass_GuestDom was not returned
HostSystem - 03_hs_to_settdefcap.py: PASS
HostSystem - 04_hs_to_EAPF.py: SKIP
HostSystem - 05_hs_gi_errs.py: PASS
HostSystem - 06_hs_to_vsms.py: PASS
HostedDependency - 01_forward.py: SKIP
HostedDependency - 02_reverse.py: SKIP
HostedDependency - 03_enabledstate.py: SKIP
HostedDependency - 04_reverse_errs.py: SKIP
HostedResourcePool - 01_forward.py: PASS
HostedResourcePool - 02_reverse.py: PASS
HostedResourcePool - 03_forward_errs.py: PASS
HostedResourcePool - 04_reverse_errs.py: PASS
HostedService - 01_forward.py: PASS
HostedService - 02_reverse.py: PASS
HostedService - 03_forward_errs.py: PASS
HostedService - 04_reverse_errs.py: PASS
LogicalDisk - 01_disk.py: PASS
LogicalDisk - 02_nodevs.py: SKIP
ERROR - System has defined domains; unable to run
libvir: Xen error : Domain not found: xenUnifiedDomainLookupByName
libvir: Domain error : invalid domain pointer in virDomainFree
LogicalDisk - 03_ld_gi_errs.py: FAIL
ERROR - Failed to get instance by the class of Xen_LogicalDisk
ERROR - Exception: (6, u'CIM_ERR_NOT_FOUND: No such instance (hd_domain/hda)')
Memory - 01_memory.py: FAIL
ERROR - Capacity should be 262144 MB instead of 131072 MB
Memory - 02_defgetmem.py: PASS
libvir: Xen error : Domain not found: xenUnifiedDomainLookupByName
libvir: Domain error : invalid domain pointer in virDomainFree
Memory - 03_mem_gi_errs.py: PASS
libvir: Xen error : Domain not found: xenUnifiedDomainLookupByName
libvir: Domain error : invalid domain pointer in virDomainFree
NetworkPort - 01_netport.py: FAIL
ERROR - Exception: (6, u'CIM_ERR_NOT_FOUND: No such instance (test_domain/00:11:22:33:44:55)')
libvir: Xen error : Domain not found: xenUnifiedDomainLookupByName
libvir: Domain error : invalid domain pointer in virDomainFree
NetworkPort - 02_np_gi_errors.py: PASS
NetworkPort - 03_user_netport.py: SKIP
Processor - 01_processor.py: PASS
Processor - 02_definesys_get_procs.py: PASS
Processor - 03_proc_gi_errs.py: PASS
Profile - 01_enum.py: SKIP
Profile - 02_profile_to_elec.py: SKIP
Profile - 03_rprofile_gi_errs.py: SKIP
RASD - 01_verify_rasd_fields.py: PASS
RASD - 02_enum.py: PASS
RASD - 03_rasd_errs.py: PASS
ReferencedProfile - 01_verify_refprof.py: PASS
ReferencedProfile - 02_refprofile_errs.py: PASS
ResourceAllocationFromPool - 01_forward.py: PASS
libvir: Xen error : Domain not found: xenUnifiedDomainLookupByName
ResourceAllocationFromPool - 02_reverse.py: FAIL
ERROR - Exception in get_rasdinst_verify_pool_from_RAFP() fn
ERROR - Exception Details 'list' object has no attribute 'InstanceID'
CIM_ERR_NOT_FOUND: No such instance (RAFP_dom/mem)
ResourceAllocationFromPool - 03_forward_errs.py: PASS
ResourceAllocationFromPool - 04_reverse_errs.py: PASS
ResourceAllocationFromPool - 05_RAPF_err.py: FAIL
ERROR - Xen_NetResourceAllocationSettingData with RAPF_domain was not returned
ERROR - ------FAILED: to verify the RAFP.------
ResourcePool - 01_enum.py: SKIP
ResourcePool - 02_rp_gi_errors.py: SKIP
ResourcePoolConfigurationCapabilities - 01_enum.py: PASS
ResourcePoolConfigurationCapabilities - 02_rpcc_gi_errs.py: PASS
ResourcePoolConfigurationService - 01_enum.py: PASS
ResourcePoolConfigurationService - 02_rcps_gi_errors.py: PASS
ResourcePoolConfigurationService - 03_CreateResourcePool.py: PASS
ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: PASS
ResourcePoolConfigurationService - 05_AddResourcesToResourcePool.py: PASS
ResourcePoolConfigurationService - 06_RemoveResourcesFromResourcePool.py: PASS
ResourcePoolConfigurationService - 07_DeleteResourcePool.py: PASS
SettingsDefine - 01_forward.py: PASS
SettingsDefine - 02_reverse.py: PASS
SettingsDefine - 03_sds_fwd_errs.py: PASS
SettingsDefine - 04_sds_rev_errs.py: PASS
SettingsDefineCapabilities - 01_forward.py: PASS
SettingsDefineCapabilities - 03_forward_errs.py: PASS
SettingsDefineCapabilities - 04_forward_vsmsdata.py: PASS
SettingsDefineCapabilities - 05_reverse_vsmcap.py: PASS
SystemDevice - 01_forward.py: PASS
SystemDevice - 02_reverse.py: PASS
SystemDevice - 03_fwderrs.py: PASS
VSSD - 01_enum.py: PASS
VSSD - 02_bootldr.py: SKIP
VSSD - 03_vssd_gi_errs.py: PASS
VSSD - 04_vssd_to_rasd.py: FAIL
ERROR - Xen_VirtualSystemSettingData with VSSDC_dom was not returned
ERROR - Xen_VirtualSystemSettingData returned 0 VSSD objects, expected only 1
VirtualSystemManagementCapabilities - 01_enum.py: PASS
VirtualSystemManagementCapabilities - 02_vsmcap_gi_errs.py: PASS
VirtualSystemManagementService - 01_definesystem_name.py: PASS
VirtualSystemManagementService - 02_destroysystem.py: FAIL
ERROR - Unknow exception happened
ERROR - (1, u'CIM_ERR_FAILED: Unable to retrieve domain name.')
ERROR - Destroyed multiple domains
InvokeMethod(DestroySystem): CIM_ERR_FAILED: Unable to retrieve domain name.
VirtualSystemManagementService - 03_definesystem_ess.py: PASS
VirtualSystemManagementService - 04_definesystem_ers.py: PASS
libvir: Domain error : invalid domain pointer in virDomainFree
libvir: Xen error : Domain not found: xenUnifiedDomainLookupByName
libvir: Domain error : invalid domain pointer in virDomainFree
VirtualSystemManagementService - 05_destroysystem_neg.py: PASS
VirtualSystemManagementService - 06_addresource.py: SKIP
VirtualSystemManagementService - 07_addresource_neg.py: PASS
VirtualSystemManagementService - 08_modifyresource.py: PASS
VirtualSystemMigrationCapabilities - 01_enum.py: PASS
VirtualSystemMigrationCapabilities - 02_vsmc_gi_errs.py: PASS
VirtualSystemMigrationService - 01_migratable_host.py: SKIP
VirtualSystemMigrationService - 02_host_migrate_type.py: SKIP
VirtualSystemMigrationService - 05_migratable_host_errs.py: SKIP
VirtualSystemMigrationSettingData - 01_enum.py: PASS
VirtualSystemMigrationSettingData - 02_vsmsd_gi_errs.py: PASS
VirtualSystemSettingDataComponent - 01_forward.py: SKIP
VirtualSystemSettingDataComponent - 02_reverse.py: PASS
VirtualSystemSettingDataComponent - 03_vssdc_fwd_errs.py: PASS
VirtualSystemSettingDataComponent - 04_vssdc_rev_errs.py: PASS
VirtualSystemSnapshotService - 01_enum.py: PASS
VirtualSystemSnapshotService - 02_vs_sservice_gi_errs.py: PASS
VirtualSystemSnapshotServiceCapabilities - 01_enum.py: PASS
VirtualSystemSnapshotServiceCapabilities - 02_vs_sservicecap_gi_errs.py: PASS
16 years, 6 months
Cimtest Report for Xen on RHEL 5.2 (2008/06/26)
by Guo Lian Yun
Distro : RHEL 5.2
Kernel : kernel-2.6.18-92.el5
Xen version : xen-3.0.3-64.el5
Libvirt : libvirt-0.3.3-7.el5
CIMOM : pegasus
PyWBEM : pywbem-3.14
CIM Schema : cimv216Experimental
LibCMPIutil : 79
LibVirtCIM : 620
CIMTEST : 229
======================================
PASS : 104
FAILED : 17
XFAIL : 7
SKIP : 1
Total : 129
======================================
AllocationCapabilities - 01_enum.py: PASS
AllocationCapabilities - 02_alloccap_gi_errs.py: PASS
ComputerSystem - 01_enum.py: PASS
ComputerSystem - 02_nosystems.py: PASS
ComputerSystem - 03_defineVS.py: FAIL
ERROR - Failed to enumerate the class of Xen_ComputerSystem
ERROR - Exception: No defined domain (domU1) is found
ERROR - Error: property values are not set for VS domU1
ComputerSystem - 04_defineStartVS.py: PASS
ComputerSystem - 05_activate_defined_start.py: XFAIL Bug: 00002
ERROR - ERROR: VS DomST1 transition from Defined State to Activate state
was not Successful
Bug:<00002>
ComputerSystem - 06_paused_active_suspend.py: XFAIL Bug: 00002
ERROR - ERROR: VS DomST1 transition from suspend State to Activate state
was not Successful
Bug:<00002>
ComputerSystem - 22_define_suspend.py: PASS
ComputerSystem - 23_suspend_suspend.py: XFAIL Bug: 00001
ERROR - Exception: (1, u'CIM_ERR_FAILED: Domain Operation Failed')
ERROR - Unable to Start dom test_domain using RequestedStateChange()
InvokeMethod(RequestStateChange): CIM_ERR_FAILED: Domain Operation Failed
Bug:<00001>
ComputerSystem - 27_define_suspend_errs.py: PASS
ComputerSystem - 32_start_reboot.py: XFAIL Bug: 00001
ERROR - Exception: (1, u'CIM_ERR_FAILED: Domain Operation Failed')
ERROR - Unable to Start dom test_domain using RequestedStateChange()
InvokeMethod(RequestStateChange): CIM_ERR_FAILED: Domain Operation Failed
Bug:<00001>
ComputerSystem - 33_suspend_reboot.py: XFAIL Bug: 00001
ERROR - Exception: (1, u'CIM_ERR_FAILED: Domain Operation Failed')
ERROR - Unable to Start dom test_domain using RequestedStateChange()
InvokeMethod(RequestStateChange): CIM_ERR_FAILED: Domain Operation Failed
Bug:<00001>
ComputerSystem - 35_start_reset.py: XFAIL Bug: 00001
ERROR - Exception: (1, u'CIM_ERR_FAILED: Domain Operation Failed')
ERROR - Unable to Start dom test_domain using RequestedStateChange()
InvokeMethod(RequestStateChange): CIM_ERR_FAILED: Domain Operation Failed
Bug:<00001>
ComputerSystem - 40_RSC_start.py: XFAIL Bug: 00001
ERROR - Exception: (1, u'CIM_ERR_FAILED: Domain Operation Failed')
ERROR - Exception: RequestedStateChange() could not be used to start
domain: 'test_domain'
InvokeMethod(RequestStateChange): CIM_ERR_FAILED: Domain Operation Failed
Bug:<00001>
ComputerSystem - 41_cs_to_settingdefinestate.py: PASS
ComputerSystem - 42_cs_gi_errs.py: PASS
ComputerSystemIndication - 01_created_indication.py: PASS
ElementAllocatedFromPool - 01_forward.py: PASS
ElementAllocatedFromPool - 02_reverse.py: PASS
ElementAllocatedFromPool - 03_reverse_errs.py: PASS
ElementAllocatedFromPool - 04_forward_errs.py: PASS
ElementCapabilities - 01_forward.py: PASS
ElementCapabilities - 02_reverse.py: PASS
ElementCapabilities - 03_forward_errs.py: PASS
ElementCapabilities - 04_reverse_errs.py: PASS
ElementCapabilities - 05_hostsystem_cap.py: PASS
ElementConforms - 01_forward.py: FAIL
ERROR - Failed to get associators information for
ElementConformsToProfile
ERROR - Exception: not enough arguments for format string
ElementConforms - 02_reverse.py: FAIL
ERROR - ERROR: Instance for domgst not created
ElementConforms - 03_ectp_fwd_errs.py: PASS
ElementConforms - 04_ectp_rev_errs.py: PASS
ElementSettingData - 01_forward.py: PASS
ElementSettingData - 03_esd_assoc_with_rasd_errs.py: PASS
EnabledLogicalElementCapabilities - 01_enum.py: FAIL
ERROR - Get domain list error, the number of domains is not equal
EnabledLogicalElementCapabilities - 02_elecap_gi_errs.py: PASS
HostSystem - 01_enum.py: PASS
HostSystem - 02_hostsystem_to_rasd.py: FAIL
ERROR - Xen_HostSystem with CrossClass_GuestDom was not returned
HostSystem - 03_hs_to_settdefcap.py: PASS
HostSystem - 04_hs_to_EAPF.py: FAIL
ERROR - NumberOfBlocks Mismatch
ERROR - Returned 131072 instead of 128
{'Xen_NetworkPort': {'CreationClassName': 'Xen_NetworkPort',
'NetworkAddresses': '00:11:22:33:44:aa', 'SystemName':
'CrossClass_GuestDom', 'DeviceID':
'CrossClass_GuestDom/00:11:22:33:44:aa'}, 'Xen_Memory': {'NumberOfBlocks':
128, 'CreationClassName': 'Xen_Memory', 'SystemName':
'CrossClass_GuestDom', 'DeviceID': 'CrossClass_GuestDom/mem'},
'Xen_Processor': {'CreationClassName': 'Xen_Processor', 'SystemName':
'CrossClass_GuestDom', 'DeviceID': 'CrossClass_GuestDom/0'},
'Xen_LogicalDisk': {'CreationClassName': 'Xen_LogicalDisk', 'SystemName':
'CrossClass_GuestDom', 'DeviceID': 'CrossClass_GuestDom/xvdb', 'Name':
'xvdb'}}
HostSystem - 05_hs_gi_errs.py: PASS
HostSystem - 06_hs_to_vsms.py: PASS
HostedDependency - 01_forward.py: PASS
HostedDependency - 02_reverse.py: PASS
HostedDependency - 03_enabledstate.py: PASS
HostedDependency - 04_reverse_errs.py: PASS
HostedResourcePool - 01_forward.py: PASS
HostedResourcePool - 02_reverse.py: PASS
HostedResourcePool - 03_forward_errs.py: PASS
HostedResourcePool - 04_reverse_errs.py: PASS
HostedService - 01_forward.py: PASS
HostedService - 02_reverse.py: PASS
HostedService - 03_forward_errs.py: PASS
HostedService - 04_reverse_errs.py: PASS
LogicalDisk - 01_disk.py: PASS
LogicalDisk - 02_nodevs.py: PASS
LogicalDisk - 03_ld_gi_errs.py: FAIL
ERROR - Failed to get instance by the class of Xen_LogicalDisk
ERROR - Exception: (6, u'CIM_ERR_NOT_FOUND: No such instance
(hd_domain/xvda)')
Memory - 01_memory.py: FAIL
ERROR - Capacity should be 262144 MB instead of 131072 MB
Memory - 02_defgetmem.py: PASS
Memory - 03_mem_gi_errs.py: PASS
NetworkPort - 01_netport.py: FAIL
ERROR - Exception: (6, u'CIM_ERR_NOT_FOUND: No such instance
(test_domain/00:11:22:33:44:55)')
NetworkPort - 02_np_gi_errors.py: PASS
NetworkPort - 03_user_netport.py: SKIP
Processor - 01_processor.py: PASS
Processor - 02_definesys_get_procs.py: PASS
Processor - 03_proc_gi_errs.py: PASS
Profile - 01_enum.py: PASS
Profile - 02_profile_to_elec.py: PASS
Profile - 03_rprofile_gi_errs.py: PASS
RASD - 01_verify_rasd_fields.py: PASS
RASD - 02_enum.py: PASS
RASD - 03_rasd_errs.py: PASS
ReferencedProfile - 01_verify_refprof.py: PASS
ReferencedProfile - 02_refprofile_errs.py: PASS
ResourceAllocationFromPool - 01_forward.py: PASS
ResourceAllocationFromPool - 02_reverse.py: FAIL
ERROR - Exception in get_rasdinst_verify_pool_from_RAFP() fn
ERROR - Exception Details 'list' object has no attribute 'InstanceID'
CIM_ERR_NOT_FOUND: No such instance (RAFP_dom/mem)
ResourceAllocationFromPool - 03_forward_errs.py: PASS
ResourceAllocationFromPool - 04_reverse_errs.py: PASS
ResourceAllocationFromPool - 05_RAPF_err.py: FAIL
ERROR - Xen_NetResourceAllocationSettingData returned 0 instances,
excepted atleast 1 instance
ERROR - ------FAILED: to verify the RAFP.------
ResourcePool - 01_enum.py: PASS
ResourcePool - 02_rp_gi_errors.py: PASS
ResourcePoolConfigurationCapabilities - 01_enum.py: PASS
ResourcePoolConfigurationCapabilities - 02_rpcc_gi_errs.py: PASS
ResourcePoolConfigurationService - 01_enum.py: PASS
ResourcePoolConfigurationService - 02_rcps_gi_errors.py: PASS
ResourcePoolConfigurationService - 03_CreateResourcePool.py: PASS
ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: PASS
ResourcePoolConfigurationService - 05_AddResourcesToResourcePool.py: PASS
ResourcePoolConfigurationService - 06_RemoveResourcesFromResourcePool.py:
PASS
ResourcePoolConfigurationService - 07_DeleteResourcePool.py: PASS
SettingsDefine - 01_forward.py: PASS
SettingsDefine - 02_reverse.py: PASS
SettingsDefine - 03_sds_fwd_errs.py: PASS
SettingsDefine - 04_sds_rev_errs.py: PASS
SettingsDefineCapabilities - 01_forward.py: PASS
SettingsDefineCapabilities - 03_forward_errs.py: PASS
SettingsDefineCapabilities - 04_forward_vsmsdata.py: PASS
SettingsDefineCapabilities - 05_reverse_vsmcap.py: PASS
SystemDevice - 01_forward.py: PASS
SystemDevice - 02_reverse.py: PASS
SystemDevice - 03_fwderrs.py: PASS
VSSD - 01_enum.py: PASS
VSSD - 02_bootldr.py: FAIL
ERROR - NameError : global name 'BaseException' is not defined
CIM_ERR_NOT_FOUND: No such instance (dom)
VSSD - 03_vssd_gi_errs.py: PASS
VSSD - 04_vssd_to_rasd.py: FAIL
ERROR - Xen_VirtualSystemSettingData with VSSDC_dom was not returned
ERROR - Xen_VirtualSystemSettingData returned 0 VSSD objects, expected
only 1
VirtualSystemManagementCapabilities - 01_enum.py: PASS
VirtualSystemManagementCapabilities - 02_vsmcap_gi_errs.py: PASS
VirtualSystemManagementService - 01_definesystem_name.py: PASS
VirtualSystemManagementService - 02_destroysystem.py: FAIL
ERROR - Unknow exception happened
ERROR - (1, u'CIM_ERR_FAILED: Unable to retrieve domain name.')
ERROR - Destroyed multiple domains
InvokeMethod(DestroySystem): CIM_ERR_FAILED: Unable to retrieve domain
name.
VirtualSystemManagementService - 03_definesystem_ess.py: PASS
VirtualSystemManagementService - 04_definesystem_ers.py: PASS
VirtualSystemManagementService - 05_destroysystem_neg.py: PASS
VirtualSystemManagementService - 06_addresource.py: PASS
VirtualSystemManagementService - 07_addresource_neg.py: PASS
VirtualSystemManagementService - 08_modifyresource.py: PASS
VirtualSystemMigrationCapabilities - 01_enum.py: PASS
VirtualSystemMigrationCapabilities - 02_vsmc_gi_errs.py: PASS
VirtualSystemMigrationService - 01_migratable_host.py: FAIL
ERROR - Failed to enumerate the class of Virt_MigrationJob
ERROR - Invalid class type
VirtualSystemMigrationService - 02_host_migrate_type.py: FAIL
ERROR - Failed to enumerate the class of Virt_MigrationJob
ERROR - Invalid class type
VirtualSystemMigrationService - 05_migratable_host_errs.py: PASS
VirtualSystemMigrationSettingData - 01_enum.py: PASS
VirtualSystemMigrationSettingData - 02_vsmsd_gi_errs.py: PASS
VirtualSystemSettingDataComponent - 01_forward.py: FAIL
ERROR - Failed to get instance by the class of
Xen_VirtualSystemSettingData
ERROR - Exception : 'list' object has no attribute 'Bootloader'
CIM_ERR_NOT_FOUND: No such instance (VSSDC_dom)
VirtualSystemSettingDataComponent - 02_reverse.py: PASS
VirtualSystemSettingDataComponent - 03_vssdc_fwd_errs.py: PASS
VirtualSystemSettingDataComponent - 04_vssdc_rev_errs.py: PASS
VirtualSystemSnapshotService - 01_enum.py: PASS
VirtualSystemSnapshotService - 02_vs_sservice_gi_errs.py: PASS
VirtualSystemSnapshotServiceCapabilities - 01_enum.py: PASS
VirtualSystemSnapshotServiceCapabilities - 02_vs_sservicecap_gi_errs.py:
PASS
Best,
Regards
Daisy (运国莲)
VSM Team, China Systems & Technology Labs (CSTL)
E-mail: yunguol(a)cn.ibm.com
TEL: (86)-21-60922144
Building 10, 399 Ke Yuan Rd, Pudong Shanghai, 201203
16 years, 6 months
[PATCH] [TEST] Update RAFP.01 for LXC support
by yunguol@cn.ibm.com
# HG changeset patch
# User Guolian Yun <yunguol(a)cn.ibm.com>
# Date 1214371183 -28800
# Node ID c8c27374e304a66cd71d1f0b5d0fc462e230a898
# Parent 727d97c09d77d73f3542ba49a9dd19ba119a67eb
[TEST] Update RAFP.01 for LXC support
Signed-off-by: Guolian Yun <yunguol(a)cn.ibm.com>
diff -r 727d97c09d77 -r c8c27374e304 suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py
--- a/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py Tue Jun 10 18:26:20 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py Wed Jun 25 13:19:43 2008 +0800
@@ -26,66 +26,165 @@
from VirtLib import utils
from XenKvmLib import assoc
from XenKvmLib import enumclass
-from XenKvmLib.classes import get_typed_class
+from XenKvmLib.classes import get_typed_class
+from XenKvmLib.test_doms import destroy_and_undefine_all
+from XenKvmLib.vxml import get_class
from CimTest import Globals
from CimTest.Globals import logger, do_main
from CimTest.ReturnCodes import PASS, FAIL, XFAIL
+from XenKvmLib.common_util import cleanup_restore, create_diskpool_conf, \
+create_netpool_conf
-sup_types = ['Xen', 'XenFV', 'KVM']
+sup_types = ['Xen', 'XenFV', 'KVM', 'LXC']
+test_dom = "RAFP_dom"
+test_vcpus = 1
+test_mem = 128
+test_mac = "00:11:22:33:44:aa"
+
+def setup_env(server, virt):
+ destroy_and_undefine_all(server)
+ vsxml = None
+ if virt == "Xen":
+ test_disk = "xvda"
+ elif virt == "XenFV" or virt=="KVM":
+ test_disk = "hda"
+ else:
+ test_disk = None
+
+ virtxml = get_class(virt)
+ if virt == 'LXC':
+ vsxml = virtxml(test_dom)
+ else:
+ vsxml = virtxml(test_dom, mem=test_mem, vcpus = test_vcpus,
+ mac = test_mac, disk = test_disk)
+ try:
+ ret = vsxml.define(server)
+ if not ret:
+ logger.error("Failed to Define the domain: %s", test_dom)
+ return FAIL, vsxml, test_disk
+
+ except Exception, details:
+ logger.error("Exception : %s", details)
+ return FAIL, vsxml, test_disk
+
+ return PASS, vsxml, test_disk
+
+def get_instance(server, pool, list, virt='Xen'):
+ try:
+ inst = enumclass.getInstance(server,
+ pool,
+ list,
+ virt)
+ except Exception:
+ logger.error(Globals.CIM_ERROR_GETINSTANCE % pool)
+ return FAIL, inst
+
+ return PASS, inst
+
+def verify_rasd(server, assoc_cn, cn, virt, list, rasd):
+ try:
+ data = assoc.AssociatorNames(server,
+ assoc_cn,
+ cn,
+ virt,
+ InstanceID=list)
+ except Exception:
+ logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % cn)
+ return FAIL
+
+ if len(data) < 1:
+ logger.error("Return NULL, expect at least one instance")
+ return FAIL
+
+ for i in range(0, len(data)):
+ if data[i].classname == "LXC_MemResourceAllocationSettingData" \
+ and data[i]['InstanceID'] == rasd["MemoryPool"]:
+ logger.info("MemoryPool InstanceID match")
+ return PASS
+ elif i == len(data) and data[i]['InstanceID'] != rasd["MemoryPool"]:
+ logger.error("InstanceID Mismatch, expect %s not %s" % \
+ (rasd['MemoryPool'], data[i]['InstanceID']))
+ return FAIL
+ if data[i].classname == "LXC_ProcResourceAllocationSettingData" \
+ and data[i]['InstanceID'] == rasd["ProcessorPool"]:
+ logger.info("ProcessorPool InstanceID match")
+ return PASS
+ elif i == len(data) and data[i]['InstanceID'] != rasd["ProcessorPool"]:
+ logger.error("InstanceID Mismatch, expect %s not %s" % \
+ (rasd['ProcessorPool'], data[i]['InstanceID']))
+ return FAIL
+ if data[i].classname == "LXC_DiskResourceAllocationSettingData" \
+ and data[i]['InstanceID'] == rasd["DiskPool"]:
+ logger.info("DiskPool InstanceID match")
+ return PASS
+ elif i == len(data) and data[i]['InstanceID'] != rasd["DiskPool"]:
+ logger.error("InstanceID Mismatch, expect %s" % \
+ (rasd['DiskPool'], data[i]['InstanceID']))
+ return FAIL
+ if data[i].classname == "LXC_NetResourceAllocationSettingData" \
+ and data[i]['InstanceID'] == rasd["NetworkPool"]:
+ logger.info("NetworkPool InstanceID match")
+ return PASS
+ elif i == len(data) and data[i]['InstanceID'] != rasd["NetworkPool"]:
+ logger.error("InstanceID Mismatch, expect %s" % \
+ (rasd['NetworkPool'], data[i]['InstanceID']))
+ return FAIL
+
@do_main(sup_types)
def main():
options = main.options
status = PASS
- try:
- key_list = { 'InstanceID' : "MemoryPool/0" }
- mempool = enumclass.getInstance(options.ip,
- "MemoryPool",
- key_list,
- options.virt)
- except Exception:
- logger.error(Globals.CIM_ERROR_GETINSTANCE % "MemoryPool")
- return FAIL
+
+ status, vsxml, test_disk = setup_env(options.ip, options.virt)
+ if status != PASS:
+ return status
+
+ status, diskid = create_diskpool_conf(options.ip, options.virt)
+ if status != PASS:
+ cleanup_restore(options.ip, options.virt)
+ vsxml.undefine(options.ip)
+ return status
- try:
- key_list = { 'InstanceID' : "ProcessorPool/0" }
- procpool = enumclass.getInstance(options.ip,
- "ProcessorPool",
- key_list,
- options.virt)
- except Exception:
- logger.error(Globals.CIM_ERROR_GETINSTANCE % "ProcessorPool")
- return FAIL
-
- try:
- memdata = assoc.AssociatorNames(options.ip, "ResourceAllocationFromPool",
- "MemoryPool",
- options.virt,
- InstanceID = mempool.InstanceID)
- except Exception:
- logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % mempool.InstanceID)
- status = FAIL
-
- for i in range(len(memdata)):
- if memdata[i].classname != get_typed_class(options.virt, "MemResourceAllocationSettingData"):
- logger.error("ERROR: Association result error")
- status = FAIL
-
- try:
- procdata = assoc.AssociatorNames(options.ip, "ResourceAllocationFromPool",
- "ProcessorPool",
- options.virt,
- InstanceID = procpool.InstanceID)
- except Exception:
- logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % procpool.InstanceID)
- status = FAIL
-
- for j in range(len(procdata)):
- if procdata[j].classname != get_typed_class(options.virt, "ProcResourceAllocationSettingData"):
- logger.error("ERROR: Association result error")
- status = FAIL
+ status, test_network = create_netpool_conf(options.ip, options.virt)
+ if status != PASS:
+ cleanup_restore(options.ip, options.virt)
+ vsxml.undefine(options.ip)
+ return status
+
+ if options.virt == 'LXC':
+ pool = { "MemoryPool" : {'InstanceID' : "MemoryPool/0"} }
+ rasd = { "MemoryPool" : "%s/mem" % test_dom }
+ else:
+ pool = { "MemoryPool" : {'InstanceID' : "MemoryPool/0"},
+ "ProcessorPool" : {'InstanceID' : "ProcessorPool/0"},
+ "DiskPool" : {'InstanceID' : diskid},
+ "NetworkPool" : {'InstanceID' : "NetworkPool/%s" \
+ % test_network }}
+ rasd = { "MemoryPool" : "%s/mem" % test_dom,
+ "ProcessorPool" : "%s/proc" % test_dom,
+ "DiskPool" : "%s/%s" %(test_dom, test_disk),
+ "NetworkPool" : "%s/%s" % (test_dom, test_mac) }
+ for k, v in pool.iteritems():
+ status, inst = get_instance(options.ip, k, v, options.virt)
+ if status != PASS:
+ cleanup_restore(options.ip, options.virt)
+ vsxml.undefine(options.ip)
+ return status
+
+ status = verify_rasd(options.ip, "ResourceAllocationFromPool",
+ k, options.virt, inst.InstanceID,
+ rasd)
+ if status != PASS:
+ cleanup_restore(options.ip, options.virt)
+ vsxml.undefine(options.ip)
+ return status
+
+
+ cleanup_restore(options.ip, options.virt)
+ vsxml.undefine(options.ip)
return status
16 years, 6 months
[PATCH] [TEST] A few migration related fixes
by Kaitlin Rupert
# HG changeset patch
# User Kaitlin Rupert <karupert(a)us.ibm.com>
# Date 1214423985 25200
# Node ID ef376bdad2e186904b15cda1afd230d8056e8015
# Parent 5c90c9a2fd567d7cf592932db189afbc8a4756f8
[TEST] A few migration related fixes.
Fixes:
-Remove destroy_and_undefine_domain() call from migrate_guest_to_host(). This call takes the domain name as a parameter, but migrate_guest_to_host() doesn't take the domain name So calling destroy_and_undefine_domain() resulted in an error.
-Add a hack to get_typed_class() so it supports Virt_MigrationJob (which doesn't fit the typical <virt>_<basename> pattern.
Signed-off-by: Kaitlin Rupert <karupert(a)us.ibm.com>
diff -r 5c90c9a2fd56 -r ef376bdad2e1 suites/libvirt-cim/cimtest/VirtualSystemMigrationService/01_migratable_host.py
--- a/suites/libvirt-cim/cimtest/VirtualSystemMigrationService/01_migratable_host.py Thu Jun 19 10:35:59 2008 -0700
+++ b/suites/libvirt-cim/cimtest/VirtualSystemMigrationService/01_migratable_host.py Wed Jun 25 12:59:45 2008 -0700
@@ -90,10 +90,10 @@
return FAIL
status, ret = migrate_guest_to_host(service, cs_ref, target_ip)
-
if status == FAIL:
logger.error("MigrateVirtualSystemToHost: unexpected list length %s"
% len(ret))
+ destroy_and_undefine_domain(dom_name, options.ip)
return status
elif len(ret) == 2:
id = ret[1]['Job'].keybindings['InstanceID']
@@ -102,7 +102,7 @@
guest_name, local_migrate)
- destroy_and_undefine_domain(dom_name, options.ip)
+ destroy_and_undefine_domain(dom_name, options.ip)
return status
diff -r 5c90c9a2fd56 -r ef376bdad2e1 suites/libvirt-cim/cimtest/VirtualSystemMigrationService/02_host_migrate_type.py
--- a/suites/libvirt-cim/cimtest/VirtualSystemMigrationService/02_host_migrate_type.py Thu Jun 19 10:35:59 2008 -0700
+++ b/suites/libvirt-cim/cimtest/VirtualSystemMigrationService/02_host_migrate_type.py Wed Jun 25 12:59:45 2008 -0700
@@ -145,12 +145,11 @@
logger.info("Migrating guest with the following options:")
logger.info("%s" % item)
- status, ret = migrate_guest_to_host(service, cs_ref, target_ip,
- item)
-
+ status, ret = migrate_guest_to_host(service, cs_ref, target_ip, item)
if status == FAIL:
logger.error("MigrateVirtualSystemToHost: unexpected list length %s"
% len(ret))
+ destroy_and_undefine_domain(dom_name, options.ip)
return status
elif len(ret) == 2:
id = ret[1]['Job'].keybindings['InstanceID']
diff -r 5c90c9a2fd56 -r ef376bdad2e1 suites/libvirt-cim/lib/XenKvmLib/classes.py
--- a/suites/libvirt-cim/lib/XenKvmLib/classes.py Thu Jun 19 10:35:59 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/classes.py Wed Jun 25 12:59:45 2008 -0700
@@ -23,7 +23,8 @@
def get_typed_class(virt, basename):
if virt not in virt_types:
- raise ValueError('Invalid class type')
+ if virt != "Virt" and basename != "MigrationJob":
+ raise ValueError('Invalid class type')
if basename == None or basename == '':
raise ValueError('Invalide class base name')
diff -r 5c90c9a2fd56 -r ef376bdad2e1 suites/libvirt-cim/lib/XenKvmLib/vsmigrations.py
--- a/suites/libvirt-cim/lib/XenKvmLib/vsmigrations.py Thu Jun 19 10:35:59 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/vsmigrations.py Wed Jun 25 12:59:45 2008 -0700
@@ -95,10 +95,10 @@
except Exception, details:
logger.error("Error invoke method 'MigrateVirtualSystemToHost\'.")
logger.error("%s", details)
+ return FAIL, ret
if len(ret) == 0:
logger.error("MigrateVirtualSystemToHost returns an empty list")
- destroy_and_undefine_domain(test_dom, ip)
return FAIL, ret
return PASS, ret
16 years, 6 months