
Deepti B. Kalakeri wrote:
# HG changeset patch # User Deepti B. Kalakeri <deeptik@linux.vnet.ibm.com> # Date 1210765549 25200 # Node ID 6671b339cc8fd7c2cc7cada2ac15bc93635fbe4b # Parent 63c2d5e576bd750c0ba0975424a72ac24105c6f7 [TEST] Adding create_diskpool() function. Modified vxml to get the poolname and networkname . To create the storage pool on machine with libvirt >= 0.4.1
Signed-off-by: Deepti B. Kalakeri <deeptik@linux.vnet.ibm.com>
diff -r 63c2d5e576bd -r 6671b339cc8f suites/libvirt-cim/lib/XenKvmLib/common_util.py --- a/suites/libvirt-cim/lib/XenKvmLib/common_util.py Wed May 14 04:36:40 2008 -0700 +++ b/suites/libvirt-cim/lib/XenKvmLib/common_util.py Wed May 14 04:45:49 2008 -0700 @@ -1,3 +1,4 @@ +#!/usr/bin/python # # Copyright 2008 IBM Corp. # @@ -33,6 +34,8 @@ from CimTest.Globals import logger, log_ from CimTest.Globals import logger, log_param, CIM_ERROR_ENUMERATE from CimTest.ReturnCodes import PASS, FAIL, XFAIL_RC from XenKvmLib.const import CIM_REV +from VirtLib.live import diskpool_list, virsh_version, net_list +from XenKvmLib.vxml import PoolXML, NetXML
test_dpath = "foo" diskpoolconf_rev = 558 @@ -294,3 +297,53 @@ def create_diskpool_file():
return conf_file()
+def create_diskpool(server, virt='KVM'): + status = PASS + try: + dpool_list = diskpool_list(server, virt='KVM') + if len(dpool_list) > 0: + dpoolname=dpool_list[0] + else: + diskxml = PoolXML(server, virt=virt) + ret = diskxml.create_vpool() + if not ret: + logger.error('Failed to create the disk pool "%s"', + dpoolname) + status = FAIL + dpoolname=diskxml.xml_get_diskpool_name()
You'll want to include this line in an else. If you are unable to get create the diskpool, then you'll be unable to get the name using xml_get_diskpool_name().
+ except Exception, detail: + logger.error("Exception: In fn create_diskpool(): %s", detail) + status=FAIL + return status, dpoolname
Before the try, you'll want to declare dpoolname = None or something similar. If you encounter an exception before dpoolname is assigned, then you'll hit a python error because you're referencing dpoolname before its assigned.
+ +def create_diskpool_conf(server, virt): + libvirt_version = virsh_version(server, virt) + if virt == 'KVM' and libvirt_version >= '0.4.1' and \ + CIM_REV > diskpoolconf_rev:
I missed during the last review - the diskpool isn't specific to KVM. KVM, Xen, and XenFV will use a diskpool if the version of libvirt is >= 0.4.1.
+ status, dpoolname = create_diskpool(server, virt=virt) + diskid = "%s/%s" % ("DiskPool", dpoolname) + else: + status = create_diskpool_file() + diskid = "%s/%s" % ("DiskPool", test_dpath) + + return status, diskid + + +def create_netpool_conf(server, virt): + status = PASS + try: + vir_network = net_list(server, virt) + if len(vir_network) > 0: + test_network = vir_network[0] + else: + netxml = NetXML(server, virt=virt) + ret = netxml.create_vnet() + if not ret: + logger.error("Failed to create Virtual Network '%s'", + test_network) + status = FAIL + test_network = netxml.xml_get_netpool_name() + except Exception, detail: + logger.error("Exception: In fn create_netpool_conf(): %s", detail) + status=FAIL + return status, test_network
You'll want to define test_network before the try, otherwise test_network won't be defined if you encounter an exception. -- Kaitlin Rupert IBM Linux Technology Center kaitlin@linux.vnet.ibm.com