Cimtest Report for KVM on Fedora 9 (2008/08/11)
by Guo Lian Yun
Distro : Fedora 9
Kernel : kernel-2.6.25-0.121.rc5.git4.fc9.x86_64
Libvirt : libvirt-0.4.4
CIMOM : sblim-sfcb-1.3.0
PyWBEM : pywbem-0.6
CIM Schema : cimv216Experimental
LibCMPIutil : 83
LibVirtCIM : 665
CIMTEST : 289
=========================================================
PASS : 118
FAILED : 6
XFAIL : 3
SKIP : 6
Total : 133
=======================FAILED==============================
ComputerSystemIndication - 01_created_indication.py: FAIL
Got indication: KVM_ComputerSystemCreatedIndication
Got indication: KVM_ComputerSystemCreatedIndication
Here is the debug info on sfcb:
Problem processing indication to http://localhost:8008. sfcb rc: 4 CURL
error: 52 (Server returned nothing (no headers, no data))
Problem processing indication to http://localhost:8007. sfcb rc: 4 CURL
error: 52 (Server returned nothing (no headers, no data))
Problem processing indication to http://localhost:8006. sfcb rc: 4 CURL
error: 52 (Server returned nothing (no headers, no data))
ResourcePoolConfigurationService - 03_CreateResourcePool.py: FAIL
ERROR - Unexpected rc code 7 and description The requested operation is
not supported
InvokeMethod(CreateResourcePool): The requested operation is not supported
ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: FAIL
ERROR - Unexpected rc code 7 and description The requested operation is
not supported
InvokeMethod(CreateChildResourcePool): The requested operation is not
supported
ResourcePoolConfigurationService - 06_RemoveResourcesFromResourcePool.py:
FAIL
ERROR - Unexpected rc code 7 and description The requested operation is
not supported
InvokeMethod(RemoveResourcesFromResourcePool): The requested operation is
not supported
ResourcePoolConfigurationService - 07_DeleteResourcePool.py: FAIL
ERROR - Unexpected rc code 7 and description The requested operation is
not supported
InvokeMethod(DeleteResourcePool): The requested operation is not supported
VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
ERROR - destroy_fail>> noname: Error executing DestroySystem
ERROR - (1, u'Unable to retrieve domain name.')
ERROR - destroy_fail>> nonexistent: Error executing DestroySystem
ERROR - (1, u'Failed to find domain')
InvokeMethod(DestroySystem): Unable to retrieve domain name.
InvokeMethod(DestroySystem): Failed to find domain
=======================CIMTEST REPORT=======================
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: PASS
ComputerSystem - 04_defineStartVS.py: PASS
ComputerSystem - 05_activate_defined_start.py: PASS
ComputerSystem - 06_paused_active_suspend.py: PASS
ComputerSystem - 22_define_suspend.py: PASS
ComputerSystem - 23_suspend_suspend.py: PASS
ComputerSystem - 27_define_suspend_errs.py: PASS
ComputerSystem - 32_start_reboot.py: XFAIL Bug: 00005
InvokeMethod(RequestStateChange): Domain Operation Failed
Bug:<00005>
ComputerSystem - 33_suspend_reboot.py: XFAIL Bug: 00005
InvokeMethod(RequestStateChange): Domain Operation Failed
Bug:<00005>
ComputerSystem - 35_start_reset.py: PASS
ComputerSystem - 40_RSC_start.py: PASS
ComputerSystem - 41_cs_to_settingdefinestate.py: SKIP
ComputerSystem - 42_cs_gi_errs.py: PASS
ComputerSystemIndication - 01_created_indication.py: FAIL
Got indication: KVM_ComputerSystemCreatedIndication
Got indication: KVM_ComputerSystemCreatedIndication
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: PASS
ElementConforms - 02_reverse.py: PASS
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: 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: PASS
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: PASS
Memory - 01_memory.py: PASS
Memory - 02_defgetmem.py: PASS
Memory - 03_mem_gi_errs.py: PASS
NetworkPort - 01_netport.py: PASS
NetworkPort - 02_np_gi_errors.py: PASS
NetworkPort - 03_user_netport.py: PASS
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: SKIP
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
RASD - 04_disk_rasd_size.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: FAIL
InvokeMethod(CreateResourcePool): The requested operation is not supported
ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: FAIL
InvokeMethod(CreateChildResourcePool): The requested operation is not
supported
ResourcePoolConfigurationService - 05_AddResourcesToResourcePool.py: PASS
ResourcePoolConfigurationService - 06_RemoveResourcesFromResourcePool.py:
FAIL
InvokeMethod(RemoveResourcesFromResourcePool): The requested operation is
not supported
ResourcePoolConfigurationService - 07_DeleteResourcePool.py: FAIL
InvokeMethod(DeleteResourcePool): The requested operation is not supported
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: XFAIL Bug: Test error:
returned XFAIL without a valid bug string.
Bug:<>
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: PASS
VirtualSystemManagementCapabilities - 01_enum.py: PASS
VirtualSystemManagementCapabilities - 02_vsmcap_gi_errs.py: PASS
VirtualSystemManagementService - 01_definesystem_name.py: PASS
VirtualSystemManagementService - 02_destroysystem.py: PASS
VirtualSystemManagementService - 03_definesystem_ess.py: PASS
VirtualSystemManagementService - 04_definesystem_ers.py: PASS
VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
InvokeMethod(DestroySystem): Unable to retrieve domain name.
InvokeMethod(DestroySystem): Failed to find domain
VirtualSystemManagementService - 06_addresource.py: PASS
VirtualSystemManagementService - 07_addresource_neg.py: PASS
VirtualSystemManagementService - 08_modifyresource.py: PASS
VirtualSystemManagementService - 09_procrasd_persist.py: PASS
VirtualSystemManagementService - 10_hv_version.py: PASS
VirtualSystemManagementService - 11_define_memrasdunits.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: PASS
VirtualSystemSettingDataComponent - 02_reverse.py: PASS
VirtualSystemSettingDataComponent - 03_vssdc_fwd_errs.py: PASS
VirtualSystemSettingDataComponent - 04_vssdc_rev_errs.py: PASS
VirtualSystemSnapshotService - 01_enum.py: PASS
VirtualSystemSnapshotServiceCapabilities - 02_vs_sservicecap_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-60922403
Building 10, 399 Ke Yuan Rd, Pudong Shanghai, 201203
16 years, 4 months
[PATCH] [TEST] #2 Adding KVM and XenFV support to 41_cs_to_settingdefinestate.py
by Deepti B. Kalakeri
# HG changeset patch
# User Deepti B. Kalakeri <deeptik(a)linux.vnet.ibm.com>
# Date 1218520092 25200
# Node ID 20f581053105b42a48b5a13c09d0e193aa953051
# Parent 98f69895a4dcc3d314d41611cf67f51329e15a44
[TEST] #2 Adding KVM and XenFV support to 41_cs_to_settingdefinestate.py.
Changes:
--------
Patch 2:
-------
1) Modified the comments to make it more generic to Virt types.
Patch 1:
--------
1) Added support for XenFV, KVM.
2) Removed get_inst_from_list().
3) Used poll_for_state_change to get the CS instance and also verify the enabled state is set to 2
4) Also verifying that the RequestedState is set to 0 when the VS is created.
Tested with Xen, XenFV and KVM on latest sources.
Signed-off-by: Deepti B. Kalakeri <deeptik(a)linux.vnet.ibm.com>
diff -r 98f69895a4dc -r 20f581053105 suites/libvirt-cim/cimtest/ComputerSystem/41_cs_to_settingdefinestate.py
--- a/suites/libvirt-cim/cimtest/ComputerSystem/41_cs_to_settingdefinestate.py Fri Aug 08 11:01:29 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ComputerSystem/41_cs_to_settingdefinestate.py Mon Aug 11 22:48:12 2008 -0700
@@ -37,9 +37,9 @@
# Steps:
# ------
# 1) Create a guest domain.
-# 2) Enumerate ComputerSystem.
-# 3) Select the guest domain from the output and create info list for the guest domain
-# to be used later for comparison.
+# 2) Enumerate ComputerSystem and Select the guest domain from the output
+# and and verify the EnabledState is 2.
+# 3) Create info list for the guest domain to be used later for comparison.
# 4) Get the various devices allocated to the domain by using the SystemDevice
# association and giving the ComputerSystem output from the previous enumeration
# as inputs to the association.
@@ -70,26 +70,31 @@ from XenKvmLib import rasd
from XenKvmLib import rasd
from XenKvmLib.rasd import verify_procrasd_values, verify_netrasd_values, \
verify_diskrasd_values, verify_memrasd_values, rasd_init_list
+from XenKvmLib.common_util import poll_for_state_change
+from XenKvmLib.classes import get_typed_class
-sup_types = ['Xen']
+sup_types = ['Xen', 'XenFV', 'KVM']
test_dom = "CrossClass_GuestDom"
test_vcpus = 1
test_mem = 128
test_mac = "00:11:22:33:44:aa"
-test_disk = "xvda"
def vssd_init_list(virt):
"""
Creating the lists that will be used for comparisons.
"""
+ if virt == 'XenFV':
+ virt = 'Xen'
+
vssd_values = {
- 'Caption' : "Virtual System", \
- 'InstanceID' : '%s:%s' % (virt, test_dom), \
- 'ElementName' : test_dom, \
- 'VirtualSystemIdentifier' : test_dom, \
- 'VirtualSystemType' : virt, \
- 'Classname' : "Xen_VirtualSystemSettingData"
+ 'Caption' : "Virtual System",
+ 'InstanceID' : '%s:%s' % (virt, test_dom),
+ 'ElementName' : test_dom,
+ 'VirtualSystemIdentifier' : test_dom,
+ 'VirtualSystemType' : virt,
+ 'Classname' : get_typed_class(virt,
+ "VirtualSystemSettingData")
}
return vssd_values
@@ -99,19 +104,20 @@ def cs_init_list(cs_dom):
Creating the lists that will be used for comparisons.
"""
cs_values = {
- 'Caption' : cs_dom.Caption, \
- 'EnabledState' : cs_dom.EnabledState, \
- 'RequestedState' : cs_dom.RequestedState, \
- 'CreationClassName' : cs_dom.CreationClassName, \
+ 'Caption' : cs_dom.Caption,
+ 'EnabledState' : cs_dom.EnabledState,
+ 'RequestedState' : cs_dom.RequestedState,
+ 'CreationClassName' : cs_dom.CreationClassName,
'Name' : cs_dom.Name
}
return cs_values
-def setup_env(server, virt):
+def setup_env(server, virt, test_disk):
vsxml_info = None
status = PASS
destroy_and_undefine_all(server)
virt_xml = get_class(virt)
+
vsxml_info = virt_xml(test_dom, mem = test_mem,
vcpus=test_vcpus,
mac = test_mac,
@@ -137,23 +143,7 @@ def vssd_sds_err( an, fieldname, ret_val
logger.error(err)
logger.error(detail)
-def get_inst_from_list(server, vsxml, cn, cs_list, exp_val):
- status = PASS
- ret = -1
- inst = None
- for inst in cs_list:
- if inst.Name == exp_val:
- ret = PASS
- break
-
- if ret != PASS:
- logger.error("%s with %s was not returned" % (cn, exp_val))
- vsxml.destroy(server)
- status = FAIL
-
- return status, inst
-
-def get_associatornames_info(server, vsxml, cn, an, qcn, name):
+def get_associatornames_info(server, virt, vsxml, cn, an, qcn, name):
status = PASS
assoc_info = []
try:
@@ -161,7 +151,8 @@ def get_associatornames_info(server, vsx
an,
cn,
CreationClassName=cn,
- Name = name)
+ Name = name,
+ virt=virt)
if len(assoc_info) < 1:
logger.error("%s returned %i %s objects" % (an, len(assoc_info), qcn))
status = FAIL
@@ -174,14 +165,15 @@ def get_associatornames_info(server, vsx
return status, assoc_info
-def get_associators_info(server, vsxml, cn, an, qcn, instid):
+def get_associators_info(server, virt, vsxml, cn, an, qcn, instid):
status = PASS
assoc_info = []
try:
assoc_info = Associators(server,
an,
cn,
- InstanceID = instid)
+ InstanceID = instid,
+ virt=virt)
if len(assoc_info) < 1:
logger.error("%s returned %i %s objects" %
(an, len(assoc_info), qcn))
@@ -208,31 +200,39 @@ def get_SDS_verify_RASD_build_vssdc_inpu
status = PASS
in_setting_define_state = {}
in_vssdc = {}
+ prasd = get_typed_class(virt, 'ProcResourceAllocationSettingData')
+ mrasd = get_typed_class(virt, 'MemResourceAllocationSettingData')
+ nrasd = get_typed_class(virt, 'NetResourceAllocationSettingData')
+ drasd = get_typed_class(virt, 'DiskResourceAllocationSettingData')
+
try:
-# Building the input for Xen_SettingsDefineState association.
+
+ # Building the input for SettingsDefineState association.
for i in range(len(sd_assoc_info)):
if sd_assoc_info[i]['SystemName'] == test_dom:
classname_keyvalue = sd_assoc_info[i]['CreationClassName']
deviceid = sd_assoc_info[i]['DeviceID']
in_setting_define_state[classname_keyvalue] = deviceid
-# Expect the Xen_SystemDevice to return 4 logical device records.
-# one each for memory, network, disk and processor and hence 4.
-# and hence expect the in_setting_define_state to contain just 4 entries.
- an = "Xen_SystemDevice"
+
+ # Expect the SystemDevice to return 4 logical device records.
+ # one each for memory, network, disk and processor and hence 4.
+ # and hence expect the in_setting_define_state to contain just 4 entries.
+ an = get_typed_class(virt, "SystemDevice")
qcn = "Logical Devices"
exp_len = 4
if check_len(an, in_setting_define_state, qcn, exp_len) != PASS:
return FAIL, in_setting_define_state
-# Get the rasd values that will be used to compare with the Xen_SettingsDefineState
-# output.
+
+ # Get the rasd values that will be used to compare with the SettingsDefineState
+ # output.
status, rasd_values, in_list = rasd_init_list(vsxml, virt, test_disk,
test_dom, test_mac,
test_mem)
if status != PASS:
- return status
-
- sccn = "Xen_ComputerSystem"
- an = "Xen_SettingsDefineState"
+ return status, rasd_values
+
+ sccn = get_typed_class(virt,"ComputerSystem")
+ an = get_typed_class(virt,"SettingsDefineState")
for cn, devid in sorted(in_setting_define_state.items()):
assoc_info = Associators(server,
an,
@@ -240,10 +240,11 @@ def get_SDS_verify_RASD_build_vssdc_inpu
DeviceID = devid,
CreationClassName = cn,
SystemName = test_dom,
- SystemCreationClassName = sccn)
+ SystemCreationClassName = sccn,
+ virt=virt)
-# we expect only one RASD record to be returned for each device that is used to
-# query with the Xen_SettingsDefineState association.
+ # we expect only one RASD record to be returned for each device that is used to
+ # query with the SettingsDefineState association.
if len(assoc_info) != 1:
logger.error("%s returned %i %s objects" % (an, len(assoc_info), cn))
status = FAIL
@@ -251,13 +252,13 @@ def get_SDS_verify_RASD_build_vssdc_inpu
index = (len(assoc_info) - 1)
rasd = rasd_values[cn]
CCName = assoc_info[index].classname
- if CCName == 'Xen_ProcResourceAllocationSettingData':
+ if CCName == prasd:
status = verify_procrasd_values(assoc_info[index], rasd)
- elif CCName == 'Xen_NetResourceAllocationSettingData':
+ elif CCName == nrasd:
status = verify_netrasd_values(assoc_info[index], rasd)
- elif CCName == 'Xen_DiskResourceAllocationSettingData':
+ elif CCName == drasd:
status = verify_diskrasd_values(assoc_info[index], rasd)
- elif CCName == 'Xen_MemResourceAllocationSettingData':
+ elif CCName == mrasd:
status = verify_memrasd_values(assoc_info[index], rasd)
else:
status = FAIL
@@ -283,10 +284,11 @@ def verify_fields(an, field_name, vssd_c
def verify_VSSD_values(assoc_info, vssd_values, an, qcn):
-# We expect that Xen_VirtualSystemSettingDataComponent returns only one
-# Xen_VirtualSystemSettingData object when queried with disk, processor,
-# network and memory rasd's and all of them return the same output.
+ # We expect that VirtualSystemSettingDataComponent returns only one
+ # VirtualSystemSettingData object when queried with disk, processor,
+ # network and memory rasd's and all of them return the same output.
exp_len = 1
+
if check_len(an, assoc_info, qcn, exp_len) != PASS:
return FAIL
vssd_assoc = assoc_info[0]
@@ -301,13 +303,14 @@ def verify_VSSD_values(assoc_info, vssd_
if verify_fields(an, 'VirtualSystemType', vssd_assoc, vssd_values) != PASS:
return FAIL
if vssd_assoc.classname != vssd_values['Classname']:
- vssd_sds_err(an, 'Classname', vssd_assoc.classname, \
- vssd_values['Classname'])
+ vssd_sds_err(an, 'Classname', vssd_assoc.classname,
+ vssd_values['Classname'])
return FAIL
return PASS
def verify_CS_values(assoc_info, cs_values, an, qcn):
exp_len = 1
+
if check_len(an, assoc_info, qcn, exp_len) != PASS:
return FAIL
cs_assoc = assoc_info[0]
@@ -327,60 +330,56 @@ def main():
def main():
server = main.options.ip
virt = main.options.virt
- status, vsxml = setup_env(server, virt)
+ if virt == 'Xen':
+ test_disk = "xvda"
+ else:
+ test_disk = "hda"
+
+ status, vsxml = setup_env(server, virt, test_disk)
if status != PASS:
return status
- cs_enum = computersystem.enumerate(server)
- if len(cs_enum) == 0:
+ status, cs_dom = poll_for_state_change(server, virt, test_dom, 2,
+ timeout=10)
+ if status != PASS and cs_dom.RequestedState != 0:
vsxml.destroy(server)
- return status
- cn = cs_enum[0].CreationClassName
- status, cs_dom = get_inst_from_list(server,
- vsxml,
- cn,
- cs_enum,
- test_dom)
- if status != PASS:
- vsxml.destroy(server)
- return status
+ return FAIL
-# Creating the cs info list which will be used later for comparison.
+ # Creating the cs info list which will be used later for comparison.
cs_values = cs_init_list(cs_dom)
- if cs_values['EnabledState'] != 2 :
- logger.error("Improper EnabledState value set for domain %s", test_dom)
- logger.error("Should have been 2 instead of %s", cs_values['EnabledState'])
- vsxml.destroy(server)
- return FAIL
cn = cs_dom.CreationClassName
- an = 'Xen_SystemDevice'
+ an = get_typed_class(virt, 'SystemDevice')
qcn = 'Logical Devices'
name = test_dom
- status, sd_assoc_info = get_associatornames_info(server, vsxml,
+ status, sd_assoc_info = get_associatornames_info(server, virt, vsxml,
cn, an, qcn, name)
if status != PASS or len(sd_assoc_info) == 0:
return status
+
status, in_vssdc_list = get_SDS_verify_RASD_build_vssdc_input(server, virt,
vsxml, test_disk,
sd_assoc_info)
if status != PASS or len(in_vssdc_list) == 0 :
vsxml.destroy(server)
return status
-# Verifying that the in_vssdc_list contains 4 entries one each for mem rasd,
-# network rasd, processor rasd and disk rasd.
+
+ # Verifying that the in_vssdc_list contains 4 entries one each for mem rasd,
+ # network rasd, processor rasd and disk rasd.
exp_len = 4
if check_len(an, in_vssdc_list, qcn, exp_len) != PASS:
vsxml.destroy(server)
return FAIL
-# Get the vssd values which will be used for verifying the Xen_VirtualSystemSettingData
-# output from the Xen_VirtualSystemSettingDataComponent results.
+
+ # Get the vssd values which will be used for verifying the
+ # VirtualSystemSettingData output from the
+ # VirtualSystemSettingDataComponent results.
vssd_values = vssd_init_list(virt)
- an = 'Xen_VirtualSystemSettingDataComponent'
- qcn = 'Xen_VirtualSystemSettingData'
+ an = get_typed_class(virt, 'VirtualSystemSettingDataComponent')
+ qcn = get_typed_class(virt, 'VirtualSystemSettingData')
for cn, instid in sorted((in_vssdc_list.items())):
- status, vssd_assoc_info = get_associators_info(server, vsxml, cn, an, qcn,
- instid)
+ status, vssd_assoc_info = get_associators_info(server, virt, vsxml, cn,
+ an, qcn, instid)
if status != PASS or len(vssd_assoc_info) == 0:
break
status = verify_VSSD_values(vssd_assoc_info, vssd_values, an, qcn)
@@ -389,18 +388,22 @@ def main():
if status != PASS:
vsxml.destroy(server)
return status
-# Since the Xen_VirtualSystemSettingDataComponent returns similar output when queried with
-# every RASD, we are taking the output of the last associtaion query as inputs for
-# querying Xen_SettingsDefineState.
+
+ # Since the VirtualSystemSettingDataComponent returns similar
+ # output when queried with every RASD, we are taking the output of
+ # the last associtaion query as inputs for
+ # querying SettingsDefineState.
cn = vssd_assoc_info[0].classname
- an = 'Xen_SettingsDefineState'
- qcn = 'Xen_ComputerSystem'
+ an = get_typed_class(virt, 'SettingsDefineState')
+ qcn = get_typed_class(virt, 'ComputerSystem')
instid = vssd_assoc_info[0]['InstanceID']
- status, cs_assoc_info = get_associators_info(server, vsxml, cn, an, qcn, instid)
+ status, cs_assoc_info = get_associators_info(server, virt, vsxml, cn,
+ an, qcn, instid)
if status != PASS or len(cs_assoc_info) == 0:
return status
-# verify the results of Xen_SettingsDefineState with the cs_values list that was
-# built using the output of the enumeration on Xen_ComputerSystem.
+
+ # verify the results of SettingsDefineState with the cs_values list that was
+ # built using the output of the enumeration on ComputerSystem.
status = verify_CS_values(cs_assoc_info, cs_values, an, qcn)
vsxml.destroy(server)
return status
16 years, 4 months
CimTest Report for KVM on F9 06-08-2008
by Deepti B Kalakeri
========================================================================
CIM Test Report for KVM on F9 with latest libvirt-cim and libcmpiutil
========================================================================
Distro : Fedora 9 Beta
Kernel : 2.6.25-0.121.rc5.git4.fc9
Libvirt : libvirt-0.4.2-1.fc9.x86_64
CIMOM : pegasus
PyWBEM : pywbem-0.6
CIM Schema : cimv216Experimental
LibCMPIutil : 83
LibVirtCIM : 660
CIMTEST : 282
=======================================================
PASS : 120
FAIL : 4
XFAIL : 2
SKIP : 7
-----------------
Total : 133
=======================================================
Here is one of the tc that failed:
ComputerSystemIndication - 01_created_indication.py: FAIL
Need to verify this.
ResourceAllocationFromPool - 01_forward.py: FAIL
ResourceAllocationFromPool - 02_reverse.py: FAIL
Fix for this is submitted by Daisy.
This tc passed when run manually.
HostSystem - 04_hs_to_EAPF.py: FAIL
Please find the complete report attached with the mail.
Thanks and Regards,
Deepti.
Starting test suite: libvirt-cim
Cleaned log files.
Testing KVM hypervisor
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: PASS
ComputerSystem - 04_defineStartVS.py: PASS
ComputerSystem - 05_activate_defined_start.py: PASS
ComputerSystem - 06_paused_active_suspend.py: PASS
ComputerSystem - 22_define_suspend.py: PASS
ComputerSystem - 23_suspend_suspend.py: PASS
ComputerSystem - 27_define_suspend_errs.py: SKIP
libvir: error : this function is not supported by the hypervisor: virDomainReboot
ComputerSystem - 32_start_reboot.py: XFAIL Bug: 00002
ERROR - Exception: (1, u'CIM_ERR_FAILED: Domain Operation Failed')
ERROR - Unable to 'Reboot' dom 'cs_test_domain' using RequestedStateChange()
InvokeMethod(RequestStateChange): CIM_ERR_FAILED: Domain Operation Failed
Bug:<00002>
ComputerSystem - 33_suspend_reboot.py: XFAIL Bug: 00002
ERROR - Exception: (1, u'CIM_ERR_FAILED: Domain not running')
ERROR - Unable to 'Reboot' dom 'test_domain' using RequestedStateChange()
InvokeMethod(RequestStateChange): CIM_ERR_FAILED: Domain not running
Bug:<00002>
ComputerSystem - 35_start_reset.py: PASS
ComputerSystem - 40_RSC_start.py: PASS
ComputerSystem - 41_cs_to_settingdefinestate.py: SKIP
ComputerSystem - 42_cs_gi_errs.py: PASS
ComputerSystemIndication - 01_created_indication.py: FAIL
ERROR - Waited too long for indication
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
libvir: QEMU error : Domain not found
libvir: Domain error : invalid domain pointer in virDomainFree
ElementCapabilities - 03_forward_errs.py: PASS
libvir: QEMU error : Domain not found
ElementCapabilities - 04_reverse_errs.py: PASS
ElementCapabilities - 05_hostsystem_cap.py: PASS
ElementConforms - 01_forward.py: PASS
ElementConforms - 02_reverse.py: PASS
ElementConforms - 03_ectp_fwd_errs.py: PASS
libvir: QEMU error : Domain not found
libvir: Domain error : invalid domain pointer in virDomainFree
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: PASS
libvir: QEMU error : Domain not found
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 - KVM_ElementAllocatedFromPool returned 0 Logical Devices objects
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: PASS
Memory - 01_memory.py: PASS
Memory - 02_defgetmem.py: PASS
Memory - 03_mem_gi_errs.py: PASS
NetworkPort - 01_netport.py: PASS
NetworkPort - 02_np_gi_errors.py: PASS
NetworkPort - 03_user_netport.py: PASS
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: SKIP
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
RASD - 04_disk_rasd_size.py: PASS
ReferencedProfile - 01_verify_refprof.py: PASS
ReferencedProfile - 02_refprofile_errs.py: PASS
ResourceAllocationFromPool - 01_forward.py: FAIL
ERROR - Return NULL, expect at least one instance
ResourceAllocationFromPool - 02_reverse.py: FAIL
ERROR - InstanceID Mismatch
ERROR - Returned NetworkPool/default-net14 instead of NetworkPool/default-net94
ResourceAllocationFromPool - 03_forward_errs.py: PASS
ResourceAllocationFromPool - 04_reverse_errs.py: PASS
libvir: Network error : invalid network pointer in virNetworkFree
libvir: QEMU error : Network not found: no network with matching name
libvir: Network error : invalid network pointer in virNetworkFree
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: SKIP
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: PASS
error line 1: syntax error in 'wrong'
VirtualSystemManagementService - 03_definesystem_ess.py: PASS
error line 1: syntax error in 'wrong'
VirtualSystemManagementService - 04_definesystem_ers.py: PASS
libvir: Domain error : invalid domain pointer in virDomainFree
libvir: QEMU error : Domain not found
libvir: Domain error : invalid domain pointer in virDomainFree
VirtualSystemManagementService - 05_destroysystem_neg.py: PASS
VirtualSystemManagementService - 06_addresource.py: PASS
error line 1: syntax error in 'ever'
VirtualSystemManagementService - 07_addresource_neg.py: PASS
VirtualSystemManagementService - 08_modifyresource.py: PASS
VirtualSystemManagementService - 09_procrasd_persist.py: PASS
VirtualSystemManagementService - 10_hv_version.py: PASS
VirtualSystemManagementService - 11_define_memrasdunits.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: PASS
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, 4 months
[PATCH] [TEST] Adding KVM and XenFV support to 41_cs_to_settingdefinestate.py
by Deepti B. Kalakeri
# HG changeset patch
# User Deepti B. Kalakeri <deeptik(a)linux.vnet.ibm.com>
# Date 1218440570 25200
# Node ID 0b5dea4e96cd0e128c0da6019cc545964deeba49
# Parent 8ac224c6840c79e73c54b7c59647f5be5117d29e
[TEST] Adding KVM and XenFV support to 41_cs_to_settingdefinestate.py.
1) Added support for XenFV, KVM.
2) Removed get_inst_from_list().
3) Used poll_for_state_change to get the CS instance and also verify the enabled state is set to 2
4) Also verifying that the RequestedState is set to 0 when the VS is created.
Tested with Xen, XenFV and KVM on latest sources.
Signed-off-by: Deepti B. Kalakeri <deeptik(a)linux.vnet.ibm.com>
diff -r 8ac224c6840c -r 0b5dea4e96cd suites/libvirt-cim/cimtest/ComputerSystem/41_cs_to_settingdefinestate.py
--- a/suites/libvirt-cim/cimtest/ComputerSystem/41_cs_to_settingdefinestate.py Thu Aug 07 23:45:42 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ComputerSystem/41_cs_to_settingdefinestate.py Mon Aug 11 00:42:50 2008 -0700
@@ -37,9 +37,9 @@
# Steps:
# ------
# 1) Create a guest domain.
-# 2) Enumerate ComputerSystem.
-# 3) Select the guest domain from the output and create info list for the guest domain
-# to be used later for comparison.
+# 2) Enumerate ComputerSystem and Select the guest domain from the output
+# and and verify the EnabledState is 2.
+# 3) Create info list for the guest domain to be used later for comparison.
# 4) Get the various devices allocated to the domain by using the SystemDevice
# association and giving the ComputerSystem output from the previous enumeration
# as inputs to the association.
@@ -70,26 +70,31 @@ from XenKvmLib import rasd
from XenKvmLib import rasd
from XenKvmLib.rasd import verify_procrasd_values, verify_netrasd_values, \
verify_diskrasd_values, verify_memrasd_values, rasd_init_list
+from XenKvmLib.common_util import poll_for_state_change
+from XenKvmLib.classes import get_typed_class
-sup_types = ['Xen']
+sup_types = ['Xen', 'XenFV', 'KVM']
test_dom = "CrossClass_GuestDom"
test_vcpus = 1
test_mem = 128
test_mac = "00:11:22:33:44:aa"
-test_disk = "xvda"
def vssd_init_list(virt):
"""
Creating the lists that will be used for comparisons.
"""
+ if virt == 'XenFV':
+ virt = 'Xen'
+
vssd_values = {
- 'Caption' : "Virtual System", \
- 'InstanceID' : '%s:%s' % (virt, test_dom), \
- 'ElementName' : test_dom, \
- 'VirtualSystemIdentifier' : test_dom, \
- 'VirtualSystemType' : virt, \
- 'Classname' : "Xen_VirtualSystemSettingData"
+ 'Caption' : "Virtual System",
+ 'InstanceID' : '%s:%s' % (virt, test_dom),
+ 'ElementName' : test_dom,
+ 'VirtualSystemIdentifier' : test_dom,
+ 'VirtualSystemType' : virt,
+ 'Classname' : get_typed_class(virt,
+ "VirtualSystemSettingData")
}
return vssd_values
@@ -99,19 +104,20 @@ def cs_init_list(cs_dom):
Creating the lists that will be used for comparisons.
"""
cs_values = {
- 'Caption' : cs_dom.Caption, \
- 'EnabledState' : cs_dom.EnabledState, \
- 'RequestedState' : cs_dom.RequestedState, \
- 'CreationClassName' : cs_dom.CreationClassName, \
+ 'Caption' : cs_dom.Caption,
+ 'EnabledState' : cs_dom.EnabledState,
+ 'RequestedState' : cs_dom.RequestedState,
+ 'CreationClassName' : cs_dom.CreationClassName,
'Name' : cs_dom.Name
}
return cs_values
-def setup_env(server, virt):
+def setup_env(server, virt, test_disk):
vsxml_info = None
status = PASS
destroy_and_undefine_all(server)
virt_xml = get_class(virt)
+
vsxml_info = virt_xml(test_dom, mem = test_mem,
vcpus=test_vcpus,
mac = test_mac,
@@ -137,23 +143,7 @@ def vssd_sds_err( an, fieldname, ret_val
logger.error(err)
logger.error(detail)
-def get_inst_from_list(server, vsxml, cn, cs_list, exp_val):
- status = PASS
- ret = -1
- inst = None
- for inst in cs_list:
- if inst.Name == exp_val:
- ret = PASS
- break
-
- if ret != PASS:
- logger.error("%s with %s was not returned" % (cn, exp_val))
- vsxml.destroy(server)
- status = FAIL
-
- return status, inst
-
-def get_associatornames_info(server, vsxml, cn, an, qcn, name):
+def get_associatornames_info(server, virt, vsxml, cn, an, qcn, name):
status = PASS
assoc_info = []
try:
@@ -161,7 +151,8 @@ def get_associatornames_info(server, vsx
an,
cn,
CreationClassName=cn,
- Name = name)
+ Name = name,
+ virt=virt)
if len(assoc_info) < 1:
logger.error("%s returned %i %s objects" % (an, len(assoc_info), qcn))
status = FAIL
@@ -174,14 +165,15 @@ def get_associatornames_info(server, vsx
return status, assoc_info
-def get_associators_info(server, vsxml, cn, an, qcn, instid):
+def get_associators_info(server, virt, vsxml, cn, an, qcn, instid):
status = PASS
assoc_info = []
try:
assoc_info = Associators(server,
an,
cn,
- InstanceID = instid)
+ InstanceID = instid,
+ virt=virt)
if len(assoc_info) < 1:
logger.error("%s returned %i %s objects" %
(an, len(assoc_info), qcn))
@@ -208,31 +200,39 @@ def get_SDS_verify_RASD_build_vssdc_inpu
status = PASS
in_setting_define_state = {}
in_vssdc = {}
+ prasd = get_typed_class(virt, 'ProcResourceAllocationSettingData')
+ mrasd = get_typed_class(virt, 'MemResourceAllocationSettingData')
+ nrasd = get_typed_class(virt, 'NetResourceAllocationSettingData')
+ drasd = get_typed_class(virt, 'DiskResourceAllocationSettingData')
+
try:
-# Building the input for Xen_SettingsDefineState association.
+
+ # Building the input for Xen_SettingsDefineState association.
for i in range(len(sd_assoc_info)):
if sd_assoc_info[i]['SystemName'] == test_dom:
classname_keyvalue = sd_assoc_info[i]['CreationClassName']
deviceid = sd_assoc_info[i]['DeviceID']
in_setting_define_state[classname_keyvalue] = deviceid
-# Expect the Xen_SystemDevice to return 4 logical device records.
-# one each for memory, network, disk and processor and hence 4.
-# and hence expect the in_setting_define_state to contain just 4 entries.
- an = "Xen_SystemDevice"
+
+ # Expect the Xen_SystemDevice to return 4 logical device records.
+ # one each for memory, network, disk and processor and hence 4.
+ # and hence expect the in_setting_define_state to contain just 4 entries.
+ an = get_typed_class(virt, "SystemDevice")
qcn = "Logical Devices"
exp_len = 4
if check_len(an, in_setting_define_state, qcn, exp_len) != PASS:
return FAIL, in_setting_define_state
-# Get the rasd values that will be used to compare with the Xen_SettingsDefineState
-# output.
+
+ # Get the rasd values that will be used to compare with the Xen_SettingsDefineState
+ # output.
status, rasd_values, in_list = rasd_init_list(vsxml, virt, test_disk,
test_dom, test_mac,
test_mem)
if status != PASS:
- return status
-
- sccn = "Xen_ComputerSystem"
- an = "Xen_SettingsDefineState"
+ return status, rasd_values
+
+ sccn = get_typed_class(virt,"ComputerSystem")
+ an = get_typed_class(virt,"SettingsDefineState")
for cn, devid in sorted(in_setting_define_state.items()):
assoc_info = Associators(server,
an,
@@ -240,10 +240,11 @@ def get_SDS_verify_RASD_build_vssdc_inpu
DeviceID = devid,
CreationClassName = cn,
SystemName = test_dom,
- SystemCreationClassName = sccn)
+ SystemCreationClassName = sccn,
+ virt=virt)
-# we expect only one RASD record to be returned for each device that is used to
-# query with the Xen_SettingsDefineState association.
+ # we expect only one RASD record to be returned for each device that is used to
+ # query with the Xen_SettingsDefineState association.
if len(assoc_info) != 1:
logger.error("%s returned %i %s objects" % (an, len(assoc_info), cn))
status = FAIL
@@ -251,13 +252,13 @@ def get_SDS_verify_RASD_build_vssdc_inpu
index = (len(assoc_info) - 1)
rasd = rasd_values[cn]
CCName = assoc_info[index].classname
- if CCName == 'Xen_ProcResourceAllocationSettingData':
+ if CCName == prasd:
status = verify_procrasd_values(assoc_info[index], rasd)
- elif CCName == 'Xen_NetResourceAllocationSettingData':
+ elif CCName == nrasd:
status = verify_netrasd_values(assoc_info[index], rasd)
- elif CCName == 'Xen_DiskResourceAllocationSettingData':
+ elif CCName == drasd:
status = verify_diskrasd_values(assoc_info[index], rasd)
- elif CCName == 'Xen_MemResourceAllocationSettingData':
+ elif CCName == mrasd:
status = verify_memrasd_values(assoc_info[index], rasd)
else:
status = FAIL
@@ -283,9 +284,9 @@ def verify_fields(an, field_name, vssd_c
def verify_VSSD_values(assoc_info, vssd_values, an, qcn):
-# We expect that Xen_VirtualSystemSettingDataComponent returns only one
-# Xen_VirtualSystemSettingData object when queried with disk, processor,
-# network and memory rasd's and all of them return the same output.
+ # We expect that Xen_VirtualSystemSettingDataComponent returns only one
+ # Xen_VirtualSystemSettingData object when queried with disk, processor,
+ # network and memory rasd's and all of them return the same output.
exp_len = 1
if check_len(an, assoc_info, qcn, exp_len) != PASS:
return FAIL
@@ -301,8 +302,8 @@ def verify_VSSD_values(assoc_info, vssd_
if verify_fields(an, 'VirtualSystemType', vssd_assoc, vssd_values) != PASS:
return FAIL
if vssd_assoc.classname != vssd_values['Classname']:
- vssd_sds_err(an, 'Classname', vssd_assoc.classname, \
- vssd_values['Classname'])
+ vssd_sds_err(an, 'Classname', vssd_assoc.classname,
+ vssd_values['Classname'])
return FAIL
return PASS
@@ -327,60 +328,56 @@ def main():
def main():
server = main.options.ip
virt = main.options.virt
- status, vsxml = setup_env(server, virt)
+ if virt == 'Xen':
+ test_disk = "xvda"
+ else:
+ test_disk = "hda"
+
+ status, vsxml = setup_env(server, virt, test_disk)
if status != PASS:
return status
- cs_enum = computersystem.enumerate(server)
- if len(cs_enum) == 0:
+ status, cs_dom = poll_for_state_change(server, virt, test_dom, 2,
+ timeout=10)
+ if status != PASS and cs_dom.RequestedState != 0:
vsxml.destroy(server)
- return status
- cn = cs_enum[0].CreationClassName
- status, cs_dom = get_inst_from_list(server,
- vsxml,
- cn,
- cs_enum,
- test_dom)
- if status != PASS:
- vsxml.destroy(server)
- return status
+ return FAIL
-# Creating the cs info list which will be used later for comparison.
+ # Creating the cs info list which will be used later for comparison.
cs_values = cs_init_list(cs_dom)
- if cs_values['EnabledState'] != 2 :
- logger.error("Improper EnabledState value set for domain %s", test_dom)
- logger.error("Should have been 2 instead of %s", cs_values['EnabledState'])
- vsxml.destroy(server)
- return FAIL
cn = cs_dom.CreationClassName
- an = 'Xen_SystemDevice'
+ an = get_typed_class(virt, 'SystemDevice')
qcn = 'Logical Devices'
name = test_dom
- status, sd_assoc_info = get_associatornames_info(server, vsxml,
+ status, sd_assoc_info = get_associatornames_info(server, virt, vsxml,
cn, an, qcn, name)
if status != PASS or len(sd_assoc_info) == 0:
return status
+
status, in_vssdc_list = get_SDS_verify_RASD_build_vssdc_input(server, virt,
vsxml, test_disk,
sd_assoc_info)
if status != PASS or len(in_vssdc_list) == 0 :
vsxml.destroy(server)
return status
-# Verifying that the in_vssdc_list contains 4 entries one each for mem rasd,
-# network rasd, processor rasd and disk rasd.
+
+ # Verifying that the in_vssdc_list contains 4 entries one each for mem rasd,
+ # network rasd, processor rasd and disk rasd.
exp_len = 4
if check_len(an, in_vssdc_list, qcn, exp_len) != PASS:
vsxml.destroy(server)
return FAIL
-# Get the vssd values which will be used for verifying the Xen_VirtualSystemSettingData
-# output from the Xen_VirtualSystemSettingDataComponent results.
+
+ # Get the vssd values which will be used for verifying the
+ # Xen_VirtualSystemSettingData output from the
+ # Xen_VirtualSystemSettingDataComponent results.
vssd_values = vssd_init_list(virt)
- an = 'Xen_VirtualSystemSettingDataComponent'
- qcn = 'Xen_VirtualSystemSettingData'
+ an = get_typed_class(virt, 'VirtualSystemSettingDataComponent')
+ qcn = get_typed_class(virt, 'VirtualSystemSettingData')
for cn, instid in sorted((in_vssdc_list.items())):
- status, vssd_assoc_info = get_associators_info(server, vsxml, cn, an, qcn,
- instid)
+ status, vssd_assoc_info = get_associators_info(server, virt, vsxml, cn,
+ an, qcn, instid)
if status != PASS or len(vssd_assoc_info) == 0:
break
status = verify_VSSD_values(vssd_assoc_info, vssd_values, an, qcn)
@@ -389,18 +386,22 @@ def main():
if status != PASS:
vsxml.destroy(server)
return status
-# Since the Xen_VirtualSystemSettingDataComponent returns similar output when queried with
-# every RASD, we are taking the output of the last associtaion query as inputs for
-# querying Xen_SettingsDefineState.
+
+ # Since the Xen_VirtualSystemSettingDataComponent returns similar
+ # output when queried with every RASD, we are taking the output of
+ # the last associtaion query as inputs for
+ # querying Xen_SettingsDefineState.
cn = vssd_assoc_info[0].classname
- an = 'Xen_SettingsDefineState'
- qcn = 'Xen_ComputerSystem'
+ an = get_typed_class(virt, 'SettingsDefineState')
+ qcn = get_typed_class(virt, 'ComputerSystem')
instid = vssd_assoc_info[0]['InstanceID']
- status, cs_assoc_info = get_associators_info(server, vsxml, cn, an, qcn, instid)
+ status, cs_assoc_info = get_associators_info(server, virt, vsxml, cn,
+ an, qcn, instid)
if status != PASS or len(cs_assoc_info) == 0:
return status
-# verify the results of Xen_SettingsDefineState with the cs_values list that was
-# built using the output of the enumeration on Xen_ComputerSystem.
+
+ # verify the results of Xen_SettingsDefineState with the cs_values list that was
+ # built using the output of the enumeration on Xen_ComputerSystem.
status = verify_CS_values(cs_assoc_info, cs_values, an, qcn)
vsxml.destroy(server)
return status
16 years, 4 months
Cimtest Report for Xen on RHEL5.2 (2008/08/11)
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 : 83
LibVirtCIM : 665
CIMTEST : 289
=========================================================
PASS : 120
FAILED : 11
ACTUAL FAILED : 0
SKIP : 2
Total : 133
=======================FAILED==============================
All the following tc passed when run manually:
ComputerSystem - 23_suspend_suspend.py: FAIL
LogicalDisk - 02_nodevs.py: FAIL
LogicalDisk - 03_ld_gi_errs.py: FAIL
Memory - 01_memory.py: FAIL
NetworkPort - 01_netport.py: FAIL
RASD - 02_enum.py: FAIL
ResourceAllocationFromPool - 01_forward.py: FAIL
ResourceAllocationFromPool - 05_RAPF_err.py: FAIL
VSSD - 02_bootldr.py: FAIL
VSSD - 04_vssd_to_rasd.py: FAIL
VirtualSystemManagementService - 06_addresource.py: FAIL
=======================CIMTEST REPORT=======================
AllocationCapabilities - 01_enum.py: PASS
AllocationCapabilities - 02_alloccap_gi_errs.py: PASS
ComputerSystem - 01_enum.py: PASS
ComputerSystem - 02_nosystems.py: SKIP
ComputerSystem - 03_defineVS.py: PASS
ComputerSystem - 04_defineStartVS.py: PASS
ComputerSystem - 05_activate_defined_start.py: PASS
ComputerSystem - 06_paused_active_suspend.py: PASS
ComputerSystem - 22_define_suspend.py: PASS
ComputerSystem - 23_suspend_suspend.py: FAIL
ComputerSystem - 27_define_suspend_errs.py: PASS
ComputerSystem - 32_start_reboot.py: PASS
ComputerSystem - 33_suspend_reboot.py: PASS
ComputerSystem - 35_start_reset.py: PASS
ComputerSystem - 40_RSC_start.py: PASS
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: PASS
ElementConforms - 02_reverse.py: PASS
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: 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: PASS
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: FAIL
LogicalDisk - 03_ld_gi_errs.py: FAIL
Memory - 01_memory.py: FAIL
Memory - 02_defgetmem.py: PASS
Memory - 03_mem_gi_errs.py: PASS
NetworkPort - 01_netport.py: FAIL
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: FAIL
RASD - 03_rasd_errs.py: PASS
RASD - 04_disk_rasd_size.py: PASS
ReferencedProfile - 01_verify_refprof.py: PASS
ReferencedProfile - 02_refprofile_errs.py: PASS
ResourceAllocationFromPool - 01_forward.py: FAIL
ResourceAllocationFromPool - 02_reverse.py: PASS
ResourceAllocationFromPool - 03_forward_errs.py: PASS
ResourceAllocationFromPool - 04_reverse_errs.py: PASS
ResourceAllocationFromPool - 05_RAPF_err.py: FAIL
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
Traceback (most recent call last):
File "/data/users/daisy/cimtest/lib/CimTest/Globals.py", line 144, in
do_try
rc = f()
File "02_bootldr.py", line 72, in main
except BaseException, detail :
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
VirtualSystemManagementCapabilities - 01_enum.py: PASS
VirtualSystemManagementCapabilities - 02_vsmcap_gi_errs.py: PASS
VirtualSystemManagementService - 01_definesystem_name.py: PASS
VirtualSystemManagementService - 02_destroysystem.py: PASS
VirtualSystemManagementService - 03_definesystem_ess.py: PASS
VirtualSystemManagementService - 04_definesystem_ers.py: PASS
VirtualSystemManagementService - 05_destroysystem_neg.py: PASS
VirtualSystemManagementService - 06_addresource.py: FAIL
VirtualSystemManagementService - 07_addresource_neg.py: PASS
VirtualSystemManagementService - 08_modifyresource.py: PASS
VirtualSystemManagementService - 09_procrasd_persist.py: PASS
VirtualSystemManagementService - 10_hv_version.py: PASS
VirtualSystemManagementService - 11_define_memrasdunits.py: PASS
VirtualSystemMigrationCapabilities - 01_enum.py: PASS
VirtualSystemMigrationCapabilities - 02_vsmc_gi_errs.py: PASS
VirtualSystemMigrationService - 01_migratable_host.py: PASS
VirtualSystemMigrationService - 02_host_migrate_type.py: PASS
VirtualSystemMigrationService - 05_migratable_host_errs.py: PASS
VirtualSystemMigrationSettingData - 01_enum.py: PASS
VirtualSystemMigrationSettingData - 02_vsmsd_gi_errs.py: PASS
VirtualSystemSettingDataComponent - 01_forward.py: PASS
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-60922403
Building 10, 399 Ke Yuan Rd, Pudong Shanghai, 201203
16 years, 4 months
[PATCH] [TEST] Fix image creation for KVM only systems, also create LXC init script
by Kaitlin Rupert
# HG changeset patch
# User Kaitlin Rupert <karupert(a)us.ibm.com>
# Date 1218121427 25200
# Node ID 67b52446e366c76953949c7680fe2e18fae375c9
# Parent 0f568c2c36035da2574e11d128780833392e43af
[TEST] Fix image creation for KVM only systems, also create LXC init script
If the box isn't booted on a Xen kernel, then Xen guests won't work. So I think it's safe to not create the /tmp/default-xen-kernel file.
Signed-off-by: Kaitlin Rupert <karupert(a)us.ibm.com>
diff -r 0f568c2c3603 -r 67b52446e366 suites/libvirt-cim/images/Makefile
--- a/suites/libvirt-cim/images/Makefile Wed Aug 06 06:08:02 2008 -0700
+++ b/suites/libvirt-cim/images/Makefile Thu Aug 07 08:03:47 2008 -0700
@@ -23,6 +23,7 @@
DEFAULT_INITRD = /tmp/default-xen-initrd
DEFAULT_DIMAGE = /tmp/default-xen-dimage
DEFAULT_KVMIMG = /tmp/default-kvm-dimage
+DEFAULT_LXCINIT = /tmp/cimtest_lxc_init
SECONDARY_DIMAGE = $(DEFAULT_DIMAGE).2ND
SECONDARY_KVMIMG = $(DEFAULT_KVMIMG).2ND
@@ -34,13 +35,11 @@
XMT_URL=http://xm-test.xensource.com/ramdisks/initrd-1.1-i386.img
# Default to xm-test ramdisk image & kvm image for now
-default: xmtestimage $(DEFAULT_KERNEL) $(DEFAULT_KVMIMG)
+default: xmtestimage $(DEFAULT_KERNEL) $(DEFAULT_KVMIMG) $(DEFAULT_LXCINIT)
$(DEFAULT_KERNEL):
if uname -r | grep -q xen; then \
cp /boot/vmlinuz-`uname -r` $@; \
- else \
- cp /boot/vmlinuz-xen $@; \
fi
$(XMT_INITRD):
@@ -65,8 +64,11 @@
cp $(XMT_DIMAGE) $(DEFAULT_KVMIMG)
cp $(XMT_DIMAGE) $(SECONDARY_KVMIMG)
+$(DEFAULT_LXCINIT):
+ echo "exec /bin/bash" > $(DEFAULT_LXCINIT)
+ chmod 755 $(DEFAULT_LXCINIT)
clean:
- rm -f $(DEFAULT_KERNEL) $(DEFAULT_INITRD) $(DEFAULT_DIMAGE) $(SECONDARY_DIMAGE)
+ rm -f $(DEFAULT_KERNEL) $(DEFAULT_INITRD) $(DEFAULT_DIMAGE) $(SECONDARY_DIMAGE) $(DEFAULT_LXCINIT)
rm -f $(DEFAULT_KVMIMG) $(SECONDARY_KVMIMG)
rm -Rf $(XMT_BASE)
16 years, 4 months
[PATCH] [TEST] Remove XFAIL from NetworkPort 03
by Kaitlin Rupert
# HG changeset patch
# User Kaitlin Rupert <karupert(a)us.ibm.com>
# Date 1218214093 25200
# Node ID 5f7a1fd46a3678b0628b7ae2f1d95c6f633f5fab
# Parent 55b78429571c289fee32af48898d4d7f23c1cbdd
[TEST] Remove XFAIL from NetworkPort 03.
This issue has been fixed in the providers.
Signed-off-by: Kaitlin Rupert <karupert(a)us.ibm.com>
diff -r 55b78429571c -r 5f7a1fd46a36 suites/libvirt-cim/cimtest/NetworkPort/03_user_netport.py
--- a/suites/libvirt-cim/cimtest/NetworkPort/03_user_netport.py Fri Aug 08 09:24:43 2008 -0700
+++ b/suites/libvirt-cim/cimtest/NetworkPort/03_user_netport.py Fri Aug 08 09:48:13 2008 -0700
@@ -32,13 +32,12 @@
from XenKvmLib.vxml import KVMXML
from CimTest.Globals import logger
from CimTest.Globals import do_main
-from CimTest.ReturnCodes import PASS, FAIL, XFAIL_RC
+from CimTest.ReturnCodes import PASS, FAIL
sup_types = ['KVM']
test_dom = "test_domain"
test_mac = "00:11:22:33:44:55"
-bug = '00004'
@do_main(sup_types)
def main():
@@ -62,7 +61,7 @@
except Exception, detail:
logger.error("Exception: %s" % detail)
cxml.undefine(options.ip)
- return XFAIL_RC(bug)
+ return FAIL
if dev.DeviceID != devid:
logger.error("DeviceID reported incorrectly (%s instead of %s)",
16 years, 4 months