# HG changeset patch
# User Guolian Yun <yunguol(a)cn.ibm.com>
# Date 1213777121 -28800
# Node ID 09f95362435b3fcfc1e37445bb3b394a1ec59885
# Parent f4a167c62403c8aaaac5127d0c984c74ea863344
[TEST] 2# Update RAFP.01 for LXC support, also add DiskPool and NetworkPool verification
2# Test and pass for Xen, KVM and LXC
Signed-off-by: Guolian Yun <yunguol(a)cn.ibm.com>
diff -r f4a167c62403 -r 09f95362435b
suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py
--- a/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py Tue Jun 17
13:20:47 2008 +0800
+++ b/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/01_forward.py Wed Jun 18
16:18:41 2008 +0800
@@ -26,17 +26,64 @@
from VirtLib import utils
from XenKvmLib import assoc
from XenKvmLib import enumclass
+from XenKvmLib.test_doms import destroy_and_undefine_all
+from XenKvmLib.vxml import get_class
from XenKvmLib.classes import get_typed_class
from CimTest import Globals
from CimTest.Globals import logger, do_main
+from XenKvmLib.common_util import cleanup_restore, create_diskpool_conf, \
+create_netpool_conf
from CimTest.ReturnCodes import PASS, FAIL, XFAIL
-sup_types = ['Xen', 'XenFV', 'KVM']
+sup_types = ['Xen', 'XenFV', 'KVM', 'LXC']
+
+test_dom = "RAFP_dom"
+test_vcpus = 1
+test_mem = 128
+test_mac = "00:11:22:33:44:aa"
+
+def setup_env(server, virt):
+ destroy_and_undefine_all(server)
+ vsxml = None
+ if virt == "Xen":
+ test_disk = "xvda"
+ else:
+ test_disk = "hda"
+
+ virtxml = get_class(virt)
+ if virt == 'LXC':
+ vsxml = virtxml(test_dom)
+ else:
+ vsxml = virtxml(test_dom, mem=test_mem, vcpus = test_vcpus,
+ mac = test_mac, disk = test_disk)
+ try:
+ ret = vsxml.define(server)
+ if not ret:
+ logger.error("Failed to Define the domain: %s", test_dom)
+ return FAIL, vsxml, test_disk
+
+ except Exception, details:
+ logger.error("Exception : %s", details)
+ return FAIL, vsxml, test_disk
+
+ return PASS, vsxml, test_disk
@do_main(sup_types)
def main():
options = main.options
status = PASS
+
+ status, vsxml, test_disk = setup_env(options.ip, options.virt)
+ if status != PASS:
+ return status
+
+ status, diskid = create_diskpool_conf(options.ip, options.virt)
+ if status != PASS:
+ return status
+
+ status, test_network = create_netpool_conf(options.ip, options.virt)
+ if status != PASS:
+ return status
try:
key_list = { 'InstanceID' : "MemoryPool/0" }
@@ -57,6 +104,27 @@
except Exception:
logger.error(Globals.CIM_ERROR_GETINSTANCE % "ProcessorPool")
return FAIL
+
+ try:
+ key_list = { 'InstanceID' : diskid}
+ diskpool = enumclass.getInstance(options.ip,
+ "DiskPool",
+ key_list,
+ options.virt)
+ except Exception:
+ logger.error(Globals.CIM_ERROR_GETINSTANCE % "DiskPool")
+ return FAIL
+
+ try:
+ key_list = { 'InstanceID' : "NetworkPool/%s" % test_network }
+ netpool = enumclass.getInstance(options.ip,
+ "NetworkPool",
+ key_list,
+ options.virt)
+ except Exception:
+ logger.error(Globals.CIM_ERROR_GETINSTANCE % "NetworkPool")
+ return FAIL
+
try:
memdata = assoc.AssociatorNames(options.ip,
"ResourceAllocationFromPool",
@@ -86,6 +154,35 @@
logger.error("ERROR: Association result error")
status = FAIL
+ try:
+ diskdata = assoc.AssociatorNames(options.ip,
"ResourceAllocationFromPool",
+ "DiskPool",
+ options.virt,
+ InstanceID = diskpool.InstanceID)
+ except Exception:
+ logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % diskpool.InstanceID)
+ status = FAIL
+
+ for i in range(len(diskdata)):
+ if diskdata[i].classname != get_typed_class(options.virt,
"DiskResourceAllocationSettingData"):
+ logger.error("ERROR: Association result error")
+ status = FAIL
+
+ try:
+ netdata = assoc.AssociatorNames(options.ip,
"ResourceAllocationFromPool",
+ "NetworkPool",
+ options.virt,
+ InstanceID = netpool.InstanceID)
+ except Exception:
+ logger.error(Globals.CIM_ERROR_ASSOCIATORNAMES % netpool.InstanceID)
+ status = FAIL
+
+ for i in range(len(netdata)):
+ if netdata[i].classname != get_typed_class(options.virt,
"NetResourceAllocationSettingData"):
+ logger.error("ERROR: Association result error")
+ status = FAIL
+
+
return status