[PATCH] [TEST] Update SystemDevice.01~03 for LXC support
by yunguol@cn.ibm.com
# HG changeset patch
# User Guolian Yun <yunguol(a)cn.ibm.com>
# Date 1212473545 -28800
# Node ID 37c9c0b22ced6e757a1342aab7e509d06247118c
# Parent 351d11163eaa0b0af28a9064177ad637aeeb2a8c
[TEST] Update SystemDevice.01~03 for LXC support
Signed-off-by: Guolian Yun <yunguol(a)cn.ibm.com>
diff -r 351d11163eaa -r 37c9c0b22ced suites/libvirt-cim/cimtest/SystemDevice/01_forward.py
--- a/suites/libvirt-cim/cimtest/SystemDevice/01_forward.py Fri May 30 10:47:26 2008 +0800
+++ b/suites/libvirt-cim/cimtest/SystemDevice/01_forward.py Tue Jun 03 14:12:25 2008 +0800
@@ -33,7 +33,7 @@
from CimTest.Globals import logger, do_main
from CimTest.ReturnCodes import PASS, FAIL
-sup_types = ['Xen', 'KVM', 'XenFV']
+sup_types = ['Xen', 'KVM', 'XenFV', 'LXC']
test_dom = "test_domain"
test_mac = "00:11:22:33:44:55"
@@ -50,7 +50,10 @@
status = PASS
virt_xml = vxml.get_class(options.virt)
- cxml = virt_xml(test_dom, vcpus = test_cpu, mac = test_mac, disk = test_disk)
+ if options.virt == "LXC":
+ cxml = virt_xml(test_dom, vcpus = test_cpu)
+ else:
+ cxml = virt_xml(test_dom, vcpus = test_cpu, mac = test_mac, disk = test_disk)
ret = cxml.create(options.ip)
if not ret:
logger.error('Unable to create domain %s' % test_dom)
diff -r 351d11163eaa -r 37c9c0b22ced suites/libvirt-cim/cimtest/SystemDevice/02_reverse.py
--- a/suites/libvirt-cim/cimtest/SystemDevice/02_reverse.py Fri May 30 10:47:26 2008 +0800
+++ b/suites/libvirt-cim/cimtest/SystemDevice/02_reverse.py Tue Jun 03 14:12:25 2008 +0800
@@ -33,7 +33,7 @@
from CimTest.Globals import logger, do_main
from CimTest.ReturnCodes import PASS, FAIL
-sup_types = ['Xen', 'KVM', 'XenFV']
+sup_types = ['Xen', 'KVM', 'XenFV', 'LXC']
test_dom = "test_domain"
test_mac = "00:11:22:33:44:55"
@@ -44,10 +44,14 @@
status = FAIL
virt_xml = vxml.get_class(options.virt)
- cxml = virt_xml(test_dom, mac=test_mac)
+ if options.virt == "LXC":
+ cxml = virt_xml(test_dom)
+ devlist = [ "Memory" ]
+ else:
+ cxml = virt_xml(test_dom, mac=test_mac)
+ devlist = [ "NetworkPort", "Memory", "LogicalDisk", "Processor" ]
cxml.create(options.ip)
- devlist = [ "NetworkPort", "Memory", "LogicalDisk", "Processor" ]
key_list = ["DeviceID", "CreationClassName", "SystemName",
"SystemCreationClassName"]
diff -r 351d11163eaa -r 37c9c0b22ced suites/libvirt-cim/cimtest/SystemDevice/03_fwderrs.py
--- a/suites/libvirt-cim/cimtest/SystemDevice/03_fwderrs.py Fri May 30 10:47:26 2008 +0800
+++ b/suites/libvirt-cim/cimtest/SystemDevice/03_fwderrs.py Tue Jun 03 14:12:25 2008 +0800
@@ -40,7 +40,7 @@
from CimTest import Globals
from CimTest.ReturnCodes import PASS, FAIL, XFAIL_RC
-sup_types = ['Xen', 'KVM', 'XenFV']
+sup_types = ['Xen', 'KVM', 'XenFV', 'LXC']
test_dom = "virt1"
test_mac = "00:11:22:33:44:55"
@@ -64,15 +64,19 @@
status = PASS
virt_xml = vxml.get_class(options.virt)
- cxml = virt_xml(test_dom, vcpus = test_cpu, mac = test_mac,
- disk = test_disk)
+ if options.virt == "LXC":
+ cxml = virt_xml(test_dom, vcpus = test_cpu)
+ devlist = [ "Memory" ]
+ else:
+ cxml = virt_xml(test_dom, vcpus = test_cpu, mac = test_mac,
+ disk = test_disk)
+ devlist = [ "NetworkPort", "Memory", "LogicalDisk", "Processor" ]
ret = cxml.create(options.ip)
if not ret :
logger.info("error while 'create' of VS")
return FAIL
- devlist = [ "NetworkPort", "Memory", "LogicalDisk", "Processor" ]
# Building the dict for avoiding the correct key:val pairs
# while verifying with the Invalid values for the association
diff -r 351d11163eaa -r 37c9c0b22ced suites/libvirt-cim/lib/XenKvmLib/devices.py
--- a/suites/libvirt-cim/lib/XenKvmLib/devices.py Fri May 30 10:47:26 2008 +0800
+++ b/suites/libvirt-cim/lib/XenKvmLib/devices.py Tue Jun 03 14:12:25 2008 +0800
@@ -75,10 +75,16 @@
class KVM_LogicalDisk(CIM_LogicalDisk):
pass
+class LXC_LogicalDisk(CIM_LogicalDisk):
+ pass
+
class Xen_NetworkPort(CIM_NetworkPort):
pass
class KVM_NetworkPort(CIM_NetworkPort):
+ pass
+
+class LXC_NetworkPort(CIM_NetworkPort):
pass
class Xen_Memory(CIM_Memory):
@@ -94,6 +100,9 @@
pass
class KVM_Processor(CIM_Processor):
+ pass
+
+class LXC_Processor(CIM_Processor):
pass
def get_class(classname):
16 years, 11 months
[PATCH] [TEST] #3 Fixing 02_reverse.py of RAPF
by Deepti B. Kalakeri
# HG changeset patch
# User Deepti B. Kalakeri <deeptik(a)linux.vnet.ibm.com>
# Date 1212494097 25200
# Node ID 22f10ada8a6af53e1fad84fb6b137182ccdc2179
# Parent 05e8d5b17fd7e4d7eb3a6f1903fd834fcebcd311
[TEST] #3 Fixing 02_reverse.py of RAPF.
Changes:
>From 2 to 3 patch:
1) Passed the req_nettype arg to virtxml that can be used to specify the network type, when we
need a guest with a network details other than the default network types.
This patch will require the vxml.py changes that was submitted today.
>From 1 to 2 patch:
1) Used getInstance instead of enumerate for RASD info.
2) Used the changeset no to reflect the ProcRASD InstanceID changes.
Added the following extra steps:
1) Defining a domain.
2) creating diskpool, netpool.
Without the steps 1 and 2 the tc used to simply pass.
The tc will fail on KVM with old libvirt-cim rpm as expected and will pass with the latest source.
Signed-off-by: Deepti B. Kalakeri <deeptik(a)linux.vnet.ibm.com>
diff -r 05e8d5b17fd7 -r 22f10ada8a6a suites/libvirt-cim/cimtest/ResourceAllocationFromPool/02_reverse.py
--- a/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/02_reverse.py Tue Jun 03 04:40:42 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/02_reverse.py Tue Jun 03 04:54:57 2008 -0700
@@ -6,6 +6,7 @@
# Guolian Yun <yunguol(a)cn.ibm.com>
# Kaitlin Rupert <karupert(a)us.ibm.com>
# Zhengang Li <lizg(a)cn.ibm.com>
+# Deepti B. Kalakeri <deeptik(a)linux.vnet.ibm.com>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
@@ -25,69 +26,165 @@ import sys
import sys
from VirtLib import utils
from XenKvmLib import assoc
-from XenKvmLib import devices
+from XenKvmLib.test_doms import destroy_and_undefine_all
+from XenKvmLib.vxml import get_class
from XenKvmLib.classes import get_typed_class
+from XenKvmLib.const import CIM_REV
from CimTest import Globals
from CimTest.Globals import logger, do_main
-from CimTest.ReturnCodes import PASS, FAIL, XFAIL
+from CimTest.ReturnCodes import PASS, FAIL
+from XenKvmLib import enumclass
+from XenKvmLib.common_util import cleanup_restore, create_diskpool_conf, \
+create_netpool_conf
+
sup_types = ['Xen', 'XenFV', 'KVM']
+test_dom = "RAFP_dom"
+test_vcpus = 1
+test_mem = 128
+test_mac = "00:11:22:33:44:aa"
+proc_instid_rev = 590
+
+def setup_env(server, virt):
+ destroy_and_undefine_all(server)
+ vsxml = None
+ if virt == "Xen":
+ test_disk = "xvda"
+ else:
+ test_disk = "hda"
+
+ virtxml = get_class(virt)
+ vsxml = virtxml(test_dom, mem=test_mem, vcpus = test_vcpus,
+ mac = test_mac, disk = test_disk,
+ req_nettype='network')
+ 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 init_list(test_disk, diskid, test_network):
+
+ if CIM_REV < proc_instid_rev:
+ procid = '%s/%s' % (test_dom, 0)
+ else:
+ procid = '%s/%s' % (test_dom, 'proc')
+
+ proc = { 'rasd_id' : procid,
+ 'pool_id' : 'ProcessorPool/0'
+ }
+
+ mem = { 'rasd_id' : '%s/%s' % (test_dom,'mem'),
+ 'pool_id' : 'MemoryPool/0'
+ }
+
+ net = {
+ 'rasd_id' : '%s/%s' % (test_dom, test_mac),
+ 'pool_id' : 'NetworkPool/%s' %test_network
+ }
+
+ disk = { 'rasd_id' : '%s/%s' % (test_dom, test_disk),
+ 'pool_id' : diskid
+ }
+
+ cn_id_list = {
+ 'MemResourceAllocationSettingData' : mem,
+ 'ProcResourceAllocationSettingData' : proc,
+ 'NetResourceAllocationSettingData' : net,
+ 'DiskResourceAllocationSettingData' : disk
+ }
+
+ return cn_id_list
+
+def get_rasd_instance(server, virt, key_list, cn):
+ inst = None
+ try:
+ inst = enumclass.getInstance(server, cn, key_list, virt)
+ except Exception, details:
+ logger.error(Globals.CIM_ERROR_GETINSTANCE, cn)
+ logger.error("Exception details: %s", details)
+ return inst, FAIL
+
+ return inst, PASS
+
+def verify_pool_from_RAFP(server, virt, inst, pool_id, cn):
+ pool = []
+ try:
+ pool = assoc.AssociatorNames(server, "ResourceAllocationFromPool",
+ cn, virt, InstanceID = inst.InstanceID)
+ except Exception:
+ logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES, inst.InstanceID)
+ return FAIL
+
+ if len(pool) != 1:
+ logger.error("No associated pool for %s", inst.InstanceID)
+ return FAIL
+
+ if pool[0]['InstanceID'] != pool_id:
+ logger.error("InstanceID Mismatch")
+ logger.error("Returned %s instead of %s", pool[0]['InstanceID'] ,
+ pool_id)
+ return FAIL
+
+ return PASS
+
+def get_rasdinst_verify_pool_from_RAFP(server, virt, vsxml, cn, id_info):
+ try:
+ key_list = { 'InstanceID' : id_info['rasd_id'] }
+ rasd_cn = get_typed_class(virt, cn)
+ rasdinst, status = get_rasd_instance(server, virt, key_list, rasd_cn)
+ if status != PASS or rasdinst.InstanceID == None:
+ vsxml.undefine(server)
+ return status
+
+ status = verify_pool_from_RAFP(server, virt, rasdinst,
+ id_info['pool_id'], cn)
+ except Exception, details:
+ logger.error("Exception in get_rasdinst_verify_pool_from_RAFP() fn")
+ logger.error("Exception Details %s", details)
+ status = FAIL
+
+ if status != PASS:
+ vsxml.undefine(server)
+
+ return status
+
@do_main(sup_types)
def main():
options = main.options
status = PASS
+ server = options.ip
+ virt = options.virt
+
+ status, vsxml, test_disk = setup_env(server, virt)
+ if status != PASS:
+ return status
- key_list = ["DeviceID", "CreationClassName", "SystemName",
- "SystemCreationClassName"]
- try:
- mem = devices.enumerate(options.ip, 'Memory', key_list, options.virt)
- except Exception:
- logger.error(Globals.CIM_ERROR_ENUMERATE % 'Memory')
- return FAIL
+ status, diskid = create_diskpool_conf(server, virt)
+ if status != PASS:
+ return status
- try:
- proc = devices.enumerate(options.ip, 'Processor', key_list, options.virt)
- except Exception:
- logger.error(Globals.CIM_ERROR_ENUMERATE % 'Processor')
- return FAIL
-
- for i in range(len(mem)):
- try:
- mempool = assoc.AssociatorNames(options.ip, "ResourceAllocationFromPool",
- "MemResourceAllocationSettingData",
- options.virt,
- InstanceID = mem[i].DeviceID)
- except Exception:
- logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % mem[i].DeviceID)
- status = FAIL
+ status, test_network = create_netpool_conf(server, virt)
+ if status != PASS:
+ return status
- if len(mempool) < 1:
- logger.error("No associated pool for %s" % mem[i].DeviceID)
- return FAIL
+ cn_id_list = init_list(test_disk, diskid, test_network)
- if mempool[0].keybindings['InstanceID'] != "MemoryPool/0":
- logger.error("MemResourceAllocationSettingData association error")
- return FAIL
-
- for j in range(len(proc)):
- try:
- procpool = assoc.AssociatorNames(options.ip, "ResourceAllocationFromPool",
- "ProcResourceAllocationSettingData",
- options.virt,
- InstanceID = proc[j].DeviceID)
- except Exception:
- logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % proc[j].DeviceID)
- return FAIL
-
- if len(procpool) < 1:
- logger.error("No associated pool for %s" % proc[j].DeviceID)
- return FAIL
+ for rasd_cn, id_info in cn_id_list.iteritems():
+ status = get_rasdinst_verify_pool_from_RAFP(server, virt, vsxml,
+ rasd_cn, id_info)
+ if status != PASS:
+ return status
- if procpool[0].keybindings['InstanceID'] != "ProcessorPool/0":
- logger.error("ProcResourceAllocationSettingData association failed")
- status = FAIL
-
+ cleanup_restore(server, virt)
+ vsxml.undefine(server)
return status
if __name__ == "__main__":
16 years, 11 months
[PATCH] [TEST] Update VirtualSystemMigrationSettingData.01&02 for lXC support
by yunguol@cn.ibm.com
# HG changeset patch
# User Guolian Yun <yunguol(a)cn.ibm.com>
# Date 1212470446 -28800
# Node ID 285ab4b0f2c5f143fe813ee74d03cd17093911b6
# Parent 351d11163eaa0b0af28a9064177ad637aeeb2a8c
[TEST] Update VirtualSystemMigrationSettingData.01&02 for lXC support
Signed-off-by: Guolian Yun <yunguol(a)cn.ibm.com>
diff -r 351d11163eaa -r 285ab4b0f2c5 suites/libvirt-cim/cimtest/VirtualSystemMigrationSettingData/01_enum.py
--- a/suites/libvirt-cim/cimtest/VirtualSystemMigrationSettingData/01_enum.py Fri May 30 10:47:26 2008 +0800
+++ b/suites/libvirt-cim/cimtest/VirtualSystemMigrationSettingData/01_enum.py Tue Jun 03 13:20:46 2008 +0800
@@ -28,6 +28,8 @@
from CimTest.ReturnCodes import PASS, FAIL
from CimTest.Globals import do_main, platform_sup
from XenKvmLib.classes import get_typed_class
+
+platform_sup = ['Xen', 'KVM', 'XenFV', 'LXC']
def print_error(fieldname, ret_value, exp_value):
logger.error("%s Mismatch", fieldname)
diff -r 351d11163eaa -r 285ab4b0f2c5 suites/libvirt-cim/cimtest/VirtualSystemMigrationSettingData/02_vsmsd_gi_errs.py
--- a/suites/libvirt-cim/cimtest/VirtualSystemMigrationSettingData/02_vsmsd_gi_errs.py Fri May 30 10:47:26 2008 +0800
+++ b/suites/libvirt-cim/cimtest/VirtualSystemMigrationSettingData/02_vsmsd_gi_errs.py Tue Jun 03 13:20:46 2008 +0800
@@ -52,6 +52,7 @@
from CimTest.Globals import do_main, platform_sup
from XenKvmLib.classes import get_typed_class
+platform_sup = ['Xen', 'XenFV', 'KVM', 'LXC']
expr_values = {
"invalid_instid" : { 'rc' : pywbem.CIM_ERR_NOT_FOUND, \
diff -r 351d11163eaa -r 285ab4b0f2c5 suites/libvirt-cim/lib/XenKvmLib/enumclass.py
--- a/suites/libvirt-cim/lib/XenKvmLib/enumclass.py Fri May 30 10:47:26 2008 +0800
+++ b/suites/libvirt-cim/lib/XenKvmLib/enumclass.py Tue Jun 03 13:20:46 2008 +0800
@@ -201,6 +201,9 @@
pass
class KVM_VirtualSystemMigrationSettingData(CIM_VirtualSystemMigrationSettingData):
+ pass
+
+class LXC_VirtualSystemMigrationSettingData(CIM_VirtualSystemMigrationSettingData):
pass
class Xen_VirtualSystemSnapshotService(CIM_VirtualSystemSnapshotService):
16 years, 11 months
[PATCH] [TEST] Update VirtualSystemManagementCapabilities.01&02 for LXC support
by yunguol@cn.ibm.com
# HG changeset patch
# User Guolian Yun <yunguol(a)cn.ibm.com>
# Date 1212463163 -28800
# Node ID 887964b25e814fc7425476e5739c821a756e7bab
# Parent 351d11163eaa0b0af28a9064177ad637aeeb2a8c
[TEST] Update VirtualSystemManagementCapabilities.01&02 for LXC support
Signed-off-by: Guolian Yun <yunguol(a)cn.ibm.com>
diff -r 351d11163eaa -r 887964b25e81 suites/libvirt-cim/cimtest/VirtualSystemManagementCapabilities/01_enum.py
--- a/suites/libvirt-cim/cimtest/VirtualSystemManagementCapabilities/01_enum.py Fri May 30 10:47:26 2008 +0800
+++ b/suites/libvirt-cim/cimtest/VirtualSystemManagementCapabilities/01_enum.py Tue Jun 03 11:19:23 2008 +0800
@@ -28,7 +28,7 @@
from CimTest.Globals import do_main
from XenKvmLib.classes import get_typed_class
-sup_types=['Xen', 'KVM', 'XenFV']
+sup_types=['Xen', 'KVM', 'XenFV', 'LXC']
@do_main(sup_types)
def main():
diff -r 351d11163eaa -r 887964b25e81 suites/libvirt-cim/cimtest/VirtualSystemManagementCapabilities/02_vsmcap_gi_errs.py
--- a/suites/libvirt-cim/cimtest/VirtualSystemManagementCapabilities/02_vsmcap_gi_errs.py Fri May 30 10:47:26 2008 +0800
+++ b/suites/libvirt-cim/cimtest/VirtualSystemManagementCapabilities/02_vsmcap_gi_errs.py Tue Jun 03 11:19:23 2008 +0800
@@ -58,7 +58,7 @@
from CimTest.ReturnCodes import PASS, FAIL
from CimTest.Globals import logger, CIM_USER, CIM_PASS, CIM_NS, do_main
-sup_types=['Xen', 'KVM', 'XenFV']
+sup_types=['Xen', 'KVM', 'XenFV', 'LXC']
expr_values = {
"invalid_instid_keyname" : { 'rc' : pywbem.CIM_ERR_NOT_FOUND, \
diff -r 351d11163eaa -r 887964b25e81 suites/libvirt-cim/lib/XenKvmLib/enumclass.py
--- a/suites/libvirt-cim/lib/XenKvmLib/enumclass.py Fri May 30 10:47:26 2008 +0800
+++ b/suites/libvirt-cim/lib/XenKvmLib/enumclass.py Tue Jun 03 11:19:23 2008 +0800
@@ -141,6 +141,9 @@
pass
class KVM_VirtualSystemManagementCapabilities(CIM_VirtualSystemManagementCapabilities):
+ pass
+
+class LXC_VirtualSystemManagementCapabilities(CIM_VirtualSystemManagementCapabilities):
pass
class Xen_ResourcePoolConfigurationCapabilities(CIM_ResourcePoolConfigurationCapabilities):
16 years, 11 months
[TEST] Cimtest Report for LXC (2008/06/02)
by Guo Lian Yun
stro: Fedora 9 Beta
Kernel: 2.6.25-0.121.rc5.git4.fc9
Libvirt: 0.4.2
CIMOM: 2.7.0-6.fc9
PyWBEM: 0.6-1
libcmpiutil: changeset-79
libvirt-cim: changeset-598
cimtest: changeset-171
===================== 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: SKIP
ComputerSystem - 05_activate_defined_start.py: XFAIL Bug: 00002
ComputerSystem - 06_paused_active_suspend.py: SKIP
ComputerSystem - 22_define_suspend.py: PASS
ComputerSystem - 23_suspend_suspend.py: SKIP
ComputerSystem - 27_define_suspend_errs.py: SKIP
ComputerSystem - 32_start_reboot.py: SKIP
ComputerSystem - 33_suspend_reboot.py: SKIP
ComputerSystem - 35_start_reset.py: SKIP
ComputerSystem - 40_RSC_start.py: SKIP
ComputerSystem - 41_cs_to_settingdefinestate.py: SKIP
ComputerSystem - 42_cs_gi_errs.py: SKIP
ComputerSystemIndication - 01_created_indication.py: SKIP
ElementAllocatedFromPool - 01_forward.py: SKIP
ElementAllocatedFromPool - 02_reverse.py: SKIP
ElementAllocatedFromPool - 03_reverse_errs.py: SKIP
ElementAllocatedFromPool - 04_forward_errs.py: SKIP
ElementCapabilities - 01_forward.py: SKIP
ElementCapabilities - 02_reverse.py: SKIP
ElementCapabilities - 03_forward_errs.py: SKIP
ElementCapabilities - 04_reverse_errs.py: SKIP
ElementCapabilities - 05_hostsystem_cap.py: SKIP
ElementConforms - 01_forward.py: SKIP
ElementConforms - 02_reverse.py: SKIP
ElementConforms - 03_ectp_fwd_errs.py: SKIP
ElementConforms - 04_ectp_rev_errs.py: SKIP
ElementSettingData - 01_forward.py: PASS
ElementSettingData - 03_esd_assoc_with_rasd_errs.py: SKIP
EnabledLogicalElementCapabilities - 01_enum.py: PASS
EnabledLogicalElementCapabilities - 02_elecap_gi_errs.py: PASS
HostSystem - 01_enum.py: PASS
HostSystem - 02_hostsystem_to_rasd.py: SKIP
HostSystem - 03_hs_to_settdefcap.py: SKIP
HostSystem - 04_hs_to_EAPF.py: SKIP
HostSystem - 05_hs_gi_errs.py: PASS
HostSystem - 06_hs_to_vsms.py: SKIP
HostedDependency - 01_forward.py: PASS
HostedDependency - 02_reverse.py: PASS
HostedDependency - 03_enabledstate.py: SKIP
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: SKIP
LogicalDisk - 02_nodevs.py: SKIP
LogicalDisk - 03_ld_gi_errs.py: SKIP
Memory - 01_memory.py: PASS
Memory - 02_defgetmem.py: SKIP
Memory - 03_mem_gi_errs.py: PASS
NetworkPort - 01_netport.py: SKIP
NetworkPort - 02_np_gi_errors.py: SKIP
NetworkPort - 03_user_netport.py: SKIP
Processor - 01_processor.py: SKIP
Processor - 02_definesys_get_procs.py: SKIP
Processor - 03_proc_gi_errs.py: SKIP
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: SKIP
RASD - 02_enum.py: SKIP
RASD - 03_rasd_errs.py: SKIP
ReferencedProfile - 01_verify_refprof.py: PASS
ReferencedProfile - 02_refprofile_errs.py: PASS
ResourceAllocationFromPool - 01_forward.py: SKIP
ResourceAllocationFromPool - 02_reverse.py: SKIP
ResourceAllocationFromPool - 03_forward_errs.py: SKIP
ResourceAllocationFromPool - 04_reverse_errs.py: SKIP
ResourceAllocationFromPool - 05_RAPF_err.py: SKIP
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: SKIP
ResourcePoolConfigurationService - 02_rcps_gi_errors.py: SKIP
ResourcePoolConfigurationService - 03_CreateResourcePool.py: SKIP
ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: SKIP
ResourcePoolConfigurationService - 05_AddResourcesToResourcePool.py: SKIP
ResourcePoolConfigurationService - 06_RemoveResourcesFromResourcePool.py:
SKIP
ResourcePoolConfigurationService - 07_DeleteResourcePool.py: SKIP
SettingsDefine - 01_forward.py: SKIP
SettingsDefine - 02_reverse.py: SKIP
SettingsDefine - 03_sds_fwd_errs.py: SKIP
SettingsDefine - 04_sds_rev_errs.py: SKIP
SettingsDefineCapabilities - 01_forward.py: SKIP
SettingsDefineCapabilities - 03_forward_errs.py: SKIP
SettingsDefineCapabilities - 04_forward_vsmsdata.py: SKIP
SettingsDefineCapabilities - 05_reverse_vsmcap.py: SKIP
SystemDevice - 01_forward.py: SKIP
SystemDevice - 02_reverse.py: SKIP
SystemDevice - 03_fwderrs.py: SKIP
VSSD - 01_enum.py: SKIP
VSSD - 02_bootldr.py: SKIP
VSSD - 03_vssd_gi_errs.py: SKIP
VSSD - 04_vssd_to_rasd.py: SKIP
VirtualSystemManagementCapabilities - 01_enum.py: SKIP
VirtualSystemManagementCapabilities - 02_vsmcap_gi_errs.py: SKIP
VirtualSystemManagementService - 01_definesystem_name.py: SKIP
VirtualSystemManagementService - 02_destroysystem.py: SKIP
VirtualSystemManagementService - 03_definesystem_ess.py: SKIP
VirtualSystemManagementService - 04_definesystem_ers.py: SKIP
VirtualSystemManagementService - 05_destroysystem_neg.py: SKIP
VirtualSystemManagementService - 06_addresource.py: SKIP
VirtualSystemManagementService - 07_addresource_neg.py: SKIP
VirtualSystemManagementService - 08_modifyresource.py: SKIP
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: SKIP
VirtualSystemMigrationSettingData - 02_vsmsd_gi_errs.py: SKIP
VirtualSystemSettingDataComponent - 01_forward.py: SKIP
VirtualSystemSettingDataComponent - 02_reverse.py: SKIP
VirtualSystemSettingDataComponent - 03_vssdc_fwd_errs.py: SKIP
VirtualSystemSettingDataComponent - 04_vssdc_rev_errs.py: SKIP
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, 11 months
Adding a provider
by Szymanski, Lukasz K
Hello,
I am playing with libvirt-cim providers and trying to figure out how to add another one to the mix. I have version 0.4 of libvirt-cim. I am running SLES10 SP1 as my host machine and a 2.6.16 version of the Xen kernel.
I have:
Updated the Makefile.am and src/Makefile.am files
Created a testprovider.c file in src
Created a mof and registration file in schema.
For whatever reason, the Makefile.am file does not update the Makefile.in file with my changes so consequently my providers do not get added. Actually, I have had occasional success, which makes this even more bizzare. It says in the Makefile.in file that automake v 1.10.1 is supposed to do this automatically. I have version 1.10.1 of automake. What am I missing?
Thanks,
Luke Szymanski
Unisys Corp.
16 years, 11 months
[PATCH] [TEST] Fixing 02_reverse.py of RAPF
by Deepti B. Kalakeri
# HG changeset patch
# User Deepti B. Kalakeri <deeptik(a)linux.vnet.ibm.com>
# Date 1212413727 25200
# Node ID d478234fefe940f0ef738bbb83e6a3ab32736bec
# Parent 4a5a44d7b857df543af24d59380cb8fdbbb753a4
[TEST] Fixing 02_reverse.py of RAPF.
Added the following extra steps:
1) Defining a domain.
2) creating diskpool, netpool.
Without the steps 1 and 2 the tc used to simply pass.
The tc will fail on KVM with old libvirt-cim rpm as expected and will pass with the latest source.
Signed-off-by: Deepti B. Kalakeri <deeptik(a)linux.vnet.ibm.com>
diff -r 4a5a44d7b857 -r d478234fefe9 suites/libvirt-cim/cimtest/ResourceAllocationFromPool/02_reverse.py
--- a/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/02_reverse.py Fri May 30 14:26:38 2008 +0800
+++ b/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/02_reverse.py Mon Jun 02 06:35:27 2008 -0700
@@ -6,6 +6,7 @@
# Guolian Yun <yunguol(a)cn.ibm.com>
# Kaitlin Rupert <karupert(a)us.ibm.com>
# Zhengang Li <lizg(a)cn.ibm.com>
+# Deepti B. Kalakeri <deeptik(a)linux.vnet.ibm.com>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
@@ -25,69 +26,164 @@ import sys
import sys
from VirtLib import utils
from XenKvmLib import assoc
-from XenKvmLib import devices
+from XenKvmLib.test_doms import destroy_and_undefine_all
+from XenKvmLib.vxml import get_class
from XenKvmLib.classes import get_typed_class
+from XenKvmLib.const import CIM_REV
from CimTest import Globals
from CimTest.Globals import logger, do_main
-from CimTest.ReturnCodes import PASS, FAIL, XFAIL
+from CimTest.ReturnCodes import PASS, FAIL
+from XenKvmLib import enumclass
+from XenKvmLib.common_util import cleanup_restore, create_diskpool_conf, \
+create_netpool_conf
+
sup_types = ['Xen', 'XenFV', 'KVM']
+test_dom = "RAFP_dom"
+test_vcpus = 1
+test_mem = 128
+test_mac = "00:11:22:33:44:aa"
+proc_instid_rev = 590
+
+def setup_env(server, virt):
+ destroy_and_undefine_all(server)
+ vsxml = None
+ if virt == "Xen":
+ test_disk = "xvda"
+ else:
+ test_disk = "hda"
+
+ virtxml = get_class(virt)
+ 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 init_list(test_disk, diskid, test_network):
+
+ if CIM_REV < proc_instid_rev:
+ procid = '%s/%s' % (test_dom, 0)
+ else:
+ procid = '%s/%s' % (test_dom, 'proc')
+
+ proc = { 'rasd_id' : procid,
+ 'pool_id' : 'ProcessorPool/0'
+ }
+
+ mem = { 'rasd_id' : '%s/%s' % (test_dom,'mem'),
+ 'pool_id' : 'MemoryPool/0'
+ }
+
+ net = {
+ 'rasd_id' : '%s/%s' % (test_dom, test_mac),
+ 'pool_id' : 'NetworkPool/%s' %test_network
+ }
+
+ disk = { 'rasd_id' : '%s/%s' % (test_dom, test_disk),
+ 'pool_id' : diskid
+ }
+
+ cn_id_list = {
+ 'MemResourceAllocationSettingData' : mem,
+ 'ProcResourceAllocationSettingData' : proc,
+ 'NetResourceAllocationSettingData' : net,
+ 'DiskResourceAllocationSettingData' : disk
+ }
+
+ return cn_id_list
+
+def get_rasd_instance(server, virt, key_list, cn):
+ inst = None
+ try:
+ inst = enumclass.getInstance(server, cn, key_list, virt)
+ except Exception, details:
+ logger.error(Globals.CIM_ERROR_GETINSTANCE, cn)
+ logger.error("Exception details: %s", details)
+ return inst, FAIL
+
+ return inst, PASS
+
+def verify_pool_from_RAFP(server, virt, inst, pool_id, cn):
+ pool = []
+ try:
+ pool = assoc.AssociatorNames(server, "ResourceAllocationFromPool",
+ cn, virt, InstanceID = inst.InstanceID)
+ except Exception:
+ logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES, inst.InstanceID)
+ return FAIL
+
+ if len(pool) != 1:
+ logger.error("No associated pool for %s", inst.InstanceID)
+ return FAIL
+
+ if pool[0]['InstanceID'] != pool_id:
+ logger.error("InstanceID Mismatch")
+ logger.error("Returned %s instead of %s", pool[0]['InstanceID'] ,
+ pool_id)
+ return FAIL
+
+ return PASS
+
+def get_rasdinst_verify_pool_from_RAFP(server, virt, vsxml, cn, id_info):
+ try:
+ key_list = { 'InstanceID' : id_info['rasd_id'] }
+ rasd_cn = get_typed_class(virt, cn)
+ rasdinst, status = get_rasd_instance(server, virt, key_list, rasd_cn)
+ if status != PASS or rasdinst.InstanceID == None:
+ vsxml.undefine(server)
+ return status
+
+ status = verify_pool_from_RAFP(server, virt, rasdinst,
+ id_info['pool_id'], cn)
+ except Exception, details:
+ logger.error("Exception in get_rasdinst_verify_pool_from_RAFP() fn")
+ logger.error("Exception Details %s", details)
+ status = FAIL
+
+ if status != PASS:
+ vsxml.undefine(server)
+
+ return status
+
@do_main(sup_types)
def main():
options = main.options
status = PASS
+ server = options.ip
+ virt = options.virt
+
+ status, vsxml, test_disk = setup_env(server, virt)
+ if status != PASS:
+ return status
- key_list = ["DeviceID", "CreationClassName", "SystemName",
- "SystemCreationClassName"]
- try:
- mem = devices.enumerate(options.ip, 'Memory', key_list, options.virt)
- except Exception:
- logger.error(Globals.CIM_ERROR_ENUMERATE % 'Memory')
- return FAIL
+ status, diskid = create_diskpool_conf(server, virt)
+ if status != PASS:
+ return status
- try:
- proc = devices.enumerate(options.ip, 'Processor', key_list, options.virt)
- except Exception:
- logger.error(Globals.CIM_ERROR_ENUMERATE % 'Processor')
- return FAIL
-
- for i in range(len(mem)):
- try:
- mempool = assoc.AssociatorNames(options.ip, "ResourceAllocationFromPool",
- "MemResourceAllocationSettingData",
- options.virt,
- InstanceID = mem[i].DeviceID)
- except Exception:
- logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % mem[i].DeviceID)
- status = FAIL
+ status, test_network = create_netpool_conf(server, virt)
+ if status != PASS:
+ return status
- if len(mempool) < 1:
- logger.error("No associated pool for %s" % mem[i].DeviceID)
- return FAIL
+ cn_id_list = init_list(test_disk, diskid, test_network)
- if mempool[0].keybindings['InstanceID'] != "MemoryPool/0":
- logger.error("MemResourceAllocationSettingData association error")
- return FAIL
-
- for j in range(len(proc)):
- try:
- procpool = assoc.AssociatorNames(options.ip, "ResourceAllocationFromPool",
- "ProcResourceAllocationSettingData",
- options.virt,
- InstanceID = proc[j].DeviceID)
- except Exception:
- logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % proc[j].DeviceID)
- return FAIL
-
- if len(procpool) < 1:
- logger.error("No associated pool for %s" % proc[j].DeviceID)
- return FAIL
+ for rasd_cn, id_info in cn_id_list.iteritems():
+ status = get_rasdinst_verify_pool_from_RAFP(server, virt, vsxml,
+ rasd_cn, id_info)
+ if status != PASS:
+ return status
- if procpool[0].keybindings['InstanceID'] != "ProcessorPool/0":
- logger.error("ProcResourceAllocationSettingData association failed")
- status = FAIL
-
+ cleanup_restore(server, virt)
+ vsxml.undefine(server)
return status
if __name__ == "__main__":
16 years, 11 months
[PATCH] [TEST] Resubmit ElementConforms.01&03&04 for LXC support
by yunguol@cn.ibm.com
# HG changeset patch
# User Guolian Yun <yunguol(a)cn.ibm.com>
# Date 1212115646 -28800
# Node ID 25c2af6bfccc73196fff0ce96f7162b8b22d0057
# Parent 3ac66cf562f082546883c1de0d748471b557cd39
[TEST] Resubmit ElementConforms.01&03&04 for LXC support
Signed-off-by: Guolian Yun <yunguol(a)cn.ibm.com>
diff -r 3ac66cf562f0 -r 25c2af6bfccc suites/libvirt-cim/cimtest/ElementConforms/01_forward.py
--- a/suites/libvirt-cim/cimtest/ElementConforms/01_forward.py Fri May 30 00:24:45 2008 +0800
+++ b/suites/libvirt-cim/cimtest/ElementConforms/01_forward.py Fri May 30 10:47:26 2008 +0800
@@ -42,7 +42,7 @@
from CimTest import Globals
from CimTest.ReturnCodes import PASS, FAIL
-sup_types = ['Xen', 'XenFV', 'KVM']
+sup_types = ['Xen', 'XenFV', 'KVM', 'LXC']
test_dom = "domU"
def verify_cs(item, id):
diff -r 3ac66cf562f0 -r 25c2af6bfccc suites/libvirt-cim/cimtest/ElementConforms/03_ectp_fwd_errs.py
--- a/suites/libvirt-cim/cimtest/ElementConforms/03_ectp_fwd_errs.py Fri May 30 00:24:45 2008 +0800
+++ b/suites/libvirt-cim/cimtest/ElementConforms/03_ectp_fwd_errs.py Fri May 30 10:47:26 2008 +0800
@@ -60,9 +60,8 @@
from CimTest import Globals
from CimTest.Globals import logger, CIM_USER, CIM_PASS, do_main
-sup_types = ['Xen', 'XenFV', 'KVM']
+sup_types = ['Xen', 'XenFV', 'KVM', 'LXC']
-bug = '92642'
expr_values = {
"INVALID_InstID_Keyname" : { 'rc' : pywbem.CIM_ERR_FAILED, \
@@ -82,7 +81,7 @@
k = j * 2
keys[name_val[k]] = name_val[k+1]
ret_val = try_assoc(conn, classname, ac_classname, keys, field_name=field, \
- expr_values=expr_values[field], bug_no=bug)
+ expr_values=expr_values[field], bug_no="")
if ret_val != PASS:
logger.error("------ FAILED: %s------" % field)
name_val[i] = temp
diff -r 3ac66cf562f0 -r 25c2af6bfccc suites/libvirt-cim/cimtest/ElementConforms/04_ectp_rev_errs.py
--- a/suites/libvirt-cim/cimtest/ElementConforms/04_ectp_rev_errs.py Fri May 30 00:24:45 2008 +0800
+++ b/suites/libvirt-cim/cimtest/ElementConforms/04_ectp_rev_errs.py Fri May 30 10:47:26 2008 +0800
@@ -89,9 +89,8 @@
from CimTest.ReturnCodes import PASS, FAIL
from CimTest.Globals import logger, CIM_USER, CIM_PASS, CIM_NS, do_main
-sup_types = ['Xen', 'XenFV', 'KVM']
+sup_types = ['Xen', 'XenFV', 'KVM', 'LXC']
-bug = '92642'
test_dom = "domU"
cs_values = {
@@ -122,7 +121,7 @@
else:
expr_values = cs_values
ret_val = try_assoc(conn, classname, ac_classname, keys, field_name=field, \
- expr_values=expr_values[field], bug_no=bug)
+ expr_values=expr_values[field], bug_no="")
if ret_val != PASS:
logger.error("------ FAILED: %s------" % field)
name_val[i] = temp
16 years, 11 months
[PATCH] Update ECTP registration so LXC is registered to both interop and virt
by Kaitlin Rupert
# HG changeset patch
# User Kaitlin Rupert <karupert(a)us.ibm.com>
# Date 1212429483 25200
# Node ID fe071d08bfdc347ab577b78c44885638b5ef885a
# Parent 7cf0b0142edb638ce43cc8f3209eef12b2f5e04b
Update ECTP registration so LXC is registered to both interop and virt.
Signed-off-by: Kaitlin Rupert <karupert(a)us.ibm.com>
diff -r 7cf0b0142edb -r fe071d08bfdc schema/ElementConformsToProfile.registration
--- a/schema/ElementConformsToProfile.registration Mon Jun 02 09:58:51 2008 -0700
+++ b/schema/ElementConformsToProfile.registration Mon Jun 02 10:58:03 2008 -0700
@@ -4,4 +4,5 @@
Xen_ElementConformsToProfile root/interop Virt_ElementConformsToProfile Virt_ElementConformsToProfile association
KVM_ElementConformsToProfile root/virt Virt_ElementConformsToProfile Virt_ElementConformsToProfile association
KVM_ElementConformsToProfile root/interop Virt_ElementConformsToProfile Virt_ElementConformsToProfile association
+LXC_ElementConformsToProfile root/virt Virt_ElementConformsToProfile Virt_ElementConformsToProfile association
LXC_ElementConformsToProfile root/interop Virt_ElementConformsToProfile Virt_ElementConformsToProfile association
16 years, 11 months
[PATCH] [TEST] #3 Make RHEL 5 XenFV guest grub conf use hda
by Kaitlin Rupert
# HG changeset patch
# User Kaitlin Rupert <karupert(a)us.ibm.com>
# Date 1211564341 25200
# Node ID 8e103fd87b6b284a9b646e44fbf67441008ba3ba
# Parent 4a5a44d7b857df543af24d59380cb8fdbbb753a4
[TEST] #3 Make RHEL 5 XenFV guest grub conf use hda.
It looks like qemu on RHEL emulates an ide drive, not a scsi drive.
Update from 1 to 2:
-Instead of using distro, use qemu-dm version.
Update from 2 to 3:
-Handle case where qemu-dm is 32 bit, as well as 64 bit.
Signed-off-by: Kaitlin Rupert <karupert(a)us.ibm.com>
diff -r 4a5a44d7b857 -r 8e103fd87b6b suites/libvirt-cim/images/xmt-makefv.sh
--- a/suites/libvirt-cim/images/xmt-makefv.sh Fri May 30 14:26:38 2008 +0800
+++ b/suites/libvirt-cim/images/xmt-makefv.sh Fri May 23 10:39:01 2008 -0700
@@ -14,6 +14,20 @@
PARTED="parted -s"
TMPMOUNT=/tmp/cimtest_image_temp
SIZE=16
+QEMU_VER=082
+QEMU_FILE=""
+
+if [ -e "/usr/lib64/xen/bin/qemu-dm" ]; then
+ QEMU_FILE="/usr/lib64/xen/bin/qemu-dm"
+elif [ -e "/usr/lib64/xen/bin/qemu-dm" ]; then
+ QEMU_FILE="/usr/lib/xen/bin/qemu-dm"
+fi
+
+if [ -z $QEMU_FILE ]; then
+ CU_QEMU_VER=0
+else
+ CUR_QEMU_VER=`strings $QEMU_FILE | awk '/version [0-9]/ { print $5; }' | sed 's/,//' | sed 's/\.//g'`
+fi
die() {
echo "FAILED: $i" >&2
@@ -110,10 +124,19 @@
timeout 1
title Test Environment
root (hd0,0)
+EOF
+
+if [ $CUR_QEMU_VER -lt $QEMU_VER ]; then
+ cat >>${root}/grub/grub.conf <<EOF
+ kernel /vmlinuz root=/dev/hda1
+ initrd /initrd
+EOF
+else
+ cat >>${root}/grub/grub.conf <<EOF
kernel /vmlinuz root=/dev/sda1
initrd /initrd
EOF
-
+fi
}
ramdisk=$1
16 years, 11 months