[Libvirt-cim] [PATCH 1 of 3] [TEST] #2 Add get_default_rasds() and get_rasd_templates() to rasd.py
Deepti B Kalakeri
deeptik at linux.vnet.ibm.com
Fri Oct 17 12:06:47 UTC 2008
+1 for me.
Kaitlin Rupert wrote:
> # HG changeset patch
> # User Kaitlin Rupert <karupert at us.ibm.com>
> # Date 1223515128 25200
> # Node ID bbd83da2f0f6bc96ec47025dda3f4f42c095ab86
> # Parent cfc2c9d1212d80b4ee2ddf37c5e9398b4e349b26
> [TEST] #2 Add get_default_rasds() and get_rasd_templates() to rasd.py
>
> NOTE: This patch only works with recent versions of pywbem (svn checkout of 09/04/2008 or later).
>
> These functions can be used to get the template RASD instances. Instead of building instances by hand (see default_vssd_rasd_str()), the test cases should be using the template RASDs provided by the SettingsDefineCapabilities association.
>
> get_rasd_templates() - returns the min, max, increment, and default template RASD instances for a given AllocationCapabilities instance.
>
> get_default_rasds() - returns just the default template RASD instances for the resource pools.
>
> Add inst_to_mof() to convert instances to mof format. This is only needed for libcmpiutil version 0.4 and older.
>
> Add get_default_rasd_mofs() - returns default template RASDs in mof format.
>
> Updates:
> -Change if/elif in inst_to_mof() to a single if.
>
> Signed-off-by: Kaitlin Rupert <karupert at us.ibm.com>
>
> diff -r cfc2c9d1212d -r bbd83da2f0f6 suites/libvirt-cim/lib/XenKvmLib/classes.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/classes.py Wed Oct 15 05:57:17 2008 -0700
> +++ b/suites/libvirt-cim/lib/XenKvmLib/classes.py Wed Oct 08 18:18:48 2008 -0700
> @@ -44,3 +44,16 @@
>
> return cn[dash_index+1:]
>
> +#FIXME This function is only needed for libcmpiutil versions 0.4 and later.
> +#Once version 0.4 is obsolete, this function should be removed.
> +def inst_to_mof(inst):
> + mof_str = inst.tomof()
> +
> + mof_inst = ""
> +
> + for str in mof_str.splitlines():
> + if str.endswith('{') or str.endswith('};') or not str.endswith('NULL;'):
> + mof_inst += "%s\n" % str
> +
> + return mof_inst
> +
> diff -r cfc2c9d1212d -r bbd83da2f0f6 suites/libvirt-cim/lib/XenKvmLib/rasd.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/rasd.py Wed Oct 15 05:57:17 2008 -0700
> +++ b/suites/libvirt-cim/lib/XenKvmLib/rasd.py Wed Oct 08 18:18:48 2008 -0700
> @@ -24,8 +24,11 @@
> from CimTest.Globals import logger
> from CimTest.ReturnCodes import FAIL, PASS
> from XenKvmLib import vxml
> -from XenKvmLib.classes import get_typed_class
> -
> +from XenKvmLib import const
> +from XenKvmLib.classes import get_typed_class, get_class_type
> +from XenKvmLib.enumclass import GetInstance
> +from XenKvmLib.assoc import Associators
> +from XenKvmLib.const import default_pool_name, default_network_name
>
> pasd_cn = 'ProcResourceAllocationSettingData'
> nasd_cn = 'NetResourceAllocationSettingData'
> @@ -165,3 +168,63 @@
> memrasd_list['VirtualQuantity'])
> status = FAIL
> return status
> +
> +def get_rasd_templates(host_ip, type, pool_id):
> + ac_cn = get_typed_class(type, "AllocationCapabilities")
> + an_cn = get_typed_class(type, "SettingsDefineCapabilities")
> +
> + templates = []
> +
> + try:
> + key_list = {"InstanceID" : pool_id }
> +
> + inst = GetInstance(host_ip, ac_cn, key_list)
> +
> + temps = Associators(host_ip, an_cn, ac_cn, InstanceID=inst.InstanceID)
> +
> + for temp in temps:
> + templates.append(temp)
> +
> + except Exception, detail:
> + logger.error("Exception: %s", detail)
> +
> + return templates
> +
> +def get_default_rasds(host_ip, type):
> + ac_id_list = [ "MemoryPool/0",
> + "DiskPool/%s" % default_pool_name,
> + ]
> +
> + if type == "LXC":
> + if const.LXC_netns_support is True:
> + ac_id_list.append("NetworkPool/%s" % default_network_name)
> + else:
> + ac_id_list.append("NetworkPool/%s" % default_network_name)
> + ac_id_list.append("ProcessorPool/0")
> +
> + templates = []
> +
> + for id in ac_id_list:
> + rasd_list = get_rasd_templates(host_ip, type, id)
> + if len(rasd_list) < 1:
> + logger.info("No RASD templates returned for %s", id)
> + return []
> +
> + for rasd in rasd_list:
> + if rasd['InstanceID'] == "Default":
> + templates.append(rasd)
> +
> + return templates
> +
> +def get_default_rasd_mofs(host_ip, type):
> + rasds = get_default_rasds(ip, virt)
> +
> + rasd_mofs = []
> +
> + #FIXME for libcmpiutil versions 0.4 and later, inst_to_mof() is needed.
> + #This should be changed to rasd.tomof() once version 0.4 is obsolete.
> + for rasd in rasds:
> + rasd_mofs.append(inst_to_mof(rasd))
> +
> + return rasd_mofs
> +
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
>
More information about the Libvirt-cim
mailing list