From grendel at linux.vnet.ibm.com Thu May 1 12:54:19 2008
From: grendel at linux.vnet.ibm.com (Jay Gagnon)
Date: Thu, 01 May 2008 08:54:19 -0400
Subject: [Libvirt-cim] [PATCH 0 of 2] Move MAC generation to DefineSystem
In-Reply-To:
References:
Message-ID: <4819BD7B.5010708@linux.vnet.ibm.com>
Dan Smith wrote:
> This set moves the MAC generation to DefineSystem and out of the example
> NetRASD from AC.
>
>
Having already determined it's necessary to make this change, I guess
there's not really a whole lot to be said about a patch that just moves
code from one place to the other. So... +1!
--
-Jay
From kaitlin at linux.vnet.ibm.com Thu May 1 13:56:27 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Thu, 01 May 2008 06:56:27 -0700
Subject: [Libvirt-cim] KVM test report on Fedora 9 (4/30)
In-Reply-To: <4818049C.9070202@linux.vnet.ibm.com>
References: <4817E363.7050105@linux.vnet.ibm.com>
<4818049C.9070202@linux.vnet.ibm.com>
Message-ID: <4819CC0B.7050207@linux.vnet.ibm.com>
Zhengang Li wrote:
>> ComputerSystemIndication - 01_created_indication.py: FAIL
> Pegasus crashed after running this test case.
> Log says 'BadStatusLine :'
>
Any more information on why the provider is crashing here? I'm able to
run with KVM on current sources. Maybe this test is hitting a provider
but that's been fixed?
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Thu May 1 14:17:19 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Thu, 01 May 2008 07:17:19 -0700
Subject: [Libvirt-cim] CimTest Report for KVM on F9 30-04-2008
In-Reply-To: <48186C18.8020205@linux.vnet.ibm.com>
References: <48186C18.8020205@linux.vnet.ibm.com>
Message-ID: <4819D0EF.2030405@linux.vnet.ibm.com>
Thanks for the test run Deepti!
>
> VSSD - 03_vssd_gi_errs.py: FAIL
> ERROR - Unexpected rc code 0 and description The web server returned a
> bad status line: ''
> ERROR - ------ FAILED: INVALID_InstID_Keyval ------
>
> -------------------------------------------------------------------------
> cimserver o/p when run in the background
> misc_util.c(72): Connecting to libvirt with uri `qemu:///system'
> misc_util.c(199): URI of connection is: qemu:///system
> misc_util.c(72): Connecting to libvirt with uri `qemu:///system'
> misc_util.c(199): URI of connection is: qemu:///system
> Segmentation fault
> -------------------------------------------------------------------------
> The segmentation fault occurs the InstanceID does not contain the VSType.
Can you give an example query? This test passes for me on my system, so
I'm not sure what the offending portion of the test is. I tried the
following query:
wbemcli gi
'http://localhost:5988/root/virt:KVM_VirtualSystemSettingData.InstanceID="Invalid"'
*
* wbemcli: Cim: (6) CIM_ERR_NOT_FOUND: No such instance (InstanceID)
*
Which returned an error, as expected.
> The segmentation does not occur when the InstanceID contains something
> like "KVM:Invaid"
>
> VirtualSystemManagementService - 01_definesystem_name.py: FAIL
> VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
> VirtualSystemManagementService - 06_addresource.py: FAIL
>
> VirtualSystemSettingDataComponent - 04_vssdc_rev_errs.py: FAIL
> ERROR - Unexpected rc code 0 and description The web server returned a
> bad status line: ''
>
> ERROR - ------ FAILED: KVM_VirtualSystemSettingData
> INVALID_InstID_Keyval------
>
> -------------------------------------------------------------------------
> cimserver o/p when run in the background
> misc_util.c(72): Connecting to libvirt with uri `qemu:///system'
> misc_util.c(199): URI of connection is: qemu:///system
> misc_util.c(72): Connecting to libvirt with uri `qemu:///system'
> misc_util.c(199): URI of connection is: qemu:///system
> std_association.c(288): Getting handler ...
> std_association.c(151): Calling Provider: 'associationVirt_VSSDComponent'
> std_association.c(167): Check client's assocClass:
> 'KVM_VirtualSystemSettingDataComponent'
> std_association.c(178): AssocClass valid.
> std_association.c(294): Getting handler succeeded.
> std_association.c(298): Calling handler ...
> std_association.c(301): Handler did not return CMPI_RC_OK.
> std_association.c(288): Getting handler ...
> std_association.c(151): Calling Provider: 'associationVirt_VSSDComponent'
> std_association.c(167): Check client's assocClass:
> 'KVM_VirtualSystemSettingDataComponent'
> std_association.c(178): AssocClass valid.
> std_association.c(294): Getting handler succeeded.
> std_association.c(298): Calling handler ...
> std_association.c(301): Handler did not return CMPI_RC_OK.
> Segmentation fault
> -------------------------------------------------------------------------
> The segmentation fault occurs the InstanceID does not contain the VSType.
I had the same issue here - the test case passes. Can you give a sample
query?
Providers shouldn't seg fault, so it'll be good to track this down. Thanks!
> The segmentation does not occur when the InstanceID contains something
> like "KVM:Invaid"
>
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From danms at us.ibm.com Thu May 1 17:05:32 2008
From: danms at us.ibm.com (Dan Smith)
Date: Thu, 01 May 2008 10:05:32 -0700
Subject: [Libvirt-cim] [PATCH] Remove PKG_CONFIG_PATH override
Message-ID:
# HG changeset patch
# User Dan Smith
# Date 1209661530 25200
# Node ID d50126c4ae1c0faca291f5c1e816de9dac65c605
# Parent ffa1024f9012873e29c732a9b355199bd61d0440
Remove PKG_CONFIG_PATH override
...so that you can actually set it if you need to :)
Signed-off-by: Dan Smith
diff -r ffa1024f9012 -r d50126c4ae1c configure.ac
--- a/configure.ac Wed Apr 30 11:24:37 2008 -0700
+++ b/configure.ac Thu May 01 10:05:30 2008 -0700
@@ -134,7 +134,6 @@ CHECK_CIMSERVER
CHECK_CIMSERVER
# Check for presence of libraries
-PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
CHECK_LIBVIRT
CHECK_LIBXML2
CHECK_LIBCU
From danms at us.ibm.com Thu May 1 17:32:38 2008
From: danms at us.ibm.com (Dan Smith)
Date: Thu, 01 May 2008 10:32:38 -0700
Subject: [Libvirt-cim] [TEST] test cases fix list and assignment for the
next week
In-Reply-To: <4818EB63.5050505@linux.vnet.ibm.com> (Kaitlin Rupert's message
of "Wed, 30 Apr 2008 14:57:55 -0700")
References:
<48174407.9020804@linux.vnet.ibm.com>
<87d4o8ievv.fsf@caffeine.beaverton.ibm.com>
<4817C734.3090309@linux.vnet.ibm.com>
<4818EB63.5050505@linux.vnet.ibm.com>
Message-ID: <87mynand55.fsf@caffeine.beaverton.ibm.com>
KR> I think what Dan meant is that we should be using a network
KR> interface type for the cimtest guests.
Well, the providers should be creating ,
so I need to check and make sure we're doing that.
KR> Dan - should the provider return an error if the guest doesn't use
KR> a network type interface?
Meaning an existing guest created outside the providers with a network
type we don't support? I dunno, I'll have to think on that one.
--
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms at us.ibm.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL:
From grendel at linux.vnet.ibm.com Thu May 1 17:34:48 2008
From: grendel at linux.vnet.ibm.com (Jay Gagnon)
Date: Thu, 01 May 2008 13:34:48 -0400
Subject: [Libvirt-cim] [PATCH] Remove PKG_CONFIG_PATH override
In-Reply-To:
References:
Message-ID: <4819FF38.8030603@linux.vnet.ibm.com>
Dan Smith wrote:
> # HG changeset patch
> # User Dan Smith
> # Date 1209661530 25200
> # Node ID d50126c4ae1c0faca291f5c1e816de9dac65c605
> # Parent ffa1024f9012873e29c732a9b355199bd61d0440
> Remove PKG_CONFIG_PATH override
>
> ...so that you can actually set it if you need to :)
>
> Signed-off-by: Dan Smith
>
Letting them set things if they need to. When did we get all
touchie-feelie?
+1
--
-Jay
From danms at us.ibm.com Thu May 1 18:38:05 2008
From: danms at us.ibm.com (Dan Smith)
Date: Thu, 01 May 2008 11:38:05 -0700
Subject: [Libvirt-cim] [PATCH] Add the ValueRole to the SDC reference
Message-ID:
# HG changeset patch
# User Dan Smith
# Date 1209667072 25200
# Node ID df67e47476756c5cfdb77a976308677ac1742186
# Parent d4ea8516ae04a2e3ab0060f297035b107b59b81d
Add the ValueRole to the SDC reference
This extends the default make_reference() function to set the proper
ValueRole and ValueRange properties for the AC->RASD reference.
Signed-off-by: Dan Smith
diff -r d4ea8516ae04 -r df67e4747675 src/Virt_SettingsDefineCapabilities.c
--- a/src/Virt_SettingsDefineCapabilities.c Thu May 01 10:45:16 2008 -0700
+++ b/src/Virt_SettingsDefineCapabilities.c Thu May 01 11:37:52 2008 -0700
@@ -1063,6 +1063,49 @@ static CMPIStatus vsmsd_to_migrate_cap(c
return s;
}
+static CMPIInstance *make_ref_valuerole(const CMPIObjectPath *source_ref,
+ const CMPIInstance *target_inst,
+ struct std_assoc_info *info,
+ struct std_assoc *assoc)
+{
+ CMPIInstance *ref_inst = NULL;
+ uint16_t valuerole = SDC_ROLE_SUPPORTED;
+ uint16_t valuerange;
+ const char *iid = NULL;
+
+ ref_inst = make_reference(_BROKER,
+ source_ref,
+ target_inst,
+ info,
+ assoc);
+
+ if (cu_get_str_prop(target_inst, "InstanceID", &iid) != CMPI_RC_OK) {
+ CU_DEBUG("Target instance does not have an InstanceID");
+ goto out;
+ }
+
+ if (strstr("Default", iid) != NULL)
+ valuerange = SDC_RANGE_POINT;
+ else if (strstr("Increment", iid) != NULL)
+ valuerange = SDC_RANGE_INC;
+ else if (strstr("Maximum", iid) != NULL)
+ valuerange = SDC_RANGE_MAX;
+ else if (strstr("Minimum", iid) != NULL)
+ valuerange = SDC_RANGE_MIN;
+ else
+ CU_DEBUG("Unknown default RASD type: `%s'", iid);
+
+ if (valuerange == SDC_RANGE_POINT)
+ valuerole = SDC_ROLE_DEFAULT;
+
+ CMSetProperty(ref_inst, "ValueRole",
+ (CMPIValue *)&valuerole, CMPI_uint16);
+ CMSetProperty(ref_inst, "ValueRange",
+ (CMPIValue *)&valuerange, CMPI_uint16);
+ out:
+ return ref_inst;
+}
+
LIBVIRT_CIM_DEFAULT_MAKEREF()
static char* group_component[] = {
@@ -1105,7 +1148,7 @@ static struct std_assoc _alloc_cap_to_ra
.assoc_class = (char**)&assoc_classname,
.handler = alloc_cap_to_rasd,
- .make_ref = make_ref
+ .make_ref = make_ref_valuerole
};
static struct std_assoc _rasd_to_alloc_cap = {
From grendel at linux.vnet.ibm.com Thu May 1 18:47:10 2008
From: grendel at linux.vnet.ibm.com (Jay Gagnon)
Date: Thu, 01 May 2008 14:47:10 -0400
Subject: [Libvirt-cim] [PATCH] Add the ValueRole to the SDC reference
In-Reply-To:
References:
Message-ID: <481A102E.2070204@linux.vnet.ibm.com>
Dan Smith wrote:
> # HG changeset patch
> # User Dan Smith
> # Date 1209667072 25200
> # Node ID df67e47476756c5cfdb77a976308677ac1742186
> # Parent d4ea8516ae04a2e3ab0060f297035b107b59b81d
> Add the ValueRole to the SDC reference
>
> This extends the default make_reference() function to set the proper
> ValueRole and ValueRange properties for the AC->RASD reference.
>
> Signed-off-by: Dan Smith
>
This is probably something I should have done when I wrote the sdc stuff
in the first place, if I had only understood even remotely what
make_reference() was supposed to do :-P. So thanks for picking up the
slack there. +1
--
-Jay
From danms at us.ibm.com Thu May 1 18:49:13 2008
From: danms at us.ibm.com (Dan Smith)
Date: Thu, 01 May 2008 11:49:13 -0700
Subject: [Libvirt-cim] [PATCH 1 of 2] Add the ValueRole to the SDC reference
In-Reply-To:
Message-ID:
# HG changeset patch
# User Dan Smith
# Date 1209667695 25200
# Node ID db6526d1cb9c15334a73c25ab6e5fb511855013a
# Parent d4ea8516ae04a2e3ab0060f297035b107b59b81d
Add the ValueRole to the SDC reference
This extends the default make_reference() function to set the proper
ValueRole and ValueRange properties for the AC->RASD reference.
Changes:
- Add in PropertyPolicy
Signed-off-by: Dan Smith
diff -r d4ea8516ae04 -r db6526d1cb9c src/Virt_SettingsDefineCapabilities.c
--- a/src/Virt_SettingsDefineCapabilities.c Thu May 01 10:45:16 2008 -0700
+++ b/src/Virt_SettingsDefineCapabilities.c Thu May 01 11:48:15 2008 -0700
@@ -1063,6 +1063,52 @@ static CMPIStatus vsmsd_to_migrate_cap(c
return s;
}
+static CMPIInstance *make_ref_valuerole(const CMPIObjectPath *source_ref,
+ const CMPIInstance *target_inst,
+ struct std_assoc_info *info,
+ struct std_assoc *assoc)
+{
+ CMPIInstance *ref_inst = NULL;
+ uint16_t valuerole = SDC_ROLE_SUPPORTED;
+ uint16_t valuerange;
+ uint16_t ppolicy = SDC_POLICY_INDEPENDENT;
+ const char *iid = NULL;
+
+ ref_inst = make_reference(_BROKER,
+ source_ref,
+ target_inst,
+ info,
+ assoc);
+
+ if (cu_get_str_prop(target_inst, "InstanceID", &iid) != CMPI_RC_OK) {
+ CU_DEBUG("Target instance does not have an InstanceID");
+ goto out;
+ }
+
+ if (strstr("Default", iid) != NULL)
+ valuerange = SDC_RANGE_POINT;
+ else if (strstr("Increment", iid) != NULL)
+ valuerange = SDC_RANGE_INC;
+ else if (strstr("Maximum", iid) != NULL)
+ valuerange = SDC_RANGE_MAX;
+ else if (strstr("Minimum", iid) != NULL)
+ valuerange = SDC_RANGE_MIN;
+ else
+ CU_DEBUG("Unknown default RASD type: `%s'", iid);
+
+ if (valuerange == SDC_RANGE_POINT)
+ valuerole = SDC_ROLE_DEFAULT;
+
+ CMSetProperty(ref_inst, "ValueRole",
+ (CMPIValue *)&valuerole, CMPI_uint16);
+ CMSetProperty(ref_inst, "ValueRange",
+ (CMPIValue *)&valuerange, CMPI_uint16);
+ CMSetProperty(ref_inst, "PropertyPolicy",
+ (CMPIValue *)&ppolicy, CMPI_uint16);
+ out:
+ return ref_inst;
+}
+
LIBVIRT_CIM_DEFAULT_MAKEREF()
static char* group_component[] = {
@@ -1105,7 +1151,7 @@ static struct std_assoc _alloc_cap_to_ra
.assoc_class = (char**)&assoc_classname,
.handler = alloc_cap_to_rasd,
- .make_ref = make_ref
+ .make_ref = make_ref_valuerole
};
static struct std_assoc _rasd_to_alloc_cap = {
From danms at us.ibm.com Thu May 1 18:49:14 2008
From: danms at us.ibm.com (Dan Smith)
Date: Thu, 01 May 2008 11:49:14 -0700
Subject: [Libvirt-cim] [PATCH 2 of 2] Remove incorrectly-placed
ValueRole/ValueRange in RASDs from AC::SDC
In-Reply-To:
Message-ID: <122027a2c63e87593949.1209667754@guaranine.danplanet.com>
# HG changeset patch
# User Dan Smith
# Date 1209667697 25200
# Node ID 122027a2c63e875939492ec0c7f39299ca6fed25
# Parent db6526d1cb9c15334a73c25ab6e5fb511855013a
Remove incorrectly-placed ValueRole/ValueRange in RASDs from AC::SDC
Signed-off-by: Dan Smith
diff -r db6526d1cb9c -r 122027a2c63e src/Virt_SettingsDefineCapabilities.c
--- a/src/Virt_SettingsDefineCapabilities.c Thu May 01 11:48:15 2008 -0700
+++ b/src/Virt_SettingsDefineCapabilities.c Thu May 01 11:48:17 2008 -0700
@@ -856,10 +856,6 @@ static CMPIInstance *sdc_rasd_inst(const
const char *inst_id = NULL;
const char *base = NULL;
uint16_t resource_type;
- /* Defaults for the following are from
- CIM_SettingsDefineCapabilities.mof. */
- uint16_t policy = SDC_POLICY_INDEPENDENT;
- uint16_t role = SDC_ROLE_SUPPORTED;
switch(type) {
case SDC_RASD_MIN:
@@ -867,29 +863,24 @@ static CMPIInstance *sdc_rasd_inst(const
goto out;
prop_list = rasd->min(ref, s);
inst_id = "Minimum";
- range = SDC_RANGE_MIN;
break;
case SDC_RASD_MAX:
if (rasd->max == NULL)
goto out;
prop_list = rasd->max(ref, s);
inst_id = "Maximum";
- range = SDC_RANGE_MAX;
break;
case SDC_RASD_INC:
if (rasd->inc == NULL)
goto out;
prop_list = rasd->inc(ref, s);
inst_id = "Increment";
- range = SDC_RANGE_INC;
break;
case SDC_RASD_DEF:
if (rasd->def == NULL)
goto out;
prop_list = rasd->def(ref, s);
inst_id = "Default";
- role = SDC_ROLE_DEFAULT;
- range = SDC_RANGE_POINT;
break;
default:
cu_statusf(broker, s,
@@ -913,9 +904,6 @@ static CMPIInstance *sdc_rasd_inst(const
NAMESPACE(ref));
CMSetProperty(inst, "InstanceID", inst_id, CMPI_chars);
- CMSetProperty(inst, "PropertyPolicy", &policy, CMPI_uint16);
- CMSetProperty(inst, "ValueRole", &role, CMPI_uint16);
- CMSetProperty(inst, "ValueRange", &range, CMPI_uint16);
resource_type = rasd->resource_type;
CMSetProperty(inst, "ResourceType", &resource_type, CMPI_uint16);
From danms at us.ibm.com Thu May 1 18:49:12 2008
From: danms at us.ibm.com (Dan Smith)
Date: Thu, 01 May 2008 11:49:12 -0700
Subject: [Libvirt-cim] [PATCH 0 of 2] Correctly place the ValueRole,
ValueRange, and PropertyPolicy attributes
Message-ID:
This set (which includes my previous patch) creates a reference function
to set the mentioned attributes on the SDC reference, as well as removing
the code to set the on the RASD.
From grendel at linux.vnet.ibm.com Thu May 1 20:43:21 2008
From: grendel at linux.vnet.ibm.com (Jay Gagnon)
Date: Thu, 01 May 2008 16:43:21 -0400
Subject: [Libvirt-cim] [PATCH] Update web content to match libvirt.org
Message-ID: <9616af4ad2341ecb47dc.1209674601@naegling>
# HG changeset patch
# User Jay Gagnon
# Date 1209666871 14400
# Node ID 9616af4ad2341ecb47dc0b139017636d14e0e86a
# Parent bd075f76943a0facc8aa69d7788f3d6a1a2f8d8c
Update web content to match libvirt.org
Signed-off-by: Jay Gagnon
diff -r bd075f76943a -r 9616af4ad234 doc/Makefile.am
--- a/doc/Makefile.am Thu Apr 24 10:25:48 2008 -0400
+++ b/doc/Makefile.am Thu May 01 14:34:31 2008 -0400
@@ -1,23 +1,26 @@ XSLTPROC = /usr/bin/xsltproc
XSLTPROC = /usr/bin/xsltproc
+XMLLINT = /usr/bin/xmllint
-WEB_PAGES = index.html \
- architecture.html \
- downloads.html \
- intro.html \
- news.html \
- patches.html \
- platforms.html \
- schema.html
+dot_html_in = $(wildcard *.html.in)
+dot_html = $(dot_html_in:%.html.in=%.html)
-EXTRA_DIST = site.xsl libvirt-cim.html $(WEB_PAGES)
-
-$(WEB_PAGES): libvirt-cim.html site.xsl
- -@(if [ -x $(XSLTPROC) ]; then \
- $(XSLTPROC) --nonet --html $(top_srcdir)/doc/site.xsl $(top_srcdir)/doc/libvirt-cim.html > index.html; \
- fi);
+EXTRA_DIST = site.xsl $(dot_html) $(dot_html_in)
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)
@INSTALL@ -m 0644 $(srcdir)/*.html $(DESTDIR)$(HTML_DIR)
-all: $(WEB_PAGES)
+all: $(dot_html)
+
+%.html.tmp: %.html.in site.xsl page.xsl sitemap.html.in
+ @(if [ -x $(XSLTPROC) ] ; then \
+ echo "Generating $@"; \
+ name=`echo $@ | sed -e 's/.tmp//'`; \
+ echo "name: $$name"; \
+ $(XSLTPROC) --stringparam pagename $$name --nonet --html $(top_srcdir)/doc/site.xsl $< > $@ || (rm $@ && exit 1) ; fi )
+
+
+%.html: %.html.tmp
+ @(if [ -x $(XMLLINT) ] ; then \
+ echo "Validating $@" ; \
+ $(XMLLINT) --nonet --format --valid $< > $@ || : ; fi );
diff -r bd075f76943a -r 9616af4ad234 doc/architecture.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/architecture.html.in Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,30 @@
+
+
+ Architecture
+
+
+ The libvirt-cim provider consists of two major parts:
+
+
+
+ The provider classes themselves (src/ )
+
+
+ A helper library of common components (libxkutil/ )
+
+
+
+ The provider classes implement the actual CIM class model. Some of
+ the provider libraries implement one CIM class and one providier.
+ However, many of them perform more than one task. For example,
+ the Virt_Device and Virt_DevicePool providers
+ implement the device and device pool classes for each of the major
+ device types: Memory, Processor, Network, and Disk.
+
+
+ The helper library contains common routines that almost all of the
+ providers use, such as libvirt connection type detection and device
+ and system XML parsing.
+
+
+
diff -r bd075f76943a -r 9616af4ad234 doc/downloads.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/downloads.html.in Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,27 @@
+
+
+ Downloads
+
+
+ Official releases can be found on the libvirt.org
+ FTP server. Alternatively,
+ you can grab a
+ tarball or
+ zip file
+ snapshot of the development repository. These snapshots will have the
+ latest features (and bugs).
+
+
+ The libvirt-cim development tree can be found in the
+ libvirt.org/hg repository.
+
+
+ To get a copy of the development tree, use
+ mercurial 's clone
+ feature:
+
+
+ $ hg clone http://libvirt.org/hg/libvirt-cim
+
+
+
diff -r bd075f76943a -r 9616af4ad234 doc/generic.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/generic.css Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,75 @@
+
+body {
+ margin: 0em;
+ padding: 0px;
+ color: rgb(0,0,0);
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 80%;
+// font-size: 83%;
+}
+
+p, ul, ol, dl {
+ padding: 0px;
+ margin: 0px;
+}
+
+ol,ul {
+ margin-left: 3em;
+}
+
+ol,ul,dl,p {
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+p:first-line {
+ margin-right: 1em;
+}
+
+div.body p:first-letter {
+ font-size: 1.2em;
+ font-weight: bold;
+}
+
+h1,h2,h3,h4,h5,h6 {
+ font-weight: bold;
+ margin: 0px;
+ padding: 0px;
+ margin-top: 0.5em;
+}
+
+div.footer {
+ margin-top: 1em;
+}
+
+h1 {
+ font-size: 2em;
+}
+h2 {
+ font-size: 1.6em;
+}
+h3 {
+ font-size: 1.4em;
+}
+h4 {
+ font-size: 1.2em;
+}
+h5 {
+ font-size: 1em;
+}
+h6 {
+ font-size: 0.8em;
+}
+
+dl dt {
+ margin-left: 1em;
+ margin-right: 2em;
+ font-weight: bold;
+ font-size: larger;
+}
+
+dl dd {
+ margin-left: 2em;
+ margin-right: 2em;
+ margin-bottom: 0.5em;
+}
diff -r bd075f76943a -r 9616af4ad234 doc/index.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/index.html.in Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,25 @@
+
+
+ What is libvirt-cim ?
+
+ Libvirt-CIM is a CIM provider for managing linux virtualization platforms
+ using libvirt. It is written in C and should work in any CIMOM that
+ supports CMPI 2.0 providers. The intent is to implement the SVPC
+ virtualization class model currently available in the DMTF Experimental
+ 2.16 schema.
+
+
+ Libvirt-CIM is a CIM provider for managing linux virtualization platforms
+ using libvirt. It is written in C and should work in any CIMOM that
+ supports CMPI 2.0 providers. The intent is to implement the SVPC
+ virtualization class model currently available in the DMTF Experimental 2.
+ 16 schema.
+
+
+ The providers are currently under heavy development. Focus is on Xen
+ support right now, which means some of the providers have some "shortcuts"
+ hard-coded to Xen right now. The long-term goal is to support all of the
+ platforms that libvirt supports with minimal differences.
+
+
+
diff -r bd075f76943a -r 9616af4ad234 doc/libvirt.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/libvirt.css Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,343 @@
+
+
+h1 {
+ font-weight: normal;
+ color: #3c857c;
+}
+h1 strong {
+ font-weight: bold;
+}
+
+h2, h3, h4, h5, h6 {
+ color: #3c857c;
+}
+
+#header {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ margin: 0px;
+ height: 104px;
+ width: 100%;
+ background: url(libvirt-header-bg.png);
+ border: 0px;
+}
+
+#body {
+ position: relative;
+ border: 0px;
+ padding-top: 104px;
+ left: 0px;
+ margin: 0px;
+ padding-left: 250px;
+}
+
+#content {
+ float: right;
+ padding: 0px;
+ width: 100%;
+ padding-bottom: 1em;
+}
+
+#menu {
+ border: 0px;
+ margin-left: -250px;
+ position: relative;
+ margin-top: 0px;
+ left: 0px;
+ width: 220px;
+ margin-bottom: 1em;
+}
+
+#menu ul {
+ margin: 0px;
+ padding: 0px;
+ margin-left: 40px;
+}
+
+#menu li ul {
+ margin-left: 0px;
+}
+
+#menu ul li {
+ list-style: none;
+ color: black;
+ padding: 0px;
+ font-weight: bold;
+ font-size: 1.2em;
+}
+
+#menu li ul li {
+ font-size: 1em;
+}
+
+#menu ul li a, #menu ul li span {
+ text-decoration: inherit;
+ color: inherit;
+ display: block;
+ padding: 6px;
+ margin: 2px;
+}
+
+#menu ul li .active {
+ background: #a4c6c2;
+}
+
+#menu ul.l0 li .inactive {
+ background: #c5dbd8;
+}
+
+
+#menu ul.l1 li .inactive,
+#menu ul.l2 li .inactive {
+ background: #dfebea;
+ border-left: 8px solid #dfebea;
+}
+
+#menu ul.l1 li .inactive,
+#menu ul.l1 li .active {
+ padding-left: 1em;
+}
+
+#menu ul.l1 li .inactive {
+ border-left: 6px solid #dfebea;
+}
+#menu ul.l1 li .active {
+ border-left: 6px solid #a5c6c2;
+}
+
+#menu ul.l2 li .inactive,
+#menu ul.l2 li .active {
+ padding-left: 2em;
+ border-left: 8px solid #c5dbd8;
+}
+
+
+#headerLogo {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ height: 104px;
+ width: 400px;
+ background: url(libvirt-header-logo.png);
+}
+#headerSearch {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ padding: 2em;
+ z-index: 10;
+}
+
+#headerSearch input {
+ border: 1px solid #999999;
+ color: #999999;
+ background: white;
+ padding: 3px;
+ font-size: 1em;
+}
+
+#headerSearch #submit {
+ border: 1px solid #999999;
+ background: #eeeeee;
+ color: black;
+ padding: 3px;
+ font-size: 1em;
+}
+
+
+#sitemap ul li {
+ list-style: none;
+}
+
+#sitemap ul {
+ margin: 1em;
+ padding: 0em;
+}
+
+#sitemap ul ul {
+ padding-left: 2em;
+}
+
+#sitemap li {
+ margin: 0.5em;
+}
+
+#sitemap a {
+ color: inherit;
+ text-decoration: underline;
+ font-weight: bold;
+}
+
+pre {
+ border: 1px solid #999999;
+ background: #eeeeee;
+ color: black;
+ padding: 1em;
+}
+
+a {
+ color: #566866;
+}
+
+
+div.api {
+ border: 1px solid #999999;
+ background: #eeeeee;
+ color: black;
+}
+
+div.api pre {
+ margin: 0px;
+ border: 0px;
+ background: inherit;
+}
+
+div.api table {
+ margin: 0px;
+ padding-left: 2em;
+ font-family: fixed;
+ whitespace: pre;
+}
+
+
+h1 a, h2 a, h3 a, h4 a, h5 a {
+ color: inherit;
+ text-decoration: inherit;
+}
+
+#changelog .author {
+ color: #3c857c;
+ font-weight: bold;
+}
+
+p.image {
+ text-align: center;
+}
+
+.top_table {
+ border-collapse: collapse;
+}
+
+.top_table th {
+ background: #a4c6c2;
+}
+
+.top_table th a {
+ color: inherit;
+ text-decoration: inherit;
+}
+
+.top_table td, .top_table th {
+ border: 1px solid #999999;
+}
+
+.top_table tr:hover td, .top_table col:hover td {
+ background: #eeeeee;
+}
+
+.top_table tr td:hover {
+ background: #c5dbd8;
+}
+
+#footer {
+ clear: both;
+ position: relative;
+ margin: 0px;
+ padding: 0px;
+ border: 0px;
+ width: 100%;
+ background: #757575 url(footer_pattern.png) repeat-x;
+ height: 180px;
+}
+
+#footer p {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ margin: 0px;
+ border: 0px solid red;
+ width: 220px;
+ text-align: center;
+}
+
+#footer p a img {
+ border: 0px;
+}
+
+#projects {
+ margin: 0px;
+ border: 0px;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 100%;
+}
+
+
+#projects dl {
+ margin: 0px;
+ border: 0px solid white;
+ background: url(footer_corner.png) no-repeat;
+ height: 180px;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+}
+
+
+#projects #p1 {
+ margin-left: 25%;
+ width: 75%;
+}
+
+#projects #p2 {
+ margin-left: 50%;
+ width: 50%;
+}
+
+#projects #p3 {
+ margin-left: 75%;
+ width: 25%;
+}
+
+#projects dt, #projects dd {
+ padding: 0px;
+ margin: 0px;
+}
+
+#projects #p1 dt, #projects #p1 dd {
+ width: 33%;
+}
+#projects #p2 dt, #projects #p2 dd {
+ width: 50%;
+}
+#projects #p3 dt, #projects #p3 dd {
+ width: 99%;
+}
+
+#projects {
+}
+
+#projects span {
+ font-size: 0.8em;
+ display: block;
+ padding-left: 1em;
+ padding-top: 0.5em;
+}
+
+#projects a {
+ font-size: 0.8em;
+ display: block;
+ padding-left: 0.8em;
+ padding-top: 1em;
+}
+
+#projects a {
+ color: white;
+ text-decoration: inherit;
+}
+
+#projects span {
+ color: #ccc;
+}
diff -r bd075f76943a -r 9616af4ad234 doc/main.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/main.css Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,2 @@
+ at import url(generic.css);
+ at import url(libvirt.css);
diff -r bd075f76943a -r 9616af4ad234 doc/page.xsl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/page.xsl Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ active
+
+
+ inactive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This file is autogenerated from .in
+ Do not edit this file. Changes will be lost.
+
+
+
+
+ libvirt:
+
+
+
+
+
+
+
+
+
+
+
diff -r bd075f76943a -r 9616af4ad234 doc/patches.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/patches.html.in Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,195 @@
+
+
+ Patches
+
+
+ To submit patches to libvirt-cim, you must follow the DCO process,
+ outlined below:
+
+ Developer's Certificate of Origin 1.1
+
+ By making a contribution to this project, I certify that:
+
+
+
+
+ The contribution was created in whole or in part by me and I have the
+ right to submit it under the open source license indicated in the
+ file; or
+
+
+
+
+ The contribution is based upon previous work that, to the best of my
+ knowledge, is covered under an appropriate open source license and I
+ have the right under that license to submit that work with
+ modifications, whether created in whole or in part by me, under the
+ same open source license (unless I am permitted to submit under a
+ different license), as indicated in the file; or
+
+
+
+
+ The contribution was provided directly to me by some other person who
+ certified (1), (2) or (3) and I have not modified it.
+
+
+
+
+ I understand and agree that this project and the contribution are
+ public and that a record of the contribution (including all personal
+ information I submit with it, including my sign-off) is maintained
+ indefinitely and may be redistributed consistent with this project or
+ the open source license(s) involved.
+
+
+
+
+ then you just add a line saying
+
+
+ Signed-off-by: Random J Developer <random at developer.example.org>
+
+
+ using your real name (sorry, no pseudonyms or anonymous contributions.)
+
+ Guidelines for Submitting Patches.
+ Patches should be submitted using Mercurial's patchbomb extension, and we
+ recommend using the queues extension as well. On top of that, we have some
+ guidelines you should follow when submitting patches. This makes reviewing
+ patches easier, which in turns improves the chances of your patch being
+ accepted in a timely fashion.
+
+
+ For help on how to use the patchbomb extension, see
+ Section 14.4 of
+ Distributed revision control with Mercurial .
+
+
+ For help on the queues extension, see
+ Chapter 12 .
+
+ Single Patches:
+
+
+
+ When you add a patch to the queue you have an idea of where
+ you're going with it, and the commit message should reflect
+ that. Be specific. Avoid just saying something like,
+ "Various fixes to AllocationCapabilities." Add a list of
+ what was actually fixed, like, "Add EnumInstanceNames
+ support," and, "Eliminate duplicate instances."
+
+
+
+
+ The first line of your commit message will be the subject of
+ the patch email when you send it out, so write it like a
+ subject. Keep it short and to the point, then start a new
+ line and feel free to be as verbose as you need to be. The
+ entire commit message will be included in the patch.
+
+
+
+
+ Stay on task with a patch. If you notice other problems
+ while you are working on a patch, and they are not most
+ definitely specific to your patch, they should be another
+ patch. The same goes for nitpicking. While it might be
+ only a line or two here and there that is off track, this is
+ actually one of the easiest ways to make a patch difficult
+ to review. All the trivial changes hide what is really
+ going on. Make the unrelated changes a new patch or don't
+ make them at all.
+
+
+
+
+ If your patch addresses a strange issue or a rare edge case
+ that the reviewers are unlikely to be familiar with, make
+ sure the commit message include some example testcase with
+ results, so the reviewers can verify your patch more
+ quickly.
+
+
+
+
+ Before you email, export. If you have a patch called
+ "alloc_fixes", which would be emailed with "hg email
+ alloc_fixes", you should first run "hg export alloc_fixes".
+ This lets you review your patch. Does it have any typos in
+ the comments? Did you accidentally include an irrelevant
+ change? Is your commit message still accurate and useful?
+ This is the single biggest step in ensuring you have a good
+ patch.
+
+
+
+
+ If your patch needs to be reworked and resent, prepend a
+ "version number" to the first line of the commit message.
+ For example, "Add EnumInstance to RASD," becomes "#2 Add
+ EnumInstance to RASD." This helps mail readers thread
+ discussions correctly and helps maintainers know they are
+ applying the right version of your patch. At the end of the
+ commit message, explain what is different from one version
+ to the next. Nobody likes having to diff a diff.
+
+
+
+
+ If your patch depends on a patch that exists on the mailing
+ list but not in the tree, it is okay to send your patch to
+ the list as long as your commit message mentions the
+ dependency. It is also a good idea to import the patch into
+ your tree before you make your patch. For example, a new
+ patch called "cu_statusf API change" is on the list, and
+ your patch needs the new API. Save the email (no need to
+ trim headers) as api_change.eml, then do "hg qimport
+ api_change.eml" and "hg qpush" so that the patch is applied
+ to your tree. Now write your patch on top of it. You
+ should still indicate the dependency in your commit message.
+
+ Patchsets:
+
+ When you send a group of patches, Mercurial's email
+ extension will create a "header" email. Make the subject
+ and body of that email meaningful, so we know how the
+ patches relate. It's easy to say, "Each patch has a commit
+ message, it's obvious how they work together," but the rest
+ of the list usually won't agree with that. If the commit
+ messages for each patch are good, you shouldn't need more
+ than a sentence or two to tie them all together, but you do
+ need it.
+
+
+
+
+ If any of your patches are rejected and you rework them,
+ resend the entire set. This prevents things like, "So use
+ patch 1 of 4 from the set I sent yesterday, 2 and 3 of 4
+ from the patch I sent an hour later, and patch 4 of 4 from
+ today."
+
+
+
+
+ If you resend a patchset, apply part (6) of the Single
+ Patches guidelines to your "Patch [0 of 3]" header email,
+ for all the same reasons.
+
+
+
+
+ Questions/Comments on the Guidelines should be directed to:
+
+
+ Jay Gagnon <
+
+ grendel at linux.vnet.ibm.com
+ >
+
+ Patch Compliance Officer
+
+
+
diff -r bd075f76943a -r 9616af4ad234 doc/platforms.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/platforms.html.in Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,47 @@
+
+
+ Platform Support
+
+ Currently, libvirt-cim is targeting Xen as its primary support
+ platform because is has the largest installed user base. The
+ long-term plan is to support many others (hopefully any that libvirt
+ supports). This includes KVM and containers.
+
+
+ The code base currently has many Xen-specific "shortcuts" that need
+ to be resolved and generalized in order to support other platforms.
+ A short list of these may include:
+
+
+
+ The XML generation and parsing code and the related device
+ modeling code.
+
+
+ The libvirt connection logic. Right now, (in most places) we
+ detect the current hypervisor in use and connect to libvirt
+ appropriately. This may or may not be the correct behavior in a
+ situation where you could need to support containers and QEMU
+ virtual machines.
+
+
+ Some lingering hard-coded "Xen_Foo" class names.
+
+
+
+ Further, supporting new platforms have some registration and
+ modeling implications:
+
+
+
+ Additions to the MOF and registration files for "branded"
+ classes (Xen_Foo, KVM_Foo, etc)
+
+
+ Modifications to some of the association providers that register
+ separate CMPI provider structures for each class type they handle
+ (to avoid duplicate results in the general case)
+
+
+
+
diff -r bd075f76943a -r 9616af4ad234 doc/releases.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/releases.html.in Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,25 @@
+
+
+ Releases
+
+
+ livirt-cim-0.1: Jan 14 2008
+
+
+ Initial Release
+
+
+ Focused on Xen paravirtual guest support
+
+
+
+
+ libcmpiutil-0.1: Nov 30 2007
+
+
+
+
diff -r bd075f76943a -r 9616af4ad234 doc/schema.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/schema.html.in Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,82 @@
+
+
+ Schema
+
+ The libvirt-cim provider depends on an installed
+ DMTF
+ CIM v2.16 Experimental schema. The package can be obtained
+
+ here
+ .
+
+
+ To install the schema in Pegasus:
+
+
+ $ PEGASUS_REPO=/var/lib/Pegasus # adjust this as needed
+ $ mkdir cim216
+ $ cd cim216
+ $ unzip $PATH_TO_ZIPFILE
+ $ sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/virt cimv216.mof
+ $ sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/virt qualifiers.mof
+ $ sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/virt qualifiers_optional.mof
+ $ sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/interop cimv216-interop.mof
+
+
+
+ To install the schema in SFCB:
+
+
+ $ SFCB_CIM=/usr/local/share/sfcb/CIM # adjust this as needed
+ $ mkdir cim216
+ $ cd cim216
+ $ unzip $PATH_TO_ZIPFILE
+ $ mv cimv216.mof CIM_Schema.mof
+ $ sudo cp * $SFCB_CIM
+ $ sudo sfcbrepos
+
+
+
+ Note: in both cases, the CIM v2.16 schema seems to have a
+ few classes that don't register correctly. You may need to
+ disable installation of classes with something like the
+ following:
+
+
+
+ --- CIM_Schema.mof 2007-10-15 00:15:44.000000000 -0700
+ +++ cimv216.mof 2007-10-22 10:11:19.000000000 -0700
+ @@ -507,3 +507,3 @@
+ #pragma include ("Policy/CIM_SharedSecretAuthentication.mof")
+ -#pragma include ("Security/CIM_SecurityIndication.mof")
+ +//#pragma include ("Security/CIM_SecurityIndication.mof")
+ #pragma include ("Support/PRS_Activity.mof")
+ @@ -728,4 +728,4 @@
+ #pragma include ("Policy/CIM_PolicyConditionInPolicyRule.mof")
+ -#pragma include ("Security/CIM_IPNetworkSecurityIndication.mof")
+ -#pragma include ("Security/CIM_IPPacketFilterIndication.mof")
+ +//#pragma include ("Security/CIM_IPNetworkSecurityIndication.mof")
+ +//#pragma include ("Security/CIM_IPPacketFilterIndication.mof")
+ #pragma include ("Support/PRS_ActivityContact.mof")
+
+
+
+ cimv216-interop.mof is not part of the official DMTF
+ CIM v2.16 schema package. Please create with the following content:
+
+
+
+ #pragma locale ("en_US")
+ #pragma include ("qualifiers.mof")
+ #pragma include ("qualifiers_optional.mof")
+ #pragma include ("Core/CIM_ManagedElement.mof")
+ #pragma include ("Interop/CIM_RegisteredProfile.mof")
+ #pragma include ("Interop/CIM_RegisteredSubProfile.mof")
+ #pragma include ("Core/CIM_Dependency.mof")
+ #pragma include ("Interop/CIM_ElementConformsToProfile.mof")
+ #pragma include ("Interop/CIM_ReferencedProfile.mof")
+ #pragma include ("Interop/CIM_SubProfileRequiresProfile.mof")
+
+
+
+
diff -r bd075f76943a -r 9616af4ad234 doc/site.xsl
--- a/doc/site.xsl Thu Apr 24 10:25:48 2008 -0400
+++ b/doc/site.xsl Thu May 01 14:34:31 2008 -0400
@@ -1,258 +1,25 @@
-
-
+
+
+
+
+
- Main Menu
-
-
-
-
-
- intro.html
-
-
- docs.html
-
-
- development.html
-
-
- help.html
-
-
- help.html
-
-
- errors.html
-
-
- downloads.html
-
-
- news.html
-
-
- development.html
-
-
- architecture.html
-
-
- FAQ.html
-
-
- platforms.html
-
-
- schema.html
-
-
- patches.html
-
-
- unknown.html
-
-
-
-
-
-
-
-
-
-
-
-
-
main menu
-
- Home
-
-
-
-
-
-
-
-
-
-
-
-
-
- font-weight:bold
-
-
-
-
-
-
-
-
-
-
related links
-
-
Graphics and design by Diana Fong
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Generating the Web pages
-
-
-
- the virtualization API
-
-
-
-
diff -r bd075f76943a -r 9616af4ad234 doc/sitemap.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/sitemap.html.in Thu May 01 14:34:31 2008 -0400
@@ -0,0 +1,50 @@
+
+
+ Sitemap
+
+
+
+
+ CIM
+ The libvirt-cim CIM providers
+
+
+
+ Sitemap
+ Overview of all content on the website
+
+
+
+
+
From grendel at linux.vnet.ibm.com Thu May 1 20:46:46 2008
From: grendel at linux.vnet.ibm.com (Jay Gagnon)
Date: Thu, 01 May 2008 16:46:46 -0400
Subject: [Libvirt-cim] [PATCH] Update web content to match libvirt.org
In-Reply-To: <9616af4ad2341ecb47dc.1209674601@naegling>
References: <9616af4ad2341ecb47dc.1209674601@naegling>
Message-ID: <481A2C36.9040107@linux.vnet.ibm.com>
Jay Gagnon wrote:
> # HG changeset patch
> # User Jay Gagnon
> # Date 1209666871 14400
> # Node ID 9616af4ad2341ecb47dc0b139017636d14e0e86a
> # Parent bd075f76943a0facc8aa69d7788f3d6a1a2f8d8c
> Update web content to match libvirt.org
>
> Signed-off-by: Jay Gagnon
>
>
>
My apologies for sending such a monstrosity to the list. I just didn't
have the energy to try and clean it up after I finished it. Besides,
reading this by hand is awful; I'd just request that somebody import it,
run make, and check the pages in firefox.
I'm also not entirely sure if this is the right way to do it to
integrate it with the libvirt.org tree, but I imagine any changes will
just be some small makefile/directory structure things, which we can get
some advice on.
--
-Jay
From kaitlin at linux.vnet.ibm.com Thu May 1 22:19:54 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Thu, 01 May 2008 15:19:54 -0700
Subject: [Libvirt-cim] [PATCH 0 of 2] Correctly place the ValueRole,
ValueRange, and PropertyPolicy attributes
In-Reply-To:
References:
Message-ID: <481A420A.5020508@linux.vnet.ibm.com>
Dan Smith wrote:
> This set (which includes my previous patch) creates a reference function
> to set the mentioned attributes on the SDC reference, as well as removing
> the code to set the on the RASD.
+1
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From deeptik at linux.vnet.ibm.com Fri May 2 06:10:06 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Fri, 02 May 2008 11:40:06 +0530
Subject: [Libvirt-cim] CimTest Report for KVM on F9 30-04-2008
In-Reply-To: <4819D0EF.2030405@linux.vnet.ibm.com>
References: <48186C18.8020205@linux.vnet.ibm.com>
<4819D0EF.2030405@linux.vnet.ibm.com>
Message-ID: <481AB03E.4060602@linux.vnet.ibm.com>
Please see my replies inline.
Thanks and Regards,
Deepti.
Kaitlin Rupert wrote:
> Thanks for the test run Deepti!
>
>>
>> VSSD - 03_vssd_gi_errs.py: FAIL
>> ERROR - Unexpected rc code 0 and description The web server
>> returned a bad status line: ''
>> ERROR - ------ FAILED: INVALID_InstID_Keyval ------
>>
>> -------------------------------------------------------------------------
>>
>> cimserver o/p when run in the background
>> misc_util.c(72): Connecting to libvirt with uri `qemu:///system'
>> misc_util.c(199): URI of connection is: qemu:///system
>> misc_util.c(72): Connecting to libvirt with uri `qemu:///system'
>> misc_util.c(199): URI of connection is: qemu:///system
>> Segmentation fault
>> -------------------------------------------------------------------------
>>
>> The segmentation fault occurs the InstanceID does not contain the
>> VSType.
>
> Can you give an example query? This test passes for me on my system,
> so I'm not sure what the offending portion of the test is. I tried the
> following query:
>
> wbemcli gi
> 'http://localhost:5988/root/virt:KVM_VirtualSystemSettingData.InstanceID="Invalid"'
>
> *
> * wbemcli: Cim: (6) CIM_ERR_NOT_FOUND: No such instance (InstanceID)
> *
>
> Which returned an error, as expected.
The same query on my machine gives a segmentation fault.
wbemcli gi
http://localhost:5988/root/virt:KVM_VirtualSystemSettingData.InstanceID="invalid"
*
* wbemcli: Http Exception: Server returned nothing (no headers, no data)
*
I have Revision="565" of libvirt-cim installed on my machine.
>
>> The segmentation does not occur when the InstanceID contains
>> something like "KVM:Invaid"
>>
>> VirtualSystemManagementService - 01_definesystem_name.py: FAIL
>> VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
>> VirtualSystemManagementService - 06_addresource.py: FAIL
>>
>> VirtualSystemSettingDataComponent - 04_vssdc_rev_errs.py: FAIL
>> ERROR - Unexpected rc code 0 and description The web server
>> returned a bad status line: ''
>>
>> ERROR - ------ FAILED: KVM_VirtualSystemSettingData
>> INVALID_InstID_Keyval------
>>
>> -------------------------------------------------------------------------
>>
>> cimserver o/p when run in the background
>> misc_util.c(72): Connecting to libvirt with uri `qemu:///system'
>> misc_util.c(199): URI of connection is: qemu:///system
>> misc_util.c(72): Connecting to libvirt with uri `qemu:///system'
>> misc_util.c(199): URI of connection is: qemu:///system
>> std_association.c(288): Getting handler ...
>> std_association.c(151): Calling Provider:
>> 'associationVirt_VSSDComponent'
>> std_association.c(167): Check client's assocClass:
>> 'KVM_VirtualSystemSettingDataComponent'
>> std_association.c(178): AssocClass valid.
>> std_association.c(294): Getting handler succeeded.
>> std_association.c(298): Calling handler ...
>> std_association.c(301): Handler did not return CMPI_RC_OK.
>> std_association.c(288): Getting handler ...
>> std_association.c(151): Calling Provider:
>> 'associationVirt_VSSDComponent'
>> std_association.c(167): Check client's assocClass:
>> 'KVM_VirtualSystemSettingDataComponent'
>> std_association.c(178): AssocClass valid.
>> std_association.c(294): Getting handler succeeded.
>> std_association.c(298): Calling handler ...
>> std_association.c(301): Handler did not return CMPI_RC_OK.
>> Segmentation fault
>> -------------------------------------------------------------------------
>>
>> The segmentation fault occurs the InstanceID does not contain the
>> VSType.
>
> I had the same issue here - the test case passes. Can you give a
> sample query?
>
> Providers shouldn't seg fault, so it'll be good to track this down.
> Thanks!
>
>> The segmentation does not occur when the InstanceID contains
>> something like "KVM:Invaid"
>>
>
wbemcli ain -ac KVM_VirtualSystemSettingDataComponent
'http://localhost:5988/root/virt:KVM_VirtualSystemSettingData.InstanceID="wrong"'
*
* wbemcli: Http Exception: Server returned nothing (no headers, no data)
*
Its strange why this is happening only on my machine.
This is on latest libvirt-cim on F9 .
I get the expected error message when I pass the VSType as part of the
InstanceID.
wbemcli gi
http://root:vsm4you at localhost:5988/root/virt:KVM_VirtualSystemSettingData.InstanceID="KVM:invalid"*
* wbemcli: Cim: (6) CIM_ERR_NOT_FOUND: No such instance (invalid)
*
From deeptik at linux.vnet.ibm.com Fri May 2 06:17:12 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Fri, 02 May 2008 11:47:12 +0530
Subject: [Libvirt-cim] KVM test report on Fedora 9 (4/30)
In-Reply-To: <4819CC0B.7050207@linux.vnet.ibm.com>
References: <4817E363.7050105@linux.vnet.ibm.com>
<4818049C.9070202@linux.vnet.ibm.com>
<4819CC0B.7050207@linux.vnet.ibm.com>
Message-ID: <481AB1E8.2000701@linux.vnet.ibm.com>
Kaitlin Rupert wrote:
> Zhengang Li wrote:
>>> ComputerSystemIndication - 01_created_indication.py: FAIL
>> Pegasus crashed after running this test case.
>> Log says 'BadStatusLine :'
>>
>
> Any more information on why the provider is crashing here? I'm able
> to run with KVM on current sources. Maybe this test is hitting a
> provider but that's been fixed?
>
This test cases has never passed for me.
It always fails with timeout.
Any idea why this could be ?
From deeptik at linux.vnet.ibm.com Fri May 2 11:39:38 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Fri, 02 May 2008 17:09:38 +0530
Subject: [Libvirt-cim] [PATCH] [TEST] Fixing 03.RPCS, 04.RPCS, 06.RPCS,
07.RPCS
Message-ID: <4810d6e5f8845402b1c3.1209728378@dkalaker>
# HG changeset patch
# User Deepti B. Kalakeri
# Date 1209728359 -19800
# Node ID 4810d6e5f8845402b1c31de7b6a1b66fd0a1bfcf
# Parent 8dba7f77ee96c2b97cf2145198332bed7c6c19ad
[TEST] Fixing 03.RPCS, 04.RPCS, 06.RPCS, 07.RPCS.
Tested on the Pegasus server.
On F9 with latest and rpm libvirt-cim the methods return CIM_ERR_NOT_SUPPORTED.
Need to test if the methods the same error message with the sfcb server as well.
Signed-off-by: Deepti B. Kalakeri
diff -r 8dba7f77ee96 -r 4810d6e5f884 suites/libvirt-cim/cimtest/ResourcePoolConfigurationService/03_CreateResourcePool.py
--- a/suites/libvirt-cim/cimtest/ResourcePoolConfigurationService/03_CreateResourcePool.py Wed Apr 30 05:05:35 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ResourcePoolConfigurationService/03_CreateResourcePool.py Fri May 02 17:09:19 2008 +0530
@@ -47,7 +47,7 @@ from XenKvmLib.classes import get_typed_
from XenKvmLib.classes import get_typed_class
cim_errno = pywbem.CIM_ERR_NOT_SUPPORTED
-cim_desc = "The requested operation is not supported"
+cim_desc = "CIM_ERR_NOT_SUPPORTED"
cim_mname = "CreateResourcePool"
diff -r 8dba7f77ee96 -r 4810d6e5f884 suites/libvirt-cim/cimtest/ResourcePoolConfigurationService/04_CreateChildResourcePool.py
--- a/suites/libvirt-cim/cimtest/ResourcePoolConfigurationService/04_CreateChildResourcePool.py Wed Apr 30 05:05:35 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ResourcePoolConfigurationService/04_CreateChildResourcePool.py Fri May 02 17:09:19 2008 +0530
@@ -56,7 +56,7 @@ from XenKvmLib.classes import get_typed_
from XenKvmLib.classes import get_typed_class
cim_errno = pywbem.CIM_ERR_NOT_SUPPORTED
-cim_desc = "The requested operation is not supported"
+cim_desc = "CIM_ERR_NOT_SUPPORTED"
cim_mname = "CreateChildResourcePool"
@do_main(platform_sup)
diff -r 8dba7f77ee96 -r 4810d6e5f884 suites/libvirt-cim/cimtest/ResourcePoolConfigurationService/06_RemoveResourcesFromResourcePool.py
--- a/suites/libvirt-cim/cimtest/ResourcePoolConfigurationService/06_RemoveResourcesFromResourcePool.py Wed Apr 30 05:05:35 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ResourcePoolConfigurationService/06_RemoveResourcesFromResourcePool.py Fri May 02 17:09:19 2008 +0530
@@ -54,7 +54,7 @@ from XenKvmLib.classes import get_typed_
from XenKvmLib.classes import get_typed_class
cim_errno = pywbem.CIM_ERR_NOT_SUPPORTED
-cim_desc = "The requested operation is not supported"
+cim_desc = "CIM_ERR_NOT_SUPPORTED"
cim_mname = "RemoveResourcesFromResourcePool"
@do_main(platform_sup)
diff -r 8dba7f77ee96 -r 4810d6e5f884 suites/libvirt-cim/cimtest/ResourcePoolConfigurationService/07_DeleteResourcePool.py
--- a/suites/libvirt-cim/cimtest/ResourcePoolConfigurationService/07_DeleteResourcePool.py Wed Apr 30 05:05:35 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ResourcePoolConfigurationService/07_DeleteResourcePool.py Fri May 02 17:09:19 2008 +0530
@@ -50,7 +50,7 @@ from XenKvmLib.classes import get_typed_
from XenKvmLib.classes import get_typed_class
cim_errno = pywbem.CIM_ERR_NOT_SUPPORTED
-cim_desc = "The requested operation is not supported"
+cim_desc = "CIM_ERR_NOT_SUPPORTED"
cim_mname = "DeleteResourcePool"
@do_main(platform_sup)
From deeptik at linux.vnet.ibm.com Fri May 2 12:10:50 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Fri, 02 May 2008 17:40:50 +0530
Subject: [Libvirt-cim] KVM test report on Fedora 9 (4/30)
In-Reply-To: <4818049C.9070202@linux.vnet.ibm.com>
References: <4817E363.7050105@linux.vnet.ibm.com>
<4818049C.9070202@linux.vnet.ibm.com>
Message-ID: <481B04CA.6000203@linux.vnet.ibm.com>
Zhengang Li wrote:
>> ComputerSystemIndication - 01_created_indication.py: FAIL
> Pegasus crashed after running this test case.
> Log says 'BadStatusLine :'
>
>> ElementAllocatedFromPool - 03_reverse_errs.py: FAIL
> exp: ERR_NOT_FOUND(6) - No such instance
> ret: ERR_FAILED(1) - Invalid InstanceID or unsupported pool type
>
>> ElementConforms - 02_reverse.py: FAIL
> Binary rpm provider returns CIM_ERR_INVALID_PARAMETER:
> KVM_ElementConformsToProfile on the following query:
> wbemain -ac KVM_ElementConformsToProfile
> 'http://u:p at host:5988/root/virt:KVM_ComputerSystem.CreationClassName="KVM_ComputerSystem",Name="domgst"'
>
> Same wbemcli command gets the correct results on another system using
> latest libvirt-cim tree (changeset 533).
I dont see the KVM_ElementConformsToProfile.CIM_ElementConformsToProfile
registered in the root#virt namespace on F9 machine with rpm
libvirt-cim, while the same is present in both the root#interop and
root#virt namespace on F9 machine with latest libvirt-cim sources.
I tried copying the provider manually to the root#virt namespace and
restarted the cimserver, but I did not get any results even after that.
I dont know if this is proper way of registering the mof files in the
namespace.
Although, the above wbemcli gives me expected o/p on the
F9 with rpm when the query includes the root/interop namespace,
While on the F9 with latest source I get o/p for query with root/virt
namespace.
Could you please tell me the namespace and ECTP provider registration
details.
>
>> ElementConforms - 04_ectp_rev_errs.py: FAIL
> All negative checks result in the CIM_ERR_INVALID_PARAMETER. Should be
> the same reason as ElementConforms.02
This returned XFAIL on F9 with rpm binary. It passes with the latest
libvirt-cim sources.
>
>> ElementSettingData - 03_esd_assoc_with_rasd_errs.py: FAIL
> This one passed in individual run. The previous ElementConforms.04
> undefine fix doesn't help here. Might be some other unknown missing
> undefine.
>
>> NetworkPort - 03_user_netport.py: FAIL
> 'user' network type.
> [Known Issue]
>
>> ReferencedProfile - 01_verify_refprof.py: FAIL
> Binary rpm provider gives 2 results on the following query:
> wbemein http://u:p at host:5988/root/interop:KVM_RegisteredProfile
> "CIM:DSP1042-SystemVirtualization-1.0.0"
> "CIM:DSP1057-VirtualSystem-1.0.0a"
> Same wbemcli command gets 5 results on changeset-533 tree on another
> system.
> "CIM:DSP1042-SystemVirtualization-1.0.0"
> "CIM:DSP1057-VirtualSystem-1.0.0a"
> "CIM:DSP1059-GenericDeviceResourceVirtualization-1.0.0"
> "CIM:DSP1045-MemoryResourceVirtualization-1.0.0"
> "CIM:DSP1081-VirtualSystemMigration-1.0"
Yes this is correct.
> This leads to ReferencedProfile's 'ain' query gets only 2 results.
>
I did not see the ReferncedProfile query return any results.
since the ReferencedProfile is not present on the on an rpm libvirt-cim
based F9 machine and hence the ain query fails without any results.
>> ReferencedProfile - 02_refprofile_errs.py: FAIL
> Same as ReferencedProfile.01
>
I think the ReferncedProfile was added with the changeset 500 and the
rpm contains the changes till 393, hence I think the ReferencedProfile
did not get registered on the machine.
Should we skip the above test cases for rpm based F9 ?
>> ResourceAllocationFromPool - 03_forward_errs.py: FAIL
> Daisy sent a fix for this. Should be passed with her fix.
>
>> ResourcePoolConfigurationService - 03_CreateResourcePool.py: FAIL
>> ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: FAIL
>> ResourcePoolConfigurationService -
>> 06_RemoveResourcesFromResourcePool.py: FAIL
>> ResourcePoolConfigurationService - 07_DeleteResourcePool.py: FAIL
> CIM_ERR_NOT_SUPPORTED for 03, 04, 06, 07
Fix submitted.
>
>> SettingsDefine - 02_reverse.py: FAIL
> ProcRASD.InstanceID is 'domname/0' in binary rpm provider. Test case
> expects 'domname/proc' now.
>
>
>> VirtualSystemManagementService - 06_addresource.py: FAIL
> Different network xml returned from system_to_xml() in provider and
> 'virsh dumpxml'. Error message complains about missing in the
> a bridged network device.
>
>> VirtualSystemSettingDataComponent - 03_vssdc_fwd_errs.py: FAIL
> Daisy sent a fix this morning. Should be passed upon patch applied.
>
From deeptik at linux.vnet.ibm.com Fri May 2 12:42:03 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Fri, 02 May 2008 18:12:03 +0530
Subject: [Libvirt-cim] [TEST] test cases fix list and assignment for the
next week
In-Reply-To:
References:
Message-ID: <481B0C1B.6010205@linux.vnet.ibm.com>
Guo Lian Yun wrote:
>
> Hi Zhengang and Deepti,
>
> I've list the failing test cases during our discussion yesterday.
>
> I've assigned and names listed as well, it's be great to shoot for
> completion before May 4th. =)
>
> Thanks!
>
>
> 1) CS.40 --- maybe provider issue -- Deepti
> InvokeMethod(DefineSystem): *** Provider
> Virt_VirtualSystemManagementService(27073) exiting due to a SIGSEGV signal
>
This test case XFAIL because of Bug: 91410 on the F9 with rpm for me.
But it fails on F9 with the latest libvirt-cim sources.
The error message is as below:
*ERROR - Unexpected rc code 1 and description:
CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on
this platform
ERROR - Exception: Unable create domain test_domain using DefineSystem()
InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error:
Resource type not supported on this platform
*
Here is the flow of the code:
define_system -> create_system -> classify_resources -> rasd_to_vdev()
is called for PROC, MEM, NET, DISK -> _sysvirt_rasd_to_vdev().
The _sysvirt_rasd_to_vdev does not have any code that is related to PROC
dev type and hence the error message.
The part of the code in the VSMS.c from where the error message is
returned as below :
static const char *_sysvirt_rasd_to_vdev(CMPIInstance *inst,
struct virt_device *dev,
uint16_t type)
{
if (type == CIM_RES_TYPE_DISK) {
return disk_rasd_to_vdev(inst, dev);
} else if (type == CIM_RES_TYPE_NET) {
return net_rasd_to_vdev(inst, dev);
} else if (type == CIM_RES_TYPE_MEM) {
return mem_rasd_to_vdev(inst, dev);
}
return "Resource type not supported on this platform";
}
Is this valid ?
>
> 2) EAFP.01 & 02 ----- still in working --Daisy
>
> 3) ElementConfroms.02 & 04: -- Deepti
>
> 4) ElementSettingData.03 --- make sure clean the vs before running --
> Zhengang
>
> 5) HostSystem.02 -- the difference of rpm and source provider in
> memory. "kilobyte" vs "megabyte", we have to add branch here -- Daisy
>
> 6) Memory 02 --- InvokeMethod(DefineSystem): *** Provider
> Virt_VirtualSystemManagementService(5492) --Daisy exiting due to a
> SIGSEGV signal
>
> 7) NetworkPort 03 ---- known bug
>
> 8) Processor 02 --- InvokeMethod(DefineSystem): *** Provider
> Virt_VirtualSystemManagementService(15585) exiting due to a SIGSEGV
> signal -- Deepti
>
This test case passes on the F9 with rpm for me.
But it fails for F9 with the latest libvirt-cim sources.
same prob as above for CS.40.
>
>
>
> 9) RASD.01 & 02 --- "kilobyte" vs "megabyte", we have to add branch
> here --Zhengang
>
> 10) ReferenceProfile.01 & 02 --- also add branch --Deepti
>
>
> 11) ResourceAllocatedFromPool.01~04 --- rpm vs latest with different
> report message, we have to add branch here -- Daisy
>
>
> 12) ResourcePoolConfigurationService.03 04 06 07 --
> CIM_ERR_NOT_SUPPORTED in rpm, we have to add message here -- Deepti
>
> 13) SettingsDefine 02 ---- Because of InstanceID, "Domain-0/0" vs
> "Domain-0/proc", Jay looked into this issue
>
> 14) VSSD.04 --- fail on rpm, pass on src, we have to add branch -- Daisy
>
> 15) VSMS.01 -- InvokeMethod(DefineSystem): -- Zhengang
> .02 -- destroy and undefine rpm: destroy branch "rpm" vs "latest" --
> Zhengang
> .06 -- InvokeMethod(AddResourceSettings): CIM_ERR_FAILED: Failed to
> create domain -- Zhengang
>
>
> 16) VSSDataComponent.03 -- we have to add branch for "error code" -- Daisy
>
>
>
The comments for the other test case failures is sent as part of the
another mail with subject "KVM test report on Fedora 9 (4/30)"
Thanks and Regards,
Deepti.
From deeptik at linux.vnet.ibm.com Fri May 2 12:55:45 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Fri, 02 May 2008 18:25:45 +0530
Subject: [Libvirt-cim] CimTest Report on XenFV 01-05-2008
Message-ID: <481B0F51.9080006@linux.vnet.ibm.com>
======================================
CIM Test Report for XenFV
======================================
Distro : RHEL 5.2 Beta
Kernel : 2.6.18-88.el5xen
Xen version : 3.1.2-88.el5
Libvirt : libvirt-0.3.3-7.el5
CIMOM : pegasus
PyWBEM : pywbem-3.14
CIM Schema : cimv216Experimental
LibCMPIutil : 75
LibVirtCIM : 571
CIMTEST : 130
======================================
PASS : 60
FAIL : 41
XFAIL : 3
SKIP : 25
-----------------
Total : 129
======================================
List of test cases that are failing:
ComputerSystem - 04_defineStartVS.py: FAIL
ComputerSystem - 05_activate_defined_start.py: FAIL
ComputerSystem - 06_paused_active_suspend.py: FAIL
ComputerSystem - 23_suspend_suspend.py: FAIL
ComputerSystem - 27_define_suspend_errs.py: FAIL
ComputerSystem - 32_start_reboot.py: FAIL
ComputerSystem - 33_suspend_reboot.py: FAIL
ComputerSystem - 35_start_reset.py: FAIL
ComputerSystem - 40_RSC_start.py: FAIL
ElementCapabilities - 01_forward.py: FAIL
ElementCapabilities - 02_reverse.py: FAIL
ElementCapabilities - 05_hostsystem_cap.py: FAIL
ElementConforms - 01_forward.py: FAIL
HostSystem - 02_hostsystem_to_rasd.py: FAIL
HostSystem - 03_hs_to_settdefcap.py: FAIL
HostedService - 02_reverse.py: FAIL
LogicalDisk - 03_ld_gi_errs.py: FAIL
Memory - 01_memory.py: FAIL
Memory - 02_defgetmem.py: FAIL
Processor - 01_processor.py: FAIL
Processor - 02_definesys_get_procs.py: FAIL
Processor - 03_proc_gi_errs.py: FAIL
RASD - 01_verify_rasd_fields.py: FAIL
ResourcePoolConfigurationService - 03_CreateResourcePool.py: FAIL
ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: FAIL
ResourcePoolConfigurationService -
06_RemoveResourcesFromResourcePool.py: FAIL
ResourcePoolConfigurationService - 07_DeleteResourcePool.py: FAIL
SettingsDefine - 01_forward.py: FAIL
SettingsDefine - 02_reverse.py: FAIL
SettingsDefine - 03_sds_fwd_errs.py: FAIL
SettingsDefine - 04_sds_rev_errs.py: FAIL
SystemDevice - 01_forward.py: FAIL
SystemDevice - 02_reverse.py: FAIL
SystemDevice - 03_fwderrs.py: FAIL
VSSD - 01_enum.py: FAIL
VirtualSystemManagementService - 01_definesystem_name.py: FAIL
VirtualSystemManagementService - 02_destroysystem.py: FAIL
VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
VirtualSystemSettingDataComponent - 02_reverse.py: FAIL
VirtualSystemSettingDataComponent - 03_vssdc_fwd_errs.py: FAIL
VirtualSystemSettingDataComponent - 04_vssdc_rev_errs.py: FAIL
Please find the complete test result along with the failures attached
with the mail.
Thanks and Regards,
Deepti.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: May-01-XenFV-result
URL:
From danms at us.ibm.com Fri May 2 14:01:43 2008
From: danms at us.ibm.com (Dan Smith)
Date: Fri, 02 May 2008 07:01:43 -0700
Subject: [Libvirt-cim] [PATCH] Fix compile error in VSMS
Message-ID: <61d0f0e9f05e31ceb064.1209736903@guaranine.danplanet.com>
# HG changeset patch
# User Dan Smith
# Date 1209736899 25200
# Node ID 61d0f0e9f05e31ceb06476c92570e325b38d8a5a
# Parent 122027a2c63e875939492ec0c7f39299ca6fed25
Fix compile error in VSMS
I know Kaitlin had submitted a patch for this against SDC, but I must
have forgotten to apply it.
Signed-off-by: Dan Smith
diff -r 122027a2c63e -r 61d0f0e9f05e src/Virt_VirtualSystemManagementService.c
--- a/src/Virt_VirtualSystemManagementService.c Thu May 01 11:48:17 2008 -0700
+++ b/src/Virt_VirtualSystemManagementService.c Fri May 02 07:01:39 2008 -0700
@@ -320,6 +320,7 @@ static const char *_net_rand_mac(void)
int ret;
unsigned int s;
char *mac = NULL;
+ const char *_mac = NULL;
CMPIString *str = NULL;
CMPIStatus status;
@@ -346,11 +347,11 @@ static const char *_net_rand_mac(void)
free(mac);
if (str != NULL)
- mac = CMGetCharPtr(str);
+ _mac = CMGetCharPtr(str);
else
- mac = NULL;
-
- return mac;
+ _mac = NULL;
+
+ return _mac;
}
static const char *net_rasd_to_vdev(CMPIInstance *inst,
From deeptik at linux.vnet.ibm.com Fri May 2 14:17:46 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Fri, 02 May 2008 19:47:46 +0530
Subject: [Libvirt-cim] Re: CimTest Report on XenFV 01-05-2008
In-Reply-To: <481B0F51.9080006@linux.vnet.ibm.com>
References: <481B0F51.9080006@linux.vnet.ibm.com>
Message-ID: <481B228A.6060405@linux.vnet.ibm.com>
Deepti B Kalakeri wrote:
> ======================================
> CIM Test Report for XenFV
> ======================================
> Distro : RHEL 5.2 Beta
> Kernel : 2.6.18-88.el5xen
> Xen version : 3.1.2-88.el5
> Libvirt : libvirt-0.3.3-7.el5
> CIMOM : pegasus
> PyWBEM : pywbem-3.14
> CIM Schema : cimv216Experimental
> LibCMPIutil : 75
> LibVirtCIM : 571
> CIMTEST : 130
> ======================================
> PASS : 60
> FAIL : 41
> XFAIL : 3
> SKIP : 25
> -----------------
> Total : 129
> ======================================
>
> List of test cases that are failing:
>
> ComputerSystem - 04_defineStartVS.py: FAIL
> ComputerSystem - 05_activate_defined_start.py: FAIL
> ComputerSystem - 06_paused_active_suspend.py: FAIL
> ComputerSystem - 23_suspend_suspend.py: FAIL
> ComputerSystem - 27_define_suspend_errs.py: FAIL
> ComputerSystem - 32_start_reboot.py: FAIL
> ComputerSystem - 33_suspend_reboot.py: FAIL
> ComputerSystem - 35_start_reset.py: FAIL
> ComputerSystem - 40_RSC_start.py: FAIL
Test cases 23 to 40 are failing for failing because of the following :
*ERROR - Unexpected rc code 1 and description:
CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on
this platform
ERROR - Exception: Unable create domain test_domain using DefineSystem()
InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error:
Resource type not supported on this platform
*
Here is the flow of the code:
define_system -> create_system -> classify_resources -> rasd_to_vdev()
is called for PROC, MEM, NET, DISK -> _sysvirt_rasd_to_vdev().
The _sysvirt_rasd_to_vdev does not have any code that is related to PROC
dev type and hence the error message.
The part of the code in the VSMS.c from where the error message is
returned as below :
static const char *_sysvirt_rasd_to_vdev(CMPIInstance *inst,
struct virt_device *dev,
uint16_t type)
{
if (type == CIM_RES_TYPE_DISK) {
return disk_rasd_to_vdev(inst, dev);
} else if (type == CIM_RES_TYPE_NET) {
return net_rasd_to_vdev(inst, dev);
} else if (type == CIM_RES_TYPE_MEM) {
return mem_rasd_to_vdev(inst, dev);
}
return "Resource type not supported on this platform";
}
Is this valid ?
> ElementCapabilities - 01_forward.py: FAIL
EC now returns AC , needs tc modification.
> ElementCapabilities - 02_reverse.py: FAIL
Need tc modification.
> ElementCapabilities - 05_hostsystem_cap.py: FAIL
wbemcli ain -ac Xen_HostedService
'http://u:p at localhost:5988/root/virt:Xen_HostSystem.CreationClassName="Xen_HostSystem",Name="elm3b43.beaverton.ibm.com"'
*
* wbemcli: Cim: (1) CIM_ERR_FAILED: Unable to get instance for
Xen_HostSystem
*
Should have returned "RPCS", "Management Service", "MigrationService".
> ElementConforms - 01_forward.py: FAIL
BaseException not supported, Passed when Exception keyword was instead.
> HostSystem - 02_hostsystem_to_rasd.py: FAIL
Passed when run manually
> HostSystem - 03_hs_to_settdefcap.py: FAIL
1) Need to make change to the common_util.py to inclue the diskpool.conf
file in /etc/libvirt
2) The field -PropertyPolicy is no longer returned as part of
association between SDC with AC
> HostedService - 02_reverse.py: FAIL
wbemcli ain -ac Xen_HostedService
'http://u:p at locathost/root/virt:Xen_VirtualSystemMigrationService.CreationClassName="Xen_VirtualSystemMigrationService",Name="MigrationService",SystemCreationClassName="Xen_HostSystem",SystemName="elm3b43.beaverton.ibm.com"'
*
* wbemcli: Http Exception: couldn't resolve host name
*
> LogicalDisk - 03_ld_gi_errs.py: FAIL
passed when run manually
> Memory - 01_memory.py: FAIL
> Memory - 02_defgetmem.py: FAIL
> Processor - 01_processor.py: FAIL
>
> Processor - 02_definesys_get_procs.py: FAIL
Failing because of the same prob as for CS.23 to CS.40 as above.
> Processor - 03_proc_gi_errs.py: FAIL
> RASD - 01_verify_rasd_fields.py: FAIL
Domain creation is failing for above 2 tc.
> ResourcePoolConfigurationService - 03_CreateResourcePool.py: FAIL
> ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: FAIL
> ResourcePoolConfigurationService -
> 06_RemoveResourcesFromResourcePool.py: FAIL
> ResourcePoolConfigurationService - 07_DeleteResourcePool.py: FAIL
submitted fix for test case 03.RCPS, 04.RCPS, 06.RCPS, 07.RCPS
> SettingsDefine - 01_forward.py: FAIL
> SettingsDefine - 02_reverse.py: FAIL
> SettingsDefine - 03_sds_fwd_errs.py: FAIL
> SettingsDefine - 04_sds_rev_errs.py: FAIL
Domain creation is failing for above 2 tc.
> SystemDevice - 01_forward.py: FAIL
> SystemDevice - 02_reverse.py: FAIL
> SystemDevice - 03_fwderrs.py: FAIL
Error is not getting printed, need to verify this.
> VSSD - 01_enum.py: FAIL
passed when run manually
> VirtualSystemManagementService - 01_definesystem_name.py: FAIL
> VirtualSystemManagementService - 02_destroysystem.py: FAIL
> VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
> VirtualSystemSettingDataComponent - 02_reverse.py: FAIL
> VirtualSystemSettingDataComponent - 03_vssdc_fwd_errs.py: FAIL
> VirtualSystemSettingDataComponent - 04_vssdc_rev_errs.py: FAIL
Domain creation is failing for above tc.
>
> Please find the complete test result along with the failures attached
> with the mail.
>
> Thanks and Regards,
> Deepti.
>
>
> ------------------------------------------------------------------------
>
> Starting test suite: libvirt-cim
> Cleaned log files.
> Testing XenFV hypervisor
> AllocationCapabilities - 01_enum.py: PASS
> AllocationCapabilities - 02_alloccap_gi_errs.py: PASS
> ComputerSystem - 01_enum.py: PASS
> ComputerSystem - 02_nosystems.py: SKIP
> ERROR - System has defined domains; unable to run
> ComputerSystem - 03_defineVS.py: PASS
> ComputerSystem - 04_defineStartVS.py: FAIL
> ERROR - Failed to Start the dom: domguest
> ComputerSystem - 05_activate_defined_start.py: FAIL
> ERROR - Exception: (6, u'CIM_ERR_NOT_FOUND: No such instance (DomST1).')
> ComputerSystem - 06_paused_active_suspend.py: FAIL
> ERROR - ERROR: VS DomST1 was not created
> ComputerSystem - 22_define_suspend.py: PASS
> ComputerSystem - 23_suspend_suspend.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Unable to define domain test_domain using DefineSystem()
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ComputerSystem - 27_define_suspend_errs.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Unable to define domain test_domain using DefineSystem()
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ComputerSystem - 32_start_reboot.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Unable to define domain test_domain using DefineSystem()
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ComputerSystem - 33_suspend_reboot.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Unable to define domain test_domain using DefineSystem()
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ComputerSystem - 35_start_reset.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Unable to define domain test_domain using DefineSystem()
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ComputerSystem - 40_RSC_start.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Exception: ('Unable create domain %s using DefineSystem()', 'test_domain')
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ComputerSystem - 41_cs_to_settingdefinestate.py: SKIP
> ComputerSystem - 42_cs_gi_errs.py: PASS
> ComputerSystemIndication - 01_created_indication.py: PASS
> ElementAllocatedFromPool - 01_forward.py: SKIP
> ElementAllocatedFromPool - 02_reverse.py: SKIP
> ElementAllocatedFromPool - 03_reverse_errs.py: PASS
> ElementAllocatedFromPool - 04_forward_errs.py: PASS
> ElementCapabilities - 01_forward.py: FAIL
> ERROR - ElementCapabilities association classname error
> ElementCapabilities - 02_reverse.py: FAIL
> ERROR - Expected 1 host, got 0
> CIM_ERR_FAILED: Unable to get instance for Xen_VirtualSystemMigrationCapabilities
> ElementCapabilities - 03_forward_errs.py: PASS
> ElementCapabilities - 04_reverse_errs.py: PASS
> ElementCapabilities - 05_hostsystem_cap.py: FAIL
> ERROR - Xen_HostedService returned 0 Service objects
> CIM_ERR_FAILED: Unable to get instance for Xen_HostSystem
> ElementConforms - 01_forward.py: FAIL
> ERROR - NameError : global name 'BaseException' is not defined
> ElementConforms - 02_reverse.py: PASS
> ElementConforms - 03_ectp_fwd_errs.py: PASS
> ElementConforms - 04_ectp_rev_errs.py: PASS
> ElementSettingData - 01_forward.py: SKIP
> 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: FAIL
> ERROR - Xen_HostSystem with CrossClass_GuestDom was not returned
> HostSystem - 03_hs_to_settdefcap.py: FAIL
> ERROR - HostedResourcePool has returned 3 instances, expected 4 instances
> ERROR - SystemExit : 1
> HostSystem - 04_hs_to_EAPF.py: SKIP
> HostSystem - 05_hs_gi_errs.py: PASS
> HostSystem - 06_hs_to_vsms.py: PASS
> HostedDependency - 01_forward.py: SKIP
> HostedDependency - 02_reverse.py: SKIP
> HostedDependency - 03_enabledstate.py: SKIP
> HostedDependency - 04_reverse_errs.py: SKIP
> 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: FAIL
> ERROR - Too many hosts error
> CIM_ERR_INVALID_PARAMETER: Xen_VirtualSystemMigrationService.CreationClassName="Xen_VirtualSystemMigrationService",Name="MigrationService",SystemCreationClassName="Xen_HostSystem",SystemName="elm3b43.beaverton.ibm.com"
> HostedService - 03_forward_errs.py: PASS
> HostedService - 04_reverse_errs.py: PASS
> LogicalDisk - 01_disk.py: PASS
> LogicalDisk - 02_nodevs.py: SKIP
> ERROR - System has defined domains; unable to run
> LogicalDisk - 03_ld_gi_errs.py: FAIL
> ERROR - Failed to get instance by the class of Xen_LogicalDisk
> ERROR - Exception: (6, u'CIM_ERR_NOT_FOUND: No such instance (hd_domain/hda)')
> Memory - 01_memory.py: FAIL
> ERROR - Capacity should be 256 MB instead of 128 MB
> Memory - 02_defgetmem.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Exception: Unable to create domain domu using DefineSys()
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> Memory - 03_mem_gi_errs.py: PASS
> NetworkPort - 01_netport.py: XFAIL Bug: 90844
> ERROR - Exception: (6, u'CIM_ERR_NOT_FOUND: No such instance (test_domain/00:11:22:33:44:55)')
> Bug:<90844>
> NetworkPort - 02_np_gi_errors.py: PASS
> NetworkPort - 03_user_netport.py: SKIP
> Processor - 01_processor.py: FAIL
> ERROR - Domain not started, we're not able to check vcpu
> Processor - 02_definesys_get_procs.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Exception: Unable create domain test_domain using DefineSystem()
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> Processor - 03_proc_gi_errs.py: FAIL
> ERROR - Failed to Create the dom: proc_domain
> Profile - 01_enum.py: SKIP
> Profile - 02_profile_to_elec.py: SKIP
> Profile - 03_rprofile_gi_errs.py: SKIP
> RASD - 01_verify_rasd_fields.py: FAIL
> ERROR - Unable to create domain VSSDC_dom
> RASD - 02_enum.py: PASS
> RASD - 03_rasd_errs.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: SKIP
> ResourcePool - 02_rp_gi_errors.py: SKIP
> 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
> ERROR - Unexpected rc code 7 and description CIM_ERR_NOT_SUPPORTED
>
> InvokeMethod(CreateResourcePool): CIM_ERR_NOT_SUPPORTED
> ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: FAIL
> ERROR - Unexpected rc code 7 and description CIM_ERR_NOT_SUPPORTED
>
> InvokeMethod(CreateChildResourcePool): CIM_ERR_NOT_SUPPORTED
> ResourcePoolConfigurationService - 05_AddResourcesToResourcePool.py: XFAIL Bug: 92173
> ERROR - Unexpected rc code 1 and description CIM_ERR_FAILED: Unknown Method
>
> InvokeMethod(AddResourcesToResourcePool): CIM_ERR_FAILED: Unknown Method
> Bug:<92173>
> ResourcePoolConfigurationService - 06_RemoveResourcesFromResourcePool.py: FAIL
> ERROR - Unexpected rc code 7 and description CIM_ERR_NOT_SUPPORTED
>
> InvokeMethod(RemoveResourcesFromResourcePool): CIM_ERR_NOT_SUPPORTED
> ResourcePoolConfigurationService - 07_DeleteResourcePool.py: FAIL
> ERROR - Unexpected rc code 7 and description CIM_ERR_NOT_SUPPORTED
>
> InvokeMethod(DeleteResourcePool): CIM_ERR_NOT_SUPPORTED
> SettingsDefine - 01_forward.py: FAIL
> ERROR - Failed to Create the dom: domu1
> SettingsDefine - 02_reverse.py: FAIL
> ERROR - Failed to create the dom: virtgst
> SettingsDefine - 03_sds_fwd_errs.py: FAIL
> ERROR - Failed to Create the dom: domu1
> SettingsDefine - 04_sds_rev_errs.py: FAIL
> ERROR - Failed to Create the dom: domu1
> SettingsDefineCapabilities - 01_forward.py: SKIP
> SettingsDefineCapabilities - 03_forward_errs.py: PASS
> SettingsDefineCapabilities - 04_forward_vsmsdata.py: PASS
> SettingsDefineCapabilities - 05_reverse_vsmcap.py: PASS
> SystemDevice - 01_forward.py: FAIL
> ERROR - Unable to create domain test_domain
> SystemDevice - 02_reverse.py: FAIL
> SystemDevice - 03_fwderrs.py: FAIL
> VSSD - 01_enum.py: FAIL
> ERROR - Missing VSSD instance for the system VSSD_dom
> 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: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> VirtualSystemManagementService - 02_destroysystem.py: FAIL
> ERROR - Unknow exception happened
> ERROR - (1, u'CIM_ERR_FAILED: Failed to find domain')
> ERROR - Destroyed multiple domains
> InvokeMethod(DestroySystem): CIM_ERR_FAILED: Failed to find domain
> VirtualSystemManagementService - 03_definesystem_ess.py: PASS
> VirtualSystemManagementService - 04_definesystem_ers.py: PASS
> VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
> ERROR - destroy_fail>>noname: Error executing DestroySystem, exception details below
> ERROR - (1, u'CIM_ERR_FAILED: Unable to retrieve domain name.')
> ERROR - destroy_fail>>nonexistent: Error executing DestroySystem, exception details below
> ERROR - (1, u'CIM_ERR_FAILED: Failed to find domain')
> InvokeMethod(DestroySystem): CIM_ERR_FAILED: Unable to retrieve domain name.
> InvokeMethod(DestroySystem): CIM_ERR_FAILED: Failed to find domain
> VirtualSystemManagementService - 06_addresource.py: SKIP
> VirtualSystemManagementService - 07_addresource_neg.py: PASS
> VirtualSystemManagementService - 08_modifyresource.py: XFAIL Bug: 90853
> ERROR - Error invoking ModifyRS
> ERROR - (1, u"CIM_ERR_FAILED: Unknown system `rstest_domain'")
> InvokeMethod(ModifyResourceSettings): CIM_ERR_FAILED: Unknown system `rstest_domain'
> Bug:<90853>
> 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: SKIP
> VirtualSystemSettingDataComponent - 02_reverse.py: FAIL
> ERROR - Failed to create the dom: VSSDC_dom
> VirtualSystemSettingDataComponent - 03_vssdc_fwd_errs.py: FAIL
> ERROR - Unable to create domain domu1
> VirtualSystemSettingDataComponent - 04_vssdc_rev_errs.py: FAIL
> ERROR - Unable to create domain domu1
> 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
>
>
From danms at us.ibm.com Fri May 2 14:50:19 2008
From: danms at us.ibm.com (Dan Smith)
Date: Fri, 02 May 2008 07:50:19 -0700
Subject: [Libvirt-cim] [PATCH] Update web content to match libvirt.org
In-Reply-To: <9616af4ad2341ecb47dc.1209674601@naegling> (Jay Gagnon's message
of "Thu, 01 May 2008 16:43:21 -0400")
References: <9616af4ad2341ecb47dc.1209674601@naegling>
Message-ID: <87od7orc9g.fsf@caffeine.beaverton.ibm.com>
JG> # HG changeset patch
JG> # User Jay Gagnon
JG> # Date 1209666871 14400
JG> # Node ID 9616af4ad2341ecb47dc0b139017636d14e0e86a
JG> # Parent bd075f76943a0facc8aa69d7788f3d6a1a2f8d8c
JG> Update web content to match libvirt.org
I applied and 'make' at the toplevel eventually gives me this:
Making all in doc
make[2]: Entering directory `/home/dan/devel/libvirt-cim/doc'
make[2]: *** No rule to make target `all'. Stop.
make[2]: Leaving directory `/home/dan/devel/libvirt-cim/doc'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/dan/devel/libvirt-cim'
make: *** [all] Error 2
--
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms at us.ibm.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL:
From kaitlin at linux.vnet.ibm.com Fri May 2 14:50:39 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Fri, 02 May 2008 07:50:39 -0700
Subject: [Libvirt-cim] KVM test report on Fedora 9 (4/30)
In-Reply-To: <481AB1E8.2000701@linux.vnet.ibm.com>
References: <4817E363.7050105@linux.vnet.ibm.com>
<4818049C.9070202@linux.vnet.ibm.com>
<4819CC0B.7050207@linux.vnet.ibm.com>
<481AB1E8.2000701@linux.vnet.ibm.com>
Message-ID: <481B2A3F.1090801@linux.vnet.ibm.com>
Deepti B Kalakeri wrote:
>
>
> Kaitlin Rupert wrote:
>> Zhengang Li wrote:
>>>> ComputerSystemIndication - 01_created_indication.py: FAIL
>>> Pegasus crashed after running this test case.
>>> Log says 'BadStatusLine :'
>>>
>>
>> Any more information on why the provider is crashing here? I'm able
>> to run with KVM on current sources. Maybe this test is hitting a
>> provider but that's been fixed?
>>
> This test cases has never passed for me.
> It always fails with timeout.
> Any idea why this could be ?
>
You'll need to have:
repositoryIsDefaultInstanceProvider=true
enableIndicationService=true
Set for the CIMOM (if you're using Pegasus).
Also, does the test return an error or does the test suite time out and
move to the next test?
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Fri May 2 15:04:38 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Fri, 02 May 2008 08:04:38 -0700
Subject: [Libvirt-cim] KVM test report on Fedora 9 (4/30)
In-Reply-To: <481B04CA.6000203@linux.vnet.ibm.com>
References: <4817E363.7050105@linux.vnet.ibm.com>
<4818049C.9070202@linux.vnet.ibm.com>
<481B04CA.6000203@linux.vnet.ibm.com>
Message-ID: <481B2D86.8080106@linux.vnet.ibm.com>
> wbemain -ac KVM_ElementConformsToProfile
'http://u:p at host:5988/root/virt:KVM_ComputerSystem.CreationClassName="KVM_ComputerSystem",Name="domgst"'
> I dont see the KVM_ElementConformsToProfile.CIM_ElementConformsToProfile
> registered in the root#virt namespace on F9 machine with rpm
> libvirt-cim, while the same is present in both the root#interop and
> root#virt namespace on F9 machine with latest libvirt-cim sources.
This might be a bug in the rpm install - I'll take a look.
> I tried copying the provider manually to the root#virt namespace and
> restarted the cimserver, but I did not get any results even after that.
> I dont know if this is proper way of registering the mof files in the
> namespace.
To register a mof file, you can do the following:
sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/virt
Where PEGASUS_REPO is the location of your Pegasus repository (probably
PEGASUS_REPO=/var/lib/Pegasus).
However, the rpm should be doing this for you.
> Although, the above wbemcli gives me expected o/p on the
> F9 with rpm when the query includes the root/interop namespace,
> While on the F9 with latest source I get o/p for query with root/virt
> namespace.
ECTP is a cross-namespace provider. For our implementation, that means
the ECTP mof is registered to both root/interop and root/virt. The
provider is also registered to both name spaces.
You said said the following query works for you with the F9 rpm:
wbemain -ac KVM_ElementConformsToProfile
'http://localhost:5988/root/interop:KVM_ComputerSystem.CreationClassName="KVM_ComputerSystem",Name="domgst"'
That's a bug which been fixed in recent sources. You should see the
following:
*
* wbemain: Cim: (6) CIM_ERR_NOT_FOUND: CIM_ERR_NOT_FOUND:
KVM_ComputerSystem.CreationClassName="KVM_ComputerSystem",Name="domgst"
*
This query is asking for the associators for this reference in the
interop namespace. However, that instance doesn't exist in the interop
namespace - it should only exist in the virt namespace. To verify, you
can try the following query - it should also fail:
wbemcli gi
'http://localhost:5988/root/interop:KVM_ComputerSystem.CreationClassName="KVM_ComputerSystem",Name="domgst"'
> Could you please tell me the namespace and ECTP provider registration
> details.
Take a look at the ECTP registration file
(schema/ElementConformsToProfile.registration) and compare this with the
registration file for ComputerSystem (schema/ComputerSystem.registration).
>>
>>> ElementSettingData - 03_esd_assoc_with_rasd_errs.py: FAIL
>> This one passed in individual run. The previous ElementConforms.04
>> undefine fix doesn't help here. Might be some other unknown missing
>> undefine.
Is the test failing because it cannot create the guest, or is it due to
some other issue?
>>
>>> NetworkPort - 03_user_netport.py: FAIL
>> 'user' network type.
>> [Known Issue]
>>
>>> ReferencedProfile - 01_verify_refprof.py: FAIL
>> Binary rpm provider gives 2 results on the following query:
>> wbemein http://u:p at host:5988/root/interop:KVM_RegisteredProfile
>> "CIM:DSP1042-SystemVirtualization-1.0.0"
>> "CIM:DSP1057-VirtualSystem-1.0.0a"
>> Same wbemcli command gets 5 results on changeset-533 tree on another
>> system.
>> "CIM:DSP1042-SystemVirtualization-1.0.0"
>> "CIM:DSP1057-VirtualSystem-1.0.0a"
>> "CIM:DSP1059-GenericDeviceResourceVirtualization-1.0.0"
>> "CIM:DSP1045-MemoryResourceVirtualization-1.0.0"
>> "CIM:DSP1081-VirtualSystemMigration-1.0"
> Yes this is correct.
>> This leads to ReferencedProfile's 'ain' query gets only 2 results.
>>
> I did not see the ReferncedProfile query return any results.
> since the ReferencedProfile is not present on the on an rpm libvirt-cim
> based F9 machine and hence the ain query fails without any results.
>>> ReferencedProfile - 02_refprofile_errs.py: FAIL
>> Same as ReferencedProfile.01
>>
> I think the ReferncedProfile was added with the changeset 500 and the
> rpm contains the changes till 393, hence I think the ReferencedProfile
> did not get registered on the machine.
Close - it's changeset 501.
> Should we skip the above test cases for rpm based F9 ?
Yes - that's a good idea. You can check the changeset version, and skip
if it's lower than changeset 501.
Thanks!
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From danms at us.ibm.com Fri May 2 15:08:49 2008
From: danms at us.ibm.com (Dan Smith)
Date: Fri, 02 May 2008 08:08:49 -0700
Subject: [Libvirt-cim] [TEST] test cases fix list and assignment for the
next week
In-Reply-To: <481B0C1B.6010205@linux.vnet.ibm.com> (Deepti B. Kalakeri's
message of "Fri, 02 May 2008 18:12:03 +0530")
References:
<481B0C1B.6010205@linux.vnet.ibm.com>
Message-ID: <87k5icrbem.fsf@caffeine.beaverton.ibm.com>
DK> Is this valid ?
No, but it's expected. We're waiting for Jay's processor stuff to be
completed before we add that link back in there. Hopefully that will
happen before the end of next week.
--
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms at us.ibm.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL:
From kaitlin at linux.vnet.ibm.com Fri May 2 15:11:40 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Fri, 02 May 2008 08:11:40 -0700
Subject: [Libvirt-cim] [PATCH] Fix compile error in VSMS
In-Reply-To: <61d0f0e9f05e31ceb064.1209736903@guaranine.danplanet.com>
References: <61d0f0e9f05e31ceb064.1209736903@guaranine.danplanet.com>
Message-ID: <481B2F2C.8040905@linux.vnet.ibm.com>
Dan Smith wrote:
> # HG changeset patch
> # User Dan Smith
> # Date 1209736899 25200
> # Node ID 61d0f0e9f05e31ceb06476c92570e325b38d8a5a
> # Parent 122027a2c63e875939492ec0c7f39299ca6fed25
> Fix compile error in VSMS
>
> I know Kaitlin had submitted a patch for this against SDC, but I must
> have forgotten to apply it.
>
Yep - that looks familiar. I failed to verify it went in too, oops! ;) +1
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Fri May 2 15:50:41 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Fri, 02 May 2008 08:50:41 -0700
Subject: [Libvirt-cim] Re: CimTest Report on XenFV 01-05-2008
In-Reply-To: <481B228A.6060405@linux.vnet.ibm.com>
References: <481B0F51.9080006@linux.vnet.ibm.com>
<481B228A.6060405@linux.vnet.ibm.com>
Message-ID: <481B3851.7040809@linux.vnet.ibm.com>
>> ElementCapabilities - 01_forward.py: FAIL
> EC now returns AC , needs tc modification.
>> ElementCapabilities - 02_reverse.py: FAIL
> Need tc modification.
Yep - it'll be good to have that support.
>> ElementCapabilities - 05_hostsystem_cap.py: FAIL
> wbemcli ain -ac Xen_HostedService
> 'http://u:p at localhost:5988/root/virt:Xen_HostSystem.CreationClassName="Xen_HostSystem",Name="elm3b43.beaverton.ibm.com"'
>
> *
> * wbemcli: Cim: (1) CIM_ERR_FAILED: Unable to get instance for
> Xen_HostSystem
> *
> Should have returned "RPCS", "Management Service", "MigrationService".
Does wbemcli ein http://localhost:5988/root/virt:Xen_HostSystem return
the reference used in the query?
>> ElementConforms - 01_forward.py: FAIL
> BaseException not supported, Passed when Exception keyword was instead.
This is probably an issue with the older version of python on RHEL - can
you submit a fix? Thanks!
>> HostSystem - 02_hostsystem_to_rasd.py: FAIL
> Passed when run manually
What's the error when you do a bulk run?
>> HostSystem - 03_hs_to_settdefcap.py: FAIL
> 1) Need to make change to the common_util.py to inclue the diskpool.conf
> file in /etc/libvirt
> 2) The field -PropertyPolicy is no longer returned as part of
> association between SDC with AC
>> HostedService - 02_reverse.py: FAIL
> wbemcli ain -ac Xen_HostedService
> 'http://u:p at locathost/root/virt:Xen_VirtualSystemMigrationService.CreationClassName="Xen_VirtualSystemMigrationService",Name="MigrationService",SystemCreationClassName="Xen_HostSystem",SystemName="elm3b43.beaverton.ibm.com"'
>
> *
> * wbemcli: Http Exception: couldn't resolve host name
> *
Probably related to the ElementCapabilities - 05_hostsystem_cap.py failure.
Thanks for the run Deepti!
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From jfehlig at novell.com Fri May 2 17:21:28 2008
From: jfehlig at novell.com (Jim Fehlig)
Date: Fri, 02 May 2008 11:21:28 -0600
Subject: [Libvirt-cim] [PATCH] [CU]Generate bzip2 tar archive of the
distribution
Message-ID: <08a108e61a64c5277b6e.1209748888@jfehlig3.provo.novell.com>
# HG changeset patch
# User Jim Fehlig
# Date 1209748251 21600
# Node ID 08a108e61a64c5277b6e5460dde968d09c86bd53
# Parent c7735df77318edeaace43724b56b3e6fafa6cb29
[CU]Generate bzip2 tar archive of the distribution
SuSE packages generally use bzip2 tar archives instead of gzip. This patch
permits creation of bzip2 archive, in addition to gzip, when invoking
'make dist' target.
Signed-off-by: Jim Fehlig
diff -r c7735df77318 -r 08a108e61a64 Makefile.am
--- a/Makefile.am Tue Apr 22 09:01:26 2008 -0700
+++ b/Makefile.am Fri May 02 11:10:51 2008 -0600
@@ -1,4 +1,6 @@
# Copyright IBM Corp. 2007
+AUTOMAKE_OPTIONS=dist-bzip2
+
SUBDIRS = tools
EXTRA_DIST = libcmpiutil.spec.in libcmpiutil.spec COPYING \
From jfehlig at novell.com Fri May 2 17:33:34 2008
From: jfehlig at novell.com (Jim Fehlig)
Date: Fri, 02 May 2008 11:33:34 -0600
Subject: [Libvirt-cim] [PATCH] [CU]Provide a return type in eo_parse_error
Message-ID: <79873958006140bbcd14.1209749614@jfehlig3.provo.novell.com>
# HG changeset patch
# User Jim Fehlig
# Date 1209749547 21600
# Node ID 79873958006140bbcd14122f9c7e1e80c00d9eef
# Parent 08a108e61a64c5277b6e5460dde968d09c86bd53
[CU]Provide a return type in eo_parse_error
With no return type specified for eo_parse_error, libcmpiutil package fails
to build in SuSE build service, e.g.
ERROR: Program returns random data in a function. Please fix.
Problematic file(s) and their linenumbers:
eo_util_lexer.l: 129
This patch modifies the definition to include a void return type.
Signed-off-by: Jim Fehlig
diff -r 08a108e61a64 -r 798739580061 eo_util_lexer.l
--- a/eo_util_lexer.l Fri May 02 11:10:51 2008 -0600
+++ b/eo_util_lexer.l Fri May 02 11:32:27 2008 -0600
@@ -121,7 +121,7 @@ FALSE {
/* USER SUBROUTINE SECTION */
/* Everything below is copied verbatim to the end of the lex generated C code. */
-eo_parse_error(char *errmsg)
+void eo_parse_error(char *errmsg)
{
fprintf(stderr, "error line %d: %s in '%s'\n",
eolineno, errmsg, eo_parse_text);
From jfehlig at novell.com Fri May 2 17:36:24 2008
From: jfehlig at novell.com (Jim Fehlig)
Date: Fri, 02 May 2008 11:36:24 -0600
Subject: [Libvirt-cim] [PATCH] Generate bzip2 tar archive of the distribution
Message-ID: <1b4ca562f6f19455680f.1209749784@jfehlig3.provo.novell.com>
# HG changeset patch
# User Jim Fehlig
# Date 1209749753 21600
# Node ID 1b4ca562f6f19455680f95db62b27c351de62e13
# Parent 02269d31d296b603dd99b5fd1c235c1a987f5a49
Generate bzip2 tar archive of the distribution
SuSE packages generally use bzip2 tar archives instead of gzip. This patch
permits creation of bzip2 archive, in addition to gzip, when invoking
'make dist' target.
Signed-off-by: Jim Fehlig
diff -r 02269d31d296 -r 1b4ca562f6f1 Makefile.am
--- a/Makefile.am Fri May 02 08:18:24 2008 -0700
+++ b/Makefile.am Fri May 02 11:35:53 2008 -0600
@@ -1,4 +1,6 @@
# Copyright IBM Corp. 2007
+AUTOMAKE_OPTIONS=dist-bzip2
+
SUBDIRS = libxkutil src doc base_schema
MOFS = \
From grendel at linux.vnet.ibm.com Fri May 2 20:32:47 2008
From: grendel at linux.vnet.ibm.com (Jay Gagnon)
Date: Fri, 02 May 2008 16:32:47 -0400
Subject: [Libvirt-cim] [PATCH] (#2) Update web content to match libvirt.org
Message-ID: <0b26d79ea3283461b349.1209760367@naegling>
# HG changeset patch
# User Jay Gagnon
# Date 1209760357 14400
# Node ID 0b26d79ea3283461b349d20dbcfdf1715344afcd
# Parent 02269d31d296b603dd99b5fd1c235c1a987f5a49
(#2) Update web content to match libvirt.org
Dan's problem seems to have been a matter of needing an autoconfiscate, so no related changes there.
Changes from 1 to 2:
Cleaned up a few html validation things.
Signed-off-by: Jay Gagnon
diff -r 02269d31d296 -r 0b26d79ea328 doc/Makefile.am
--- a/doc/Makefile.am Fri May 02 08:18:24 2008 -0700
+++ b/doc/Makefile.am Fri May 02 16:32:37 2008 -0400
@@ -1,23 +1,26 @@ XSLTPROC = /usr/bin/xsltproc
XSLTPROC = /usr/bin/xsltproc
+XMLLINT = /usr/bin/xmllint
-WEB_PAGES = index.html \
- architecture.html \
- downloads.html \
- intro.html \
- news.html \
- patches.html \
- platforms.html \
- schema.html
+dot_html_in = $(wildcard *.html.in)
+dot_html = $(dot_html_in:%.html.in=%.html)
-EXTRA_DIST = site.xsl libvirt-cim.html $(WEB_PAGES)
-
-$(WEB_PAGES): libvirt-cim.html site.xsl
- -@(if [ -x $(XSLTPROC) ]; then \
- $(XSLTPROC) --nonet --html $(top_srcdir)/doc/site.xsl $(top_srcdir)/doc/libvirt-cim.html > index.html; \
- fi);
+EXTRA_DIST = site.xsl $(dot_html) $(dot_html_in)
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)
@INSTALL@ -m 0644 $(srcdir)/*.html $(DESTDIR)$(HTML_DIR)
-all: $(WEB_PAGES)
+all: $(dot_html)
+
+%.html.tmp: %.html.in site.xsl page.xsl sitemap.html.in
+ @(if [ -x $(XSLTPROC) ] ; then \
+ echo "Generating $@"; \
+ name=`echo $@ | sed -e 's/.tmp//'`; \
+ echo "name: $$name"; \
+ $(XSLTPROC) --stringparam pagename $$name --nonet --html $(top_srcdir)/doc/site.xsl $< > $@ || (rm $@ && exit 1) ; fi )
+
+
+%.html: %.html.tmp
+ @(if [ -x $(XMLLINT) ] ; then \
+ echo "Validating $@" ; \
+ $(XMLLINT) --nonet --format --valid $< > $@ || : ; fi );
diff -r 02269d31d296 -r 0b26d79ea328 doc/architecture.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/architecture.html.in Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,30 @@
+
+
+ Architecture
+
+
+ The libvirt-cim provider consists of two major parts:
+
+
+
+ The provider classes themselves (src/ )
+
+
+ A helper library of common components (libxkutil/ )
+
+
+
+ The provider classes implement the actual CIM class model. Some of
+ the provider libraries implement one CIM class and one providier.
+ However, many of them perform more than one task. For example,
+ the Virt_Device and Virt_DevicePool providers
+ implement the device and device pool classes for each of the major
+ device types: Memory, Processor, Network, and Disk.
+
+
+ The helper library contains common routines that almost all of the
+ providers use, such as libvirt connection type detection and device
+ and system XML parsing.
+
+
+
diff -r 02269d31d296 -r 0b26d79ea328 doc/downloads.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/downloads.html.in Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,27 @@
+
+
+ Downloads
+
+
+ Official releases can be found on the libvirt.org
+ FTP server. Alternatively,
+ you can grab a
+ tarball or
+ zip file
+ snapshot of the development repository. These snapshots will have the
+ latest features (and bugs).
+
+
+ The libvirt-cim development tree can be found in the
+ libvirt.org/hg repository.
+
+
+ To get a copy of the development tree, use
+ mercurial 's clone
+ feature:
+
+
+ $ hg clone http://libvirt.org/hg/libvirt-cim
+
+
+
diff -r 02269d31d296 -r 0b26d79ea328 doc/generic.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/generic.css Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,75 @@
+
+body {
+ margin: 0em;
+ padding: 0px;
+ color: rgb(0,0,0);
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 80%;
+// font-size: 83%;
+}
+
+p, ul, ol, dl {
+ padding: 0px;
+ margin: 0px;
+}
+
+ol,ul {
+ margin-left: 3em;
+}
+
+ol,ul,dl,p {
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+p:first-line {
+ margin-right: 1em;
+}
+
+div.body p:first-letter {
+ font-size: 1.2em;
+ font-weight: bold;
+}
+
+h1,h2,h3,h4,h5,h6 {
+ font-weight: bold;
+ margin: 0px;
+ padding: 0px;
+ margin-top: 0.5em;
+}
+
+div.footer {
+ margin-top: 1em;
+}
+
+h1 {
+ font-size: 2em;
+}
+h2 {
+ font-size: 1.6em;
+}
+h3 {
+ font-size: 1.4em;
+}
+h4 {
+ font-size: 1.2em;
+}
+h5 {
+ font-size: 1em;
+}
+h6 {
+ font-size: 0.8em;
+}
+
+dl dt {
+ margin-left: 1em;
+ margin-right: 2em;
+ font-weight: bold;
+ font-size: larger;
+}
+
+dl dd {
+ margin-left: 2em;
+ margin-right: 2em;
+ margin-bottom: 0.5em;
+}
diff -r 02269d31d296 -r 0b26d79ea328 doc/index.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/index.html.in Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,25 @@
+
+
+ What is libvirt-cim ?
+
+ Libvirt-CIM is a CIM provider for managing linux virtualization platforms
+ using libvirt. It is written in C and should work in any CIMOM that
+ supports CMPI 2.0 providers. The intent is to implement the SVPC
+ virtualization class model currently available in the DMTF Experimental
+ 2.16 schema.
+
+
+ Libvirt-CIM is a CIM provider for managing linux virtualization platforms
+ using libvirt. It is written in C and should work in any CIMOM that
+ supports CMPI 2.0 providers. The intent is to implement the SVPC
+ virtualization class model currently available in the DMTF Experimental 2.
+ 16 schema.
+
+
+ The providers are currently under heavy development. Focus is on Xen
+ support right now, which means some of the providers have some "shortcuts"
+ hard-coded to Xen right now. The long-term goal is to support all of the
+ platforms that libvirt supports with minimal differences.
+
+
+
diff -r 02269d31d296 -r 0b26d79ea328 doc/libvirt.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/libvirt.css Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,343 @@
+
+
+h1 {
+ font-weight: normal;
+ color: #3c857c;
+}
+h1 strong {
+ font-weight: bold;
+}
+
+h2, h3, h4, h5, h6 {
+ color: #3c857c;
+}
+
+#header {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ margin: 0px;
+ height: 104px;
+ width: 100%;
+ background: url(libvirt-header-bg.png);
+ border: 0px;
+}
+
+#body {
+ position: relative;
+ border: 0px;
+ padding-top: 104px;
+ left: 0px;
+ margin: 0px;
+ padding-left: 250px;
+}
+
+#content {
+ float: right;
+ padding: 0px;
+ width: 100%;
+ padding-bottom: 1em;
+}
+
+#menu {
+ border: 0px;
+ margin-left: -250px;
+ position: relative;
+ margin-top: 0px;
+ left: 0px;
+ width: 220px;
+ margin-bottom: 1em;
+}
+
+#menu ul {
+ margin: 0px;
+ padding: 0px;
+ margin-left: 40px;
+}
+
+#menu li ul {
+ margin-left: 0px;
+}
+
+#menu ul li {
+ list-style: none;
+ color: black;
+ padding: 0px;
+ font-weight: bold;
+ font-size: 1.2em;
+}
+
+#menu li ul li {
+ font-size: 1em;
+}
+
+#menu ul li a, #menu ul li span {
+ text-decoration: inherit;
+ color: inherit;
+ display: block;
+ padding: 6px;
+ margin: 2px;
+}
+
+#menu ul li .active {
+ background: #a4c6c2;
+}
+
+#menu ul.l0 li .inactive {
+ background: #c5dbd8;
+}
+
+
+#menu ul.l1 li .inactive,
+#menu ul.l2 li .inactive {
+ background: #dfebea;
+ border-left: 8px solid #dfebea;
+}
+
+#menu ul.l1 li .inactive,
+#menu ul.l1 li .active {
+ padding-left: 1em;
+}
+
+#menu ul.l1 li .inactive {
+ border-left: 6px solid #dfebea;
+}
+#menu ul.l1 li .active {
+ border-left: 6px solid #a5c6c2;
+}
+
+#menu ul.l2 li .inactive,
+#menu ul.l2 li .active {
+ padding-left: 2em;
+ border-left: 8px solid #c5dbd8;
+}
+
+
+#headerLogo {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ height: 104px;
+ width: 400px;
+ background: url(libvirt-header-logo.png);
+}
+#headerSearch {
+ position: absolute;
+ top: 0px;
+ right: 0px;
+ padding: 2em;
+ z-index: 10;
+}
+
+#headerSearch input {
+ border: 1px solid #999999;
+ color: #999999;
+ background: white;
+ padding: 3px;
+ font-size: 1em;
+}
+
+#headerSearch #submit {
+ border: 1px solid #999999;
+ background: #eeeeee;
+ color: black;
+ padding: 3px;
+ font-size: 1em;
+}
+
+
+#sitemap ul li {
+ list-style: none;
+}
+
+#sitemap ul {
+ margin: 1em;
+ padding: 0em;
+}
+
+#sitemap ul ul {
+ padding-left: 2em;
+}
+
+#sitemap li {
+ margin: 0.5em;
+}
+
+#sitemap a {
+ color: inherit;
+ text-decoration: underline;
+ font-weight: bold;
+}
+
+pre {
+ border: 1px solid #999999;
+ background: #eeeeee;
+ color: black;
+ padding: 1em;
+}
+
+a {
+ color: #566866;
+}
+
+
+div.api {
+ border: 1px solid #999999;
+ background: #eeeeee;
+ color: black;
+}
+
+div.api pre {
+ margin: 0px;
+ border: 0px;
+ background: inherit;
+}
+
+div.api table {
+ margin: 0px;
+ padding-left: 2em;
+ font-family: fixed;
+ whitespace: pre;
+}
+
+
+h1 a, h2 a, h3 a, h4 a, h5 a {
+ color: inherit;
+ text-decoration: inherit;
+}
+
+#changelog .author {
+ color: #3c857c;
+ font-weight: bold;
+}
+
+p.image {
+ text-align: center;
+}
+
+.top_table {
+ border-collapse: collapse;
+}
+
+.top_table th {
+ background: #a4c6c2;
+}
+
+.top_table th a {
+ color: inherit;
+ text-decoration: inherit;
+}
+
+.top_table td, .top_table th {
+ border: 1px solid #999999;
+}
+
+.top_table tr:hover td, .top_table col:hover td {
+ background: #eeeeee;
+}
+
+.top_table tr td:hover {
+ background: #c5dbd8;
+}
+
+#footer {
+ clear: both;
+ position: relative;
+ margin: 0px;
+ padding: 0px;
+ border: 0px;
+ width: 100%;
+ background: #757575 url(footer_pattern.png) repeat-x;
+ height: 180px;
+}
+
+#footer p {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ margin: 0px;
+ border: 0px solid red;
+ width: 220px;
+ text-align: center;
+}
+
+#footer p a img {
+ border: 0px;
+}
+
+#projects {
+ margin: 0px;
+ border: 0px;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 100%;
+}
+
+
+#projects dl {
+ margin: 0px;
+ border: 0px solid white;
+ background: url(footer_corner.png) no-repeat;
+ height: 180px;
+ position: absolute;
+ top: 0px;
+ left: 0px;
+}
+
+
+#projects #p1 {
+ margin-left: 25%;
+ width: 75%;
+}
+
+#projects #p2 {
+ margin-left: 50%;
+ width: 50%;
+}
+
+#projects #p3 {
+ margin-left: 75%;
+ width: 25%;
+}
+
+#projects dt, #projects dd {
+ padding: 0px;
+ margin: 0px;
+}
+
+#projects #p1 dt, #projects #p1 dd {
+ width: 33%;
+}
+#projects #p2 dt, #projects #p2 dd {
+ width: 50%;
+}
+#projects #p3 dt, #projects #p3 dd {
+ width: 99%;
+}
+
+#projects {
+}
+
+#projects span {
+ font-size: 0.8em;
+ display: block;
+ padding-left: 1em;
+ padding-top: 0.5em;
+}
+
+#projects a {
+ font-size: 0.8em;
+ display: block;
+ padding-left: 0.8em;
+ padding-top: 1em;
+}
+
+#projects a {
+ color: white;
+ text-decoration: inherit;
+}
+
+#projects span {
+ color: #ccc;
+}
diff -r 02269d31d296 -r 0b26d79ea328 doc/main.css
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/main.css Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,2 @@
+ at import url(generic.css);
+ at import url(libvirt.css);
diff -r 02269d31d296 -r 0b26d79ea328 doc/page.xsl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/page.xsl Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ active
+
+
+ inactive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This file is autogenerated from .in
+ Do not edit this file. Changes will be lost.
+
+
+
+
+ libvirt:
+
+
+
+
+
+
+
+
+
+
+
diff -r 02269d31d296 -r 0b26d79ea328 doc/patches.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/patches.html.in Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,195 @@
+
+
+ Patches
+
+
+ To submit patches to libvirt-cim, you must follow the DCO process,
+ outlined below:
+
+ Developer's Certificate of Origin 1.1
+
+ By making a contribution to this project, I certify that:
+
+
+
+
+ The contribution was created in whole or in part by me and I have the
+ right to submit it under the open source license indicated in the
+ file; or
+
+
+
+
+ The contribution is based upon previous work that, to the best of my
+ knowledge, is covered under an appropriate open source license and I
+ have the right under that license to submit that work with
+ modifications, whether created in whole or in part by me, under the
+ same open source license (unless I am permitted to submit under a
+ different license), as indicated in the file; or
+
+
+
+
+ The contribution was provided directly to me by some other person who
+ certified (1), (2) or (3) and I have not modified it.
+
+
+
+
+ I understand and agree that this project and the contribution are
+ public and that a record of the contribution (including all personal
+ information I submit with it, including my sign-off) is maintained
+ indefinitely and may be redistributed consistent with this project or
+ the open source license(s) involved.
+
+
+
+
+ then you just add a line saying
+
+
+ Signed-off-by: Random J Developer <random at developer.example.org>
+
+
+ using your real name (sorry, no pseudonyms or anonymous contributions.)
+
+ Guidelines for Submitting Patches.
+ Patches should be submitted using Mercurial's patchbomb extension, and we
+ recommend using the queues extension as well. On top of that, we have some
+ guidelines you should follow when submitting patches. This makes reviewing
+ patches easier, which in turns improves the chances of your patch being
+ accepted in a timely fashion.
+
+
+ For help on how to use the patchbomb extension, see
+ Section 14.4 of
+ Distributed revision control with Mercurial .
+
+
+ For help on the queues extension, see
+ Chapter 12 .
+
+ Single Patches:
+
+
+
+ When you add a patch to the queue you have an idea of where
+ you're going with it, and the commit message should reflect
+ that. Be specific. Avoid just saying something like,
+ "Various fixes to AllocationCapabilities." Add a list of
+ what was actually fixed, like, "Add EnumInstanceNames
+ support," and, "Eliminate duplicate instances."
+
+
+
+
+ The first line of your commit message will be the subject of
+ the patch email when you send it out, so write it like a
+ subject. Keep it short and to the point, then start a new
+ line and feel free to be as verbose as you need to be. The
+ entire commit message will be included in the patch.
+
+
+
+
+ Stay on task with a patch. If you notice other problems
+ while you are working on a patch, and they are not most
+ definitely specific to your patch, they should be another
+ patch. The same goes for nitpicking. While it might be
+ only a line or two here and there that is off track, this is
+ actually one of the easiest ways to make a patch difficult
+ to review. All the trivial changes hide what is really
+ going on. Make the unrelated changes a new patch or don't
+ make them at all.
+
+
+
+
+ If your patch addresses a strange issue or a rare edge case
+ that the reviewers are unlikely to be familiar with, make
+ sure the commit message include some example testcase with
+ results, so the reviewers can verify your patch more
+ quickly.
+
+
+
+
+ Before you email, export. If you have a patch called
+ "alloc_fixes", which would be emailed with "hg email
+ alloc_fixes", you should first run "hg export alloc_fixes".
+ This lets you review your patch. Does it have any typos in
+ the comments? Did you accidentally include an irrelevant
+ change? Is your commit message still accurate and useful?
+ This is the single biggest step in ensuring you have a good
+ patch.
+
+
+
+
+ If your patch needs to be reworked and resent, prepend a
+ "version number" to the first line of the commit message.
+ For example, "Add EnumInstance to RASD," becomes "#2 Add
+ EnumInstance to RASD." This helps mail readers thread
+ discussions correctly and helps maintainers know they are
+ applying the right version of your patch. At the end of the
+ commit message, explain what is different from one version
+ to the next. Nobody likes having to diff a diff.
+
+
+
+
+ If your patch depends on a patch that exists on the mailing
+ list but not in the tree, it is okay to send your patch to
+ the list as long as your commit message mentions the
+ dependency. It is also a good idea to import the patch into
+ your tree before you make your patch. For example, a new
+ patch called "cu_statusf API change" is on the list, and
+ your patch needs the new API. Save the email (no need to
+ trim headers) as api_change.eml, then do "hg qimport
+ api_change.eml" and "hg qpush" so that the patch is applied
+ to your tree. Now write your patch on top of it. You
+ should still indicate the dependency in your commit message.
+
+ Patchsets:
+
+ When you send a group of patches, Mercurial's email
+ extension will create a "header" email. Make the subject
+ and body of that email meaningful, so we know how the
+ patches relate. It's easy to say, "Each patch has a commit
+ message, it's obvious how they work together," but the rest
+ of the list usually won't agree with that. If the commit
+ messages for each patch are good, you shouldn't need more
+ than a sentence or two to tie them all together, but you do
+ need it.
+
+
+
+
+ If any of your patches are rejected and you rework them,
+ resend the entire set. This prevents things like, "So use
+ patch 1 of 4 from the set I sent yesterday, 2 and 3 of 4
+ from the patch I sent an hour later, and patch 4 of 4 from
+ today."
+
+
+
+
+ If you resend a patchset, apply part (6) of the Single
+ Patches guidelines to your "Patch [0 of 3]" header email,
+ for all the same reasons.
+
+
+
+
+ Questions/Comments on the Guidelines should be directed to:
+
+
+ Jay Gagnon <
+
+ grendel at linux.vnet.ibm.com
+ >
+
+ Patch Compliance Officer
+
+
+
diff -r 02269d31d296 -r 0b26d79ea328 doc/platforms.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/platforms.html.in Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,47 @@
+
+
+ Platform Support
+
+ Currently, libvirt-cim is targeting Xen as its primary support
+ platform because is has the largest installed user base. The
+ long-term plan is to support many others (hopefully any that libvirt
+ supports). This includes KVM and containers.
+
+
+ The code base currently has many Xen-specific "shortcuts" that need
+ to be resolved and generalized in order to support other platforms.
+ A short list of these may include:
+
+
+
+ The XML generation and parsing code and the related device
+ modeling code.
+
+
+ The libvirt connection logic. Right now, (in most places) we
+ detect the current hypervisor in use and connect to libvirt
+ appropriately. This may or may not be the correct behavior in a
+ situation where you could need to support containers and QEMU
+ virtual machines.
+
+
+ Some lingering hard-coded "Xen_Foo" class names.
+
+
+
+ Further, supporting new platforms have some registration and
+ modeling implications:
+
+
+
+ Additions to the MOF and registration files for "branded"
+ classes (Xen_Foo, KVM_Foo, etc)
+
+
+ Modifications to some of the association providers that register
+ separate CMPI provider structures for each class type they handle
+ (to avoid duplicate results in the general case)
+
+
+
+
diff -r 02269d31d296 -r 0b26d79ea328 doc/releases.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/releases.html.in Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,25 @@
+
+
+ Releases
+
+
+ livirt-cim-0.1: Jan 14 2008
+
+
+
+ Initial Release
+
+
+ Focused on Xen paravirtual guest support
+
+
+
+ libcmpiutil-0.1: Nov 30 2007
+
+
+
+
diff -r 02269d31d296 -r 0b26d79ea328 doc/schema.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/schema.html.in Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,74 @@
+
+
+ Schema
+
+ The libvirt-cim provider depends on an installed
+ DMTF
+ CIM v2.16 Experimental schema. The package can be obtained
+
+ here
+ .
+
+
+ To install the schema in Pegasus:
+
+ $ PEGASUS_REPO=/var/lib/Pegasus # adjust this as needed
+ $ mkdir cim216
+ $ cd cim216
+ $ unzip $PATH_TO_ZIPFILE
+ $ sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/virt cimv216.mof
+ $ sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/virt qualifiers.mof
+ $ sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/virt qualifiers_optional.mof
+ $ sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/interop cimv216-interop.mof
+
+
+ To install the schema in SFCB:
+
+ $ SFCB_CIM=/usr/local/share/sfcb/CIM # adjust this as needed
+ $ mkdir cim216
+ $ cd cim216
+ $ unzip $PATH_TO_ZIPFILE
+ $ mv cimv216.mof CIM_Schema.mof
+ $ sudo cp * $SFCB_CIM
+ $ sudo sfcbrepos
+
+
+ Note: in both cases, the CIM v2.16 schema seems to have a
+ few classes that don't register correctly. You may need to
+ disable installation of classes with something like the
+ following:
+
+
+ --- CIM_Schema.mof 2007-10-15 00:15:44.000000000 -0700
+ +++ cimv216.mof 2007-10-22 10:11:19.000000000 -0700
+ @@ -507,3 +507,3 @@
+ #pragma include ("Policy/CIM_SharedSecretAuthentication.mof")
+ -#pragma include ("Security/CIM_SecurityIndication.mof")
+ +//#pragma include ("Security/CIM_SecurityIndication.mof")
+ #pragma include ("Support/PRS_Activity.mof")
+ @@ -728,4 +728,4 @@
+ #pragma include ("Policy/CIM_PolicyConditionInPolicyRule.mof")
+ -#pragma include ("Security/CIM_IPNetworkSecurityIndication.mof")
+ -#pragma include ("Security/CIM_IPPacketFilterIndication.mof")
+ +//#pragma include ("Security/CIM_IPNetworkSecurityIndication.mof")
+ +//#pragma include ("Security/CIM_IPPacketFilterIndication.mof")
+ #pragma include ("Support/PRS_ActivityContact.mof")
+
+
+ cimv216-interop.mof is not part of the official DMTF
+ CIM v2.16 schema package. Please create with the following content:
+
+
+ #pragma locale ("en_US")
+ #pragma include ("qualifiers.mof")
+ #pragma include ("qualifiers_optional.mof")
+ #pragma include ("Core/CIM_ManagedElement.mof")
+ #pragma include ("Interop/CIM_RegisteredProfile.mof")
+ #pragma include ("Interop/CIM_RegisteredSubProfile.mof")
+ #pragma include ("Core/CIM_Dependency.mof")
+ #pragma include ("Interop/CIM_ElementConformsToProfile.mof")
+ #pragma include ("Interop/CIM_ReferencedProfile.mof")
+ #pragma include ("Interop/CIM_SubProfileRequiresProfile.mof")
+
+
+
diff -r 02269d31d296 -r 0b26d79ea328 doc/site.xsl
--- a/doc/site.xsl Fri May 02 08:18:24 2008 -0700
+++ b/doc/site.xsl Fri May 02 16:32:37 2008 -0400
@@ -1,258 +1,25 @@
-
-
+
+
+
+
+
- Main Menu
-
-
-
-
-
- intro.html
-
-
- docs.html
-
-
- development.html
-
-
- help.html
-
-
- help.html
-
-
- errors.html
-
-
- downloads.html
-
-
- news.html
-
-
- development.html
-
-
- architecture.html
-
-
- FAQ.html
-
-
- platforms.html
-
-
- schema.html
-
-
- patches.html
-
-
- unknown.html
-
-
-
-
-
-
-
-
-
-
-
-
-
main menu
-
- Home
-
-
-
-
-
-
-
-
-
-
-
-
-
- font-weight:bold
-
-
-
-
-
-
-
-
-
-
related links
-
-
Graphics and design by Diana Fong
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Generating the Web pages
-
-
-
- the virtualization API
-
-
-
-
diff -r 02269d31d296 -r 0b26d79ea328 doc/sitemap.html.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/sitemap.html.in Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,50 @@
+
+
+ Sitemap
+
+
+
+
+ CIM
+ The libvirt-cim CIM providers
+
+
+
+ Sitemap
+ Overview of all content on the website
+
+
+
+
+
From danms at us.ibm.com Fri May 2 20:52:07 2008
From: danms at us.ibm.com (Dan Smith)
Date: Fri, 02 May 2008 13:52:07 -0700
Subject: [Libvirt-cim] [PATCH] (#2) Update web content to match libvirt.org
In-Reply-To: <0b26d79ea3283461b349.1209760367@naegling> (Jay Gagnon's message
of "Fri, 02 May 2008 16:32:47 -0400")
References: <0b26d79ea3283461b349.1209760367@naegling>
Message-ID: <87od7opgy0.fsf@caffeine.beaverton.ibm.com>
JG> # HG changeset patch
JG> # User Jay Gagnon
JG> # Date 1209760357 14400
JG> # Node ID 0b26d79ea3283461b349d20dbcfdf1715344afcd
JG> # Parent 02269d31d296b603dd99b5fd1c235c1a987f5a49
JG> (#2) Update web content to match libvirt.org
Thanks, looks good this time.
Now all we need to do is get the actual information contained within
to be a little less stale :)
--
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms at us.ibm.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL:
From danms at us.ibm.com Mon May 5 16:44:05 2008
From: danms at us.ibm.com (Dan Smith)
Date: Mon, 05 May 2008 09:44:05 -0700
Subject: [Libvirt-cim] [PATCH] Avoid concatenating a NULL device XML string
in xmlgen
Message-ID: <0b51247ab15043ace24a.1210005845@guaranine.danplanet.com>
# HG changeset patch
# User Dan Smith
# Date 1210005841 25200
# Node ID 0b51247ab15043ace24a18b6ba56a40be765fb9c
# Parent 3e785d8dbe70b756a8cb18c7ab43214d2bb4a8b3
Avoid concatenating a NULL device XML string in xmlgen
Signed-off-by: Dan Smith
diff -r 3e785d8dbe70 -r 0b51247ab150 libxkutil/xmlgen.c
--- a/libxkutil/xmlgen.c Fri May 02 16:32:37 2008 -0400
+++ b/libxkutil/xmlgen.c Mon May 05 09:44:01 2008 -0700
@@ -329,7 +329,8 @@ static bool concat_devxml(char **xml,
func(&_xml, &list[i]);
}
- astrcat(xml, _xml);
+ if (_xml != NULL)
+ astrcat(xml, _xml);
free(_xml);
return true;
From danms at us.ibm.com Mon May 5 16:45:22 2008
From: danms at us.ibm.com (Dan Smith)
Date: Mon, 05 May 2008 09:45:22 -0700
Subject: [Libvirt-cim] [PATCH 0 of 3] Complete LXC disk support
Message-ID:
This set should finish off what is necessary to support disk devices on
LXC guests.
From danms at us.ibm.com Mon May 5 16:45:23 2008
From: danms at us.ibm.com (Dan Smith)
Date: Mon, 05 May 2008 09:45:23 -0700
Subject: [Libvirt-cim] [PATCH 1 of 3] Add a field to the LXC_DiskRASD to
hold the mount point within the guest
In-Reply-To:
Message-ID: <577e78027b67fa243741.1210005923@guaranine.danplanet.com>
# HG changeset patch
# User Dan Smith
# Date 1210005853 25200
# Node ID 577e78027b67fa2437418ae540bac190d4cdf50b
# Parent 0b51247ab15043ace24a18b6ba56a40be765fb9c
Add a field to the LXC_DiskRASD to hold the mount point within the guest
This corresponds to the VirtualDevice field in the other DiskRASDs
Signed-off-by: Dan Smith
diff -r 0b51247ab150 -r 577e78027b67 schema/ResourceAllocationSettingData.mof
--- a/schema/ResourceAllocationSettingData.mof Mon May 05 09:44:01 2008 -0700
+++ b/schema/ResourceAllocationSettingData.mof Mon May 05 09:44:13 2008 -0700
@@ -39,6 +39,10 @@ class KVM_DiskResourceAllocationSettingD
]
class LXC_DiskResourceAllocationSettingData : LXC_ResourceAllocationSettingData
{
+
+ [Description ("Mount point within the container")]
+ string MountPoint;
+
};
[Description ("Xen virtual network configuration"),
From danms at us.ibm.com Mon May 5 16:45:24 2008
From: danms at us.ibm.com (Dan Smith)
Date: Mon, 05 May 2008 09:45:24 -0700
Subject: [Libvirt-cim] [PATCH 2 of 3] Add support for defining an LXC guest
with a DiskRASD
In-Reply-To:
Message-ID: <51420bb16e9a4e1ff1a1.1210005924@guaranine.danplanet.com>
# HG changeset patch
# User Dan Smith
# Date 1210005853 25200
# Node ID 51420bb16e9a4e1ff1a125aa4333a6d29e6f8234
# Parent 577e78027b67fa2437418ae540bac190d4cdf50b
Add support for defining an LXC guest with a DiskRASD
Also, process the system information first, so that the device processing
code can know what type of domain is being created.
Signed-off-by: Dan Smith
diff -r 577e78027b67 -r 51420bb16e9a src/Virt_VirtualSystemManagementService.c
--- a/src/Virt_VirtualSystemManagementService.c Mon May 05 09:44:13 2008 -0700
+++ b/src/Virt_VirtualSystemManagementService.c Mon May 05 09:44:13 2008 -0700
@@ -413,6 +413,27 @@ static const char *disk_rasd_to_vdev(CMP
return NULL;
}
+static const char *lxc_disk_rasd_to_vdev(CMPIInstance *inst,
+ struct virt_device *dev)
+{
+ const char *val = NULL;
+
+ if (cu_get_str_prop(inst, "MountPoint", &val) != CMPI_RC_OK)
+ return "Missing `MountPoint' field";
+
+ free(dev->dev.disk.virtual_dev);
+ dev->dev.disk.virtual_dev = strdup(val);
+
+ if (cu_get_str_prop(inst, "Address", &val) != CMPI_RC_OK)
+ return "Missing `Address' field";
+
+ free(dev->dev.disk.source);
+ dev->dev.disk.source = strdup(val);
+ dev->dev.disk.disk_type = DISK_FS;
+
+ return NULL;
+}
+
static const char *mem_rasd_to_vdev(CMPIInstance *inst,
struct virt_device *dev)
{
@@ -447,6 +468,8 @@ static const char *_container_rasd_to_vd
{
if (type == CIM_RES_TYPE_MEM) {
return mem_rasd_to_vdev(inst, dev);
+ } else if (type == CIM_RES_TYPE_DISK) {
+ return lxc_disk_rasd_to_vdev(inst, dev);
}
return "Resource type not supported on this platform";
@@ -611,20 +634,20 @@ static CMPIInstance *create_system(CMPII
goto out;
}
+ if (!vssd_to_domain(vssd, domain)) {
+ CU_DEBUG("Failed to create domain from VSSD");
+ cu_statusf(_BROKER, s,
+ CMPI_RC_ERR_FAILED,
+ "SystemSettings Error");
+ goto out;
+ }
+
msg = classify_resources(resources, NAMESPACE(ref), domain);
if (msg != NULL) {
CU_DEBUG("Failed to classify resources: %s", msg);
cu_statusf(_BROKER, s,
CMPI_RC_ERR_FAILED,
"ResourceSettings Error: %s", msg);
- goto out;
- }
-
- if (!vssd_to_domain(vssd, domain)) {
- CU_DEBUG("Failed to create domain from VSSD");
- cu_statusf(_BROKER, s,
- CMPI_RC_ERR_FAILED,
- "SystemSettings Error");
goto out;
}
From danms at us.ibm.com Mon May 5 16:45:25 2008
From: danms at us.ibm.com (Dan Smith)
Date: Mon, 05 May 2008 09:45:25 -0700
Subject: [Libvirt-cim] [PATCH 3 of 3] Handle LXC disk XML generation
In-Reply-To:
Message-ID: <2ec4259b46e7b0eeb275.1210005925@guaranine.danplanet.com>
# HG changeset patch
# User Dan Smith
# Date 1210005853 25200
# Node ID 2ec4259b46e7b0eeb275edbd8eb2d6051318b417
# Parent 51420bb16e9a4e1ff1a125aa4333a6d29e6f8234
Handle LXC disk XML generation
Signed-off-by: Dan Smith
diff -r 51420bb16e9a -r 2ec4259b46e7 libxkutil/xmlgen.c
--- a/libxkutil/xmlgen.c Mon May 05 09:44:13 2008 -0700
+++ b/libxkutil/xmlgen.c Mon May 05 09:44:13 2008 -0700
@@ -149,6 +149,24 @@ static char *disk_file_xml(const char *p
return xml;
}
+static char *disk_fs_xml(const char *path, const char *vdev)
+{
+ char *xml;
+ int ret;
+
+ ret = asprintf(&xml,
+ "\n"
+ " \n"
+ " \n"
+ " \n",
+ path,
+ vdev);
+ if (ret == -1)
+ xml = NULL;
+
+ return xml;
+}
+
static bool disk_to_xml(char **xml, struct virt_device *dev)
{
char *_xml = NULL;
@@ -160,6 +178,8 @@ static bool disk_to_xml(char **xml, stru
/* If it's not a block device, we assume a file,
which should be a reasonable fail-safe */
_xml = disk_file_xml(disk->source, disk->virtual_dev);
+ else if (disk->disk_type == DISK_FS)
+ _xml = disk_fs_xml(disk->source, disk->virtual_dev);
else
return false;
From kaitlin at linux.vnet.ibm.com Mon May 5 18:59:20 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Mon, 05 May 2008 11:59:20 -0700
Subject: [Libvirt-cim] [PATCH] Avoid concatenating a NULL device XML string
in xmlgen
In-Reply-To: <0b51247ab15043ace24a.1210005845@guaranine.danplanet.com>
References: <0b51247ab15043ace24a.1210005845@guaranine.danplanet.com>
Message-ID: <481F5908.40205@linux.vnet.ibm.com>
Dan Smith wrote:
> # HG changeset patch
> # User Dan Smith
> # Date 1210005841 25200
> # Node ID 0b51247ab15043ace24a18b6ba56a40be765fb9c
> # Parent 3e785d8dbe70b756a8cb18c7ab43214d2bb4a8b3
> Avoid concatenating a NULL device XML string in xmlgen
>
> Signed-off-by: Dan Smith
>
+1
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Mon May 5 19:13:11 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Mon, 05 May 2008 12:13:11 -0700
Subject: [Libvirt-cim] [PATCH 2 of 3] Add support for defining an LXC
guest with a DiskRASD
In-Reply-To: <51420bb16e9a4e1ff1a1.1210005924@guaranine.danplanet.com>
References: <51420bb16e9a4e1ff1a1.1210005924@guaranine.danplanet.com>
Message-ID: <481F5C47.6040104@linux.vnet.ibm.com>
Dan Smith wrote:
> # HG changeset patch
> # User Dan Smith
> # Date 1210005853 25200
> # Node ID 51420bb16e9a4e1ff1a125aa4333a6d29e6f8234
> # Parent 577e78027b67fa2437418ae540bac190d4cdf50b
> Add support for defining an LXC guest with a DiskRASD
>
> Also, process the system information first, so that the device processing
> code can know what type of domain is being created.
>
Good catch with the vssd_to_domain() change. +1 for this set.
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From deeptik at linux.vnet.ibm.com Tue May 6 05:46:16 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Tue, 06 May 2008 11:16:16 +0530
Subject: [Libvirt-cim] KVM test report on Fedora 9 (4/30)
In-Reply-To: <481B2A3F.1090801@linux.vnet.ibm.com>
References: <4817E363.7050105@linux.vnet.ibm.com>
<4818049C.9070202@linux.vnet.ibm.com>
<4819CC0B.7050207@linux.vnet.ibm.com>
<481AB1E8.2000701@linux.vnet.ibm.com>
<481B2A3F.1090801@linux.vnet.ibm.com>
Message-ID: <481FF0A8.7010809@linux.vnet.ibm.com>
Kaitlin Rupert wrote:
> Deepti B Kalakeri wrote:
>>
>>
>> Kaitlin Rupert wrote:
>>> Zhengang Li wrote:
>>>>> ComputerSystemIndication - 01_created_indication.py: FAIL
>>>> Pegasus crashed after running this test case.
>>>> Log says 'BadStatusLine :'
>>>>
>>>
>>> Any more information on why the provider is crashing here? I'm able
>>> to run with KVM on current sources. Maybe this test is hitting a
>>> provider but that's been fixed?
>>>
>> This test cases has never passed for me.
>> It always fails with timeout.
>> Any idea why this could be ?
>>
>
> You'll need to have:
>
> repositoryIsDefaultInstanceProvider=true
> enableIndicationService=true
>
> Set for the CIMOM (if you're using Pegasus).
>
> Also, does the test return an error or does the test suite time out
> and move to the next test?
The test time's out and moves ahead to the next test.
I tried setting the above options, but no luck.
Here is the list of options that are set on my test machine.
enableAssociationTraversal=true
maxProviderProcesses=0
enableAuditLog=false
sslClientVerificationMode=disabled
forceProviderProcesses=false
enableSubscriptionsForNonprivilegedUsers=false
socketWriteTimeout=20
messageDir=msg
shutdownTimeout=30
authorizedUserGroups=
enableRemotePrivilegedUserAccess=true
enableHttpsConnection=true
enableIndicationService=true
enableNamespaceAuthorization=true
sslTrustStoreUserName=
enableHttpConnection=true
Though I set the repositoryIsDefaultInstanceProvider=true and restart
the cimserver, I dont find it listed using cimconfig -l -p does not
list the repositoryIsDefaultInstanceProvider=true property.
From deeptik at linux.vnet.ibm.com Tue May 6 06:07:17 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Tue, 06 May 2008 11:37:17 +0530
Subject: [Libvirt-cim] Re: CimTest Report on XenFV 01-05-2008
In-Reply-To: <481B3851.7040809@linux.vnet.ibm.com>
References: <481B0F51.9080006@linux.vnet.ibm.com>
<481B228A.6060405@linux.vnet.ibm.com>
<481B3851.7040809@linux.vnet.ibm.com>
Message-ID: <481FF595.3020801@linux.vnet.ibm.com>
Kaitlin Rupert wrote:
>>> ElementCapabilities - 01_forward.py: FAIL
>> EC now returns AC , needs tc modification.
>>> ElementCapabilities - 02_reverse.py: FAIL
>> Need tc modification.
>
> Yep - it'll be good to have that support.
>
>>> ElementCapabilities - 05_hostsystem_cap.py: FAIL
>> wbemcli ain -ac Xen_HostedService
>> 'http://u:p at localhost:5988/root/virt:Xen_HostSystem.CreationClassName="Xen_HostSystem",Name="elm3b43.beaverton.ibm.com"'
>>
>> *
>> * wbemcli: Cim: (1) CIM_ERR_FAILED: Unable to get instance for
>> Xen_HostSystem
>> *
>> Should have returned "RPCS", "Management Service", "MigrationService".
>
> Does wbemcli ein http://localhost:5988/root/virt:Xen_HostSystem return
> the reference used in the query?
Yes wbemcli ein http://localhost:5988/root/virt:Xen_HostSystem returns
the reference used in the above query.
wbemcli ein http://u:p at localhost:5988/root/virt:Xen_HostSystem
localhost:5988/root/virt:Xen_HostSystem.CreationClassName="Xen_HostSystem",Name="elm3b43.beaverton.ibm.com"
I tried the same things on elm3b216 today and the all the above queries
pass and also the tc passes.
May be the problem with the repository on elm3b43.
>
>>> ElementConforms - 01_forward.py: FAIL
>> BaseException not supported, Passed when Exception keyword was instead.
>
> This is probably an issue with the older version of python on RHEL -
> can you submit a fix? Thanks!
>
yes I will fix this.
>>> HostSystem - 02_hostsystem_to_rasd.py: FAIL
>> Passed when run manually
>
> What's the error when you do a bulk run?
>
ERROR - Xen_HostSystem with CrossClass_GuestDom was not returned
>>> HostSystem - 03_hs_to_settdefcap.py: FAIL
>> 1) Need to make change to the common_util.py to inclue the
>> diskpool.conf file in /etc/libvirt
>> 2) The field -PropertyPolicy is no longer returned as part of
>> association between SDC with AC
>>> HostedService - 02_reverse.py: FAIL
>> wbemcli ain -ac Xen_HostedService
>> 'http://u:p at locathost/root/virt:Xen_VirtualSystemMigrationService.CreationClassName="Xen_VirtualSystemMigrationService",Name="MigrationService",SystemCreationClassName="Xen_HostSystem",SystemName="elm3b43.beaverton.ibm.com"'
>>
>> *
>> * wbemcli: Http Exception: couldn't resolve host name
>> *
>
> Probably related to the ElementCapabilities - 05_hostsystem_cap.py
> failure.
>
>
> Thanks for the run Deepti!
Thanks and Regards,
Deepti.
From deeptik at linux.vnet.ibm.com Tue May 6 06:47:50 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Mon, 05 May 2008 23:47:50 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Fixing 01_forward.py of EC to use
Exception instead of BaseException
Message-ID:
# HG changeset patch
# User Deepti B. Kalakeri
# Date 1210056458 25200
# Node ID e19dd89679ab79ad10fee3632885816fd231b84d
# Parent 4810d6e5f8845402b1c31de7b6a1b66fd0a1bfcf
[TEST] Fixing 01_forward.py of EC to use Exception instead of BaseException.
Signed-off-by: Deepti B. Kalakeri
diff -r 4810d6e5f884 -r e19dd89679ab suites/libvirt-cim/cimtest/ElementConforms/01_forward.py
--- a/suites/libvirt-cim/cimtest/ElementConforms/01_forward.py Fri May 02 17:09:19 2008 +0530
+++ b/suites/libvirt-cim/cimtest/ElementConforms/01_forward.py Mon May 05 23:47:38 2008 -0700
@@ -145,7 +145,7 @@ def main():
exp_count, count)
- except BaseException, detail:
+ except Exception, detail:
logger.error(CIM_ERROR_ASSOCIATORS, 'ElementConformsToProfile')
logger.error("Exception: %s" % detail)
status = FAIL
From gaurav_caprihan at yahoo.com Tue May 6 08:54:46 2008
From: gaurav_caprihan at yahoo.com (Gaurav Caprihan)
Date: Tue, 6 May 2008 01:54:46 -0700 (PDT)
Subject: [Libvirt-cim] Release roadmap for Libvirt-cim
Message-ID: <89463.29445.qm@web32707.mail.mud.yahoo.com>
Hi,
I'm interested in understanding the development roadmap for libvirt-cim, what is the feature set that is provided in the current release and what else can be expected in the months to come. Moreover, what is a realistic timeframe within which we can see "libvirt" like functionality being made avaiable through the CIM provider (actually managing VMs, provisioning, modifying resource allocations and other lifecycle management functions)?
Would this information be available somewhere?
Regds,
Gaurav
---------------------------------
Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From deeptik at linux.vnet.ibm.com Tue May 6 08:57:57 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Tue, 06 May 2008 14:27:57 +0530
Subject: [Libvirt-cim] KVM test report on Fedora 9 (4/30)
In-Reply-To: <481B2D86.8080106@linux.vnet.ibm.com>
References: <4817E363.7050105@linux.vnet.ibm.com>
<4818049C.9070202@linux.vnet.ibm.com>
<481B04CA.6000203@linux.vnet.ibm.com>
<481B2D86.8080106@linux.vnet.ibm.com>
Message-ID: <48201D95.9080801@linux.vnet.ibm.com>
Kaitlin Rupert wrote:
>>>
>>>> ElementSettingData - 03_esd_assoc_with_rasd_errs.py: FAIL
>>> This one passed in individual run. The previous ElementConforms.04
>>> undefine fix doesn't help here. Might be some other unknown missing
>>> undefine.
>
> Is the test failing because it cannot create the guest, or is it due
> to some other issue?
>
>
I dont have the details as to why the above test case failed, need to
ask Zhen Gang regarding this. But this tc passed on elm3b193 for me
which is a rpm libvirt-cim based f9 machine .
From deeptik at linux.vnet.ibm.com Tue May 6 09:49:24 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Tue, 06 May 2008 02:49:24 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Skipping 01_verify_refprof.py,
02_refprofile_errs.py tc if cim_rev is less than 501
Message-ID: <9116b5e9f5305739202e.1210067364@elm3b216.beaverton.ibm.com>
# HG changeset patch
# User Deepti B. Kalakeri
# Date 1210067342 25200
# Node ID 9116b5e9f5305739202e10c7a3f8b155fa9540a2
# Parent e19dd89679ab79ad10fee3632885816fd231b84d
[TEST] Skipping 01_verify_refprof.py, 02_refprofile_errs.py tc if cim_rev is less than 501.
Signed-off-by: Deepti B. Kalakeri
diff -r e19dd89679ab -r 9116b5e9f530 suites/libvirt-cim/cimtest/ReferencedProfile/01_verify_refprof.py
--- a/suites/libvirt-cim/cimtest/ReferencedProfile/01_verify_refprof.py Mon May 05 23:47:38 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ReferencedProfile/01_verify_refprof.py Tue May 06 02:49:02 2008 -0700
@@ -78,9 +78,11 @@ from CimTest.Globals import logger, CIM_
from CimTest.Globals import logger, CIM_ERROR_ENUMERATE, CIM_ERROR_ASSOCIATORS
from CimTest.Globals import do_main
from XenKvmLib.classes import get_typed_class
-from CimTest.ReturnCodes import FAIL, PASS
+from CimTest.ReturnCodes import FAIL, PASS, SKIP
+from XenKvmLib.const import CIM_REV
sup_types = ['Xen', 'KVM', 'XenFV']
+libvirtcim_rev = 501
def print_field_error(fieldname, ret_value, exp_value):
logger.error("%s Mismatch", fieldname)
@@ -94,7 +96,7 @@ def get_proflist():
proflist = enumclass.enumerate(server, reg_classname, key_list, virt)
if len(proflist) < 5:
logger.error("%s returned %i %s objects, expected atleast 5",
- reg_classname, len(proflist), 'Profile')
+ reg_classname, len(proflist), 'Profile')
status = FAIL
except Exception, detail:
@@ -139,7 +141,7 @@ def get_refprof_verify_info(proflist):
for instid in proflist:
try:
assoc_info = Associators(server, assoc_name, reg_classname, virt, InstanceID = instid,
- CreationClassName = reg_classname)
+ CreationClassName = reg_classname)
if len(assoc_info) < 1:
logger.error("%s returned %i %s objects, expected atleast 1",
assoc_name, len(assoc_info), 'Profiles')
@@ -165,6 +167,13 @@ def main():
virt = options.virt
server = options.ip
status = PASS
+
+ # Referenced Profile was introduced as part of changeset 501
+ # and is not available in the libvirt-cim rpm, hence skipping tc
+ # if CIM_REV 501
+ if CIM_REV < libvirtcim_rev:
+ return SKIP
+
prev_namespace = Globals.CIM_NS
Globals.CIM_NS = 'root/interop'
reg_classname = get_typed_class(virt, 'RegisteredProfile')
diff -r e19dd89679ab -r 9116b5e9f530 suites/libvirt-cim/cimtest/ReferencedProfile/02_refprofile_errs.py
--- a/suites/libvirt-cim/cimtest/ReferencedProfile/02_refprofile_errs.py Mon May 05 23:47:38 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ReferencedProfile/02_refprofile_errs.py Tue May 06 02:49:02 2008 -0700
@@ -58,10 +58,13 @@ from CimTest.Globals import logger, CIM_
from CimTest.Globals import logger, CIM_ERROR_ENUMERATE, CIM_ERROR_ASSOCIATORS
from CimTest.Globals import do_main, CIM_USER, CIM_PASS
from XenKvmLib.classes import get_typed_class
-from CimTest.ReturnCodes import FAIL, PASS
+from CimTest.ReturnCodes import FAIL, PASS, SKIP
from XenKvmLib.common_util import try_assoc
+from XenKvmLib.const import CIM_REV
sup_types = ['Xen', 'KVM', 'XenFV']
+libvirtcim_rev = 501
+
expr_values = {
'INVALID_Instid_KeyName' : {
'rc' : pywbem.CIM_ERR_FAILED,
@@ -121,6 +124,12 @@ def main():
virt = options.virt
server = options.ip
status = PASS
+ # Referenced Profile was introduced as part of changeset 501
+ # and is not available in the libvirt-cim rpm, hence skipping tc
+ # if CIM_REV 501
+ if CIM_REV < libvirtcim_rev:
+ return SKIP
+
prev_namespace = Globals.CIM_NS
Globals.CIM_NS = 'root/interop'
reg_classname = get_typed_class(virt, 'RegisteredProfile')
From deeptik at linux.vnet.ibm.com Tue May 6 14:41:58 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Tue, 06 May 2008 07:41:58 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Modifying common_util.py to use
appropriate diskpool conf file
Message-ID: <618967ffe41001ad705b.1210084918@elm3b216.beaverton.ibm.com>
# HG changeset patch
# User Deepti B. Kalakeri
# Date 1210084905 25200
# Node ID 618967ffe41001ad705b2babfd972a0ab1aedaf8
# Parent 9116b5e9f5305739202e10c7a3f8b155fa9540a2
[TEST] Modifying common_util.py to use appropriate diskpool conf file.
Signed-off-by: Deepti B. Kalakeri
diff -r 9116b5e9f530 -r 618967ffe410 suites/libvirt-cim/lib/XenKvmLib/common_util.py
--- a/suites/libvirt-cim/lib/XenKvmLib/common_util.py Tue May 06 02:49:02 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/common_util.py Tue May 06 07:41:45 2008 -0700
@@ -32,9 +32,16 @@ from XenKvmLib.classes import get_typed_
from XenKvmLib.classes import get_typed_class
from CimTest.Globals import logger, log_param, CIM_ERROR_ENUMERATE
from CimTest.ReturnCodes import PASS, FAIL, XFAIL_RC
+from XenKvmLib.const import CIM_REV
test_dpath = "foo"
-disk_file = '/tmp/diskpool.conf'
+libvirtcim_rev = 558
+
+if CIM_REV < libvirtcim_rev:
+ disk_file = '/tmp/diskpool.conf'
+else:
+ disk_file = '/etc/libvirt/diskpool.conf'
+
back_disk_file = disk_file + "." + "backup"
def print_field_error(fieldname, ret_value, exp_value):
@@ -245,6 +252,7 @@ def conf_file():
Creating diskpool.conf file.
"""
status = PASS
+ logger.info("Disk conf file : %s", disk_file)
try:
f = open(disk_file, 'w')
f.write('%s %s' % (test_dpath, '/'))
From deeptik at linux.vnet.ibm.com Tue May 6 14:52:10 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Tue, 06 May 2008 07:52:10 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Updating 01_forward.py of SDC to
support XenFV, KVM
Message-ID: <23459a6df1bcf447f990.1210085530@elm3b216.beaverton.ibm.com>
# HG changeset patch
# User Deepti B. Kalakeri
# Date 1210085515 25200
# Node ID 23459a6df1bcf447f9903a0f49d5c782d6169bb9
# Parent 618967ffe41001ad705b2babfd972a0ab1aedaf8
[TEST] Updating 01_forward.py of SDC to support XenFV, KVM.
1) To make use of the lib fn conf_file(), cleanup_restore() and create_diskpool_file().
2) To use the lib fn print_field_error.
3) To retain the PropertyPolicy, ValueRole, ValueRange depending on the revision no.
4) Tested on rpm based libvirt-cim KVM machine, latest libvirt-cim for KVM and Xen, XenFV.
Signed-off-by: Deepti B. Kalakeri
diff -r 618967ffe410 -r 23459a6df1bc suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py
--- a/suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py Tue May 06 07:41:45 2008 -0700
+++ b/suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py Tue May 06 07:51:55 2008 -0700
@@ -55,135 +55,125 @@ import sys
import sys
import os
from distutils.file_util import move_file
-from VirtLib import utils
from XenKvmLib import assoc
from XenKvmLib import enumclass
-from CimTest import Globals
-from CimTest.Globals import do_main
from XenKvmLib.test_xml import netxml
from XenKvmLib.test_doms import create_vnet
from VirtLib.live import net_list
from CimTest.ReturnCodes import PASS, FAIL, SKIP
+from CimTest.Globals import do_main, platform_sup, logger, \
+CIM_ERROR_GETINSTANCE, CIM_ERROR_ASSOCIATORS
+from XenKvmLib.classes import get_typed_class
+from XenKvmLib.common_util import cleanup_restore, test_dpath, \
+create_diskpool_file
+from XenKvmLib.common_util import print_field_error
+from XenKvmLib.const import CIM_REV
-sup_types = ['Xen']
-
-status = PASS
-test_dpath = "foo"
-disk_file = '/tmp/diskpool.conf'
-back_disk_file = disk_file + "." + "SSDC_01_forward"
diskid = "%s/%s" % ("DiskPool", test_dpath)
memid = "%s/%s" % ("MemoryPool", 0)
procid = "%s/%s" % ("ProcessorPool", 0)
+libvirtcim_rev = 571
-def conf_file():
- """
- Creating diskpool.conf file.
- """
- try:
- f = open(disk_file, 'w')
- f.write('%s %s' % (test_dpath, '/'))
- f.close()
- except Exception,detail:
- Globals.logger.error("Exception: %s", detail)
- status = SKIP
- sys.exit(status)
-
-def clean_up_restore():
- """
- Restoring back the original diskpool.conf
- file.
- """
- try:
- if os.path.exists(back_disk_file):
- os.remove(disk_file)
- move_file(back_disk_file, disk_file)
- except Exception, detail:
- Globals.logger.error("Exception: %s", detail)
- status = SKIP
- sys.exit(status)
-
-
-def get_or_bail(ip, id, pool_class):
+def get_or_bail(virt, ip, id, pool_class):
"""
Getinstance for the CLass and return instance on success, otherwise
exit after cleanup_restore .
"""
key_list = { 'InstanceID' : id }
-
+ status = PASS
try:
- instance = enumclass.getInstance(ip, pool_class, key_list)
+ instance = enumclass.getInstance(ip, pool_class, key_list, virt)
except Exception, detail:
- Globals.logger.error(Globals.CIM_ERROR_GETINSTANCE, '%s' % pool_class)
- Globals.logger.error("Exception: %s", detail)
- clean_up_restore()
+ logger.error(CIM_ERROR_GETINSTANCE, '%s' % pool_class)
+ logger.error("Exception: %s", detail)
+ cleanup_restore()
status = FAIL
sys.exit(status)
return instance
-def init_list(disk, mem, net, proc):
+def init_list(virt, disk, mem, net, proc):
"""
Creating the lists that will be used for comparisons.
"""
instlist = [
- disk.InstanceID, \
- mem.InstanceID, \
- net.InstanceID, \
- proc.InstanceID
- ]
+ disk.InstanceID,
+ mem.InstanceID,
+ net.InstanceID,
+ proc.InstanceID
+ ]
cllist = [
- "Xen_DiskResourceAllocationSettingData", \
- "Xen_MemResourceAllocationSettingData", \
- "Xen_NetResourceAllocationSettingData", \
- "Xen_ProcResourceAllocationSettingData"
+ get_typed_class(virt, "DiskResourceAllocationSettingData"),
+ get_typed_class(virt, "MemResourceAllocationSettingData"),
+ get_typed_class(virt, "NetResourceAllocationSettingData"),
+ get_typed_class(virt, "ProcResourceAllocationSettingData")
]
rtype = {
- "Xen_DiskResourceAllocationSettingData" : 17, \
- "Xen_MemResourceAllocationSettingData" : 4, \
- "Xen_NetResourceAllocationSettingData" : 10, \
- "Xen_ProcResourceAllocationSettingData" : 3
+ get_typed_class(virt, "DiskResourceAllocationSettingData") : 17,
+ get_typed_class(virt, "MemResourceAllocationSettingData") : 4,
+ get_typed_class(virt, "NetResourceAllocationSettingData") : 10,
+ get_typed_class(virt, "ProcResourceAllocationSettingData") : 3
}
rangelist = {
- "Default" : 0, \
- "Minimum" : 1, \
- "Maximum" : 2, \
+ "Default" : 0,
+ "Minimum" : 1,
+ "Maximum" : 2,
"Increment" : 3
}
return instlist, cllist, rtype, rangelist
+def verify_rasd_fields(loop, assoc_info, cllist, rtype, rangelist):
+ for inst in assoc_info:
+ if inst.classname != cllist[loop]:
+ print_field_error("Classname", inst.classname, cllist[loop])
+ return FAIL
+ if inst['ResourceType'] != rtype[cllist[loop]]:
+ print_field_error("ResourceType", inst['ResourceType'],
+ rtype[cllist[loop]])
+ return FAIL
-def print_error(index, fieldname, assoc_info, exp_value):
- ret_value = assoc_info[index][fieldname]
- Globals.logger.error("%s Mismatch", fieldname)
- Globals.logger.error("Returned %s instead of %s", ret_value, exp_value)
+ # The following properties have been removed in the patchset 571
+ # but is present in the rpm libvirt-cim and hence retained it.
+ if CIM_REV < libvirtcim_rev:
+ ppolicy = inst['PropertyPolicy']
+ if ppolicy != 0 and ppolicy != 1:
+ print_field_error("PropertyPolicy", inst['PropertyPolicy'], ppolicy)
+ return FAIL
+ vrole = inst['ValueRole']
+ if vrole < 0 or vrole > 4:
+ print_field_error("ValueRole", inst['ValueRole'], vrole)
+ return FAIL
+ insid = inst['InstanceID']
+ vrange = rangelist[insid]
+ if vrange != inst['ValueRange']:
+ print_field_error("ValueRange", inst['ValueRange'], vrange)
+ return FAIL
+ return PASS
- at do_main(sup_types)
+ at do_main(platform_sup)
def main():
options = main.options
- global status
-
- cn = 'Xen_AllocationCapabilities'
+
+ cn = get_typed_class(options.virt, "AllocationCapabilities")
loop = 0
server = options.ip
+ virt = options.virt
- # Taking care of already existing diskconf file
- # Creating diskpool.conf if it does not exist
- # Otherwise backing up the prev file and create new one.
- os.system("rm -f %s" % back_disk_file )
- if not (os.path.exists(disk_file)):
- conf_file()
- else:
- move_file(disk_file, back_disk_file)
- conf_file()
+ # Verify DiskPool on machine
+ status = create_diskpool_file()
+ if status != PASS:
+ return status
try :
- disk = get_or_bail(server, id=diskid, \
- pool_class=enumclass.Xen_DiskPool)
- mem = get_or_bail(server, id = memid, \
- pool_class=enumclass.Xen_MemoryPool)
- vir_network = net_list(server)
+ disk_cn = eval("enumclass." + get_typed_class(options.virt,
+ "DiskPool"))
+ disk = get_or_bail(virt, server, id=diskid, pool_class=disk_cn)
+ mem_cn = eval("enumclass." + get_typed_class(options.virt,
+ "MemoryPool"))
+ mem = get_or_bail(virt, server, id = memid, pool_class=mem_cn)
+ vir_network = net_list(server, virt)
if len(vir_network) > 0:
test_network = vir_network[0]
else:
@@ -192,68 +182,46 @@ def main():
net_xml, bridge = netxml(server, bridgename, test_network)
ret = create_vnet(server, net_xml)
if not ret:
- Globals.logger.error("Failed to create the Virtual Network '%s'", \
- test_network)
+ logger.error("Failed to create Virtual Network '%s'",
+ test_network)
return SKIP
netid = "%s/%s" % ("NetworkPool", test_network)
- net = get_or_bail(server, id = netid, \
- pool_class=enumclass.Xen_NetworkPool)
- proc = get_or_bail(server, id = procid, \
- pool_class=enumclass.Xen_ProcessorPool)
+ net_cn = eval("enumclass." + get_typed_class(options.virt,
+ "NetworkPool"))
+ net = get_or_bail(virt, server, id = netid, pool_class=net_cn)
+ proc_cn = eval("enumclass." + get_typed_class(options.virt,
+ "ProcessorPool"))
+ proc = get_or_bail(virt, server, id = procid, pool_class=proc_cn)
except Exception, detail:
- Globals.logger.error("Exception: %s", detail)
- clean_up_restore()
+ logger.error("Exception: %s", detail)
+ cleanup_restore()
status = FAIL
return status
- instlist, cllist, rtype, rangelist = init_list(disk, mem, net, proc )
-
+ instlist, cllist, rtype, rangelist = init_list(virt, disk, mem, net, proc )
+ assoc_cname = get_typed_class(virt, "SettingsDefineCapabilities")
for instid in sorted(instlist):
try:
- assoc_info = assoc.Associators(options.ip, \
- "Xen_SettingsDefineCapabilities",
- cn,
- InstanceID = instid)
+ assoc_info = assoc.Associators(options.ip, assoc_cname, cn,
+ InstanceID = instid, virt=virt)
if len(assoc_info) != 4:
- Globals.logger.error("Xen_SettingsDefineCapabilities returned \
-%i ResourcePool objects instead 4", len(assoc_info))
+ logger.error("%s returned %i ResourcePool objects"
+"instead 4", assoc_cname, len(assoc_info))
status = FAIL
break
- for i in range(len(assoc_info)):
- if assoc_info[i].classname != cllist[loop]:
- print_error(i, "Classname", assoc_info, cllist[loop])
- status = FAIL
- if assoc_info[i]['ResourceType'] != rtype[cllist[loop]]:
- print_error(i, "ResourceType", assoc_info, rtype[cllist[loop]])
- status = FAIL
- ppolicy = assoc_info[i]['PropertyPolicy']
- if ppolicy != 0 and ppolicy != 1:
- print_error(i, "PropertyPolicy", assoc_info, ppolicy)
- status = FAIL
- vrole = assoc_info[i]['ValueRole']
- if vrole < 0 or vrole > 4:
- print_error(i, "ValueRole", assoc_info, vrole)
- status = FAIL
- insid = assoc_info[i]['InstanceID']
- vrange = rangelist[insid]
- if vrange != assoc_info[i]['ValueRange']:
- print_error(i, "ValueRange", assoc_info, vrange)
- status = FAIL
- if status != 0:
- break
- if status != 0:
+ status = verify_rasd_fields(loop, assoc_info, cllist, rtype, rangelist)
+ if status != PASS:
break
else:
loop = loop + 1
except Exception, detail:
- Globals.logger.error(Globals.CIM_ERROR_ASSOCIATORS, \
- 'Xen_SettingsDefineCapabilities')
- Globals.logger.error("Exception: %s", detail)
- clean_up_restore()
+ logger.error(CIM_ERROR_ASSOCIATORS, assoc_cname)
+ logger.error("Exception: %s", detail)
+ cleanup_restore()
status = FAIL
- clean_up_restore()
+ cleanup_restore()
return status
if __name__ == "__main__":
From danms at us.ibm.com Tue May 6 15:05:59 2008
From: danms at us.ibm.com (Dan Smith)
Date: Tue, 06 May 2008 08:05:59 -0700
Subject: [Libvirt-cim] Release roadmap for Libvirt-cim
References: <89463.29445.qm@web32707.mail.mud.yahoo.com>
Message-ID: <87d4nzpj54.fsf@caffeine.beaverton.ibm.com>
Hi Gaurav,
GC> I'm interested in understanding the development roadmap for
GC> libvirt-cim, what is the feature set that is provided in the
GC> current release and what else can be expected in the months to
GC> come.
It depends on which platform you're interested in. I think we're
getting pretty close to supporting what libvirt supports for each
platform, at a high level. There are some details that we don't cover
at the moment, like supporting all of the different network types that
KVM supports, etc.
I'm planning to snap another release shortly after Fedora 9 releases
to refresh the version there. It will look mostly like what is in our
development tree right now.
For future releases I have the following high-level goals:
- Scheduling parameter support
- LXC support
- Integration with other physical instrumentation for the HostSystem
and host physical devices
- Proper modeling of the virtual console
- Create/Destroy/Modify of resource pools for network and disk to
correspond to the underlying functions in libvirt
Do you have anything you'd like to see in that list?
GC> Moreover, what is a realistic timeframe within which we can see
GC> "libvirt" like functionality being made avaiable through the CIM
GC> provider (actually managing VMs, provisioning, modifying resource
GC> allocations and other lifecycle management functions)?
Doesn't most of that work already? Defining guests, modifying their
resources, and pushing them through the lifecycle is something we have
been able to do for quite some time now.
Thanks!
--
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms at us.ibm.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL:
From danms at us.ibm.com Tue May 6 15:52:12 2008
From: danms at us.ibm.com (Dan Smith)
Date: Tue, 06 May 2008 08:52:12 -0700
Subject: [Libvirt-cim] [PATCH] Move this declaration up where it should be
Message-ID: <8e6c9d2deb4acb4bb603.1210089132@guaranine.danplanet.com>
# HG changeset patch
# User Dan Smith
# Date 1210089125 25200
# Node ID 8e6c9d2deb4acb4bb6039c449a7de54b2096ddba
# Parent 2ec4259b46e7b0eeb275edbd8eb2d6051318b417
Move this declaration up where it should be
Signed-off-by: Dan Smith
diff -r 2ec4259b46e7 -r 8e6c9d2deb4a src/Virt_RASD.c
--- a/src/Virt_RASD.c Mon May 05 09:44:13 2008 -0700
+++ b/src/Virt_RASD.c Tue May 06 08:52:05 2008 -0700
@@ -105,6 +105,7 @@ static CMPIInstance *rasd_from_vdev(cons
uint16_t type;
char *base;
char *id;
+ const char *keys[] = {"InstanceID", NULL};
if (dev->type == CIM_RES_TYPE_DISK) {
type = CIM_RES_TYPE_DISK;
@@ -129,7 +130,6 @@ static CMPIInstance *rasd_from_vdev(cons
if (inst == NULL)
return inst;
- const char *keys[] = {"InstanceID", NULL};
s = CMSetPropertyFilter(inst, properties, keys);
if (s.rc != CMPI_RC_OK)
From jfehlig at novell.com Tue May 6 20:32:44 2008
From: jfehlig at novell.com (Jim Fehlig)
Date: Tue, 06 May 2008 14:32:44 -0600
Subject: [Libvirt-cim] [PATCH] [PATCH] Unable to use install_base_schema.sh
on sfcb
Message-ID: <1a1eac873ee7999b6a61.1210105964@jfehlig3.provo.novell.com>
# HG changeset patch
# User Jim Fehlig
# Date 1210105905 21600
# Node ID 1a1eac873ee7999b6a610d1c52b04be8a981d479
# Parent 2ec4259b46e7b0eeb275edbd8eb2d6051318b417
[PATCH] Unable to use install_base_schema.sh on sfcb
install_base_schema.sh would return without importing schema. Fix directory
test to return when the directory does not exist, not when it does exist.
It looks as though the same applies for openwbem, although I did not test
with that cimom.
Signed-off-by: Jim Fehlig
diff -r 2ec4259b46e7 -r 1a1eac873ee7 base_schema/install_base_schema.sh.in
--- a/base_schema/install_base_schema.sh.in Mon May 05 09:44:13 2008 -0700
+++ b/base_schema/install_base_schema.sh.in Tue May 06 14:31:45 2008 -0600
@@ -78,7 +78,7 @@ install_schema_sfcb() {
local dir=$(detect_sfcb_dir)
mkdir ${dir}/CIM
- if [ -d "${dir}/CIM" ]; then
+ if [ ! -d "${dir}/CIM" ]; then
echo "Unable to determine SFCB directory"
echo "set SFCB_DIR"
return
@@ -94,7 +94,7 @@ install_schema_openwbem() {
local schema_dir=$dir/cimv$SCHEMA_VERSION
mkdir $schema_dir
- if [ -d "$schema_dir" ]; then
+ if [ ! -d "$schema_dir" ]; then
echo "Unable to determine openwbem schema directory"
return
fi
From jfehlig at novell.com Tue May 6 20:39:04 2008
From: jfehlig at novell.com (Jim Fehlig)
Date: Tue, 06 May 2008 14:39:04 -0600
Subject: [Libvirt-cim] [PATCH] [PATCH] Unable to use
install_base_schema.shon sfcb
In-Reply-To: <1a1eac873ee7999b6a61.1210105964@jfehlig3.provo.novell.com>
References: <1a1eac873ee7999b6a61.1210105964@jfehlig3.provo.novell.com>
Message-ID: <4820C1E8.8000005@novell.com>
Jim Fehlig wrote:
> # HG changeset patch
> # User Jim Fehlig
> # Date 1210105905 21600
> # Node ID 1a1eac873ee7999b6a610d1c52b04be8a981d479
> # Parent 2ec4259b46e7b0eeb275edbd8eb2d6051318b417
> [PATCH] Unable to use install_base_schema.sh on sfcb
>
Oops, sorry about the duplicate '[PATCH]'. Forgot that patchbomb takes
care of that :).
Jim
From kaitlin at linux.vnet.ibm.com Tue May 6 21:05:23 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Tue, 06 May 2008 14:05:23 -0700
Subject: [Libvirt-cim] [PATCH] Move this declaration up where it should be
In-Reply-To: <8e6c9d2deb4acb4bb603.1210089132@guaranine.danplanet.com>
References: <8e6c9d2deb4acb4bb603.1210089132@guaranine.danplanet.com>
Message-ID: <4820C813.6040409@linux.vnet.ibm.com>
Dan Smith wrote:
> # HG changeset patch
> # User Dan Smith
> # Date 1210089125 25200
> # Node ID 8e6c9d2deb4acb4bb6039c449a7de54b2096ddba
> # Parent 2ec4259b46e7b0eeb275edbd8eb2d6051318b417
> Move this declaration up where it should be
>
Oops - I think that was originally my mistake. +1
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Tue May 6 21:07:18 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Tue, 06 May 2008 14:07:18 -0700
Subject: [Libvirt-cim] KVM test report on Fedora 9 (4/30)
In-Reply-To: <481FF0A8.7010809@linux.vnet.ibm.com>
References: <4817E363.7050105@linux.vnet.ibm.com>
<4818049C.9070202@linux.vnet.ibm.com>
<4819CC0B.7050207@linux.vnet.ibm.com>
<481AB1E8.2000701@linux.vnet.ibm.com>
<481B2A3F.1090801@linux.vnet.ibm.com>
<481FF0A8.7010809@linux.vnet.ibm.com>
Message-ID: <4820C886.9080904@linux.vnet.ibm.com>
Deepti B Kalakeri wrote:
>
>
> Kaitlin Rupert wrote:
>> Deepti B Kalakeri wrote:
>>>
>>>
>>> Kaitlin Rupert wrote:
>>>> Zhengang Li wrote:
>>>>>> ComputerSystemIndication - 01_created_indication.py: FAIL
>>>>> Pegasus crashed after running this test case.
>>>>> Log says 'BadStatusLine :'
>>>>>
>>>>
>>>> Any more information on why the provider is crashing here? I'm able
>>>> to run with KVM on current sources. Maybe this test is hitting a
>>>> provider but that's been fixed?
>>>>
>>> This test cases has never passed for me.
>>> It always fails with timeout.
>>> Any idea why this could be ?
>>>
>>
>> You'll need to have:
>>
>> repositoryIsDefaultInstanceProvider=true
>> enableIndicationService=true
>>
>> Set for the CIMOM (if you're using Pegasus).
>>
>> Also, does the test return an error or does the test suite time out
>> and move to the next test?
> The test time's out and moves ahead to the next test.
> I tried setting the above options, but no luck.
> Here is the list of options that are set on my test machine.
Hmm.. I'm not sure why this would happen. Have you able to run the
indication tester (libcmpiutil/tools/indication_tester.py)?
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Tue May 6 22:00:03 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Tue, 06 May 2008 15:00:03 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Skipping 01_verify_refprof.py,
02_refprofile_errs.py tc if cim_rev is less than 501
In-Reply-To: <9116b5e9f5305739202e.1210067364@elm3b216.beaverton.ibm.com>
References: <9116b5e9f5305739202e.1210067364@elm3b216.beaverton.ibm.com>
Message-ID: <4820D4E3.1070609@linux.vnet.ibm.com>
Deepti B. Kalakeri wrote:
> # HG changeset patch
> # User Deepti B. Kalakeri
> # Date 1210067342 25200
> # Node ID 9116b5e9f5305739202e10c7a3f8b155fa9540a2
> # Parent e19dd89679ab79ad10fee3632885816fd231b84d
> [TEST] Skipping 01_verify_refprof.py, 02_refprofile_errs.py tc if cim_rev is less than 501.
This patch didn't apply for me. However, it looks good. No comments =)
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Tue May 6 22:21:27 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Tue, 06 May 2008 15:21:27 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Modifying common_util.py to use
appropriate diskpool conf file
In-Reply-To: <618967ffe41001ad705b.1210084918@elm3b216.beaverton.ibm.com>
References: <618967ffe41001ad705b.1210084918@elm3b216.beaverton.ibm.com>
Message-ID: <4820D9E7.1020601@linux.vnet.ibm.com>
Deepti B. Kalakeri wrote:
> # HG changeset patch
> # User Deepti B. Kalakeri
> # Date 1210084905 25200
> # Node ID 618967ffe41001ad705b2babfd972a0ab1aedaf8
> # Parent 9116b5e9f5305739202e10c7a3f8b155fa9540a2
> [TEST] Modifying common_util.py to use appropriate diskpool conf file.
>
> Signed-off-by: Deepti B. Kalakeri
>
> diff -r 9116b5e9f530 -r 618967ffe410 suites/libvirt-cim/lib/XenKvmLib/common_util.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/common_util.py Tue May 06 02:49:02 2008 -0700
> +++ b/suites/libvirt-cim/lib/XenKvmLib/common_util.py Tue May 06 07:41:45 2008 -0700
> @@ -32,9 +32,16 @@ from XenKvmLib.classes import get_typed_
> from XenKvmLib.classes import get_typed_class
> from CimTest.Globals import logger, log_param, CIM_ERROR_ENUMERATE
> from CimTest.ReturnCodes import PASS, FAIL, XFAIL_RC
> +from XenKvmLib.const import CIM_REV
>
> test_dpath = "foo"
> -disk_file = '/tmp/diskpool.conf'
> +libvirtcim_rev = 558
Since this is a common library file, can you rename this to something
more specific like "diskpool_rev"?
There might be other revisions needed in this library.
Thanks!
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Tue May 6 22:46:23 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Tue, 06 May 2008 15:46:23 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Updating 01_forward.py of SDC to
support XenFV, KVM
In-Reply-To: <23459a6df1bcf447f990.1210085530@elm3b216.beaverton.ibm.com>
References: <23459a6df1bcf447f990.1210085530@elm3b216.beaverton.ibm.com>
Message-ID: <4820DFBF.8010605@linux.vnet.ibm.com>
> -def get_or_bail(ip, id, pool_class):
> +def get_or_bail(virt, ip, id, pool_class):
> """
> Getinstance for the CLass and return instance on success, otherwise
> exit after cleanup_restore .
> """
> key_list = { 'InstanceID' : id }
> -
> + status = PASS
This function doesn't return the status, so no need to add this here.
> try:
> - instance = enumclass.getInstance(ip, pool_class, key_list)
> + instance = enumclass.getInstance(ip, pool_class, key_list, virt)
> except Exception, detail:
> - Globals.logger.error(Globals.CIM_ERROR_GETINSTANCE, '%s' % pool_class)
> - Globals.logger.error("Exception: %s", detail)
> - clean_up_restore()
> + logger.error(CIM_ERROR_GETINSTANCE, '%s' % pool_class)
> + logger.error("Exception: %s", detail)
> + cleanup_restore()
> status = FAIL
Can you remove this as well? Thanks!
> sys.exit(status)
> return instance
>
> +def verify_rasd_fields(loop, assoc_info, cllist, rtype, rangelist):
> + for inst in assoc_info:
> + if inst.classname != cllist[loop]:
> + print_field_error("Classname", inst.classname, cllist[loop])
> + return FAIL
> + if inst['ResourceType'] != rtype[cllist[loop]]:
> + print_field_error("ResourceType", inst['ResourceType'],
> + rtype[cllist[loop]])
Can this be indented like the following:
print_field_error("ResourceType", inst['ResourceType'],
rtype[cllist[loop]])
> + disk_cn = eval("enumclass." + get_typed_class(options.virt,
> + "DiskPool"))
> + disk = get_or_bail(virt, server, id=diskid, pool_class=disk_cn)
> + mem_cn = eval("enumclass." + get_typed_class(options.virt,
> + "MemoryPool"))
This is a little awkward here. Can you instead doing something like:
disk_cn = get_typed_class(options.virt, "DiskPool")
disk_ref = eval("enumclass." + disk_cn)
Also, the variable names are misleading - eval("enumclass." +
get_typed_class(options.virt, "DiskPool")) returns a DiskPool reference,
which we pass to GetInstance in the get_or_bail() call.
> netid = "%s/%s" % ("NetworkPool", test_network)
> - net = get_or_bail(server, id = netid, \
> - pool_class=enumclass.Xen_NetworkPool)
> - proc = get_or_bail(server, id = procid, \
> - pool_class=enumclass.Xen_ProcessorPool)
> + net_cn = eval("enumclass." + get_typed_class(options.virt,
> + "NetworkPool"))
> + net = get_or_bail(virt, server, id = netid, pool_class=net_cn)
> + proc_cn = eval("enumclass." + get_typed_class(options.virt,
> + "ProcessorPool"))
Same thing here too.
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From deeptik at linux.vnet.ibm.com Wed May 7 06:20:41 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Tue, 06 May 2008 23:20:41 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] #2 Skipping 01_verify_refprof.py,
02_refprofile_errs.py tc if cim_rev is less than 501
Message-ID:
# HG changeset patch
# User Deepti B. Kalakeri
# Date 1210141230 25200
# Node ID f41c618f3d5ba81d0588440b1a62e8916dc9d0a7
# Parent 84517c1beb32bff13f352ed53ece0f6a1a84fe41
[TEST] #2 Skipping 01_verify_refprof.py, 02_refprofile_errs.py tc if cim_rev is less than 501.
1) Rebased with the latest test source.
2) Used the library function print_field_error().
Signed-off-by: Deepti B. Kalakeri
diff -r 84517c1beb32 -r f41c618f3d5b suites/libvirt-cim/cimtest/ReferencedProfile/01_verify_refprof.py
--- a/suites/libvirt-cim/cimtest/ReferencedProfile/01_verify_refprof.py Tue May 06 14:47:59 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ReferencedProfile/01_verify_refprof.py Tue May 06 23:20:30 2008 -0700
@@ -78,13 +78,12 @@ from CimTest.Globals import logger, CIM_
from CimTest.Globals import logger, CIM_ERROR_ENUMERATE, CIM_ERROR_ASSOCIATORS
from CimTest.Globals import do_main
from XenKvmLib.classes import get_typed_class
-from CimTest.ReturnCodes import FAIL, PASS
+from CimTest.ReturnCodes import FAIL, PASS, SKIP
+from XenKvmLib.const import CIM_REV
+from XenKvmLib.common_util import print_field_error
sup_types = ['Xen', 'KVM', 'XenFV']
-
-def print_field_error(fieldname, ret_value, exp_value):
- logger.error("%s Mismatch", fieldname)
- logger.error("Returned %s instead of %s", ret_value, exp_value)
+libvirtcim_rev = 501
def get_proflist():
proflist = []
@@ -94,7 +93,7 @@ def get_proflist():
proflist = enumclass.enumerate(server, reg_classname, key_list, virt)
if len(proflist) < 5:
logger.error("%s returned %i %s objects, expected atleast 5",
- reg_classname, len(proflist), 'Profile')
+ reg_classname, len(proflist), 'Profile')
status = FAIL
except Exception, detail:
@@ -138,8 +137,9 @@ def get_refprof_verify_info(proflist):
assoc_name = get_typed_class(virt, 'ReferencedProfile')
for instid in proflist:
try:
- assoc_info = Associators(server, assoc_name, reg_classname, virt, InstanceID = instid,
- CreationClassName = reg_classname)
+ assoc_info = Associators(server, assoc_name, reg_classname,
+ virt, InstanceID = instid,
+ CreationClassName = reg_classname)
if len(assoc_info) < 1:
logger.error("%s returned %i %s objects, expected atleast 1",
assoc_name, len(assoc_info), 'Profiles')
@@ -165,6 +165,13 @@ def main():
virt = options.virt
server = options.ip
status = PASS
+
+ # Referenced Profile was introduced as part of changeset 501
+ # and is not available in the libvirt-cim rpm, hence skipping tc
+ # if CIM_REV 501
+ if CIM_REV < libvirtcim_rev:
+ return SKIP
+
prev_namespace = Globals.CIM_NS
Globals.CIM_NS = 'root/interop'
reg_classname = get_typed_class(virt, 'RegisteredProfile')
diff -r 84517c1beb32 -r f41c618f3d5b suites/libvirt-cim/cimtest/ReferencedProfile/02_refprofile_errs.py
--- a/suites/libvirt-cim/cimtest/ReferencedProfile/02_refprofile_errs.py Tue May 06 14:47:59 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ReferencedProfile/02_refprofile_errs.py Tue May 06 23:20:30 2008 -0700
@@ -58,10 +58,13 @@ from CimTest.Globals import logger, CIM_
from CimTest.Globals import logger, CIM_ERROR_ENUMERATE, CIM_ERROR_ASSOCIATORS
from CimTest.Globals import do_main, CIM_USER, CIM_PASS
from XenKvmLib.classes import get_typed_class
-from CimTest.ReturnCodes import FAIL, PASS
+from CimTest.ReturnCodes import FAIL, PASS, SKIP
from XenKvmLib.common_util import try_assoc
+from XenKvmLib.const import CIM_REV
sup_types = ['Xen', 'KVM', 'XenFV']
+libvirtcim_rev = 501
+
expr_values = {
'INVALID_Instid_KeyName' : {
'rc' : pywbem.CIM_ERR_FAILED,
@@ -121,6 +124,12 @@ def main():
virt = options.virt
server = options.ip
status = PASS
+ # Referenced Profile was introduced as part of changeset 501
+ # and is not available in the libvirt-cim rpm, hence skipping tc
+ # if CIM_REV 501
+ if CIM_REV < libvirtcim_rev:
+ return SKIP
+
prev_namespace = Globals.CIM_NS
Globals.CIM_NS = 'root/interop'
reg_classname = get_typed_class(virt, 'RegisteredProfile')
From deeptik at linux.vnet.ibm.com Wed May 7 06:44:42 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Wed, 07 May 2008 12:14:42 +0530
Subject: [Libvirt-cim] CimTest Report for KVM on F9 07-05-2008
Message-ID: <48214FDA.1040004@linux.vnet.ibm.com>
========================================================================
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 : 76
LibVirtCIM : 580
CIMTEST : 130
=======================================================
PASS : 94
FAIL : 14
XFAIL : 4
SKIP : 17
-----------------
Total : 129
=======================================================
List of tc that are failing
ComputerSystem - 40_RSC_start.py: FAIL
ComputerSystemIndication - 01_created_indication.py: FAIL
ElementCapabilities - 01_forward.py: FAIL
ElementSettingData - 01_forward.py: FAIL
HostSystem - 03_hs_to_settdefcap.py: FAIL
Memory - 02_defgetmem.py: FAIL
NetworkPort - 03_user_netport.py: FAIL
Processor - 02_definesys_get_procs.py: FAIL
SettingsDefine - 02_reverse.py: FAIL
VSSD - 03_vssd_gi_errs.py: FAIL
VirtualSystemManagementService - 01_definesystem_name.py: FAIL
VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
VirtualSystemManagementService - 06_addresource.py: FAIL
VirtualSystemSettingDataComponent - 04_vssdc_rev_errs.py
Please find the complete report attached with the mail.
Thanks and Regards,
Deepti.
------------------------------------------------------------------------
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: May-07-KVM-report
URL:
From yunguol at cn.ibm.com Wed May 7 09:06:26 2008
From: yunguol at cn.ibm.com (Guo Lian Yun)
Date: Wed, 7 May 2008 17:06:26 +0800
Subject: [Libvirt-cim] KVM test report on Fedora 9 (05/07)
Message-ID:
stro: Fedora 9 Beta
Kernel: 2.6.25-0.121.rc5.git4.fc9
Libvirt: 0.4.1-7.fc9
CIMOM: 2.7.0-6.fc9
PyWBEM: 0.6-1
libcmpiutil: 0.3-1.fc9
libvirt-cim: 0.3-4.fc9
cimtest: changeset-132
=================== FAIL(9) ======================================
ComputerSystemIndication - 01_created_indication.py: FAIL
It crashs the CIMOM on running
ElementConforms - 02_reverse.py: FAIL
Binary rpm provider returns CIM_ERR_INVALID_PARAMETER:
KVM_ElementConformsToProfile on the following query:
wbemain -ac KVM_ElementConformsToProfile
'http://u:p at host:5988/root/virt:KVM_ComputerSystem.CreationClassName="KVM_ComputerSystem",Name="domgst"'
Same wbemcli command gets the correct results on another system using
latest libvirt-cim tree (changeset 533).
ElementSettingData - 03_esd_assoc_with_rasd_errs.py: FAIL
This one failed on bulk run, but passed on single group run.
Probably it's because of un-cleaned domains in previous groups.
NetworkPort - 03_user_netport.py: FAIL
'user' network type.
ReferencedProfile - 01_verify_refprof.py: FAIL
ReferencedProfile - 02_refprofile_errs.py: FAIL
Binary rpm provider gives 2 results on the following query:
wbemein http://u:p at host:5988/root/interop:KVM_RegisteredProfile
"CIM:DSP1042-SystemVirtualization-1.0.0"
"CIM:DSP1057-VirtualSystem-1.0.0a"
Same wbemcli command gets 5 results on changeset-533 tree on another
system.
"CIM:DSP1042-SystemVirtualization-1.0.0"
"CIM:DSP1057-VirtualSystem-1.0.0a"
"CIM:DSP1059-GenericDeviceResourceVirtualization-1.0.0"
"CIM:DSP1045-MemoryResourceVirtualization-1.0.0"
"CIM:DSP1081-VirtualSystemMigration-1.0"
This leads to ReferencedProfile's 'ain' query gets only 2 results.
[Known issue]
ResourceAllocationFromPool - 03_forward_errs.py: FAIL
sent a patch earlier today
SettingsDefine - 02_reverse.py: FAIL
ProcRASD.InstanceID is 'domname/0' in binary rpm provider. Test case
expects 'domname/proc' now.
VirtualSystemManagementService - 06_addresource.py: FAIL
Invoking AddResource results in 'CIM_ERR_FAILED: Failed to create
domain' error.
Latest provider has the same result. It passed on Xen & XenFV environment.
========FULL CIMTEST REPORT=PASS(94)=FAIL(9)=SKIP(17)=XFAIL(9)===
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: XFAIL Bug: 85769
ComputerSystem - 06_paused_active_suspend.py: XFAIL Bug: 85769
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: XFAIL Bug: 91410
InvokeMethod(RequestStateChange): CIM_ERR_FAILED: Domain Operation Failed
Bug:<91410>
ComputerSystem - 41_cs_to_settingdefinestate.py: SKIP
ComputerSystem - 42_cs_gi_errs.py: PASS
ComputerSystemIndication - 01_created_indication.py: FAIL
ERROR - error : (110, 'Connection timed out')
ElementAllocatedFromPool - 01_forward.py: SKIP
ElementAllocatedFromPool - 02_reverse.py: SKIP
ElementAllocatedFromPool - 03_reverse_errs.py: XFAIL Bug: 88651
ElementAllocatedFromPool - 04_forward_errs.py: XFAIL Bug: 88651
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: FAIL
ElementConforms - 03_ectp_fwd_errs.py: XFAIL Bug: 92642
Bug:<92642>
Bug:<92642>
Bug:<92642>
ElementConforms - 04_ectp_rev_errs.py: XFAIL Bug: 92642
Bug:<92642>
Bug:<92642>
Bug:<92642>
Bug:<92642>
Bug:<92642>
Bug:<92642>
Bug:<92642>
Bug:<92642>
ElementSettingData - 01_forward.py: PASS
ElementSettingData - 03_esd_assoc_with_rasd_errs.py: FAIL
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: SKIP
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: FAIL
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: SKIP
RASD - 01_verify_rasd_fields.py: PASS
RASD - 02_enum.py: PASS
RASD - 03_rasd_errs.py: PASS
ReferencedProfile - 01_verify_refprof.py: FAIL
ReferencedProfile - 02_refprofile_errs.py: FAIL
ResourceAllocationFromPool - 01_forward.py: PASS
ResourceAllocationFromPool - 02_reverse.py: PASS
ResourceAllocationFromPool - 03_forward_errs.py: FAIL
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: PASS
ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: PASS
ResourcePoolConfigurationService - 05_AddResourcesToResourcePool.py: XFAIL
Bug: 92173
InvokeMethod(AddResourcesToResourcePool): CIM_ERR_FAILED: Unknown Method
Bug:<92173>
ResourcePoolConfigurationService - 06_RemoveResourcesFromResourcePool.py:
PASS
ResourcePoolConfigurationService - 07_DeleteResourcePool.py: PASS
SettingsDefine - 01_forward.py: PASS
SettingsDefine - 02_reverse.py: FAIL
SettingsDefine - 03_sds_fwd_errs.py: PASS
SettingsDefine - 04_sds_rev_errs.py: PASS
SettingsDefineCapabilities - 01_forward.py: SKIP
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
VirtualSystemManagementService - 03_definesystem_ess.py: PASS
VirtualSystemManagementService - 04_definesystem_ers.py: PASS
VirtualSystemManagementService - 05_destroysystem_neg.py: PASS
VirtualSystemManagementService - 06_addresource.py: FAIL
InvokeMethod(AddResourceSettings): CIM_ERR_FAILED: Failed to create domain
VirtualSystemManagementService - 07_addresource_neg.py: PASS
VirtualSystemManagementService - 08_modifyresource.py: XFAIL Bug: 90853
InvokeMethod(ModifyResourceSettings): CIM_ERR_FAILED: Failed to create
domain
Bug:<90853>
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: SKIP
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 Guo Lian Yun
E-mail: yunguol at cn.ibm.com
IBM China Development Lab, Shanghai, China
TEL: (86)-21-61008057
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From yunguol at cn.ibm.com Wed May 7 08:45:48 2008
From: yunguol at cn.ibm.com (Guo Lian Yun)
Date: Wed, 07 May 2008 01:45:48 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] modified branch version number in
RAFP.03 and resumbit
Message-ID: <98a838bab5f3f3e6cbac.1210149948@elm3b197.beaverton.ibm.com>
# HG changeset patch
# User Guolian Yun
# Date 1210149942 25200
# Node ID 98a838bab5f3f3e6cbac9ebfa58c5dec558d0fb0
# Parent 84517c1beb32bff13f352ed53ece0f6a1a84fe41
[TEST] modified branch version number in RAFP.03 and resumbit
Signed-off-by: Guolian Yun
diff -r 84517c1beb32 -r 98a838bab5f3 suites/libvirt-cim/cimtest/ResourceAllocationFromPool/03_forward_errs.py
--- a/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/03_forward_errs.py Tue May 06 14:47:59 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ResourceAllocationFromPool/03_forward_errs.py Wed May 07 01:45:42 2008 -0700
@@ -28,12 +28,11 @@ from CimTest import Globals
from CimTest import Globals
from CimTest.Globals import logger, do_main
from CimTest.ReturnCodes import PASS, FAIL, XFAIL
+from XenKvmLib.const import CIM_REV
sup_types = ['Xen', 'XenFV', 'KVM']
-exp_rc = 6 #CIM_ERR_NOT_FOUND
-exp_desc = "No such instance (wrong) - resource pool type mismatch"
-
+rev = 466
@do_main(sup_types)
def main():
@@ -47,6 +46,13 @@ def main():
conn = assoc.myWBEMConnection('http://%s' % options.ip,
(Globals.CIM_USER, Globals.CIM_PASS),
Globals.CIM_NS)
+
+ exp_rc = 6 #CIM_ERR_NOT_FOUND
+ exp_desc = "No such instance (wrong) - resource pool type mismatch"
+ if CIM_REV < rev:
+ exp_rc = 1 # CIM_ERR_FAILED
+ exp_desc = "Invalid InstanceID or unsupported pool type"
+
for k, v in poollist.items():
instanceref = CIMInstanceName(k,
keybindings = {"InstanceID" : v})
From yunguol at cn.ibm.com Wed May 7 09:54:00 2008
From: yunguol at cn.ibm.com (Guo Lian Yun)
Date: Wed, 7 May 2008 17:54:00 +0800
Subject: [Libvirt-cim] KVM test report on Fedora 9 (05/07)
In-Reply-To:
Message-ID:
> stro: Fedora 9 Beta
> Kernel: 2.6.25-0.121.rc5.git4.fc9
> Libvirt: 0.4.1-7.fc9
> CIMOM: 2.7.0-6.fc9
> PyWBEM: 0.6-1
> libcmpiutil: 0.3-1.fc9
> libvirt-cim: 0.3-4.fc9
> cimtest: changeset-132
>
>
> =================== FAIL(9) ======================================
> ComputerSystemIndication - 01_created_indication.py: FAIL
> It crashs the CIMOM on running
>
> ElementConforms - 02_reverse.py: FAIL
> Binary rpm provider returns CIM_ERR_INVALID_PARAMETER:
> KVM_ElementConformsToProfile on the following query:
> wbemain -ac KVM_ElementConformsToProfile
> 'http://u:p at host:5988/root/virt:KVM_ComputerSystem.
> CreationClassName="KVM_ComputerSystem",Name="domgst"'
> Same wbemcli command gets the correct results on another system using
> latest libvirt-cim tree (changeset 533).
>
> ElementSettingData - 03_esd_assoc_with_rasd_errs.py: FAIL
> This one failed on bulk run, but passed on single group run.
> Probably it's because of un-cleaned domains in previous groups.
>
> NetworkPort - 03_user_netport.py: FAIL
> 'user' network type.
>
> ReferencedProfile - 01_verify_refprof.py: FAIL
> ReferencedProfile - 02_refprofile_errs.py: FAIL
> Binary rpm provider gives 2 results on the following query:
> wbemein http://u:p at host:5988/root/interop:KVM_RegisteredProfile
> "CIM:DSP1042-SystemVirtualization-1.0.0"
> "CIM:DSP1057-VirtualSystem-1.0.0a"
> Same wbemcli command gets 5 results on changeset-533 tree on another
system.
> "CIM:DSP1042-SystemVirtualization-1.0.0"
> "CIM:DSP1057-VirtualSystem-1.0.0a"
> "CIM:DSP1059-GenericDeviceResourceVirtualization-1.0.0"
> "CIM:DSP1045-MemoryResourceVirtualization-1.0.0"
> "CIM:DSP1081-VirtualSystemMigration-1.0"
> This leads to ReferencedProfile's 'ain' query gets only 2 results.
> [Known issue]
>
> ResourceAllocationFromPool - 03_forward_errs.py: FAIL
> sent a patch earlier today
>
> SettingsDefine - 02_reverse.py: FAIL
> ProcRASD.InstanceID is 'domname/0' in binary rpm provider. Test case
> expects 'domname/proc' now.
Below is the output of wbemcli test, we expect the ProcRASD.InstanceID is
'test-kvm/proc' now.
wbemcli ein
'http://root:password at localhost:5988/root/virt:KVM_ProcResourceAllocationSettingData'
localhost:5988/root/virt:KVM_ProcResourceAllocationSettingData.InstanceID="test-kvm/0"
wbemcli ain -ac KVM_VirtualSystemSettingDataComponent
'http://root:password at localhost:5988/root/virt:KVM_VirtualSystemSettingData.InstanceID="KVM:test-kvm"'
localhost:5988/root/virt:KVM_ProcResourceAllocationSettingData.InstanceID="test-kvm/0"
localhost:5988/root/virt:KVM_NetResourceAllocationSettingData.InstanceID="test-kvm/24:42:53:21:52:45"
localhost:5988/root/virt:KVM_DiskResourceAllocationSettingData.InstanceID="test-kvm/hda"
localhost:5988/root/virt:KVM_MemResourceAllocationSettingData.InstanceID="test-kvm/mem"
>
> VirtualSystemManagementService - 06_addresource.py: FAIL
> Invoking AddResource results in 'CIM_ERR_FAILED: Failed to create
> domain' error.
> Latest provider has the same result. It passed on Xen & XenFV
environment.
>
>
> ========FULL CIMTEST REPORT=PASS(94)=FAIL(9)=SKIP(17)=XFAIL(9)===
> 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: XFAIL Bug: 85769
> ComputerSystem - 06_paused_active_suspend.py: XFAIL Bug: 85769
> 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: XFAIL Bug: 91410
> InvokeMethod(RequestStateChange): CIM_ERR_FAILED: Domain Operation Failed
> Bug:<91410>
> ComputerSystem - 41_cs_to_settingdefinestate.py: SKIP
> ComputerSystem - 42_cs_gi_errs.py: PASS
> ComputerSystemIndication - 01_created_indication.py: FAIL
> ERROR - error : (110, 'Connection timed out')
> ElementAllocatedFromPool - 01_forward.py: SKIP
> ElementAllocatedFromPool - 02_reverse.py: SKIP
> ElementAllocatedFromPool - 03_reverse_errs.py: XFAIL Bug: 88651
> ElementAllocatedFromPool - 04_forward_errs.py: XFAIL Bug: 88651
> 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: FAIL
> ElementConforms - 03_ectp_fwd_errs.py: XFAIL Bug: 92642
> Bug:<92642>
> Bug:<92642>
> Bug:<92642>
> ElementConforms - 04_ectp_rev_errs.py: XFAIL Bug: 92642
> Bug:<92642>
> Bug:<92642>
> Bug:<92642>
> Bug:<92642>
> Bug:<92642>
> Bug:<92642>
> Bug:<92642>
> Bug:<92642>
> ElementSettingData - 01_forward.py: PASS
> ElementSettingData - 03_esd_assoc_with_rasd_errs.py: FAIL
> 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: SKIP
> 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: FAIL
> 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: SKIP
> RASD - 01_verify_rasd_fields.py: PASS
> RASD - 02_enum.py: PASS
> RASD - 03_rasd_errs.py: PASS
> ReferencedProfile - 01_verify_refprof.py: FAIL
> ReferencedProfile - 02_refprofile_errs.py: FAIL
> ResourceAllocationFromPool - 01_forward.py: PASS
> ResourceAllocationFromPool - 02_reverse.py: PASS
> ResourceAllocationFromPool - 03_forward_errs.py: FAIL
> 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: PASS
> ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: PASS
> ResourcePoolConfigurationService - 05_AddResourcesToResourcePool.py:
> XFAIL Bug: 92173
> InvokeMethod(AddResourcesToResourcePool): CIM_ERR_FAILED: Unknown Method
> Bug:<92173>
> ResourcePoolConfigurationService - 06_RemoveResourcesFromResourcePool.py:
PASS
> ResourcePoolConfigurationService - 07_DeleteResourcePool.py: PASS
> SettingsDefine - 01_forward.py: PASS
> SettingsDefine - 02_reverse.py: FAIL
> SettingsDefine - 03_sds_fwd_errs.py: PASS
> SettingsDefine - 04_sds_rev_errs.py: PASS
> SettingsDefineCapabilities - 01_forward.py: SKIP
> 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
> VirtualSystemManagementService - 03_definesystem_ess.py: PASS
> VirtualSystemManagementService - 04_definesystem_ers.py: PASS
> VirtualSystemManagementService - 05_destroysystem_neg.py: PASS
> VirtualSystemManagementService - 06_addresource.py: FAIL
> InvokeMethod(AddResourceSettings): CIM_ERR_FAILED: Failed to create
domain
> VirtualSystemManagementService - 07_addresource_neg.py: PASS
> VirtualSystemManagementService - 08_modifyresource.py: XFAIL Bug: 90853
> InvokeMethod(ModifyResourceSettings): CIM_ERR_FAILED: Failed to create
domain
> Bug:<90853>
> 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: SKIP
> 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 Guo Lian Yun
> E-mail: yunguol at cn.ibm.com
> IBM China Development Lab, Shanghai, China
> TEL: (86)-21-61008057_______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From deeptik at linux.vnet.ibm.com Wed May 7 12:34:49 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Wed, 07 May 2008 05:34:49 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] #2 Modifying common_util.py to use
appropriate diskpool conf file
Message-ID: <88d20825a9ba6dd3d070.1210163689@elm3b216.beaverton.ibm.com>
# HG changeset patch
# User Deepti B. Kalakeri
# Date 1210163663 25200
# Node ID 88d20825a9ba6dd3d070e02f698a7846b7e3a2c8
# Parent f41c618f3d5ba81d0588440b1a62e8916dc9d0a7
[TEST] #2 Modifying common_util.py to use appropriate diskpool conf file.
Used diskpoolconf_rev instead of libvirtcim_rev.
Signed-off-by: Deepti B. Kalakeri
diff -r f41c618f3d5b -r 88d20825a9ba suites/libvirt-cim/lib/XenKvmLib/common_util.py
--- a/suites/libvirt-cim/lib/XenKvmLib/common_util.py Tue May 06 23:20:30 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/common_util.py Wed May 07 05:34:23 2008 -0700
@@ -32,9 +32,16 @@ from XenKvmLib.classes import get_typed_
from XenKvmLib.classes import get_typed_class
from CimTest.Globals import logger, log_param, CIM_ERROR_ENUMERATE
from CimTest.ReturnCodes import PASS, FAIL, XFAIL_RC
+from XenKvmLib.const import CIM_REV
test_dpath = "foo"
-disk_file = '/tmp/diskpool.conf'
+diskpoolconf_rev = 558
+
+if CIM_REV < diskpoolconf_rev:
+ disk_file = '/tmp/diskpool.conf'
+else:
+ disk_file = '/etc/libvirt/diskpool.conf'
+
back_disk_file = disk_file + "." + "backup"
def print_field_error(fieldname, ret_value, exp_value):
@@ -245,6 +252,7 @@ def conf_file():
Creating diskpool.conf file.
"""
status = PASS
+ logger.info("Disk conf file : %s", disk_file)
try:
f = open(disk_file, 'w')
f.write('%s %s' % (test_dpath, '/'))
From deeptik at linux.vnet.ibm.com Wed May 7 12:56:35 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Wed, 07 May 2008 05:56:35 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] #2 Updating 01_forward.py of SDC to
support XenFV, KVM
Message-ID:
# HG changeset patch
# User Deepti B. Kalakeri
# Date 1210164893 25200
# Node ID adcbedf23f1d58e809fb4d91d6c40f83f21b776c
# Parent 88d20825a9ba6dd3d070e02f698a7846b7e3a2c8
[TEST] #2 Updating 01_forward.py of SDC to support XenFV, KVM.
1) To make use of the lib fn conf_file(), cleanup_restore() and create_diskpool_file().
2) To use the lib fn print_field_error.
3) To retain the PropertyPolicy, ValueRole, ValueRange depending on the revision no.
4) Tested on rpm based libvirt-cim KVM machine, latest libvirt-cim for KVM and Xen, XenFV.
Signed-off-by: Deepti B. Kalakeri
diff -r 88d20825a9ba -r adcbedf23f1d suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py
--- a/suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py Wed May 07 05:34:23 2008 -0700
+++ b/suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py Wed May 07 05:54:53 2008 -0700
@@ -55,135 +55,86 @@ import sys
import sys
import os
from distutils.file_util import move_file
-from VirtLib import utils
from XenKvmLib import assoc
from XenKvmLib import enumclass
-from CimTest import Globals
-from CimTest.Globals import do_main
from XenKvmLib.test_xml import netxml
from XenKvmLib.test_doms import create_vnet
from VirtLib.live import net_list
from CimTest.ReturnCodes import PASS, FAIL, SKIP
+from CimTest.Globals import do_main, platform_sup, logger, \
+CIM_ERROR_GETINSTANCE, CIM_ERROR_ASSOCIATORS
+from XenKvmLib.classes import get_typed_class
+from XenKvmLib.common_util import cleanup_restore, test_dpath, \
+create_diskpool_file
+from XenKvmLib.common_util import print_field_error
+from XenKvmLib.const import CIM_REV
-sup_types = ['Xen']
-
-status = PASS
-test_dpath = "foo"
-disk_file = '/tmp/diskpool.conf'
-back_disk_file = disk_file + "." + "SSDC_01_forward"
diskid = "%s/%s" % ("DiskPool", test_dpath)
memid = "%s/%s" % ("MemoryPool", 0)
procid = "%s/%s" % ("ProcessorPool", 0)
+libvirtcim_rev = 571
-def conf_file():
+
+def get_or_bail(virt, ip, id, pool_class):
"""
- Creating diskpool.conf file.
- """
- try:
- f = open(disk_file, 'w')
- f.write('%s %s' % (test_dpath, '/'))
- f.close()
- except Exception,detail:
- Globals.logger.error("Exception: %s", detail)
- status = SKIP
- sys.exit(status)
-
-def clean_up_restore():
- """
- Restoring back the original diskpool.conf
- file.
- """
- try:
- if os.path.exists(back_disk_file):
- os.remove(disk_file)
- move_file(back_disk_file, disk_file)
- except Exception, detail:
- Globals.logger.error("Exception: %s", detail)
- status = SKIP
- sys.exit(status)
-
-
-def get_or_bail(ip, id, pool_class):
- """
- Getinstance for the CLass and return instance on success, otherwise
+ Getinstance for the Class and return instance on success, otherwise
exit after cleanup_restore .
"""
key_list = { 'InstanceID' : id }
-
try:
- instance = enumclass.getInstance(ip, pool_class, key_list)
+ instance = enumclass.getInstance(ip, pool_class, key_list, virt)
except Exception, detail:
- Globals.logger.error(Globals.CIM_ERROR_GETINSTANCE, '%s' % pool_class)
- Globals.logger.error("Exception: %s", detail)
- clean_up_restore()
- status = FAIL
- sys.exit(status)
+ logger.error(CIM_ERROR_GETINSTANCE, '%s' % pool_class)
+ logger.error("Exception: %s", detail)
+ cleanup_restore()
+ sys.exit(FAIL)
return instance
-def init_list(disk, mem, net, proc):
+def init_list(virt, dpool, npool, mpool, ppool):
"""
Creating the lists that will be used for comparisons.
"""
instlist = [
- disk.InstanceID, \
- mem.InstanceID, \
- net.InstanceID, \
- proc.InstanceID
- ]
+ dpool.InstanceID,
+ mpool.InstanceID,
+ npool.InstanceID,
+ ppool.InstanceID
+ ]
cllist = [
- "Xen_DiskResourceAllocationSettingData", \
- "Xen_MemResourceAllocationSettingData", \
- "Xen_NetResourceAllocationSettingData", \
- "Xen_ProcResourceAllocationSettingData"
+ get_typed_class(virt, "DiskResourceAllocationSettingData"),
+ get_typed_class(virt, "MemResourceAllocationSettingData"),
+ get_typed_class(virt, "NetResourceAllocationSettingData"),
+ get_typed_class(virt, "ProcResourceAllocationSettingData")
]
rtype = {
- "Xen_DiskResourceAllocationSettingData" : 17, \
- "Xen_MemResourceAllocationSettingData" : 4, \
- "Xen_NetResourceAllocationSettingData" : 10, \
- "Xen_ProcResourceAllocationSettingData" : 3
+ get_typed_class(virt, "DiskResourceAllocationSettingData") : 17,
+ get_typed_class(virt, "MemResourceAllocationSettingData") : 4,
+ get_typed_class(virt, "NetResourceAllocationSettingData") : 10,
+ get_typed_class(virt, "ProcResourceAllocationSettingData") : 3
}
rangelist = {
- "Default" : 0, \
- "Minimum" : 1, \
- "Maximum" : 2, \
+ "Default" : 0,
+ "Minimum" : 1,
+ "Maximum" : 2,
"Increment" : 3
}
return instlist, cllist, rtype, rangelist
+def get_pool_info(virt, server, devid, poolname=""):
+ pool_cname = get_typed_class(virt, poolname)
+ pool_cn = eval("enumclass." + pool_cname)
+ return get_or_bail(virt, server, id=devid, pool_class=pool_cn)
-def print_error(index, fieldname, assoc_info, exp_value):
- ret_value = assoc_info[index][fieldname]
- Globals.logger.error("%s Mismatch", fieldname)
- Globals.logger.error("Returned %s instead of %s", ret_value, exp_value)
+def get_pool_details(virt, server):
+ dpool = npool = mpool = ppool = None
+ try :
+ dpool = get_pool_info(virt, server, diskid, poolname="DiskPool")
+ mpool = get_pool_info(virt, server, memid, poolname= "MemoryPool")
+ ppool = get_pool_info(virt, server, procid, poolname= "ProcessorPool")
-
- at do_main(sup_types)
-def main():
- options = main.options
- global status
-
- cn = 'Xen_AllocationCapabilities'
- loop = 0
- server = options.ip
-
- # Taking care of already existing diskconf file
- # Creating diskpool.conf if it does not exist
- # Otherwise backing up the prev file and create new one.
- os.system("rm -f %s" % back_disk_file )
- if not (os.path.exists(disk_file)):
- conf_file()
- else:
- move_file(disk_file, back_disk_file)
- conf_file()
-
- try :
- disk = get_or_bail(server, id=diskid, \
- pool_class=enumclass.Xen_DiskPool)
- mem = get_or_bail(server, id = memid, \
- pool_class=enumclass.Xen_MemoryPool)
- vir_network = net_list(server)
+ vir_network = net_list(server, virt)
if len(vir_network) > 0:
test_network = vir_network[0]
else:
@@ -192,68 +143,102 @@ def main():
net_xml, bridge = netxml(server, bridgename, test_network)
ret = create_vnet(server, net_xml)
if not ret:
- Globals.logger.error("Failed to create the Virtual Network '%s'", \
- test_network)
- return SKIP
+ logger.error("Failed to create Virtual Network '%s'",
+ test_network)
+ return SKIP, dpool, npool, mpool, ppool
+
netid = "%s/%s" % ("NetworkPool", test_network)
- net = get_or_bail(server, id = netid, \
- pool_class=enumclass.Xen_NetworkPool)
- proc = get_or_bail(server, id = procid, \
- pool_class=enumclass.Xen_ProcessorPool)
+ npool = get_pool_info(virt, server, netid, poolname= "NetworkPool")
except Exception, detail:
- Globals.logger.error("Exception: %s", detail)
- clean_up_restore()
- status = FAIL
- return status
+ logger.error("Exception: %s", detail)
+ return FAIL, dpool, npool, mpool, ppool
- instlist, cllist, rtype, rangelist = init_list(disk, mem, net, proc )
+ return PASS, dpool, npool, mpool, ppool
+def verify_rasd_fields(loop, assoc_info, cllist, rtype, rangelist):
+ for inst in assoc_info:
+ if inst.classname != cllist[loop]:
+ print_field_error("Classname", inst.classname, cllist[loop])
+ return FAIL
+ if inst['ResourceType'] != rtype[cllist[loop]]:
+ print_field_error("ResourceType", inst['ResourceType'],
+ rtype[cllist[loop]])
+ return FAIL
+
+ # The following properties have been removed in the patchset 571
+ # but is present in the rpm libvirt-cim and hence retained it.
+
+ if CIM_REV < libvirtcim_rev:
+ ppolicy = inst['PropertyPolicy']
+ if ppolicy != 0 and ppolicy != 1:
+ print_field_error("PropertyPolicy", inst['PropertyPolicy'],
+ ppolicy)
+ return FAIL
+
+ vrole = inst['ValueRole']
+ if vrole < 0 or vrole > 4:
+ print_field_error("ValueRole", inst['ValueRole'], vrole)
+ return FAIL
+
+ insid = inst['InstanceID']
+ vrange = rangelist[insid]
+ if vrange != inst['ValueRange']:
+ print_field_error("ValueRange", inst['ValueRange'], vrange)
+ return FAIL
+
+ return PASS
+
+def verify_sdc_with_ac(virt, server, dpool, npool, mpool, ppool):
+ loop = 0
+ instlist, cllist, rtype, rangelist = init_list(virt, dpool, npool, mpool,
+ ppool)
+ assoc_cname = get_typed_class(virt, "SettingsDefineCapabilities")
+ cn = get_typed_class(virt, "AllocationCapabilities")
for instid in sorted(instlist):
try:
- assoc_info = assoc.Associators(options.ip, \
- "Xen_SettingsDefineCapabilities",
- cn,
- InstanceID = instid)
+ assoc_info = assoc.Associators(server, assoc_cname, cn,
+ InstanceID = instid, virt=virt)
if len(assoc_info) != 4:
- Globals.logger.error("Xen_SettingsDefineCapabilities returned \
-%i ResourcePool objects instead 4", len(assoc_info))
+ logger.error("%s returned %i ResourcePool objects"
+ "instead 4", assoc_cname, len(assoc_info))
status = FAIL
break
- for i in range(len(assoc_info)):
- if assoc_info[i].classname != cllist[loop]:
- print_error(i, "Classname", assoc_info, cllist[loop])
- status = FAIL
- if assoc_info[i]['ResourceType'] != rtype[cllist[loop]]:
- print_error(i, "ResourceType", assoc_info, rtype[cllist[loop]])
- status = FAIL
- ppolicy = assoc_info[i]['PropertyPolicy']
- if ppolicy != 0 and ppolicy != 1:
- print_error(i, "PropertyPolicy", assoc_info, ppolicy)
- status = FAIL
- vrole = assoc_info[i]['ValueRole']
- if vrole < 0 or vrole > 4:
- print_error(i, "ValueRole", assoc_info, vrole)
- status = FAIL
- insid = assoc_info[i]['InstanceID']
- vrange = rangelist[insid]
- if vrange != assoc_info[i]['ValueRange']:
- print_error(i, "ValueRange", assoc_info, vrange)
- status = FAIL
- if status != 0:
- break
- if status != 0:
+
+ status = verify_rasd_fields(loop, assoc_info, cllist, rtype,
+ rangelist)
+ if status != PASS:
break
else:
loop = loop + 1
+
except Exception, detail:
- Globals.logger.error(Globals.CIM_ERROR_ASSOCIATORS, \
- 'Xen_SettingsDefineCapabilities')
- Globals.logger.error("Exception: %s", detail)
- clean_up_restore()
+ logger.error(CIM_ERROR_ASSOCIATORS, assoc_cname)
+ logger.error("Exception: %s", detail)
status = FAIL
- clean_up_restore()
+ return status
+
+ at do_main(platform_sup)
+def main():
+ options = main.options
+
+ server = options.ip
+ virt = options.virt
+
+ # Verify DiskPool on machine
+ status = create_diskpool_file()
+ if status != PASS:
+ return status
+
+ status, dpool, npool, mpool, ppool = get_pool_details(virt, server)
+ if status != PASS or dpool.InstanceID == None or mpool.InstanceID == None \
+ or npool.InstanceID == None or ppool.InstanceID == None:
+ cleanup_restore()
+ return FAIL
+
+ status = verify_sdc_with_ac(virt, server, dpool, npool, mpool, ppool)
+ cleanup_restore()
return status
if __name__ == "__main__":
From deeptik at linux.vnet.ibm.com Wed May 7 13:03:24 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Wed, 07 May 2008 18:33:24 +0530
Subject: [Libvirt-cim] KVM test report on Fedora 9 (05/07)
In-Reply-To:
References:
Message-ID: <4821A89C.2010107@linux.vnet.ibm.com>
Guo Lian Yun wrote:
>
>
> > stro: Fedora 9 Beta
> > Kernel: 2.6.25-0.121.rc5.git4.fc9
> > Libvirt: 0.4.1-7.fc9
> > CIMOM: 2.7.0-6.fc9
> > PyWBEM: 0.6-1
> > libcmpiutil: 0.3-1.fc9
> > libvirt-cim: 0.3-4.fc9
> > cimtest: changeset-132
> >
> >
> > =================== FAIL(9) ======================================
> > ComputerSystemIndication - 01_created_indication.py: FAIL
> > It crashs the CIMOM on running
> >
> > ElementConforms - 02_reverse.py: FAIL
> > Binary rpm provider returns CIM_ERR_INVALID_PARAMETER:
> > KVM_ElementConformsToProfile on the following query:
> > wbemain -ac KVM_ElementConformsToProfile
> > 'http://u:p at host:5988/root/virt:KVM_ComputerSystem.
> > CreationClassName="KVM_ComputerSystem",Name="domgst"'
> > Same wbemcli command gets the correct results on another system using
> > latest libvirt-cim tree (changeset 533).
> >
> > ElementSettingData - 03_esd_assoc_with_rasd_errs.py: FAIL
> > This one failed on bulk run, but passed on single group run.
> > Probably it's because of un-cleaned domains in previous groups.
> >
> > NetworkPort - 03_user_netport.py: FAIL
> > 'user' network type.
> >
> > ReferencedProfile - 01_verify_refprof.py: FAIL
> > ReferencedProfile - 02_refprofile_errs.py: FAIL
> > Binary rpm provider gives 2 results on the following query:
> > wbemein http://u:p at host:5988/root/interop:KVM_RegisteredProfile
> > "CIM:DSP1042-SystemVirtualization-1.0.0"
> > "CIM:DSP1057-VirtualSystem-1.0.0a"
> > Same wbemcli command gets 5 results on changeset-533 tree on another
> system.
> > "CIM:DSP1042-SystemVirtualization-1.0.0"
> > "CIM:DSP1057-VirtualSystem-1.0.0a"
> > "CIM:DSP1059-GenericDeviceResourceVirtualization-1.0.0"
> > "CIM:DSP1045-MemoryResourceVirtualization-1.0.0"
> > "CIM:DSP1081-VirtualSystemMigration-1.0"
> > This leads to ReferencedProfile's 'ain' query gets only 2 results.
> > [Known issue]
>
The fix for above two tc has been submitted, should now be skipped for
rpm based libvirt-cim F9 machine.
>
> >
> > ResourceAllocationFromPool - 03_forward_errs.py: FAIL
> > sent a patch earlier today
> >
> > SettingsDefine - 02_reverse.py: FAIL
> > ProcRASD.InstanceID is 'domname/0' in binary rpm provider. Test case
> > expects 'domname/proc' now.
>
> Below is the output of wbemcli test, we expect the ProcRASD.InstanceID is
> 'test-kvm/proc' now.
>
> wbemcli ein
> 'http://root:password at localhost:5988/root/virt:KVM_ProcResourceAllocationSettingData'
> localhost:5988/root/virt:KVM_ProcResourceAllocationSettingData.InstanceID="test-kvm/0"
>
> wbemcli ain -ac KVM_VirtualSystemSettingDataComponent
> 'http://root:password at localhost:5988/root/virt:KVM_VirtualSystemSettingData.InstanceID="KVM:test-kvm"'
> localhost:5988/root/virt:KVM_ProcResourceAllocationSettingData.InstanceID="test-kvm/0"
> localhost:5988/root/virt:KVM_NetResourceAllocationSettingData.InstanceID="test-kvm/24:42:53:21:52:45"
> localhost:5988/root/virt:KVM_DiskResourceAllocationSettingData.InstanceID="test-kvm/hda"
> localhost:5988/root/virt:KVM_MemResourceAllocationSettingData.InstanceID="test-kvm/mem"
>
> >
> > VirtualSystemManagementService - 06_addresource.py: FAIL
> > Invoking AddResource results in 'CIM_ERR_FAILED: Failed to create
> > domain' error.
> > Latest provider has the same result. It passed on Xen & XenFV
> environment.
> >
> >
> > ========FULL CIMTEST REPORT=PASS(94)=FAIL(9)=SKIP(17)=XFAIL(9)===
> > 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: XFAIL Bug: 85769
> > ComputerSystem - 06_paused_active_suspend.py: XFAIL Bug: 85769
> > 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: XFAIL Bug: 91410
> > InvokeMethod(RequestStateChange): CIM_ERR_FAILED: Domain Operation
> Failed
> > Bug:<91410>
> > ComputerSystem - 41_cs_to_settingdefinestate.py: SKIP
> > ComputerSystem - 42_cs_gi_errs.py: PASS
> > ComputerSystemIndication - 01_created_indication.py: FAIL
> > ERROR - error : (110, 'Connection timed out')
> > ElementAllocatedFromPool - 01_forward.py: SKIP
> > ElementAllocatedFromPool - 02_reverse.py: SKIP
> > ElementAllocatedFromPool - 03_reverse_errs.py: XFAIL Bug: 88651
> > ElementAllocatedFromPool - 04_forward_errs.py: XFAIL Bug: 88651
> > 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: FAIL
> > ElementConforms - 03_ectp_fwd_errs.py: XFAIL Bug: 92642
> > Bug:<92642>
> > Bug:<92642>
> > Bug:<92642>
> > ElementConforms - 04_ectp_rev_errs.py: XFAIL Bug: 92642
> > Bug:<92642>
> > Bug:<92642>
> > Bug:<92642>
> > Bug:<92642>
> > Bug:<92642>
> > Bug:<92642>
> > Bug:<92642>
> > Bug:<92642>
> > ElementSettingData - 01_forward.py: PASS
> > ElementSettingData - 03_esd_assoc_with_rasd_errs.py: FAIL
> > 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: SKIP
> > 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: FAIL
> > 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: SKIP
> > RASD - 01_verify_rasd_fields.py: PASS
> > RASD - 02_enum.py: PASS
> > RASD - 03_rasd_errs.py: PASS
> > ReferencedProfile - 01_verify_refprof.py: FAIL
> > ReferencedProfile - 02_refprofile_errs.py: FAIL
> > ResourceAllocationFromPool - 01_forward.py: PASS
> > ResourceAllocationFromPool - 02_reverse.py: PASS
> > ResourceAllocationFromPool - 03_forward_errs.py: FAIL
> > 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: PASS
> > ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: PASS
> > ResourcePoolConfigurationService - 05_AddResourcesToResourcePool.py:
> > XFAIL Bug: 92173
> > InvokeMethod(AddResourcesToResourcePool): CIM_ERR_FAILED: Unknown Method
> > Bug:<92173>
> > ResourcePoolConfigurationService -
> 06_RemoveResourcesFromResourcePool.py: PASS
> > ResourcePoolConfigurationService - 07_DeleteResourcePool.py: PASS
> > SettingsDefine - 01_forward.py: PASS
> > SettingsDefine - 02_reverse.py: FAIL
> > SettingsDefine - 03_sds_fwd_errs.py: PASS
> > SettingsDefine - 04_sds_rev_errs.py: PASS
> > SettingsDefineCapabilities - 01_forward.py: SKIP
> > 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
> > VirtualSystemManagementService - 03_definesystem_ess.py: PASS
> > VirtualSystemManagementService - 04_definesystem_ers.py: PASS
> > VirtualSystemManagementService - 05_destroysystem_neg.py: PASS
> > VirtualSystemManagementService - 06_addresource.py: FAIL
> > InvokeMethod(AddResourceSettings): CIM_ERR_FAILED: Failed to create
> domain
> > VirtualSystemManagementService - 07_addresource_neg.py: PASS
> > VirtualSystemManagementService - 08_modifyresource.py: XFAIL Bug: 90853
> > InvokeMethod(ModifyResourceSettings): CIM_ERR_FAILED: Failed to
> create domain
> > Bug:<90853>
> > 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: SKIP
> > 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 Guo Lian Yun
> > E-mail: yunguol at cn.ibm.com
> > IBM China Development Lab, Shanghai, China
> > TEL: (86)-21-61008057_______________________________________________
> > Libvirt-cim mailing list
> > Libvirt-cim at redhat.com
> > https://www.redhat.com/mailman/listinfo/libvirt-cim
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
From deeptik at linux.vnet.ibm.com Wed May 7 13:41:49 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Wed, 07 May 2008 19:11:49 +0530
Subject: [Libvirt-cim] Re: CimTest Report for KVM on F9 07-05-2008
In-Reply-To: <48214FDA.1040004@linux.vnet.ibm.com>
References: <48214FDA.1040004@linux.vnet.ibm.com>
Message-ID: <4821B19D.4090307@linux.vnet.ibm.com>
Deepti B Kalakeri wrote:
> ========================================================================
> 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 : 76
> LibVirtCIM : 580
> CIMTEST : 130
> =======================================================
> PASS : 94
> FAIL : 14
> XFAIL : 4
> SKIP : 17
> -----------------
> Total : 129
> =======================================================
>
> List of tc that are failing
>
> ComputerSystem - 40_RSC_start.py: FAIL
known issue, "Resource type not supported on this platform" error
> ComputerSystemIndication - 01_created_indication.py: FAIL
timeout issue.
> ElementCapabilities - 01_forward.py: FAIL
EC now returns AC , needs tc modification.
> ElementSettingData - 01_forward.py: FAIL
ESD expects InstanceID "testdom/0" instead of "testdom/proc".
> HostSystem - 03_hs_to_settdefcap.py: FAIL
RASD does not have 'propertypolicy' in the properties need tc modification.
> Memory - 02_defgetmem.py: FAIL
known issue, "Resource type not supported on this platform" error
> NetworkPort - 03_user_netport.py: FAIL
> Processor - 02_definesys_get_procs.py: FAIL
known issue
> SettingsDefine - 02_reverse.py: FAIL
SDS expects InstanceID "testdom/0" instead of "testdom/proc".
> VSSD - 03_vssd_gi_errs.py: FAIL
Segmentation fault.
> VirtualSystemManagementService - 01_definesystem_name.py: FAIL
known issue, "Resource type not supported on this platform" error
> VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
Needs tc modification, the provider now returns the exception
'CIM_ERR_FAILED: Unable to retrieve domain name.'
> VirtualSystemManagementService - 06_addresource.py: FAIL
e9bc806e-1c65-11dd-b5f9-001a646394d4
rstest_domain
destroy
destroy
hvm
131072
131072
1
misc_util.c(72): Connecting to libvirt with uri `qemu:///system'
libvir: QEMU error : internal error No 'dev' attribute
specified with
Virt_VirtualSystemManagementService.c(595): Failed to define domain from XML
std_invokemethod.c(305): Method `AddResourceSettings' returned 1
The tc Failed to create the domain bcs of the missing tag in the xml.
With the in the xml file we can create the
kvm guest successfully.
> VirtualSystemSettingDataComponent - 04_vssdc_rev_errs.py
Segmentation fault.
>
> 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: XFAIL Bug: 85769
> ERROR - ERROR: VS DomST1 transition from Defined State to Activate state was not Successful
> Bug:<85769>
> ComputerSystem - 06_paused_active_suspend.py: XFAIL Bug: 85769
> ERROR - ERROR: VS DomST1 transition from suspend State to Activate state was not Successful
> Bug:<85769>
> 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: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Exception: ('Unable create domain %s using DefineSystem()', 'test_domain')
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ComputerSystem - 41_cs_to_settingdefinestate.py: SKIP
> ComputerSystem - 42_cs_gi_errs.py: PASS
> ComputerSystemIndication - 01_created_indication.py: FAIL
> ERROR - error : (110, 'Connection timed out')
> ElementAllocatedFromPool - 01_forward.py: SKIP
> ElementAllocatedFromPool - 02_reverse.py: SKIP
> ElementAllocatedFromPool - 03_reverse_errs.py: PASS
> ElementAllocatedFromPool - 04_forward_errs.py: PASS
> ElementCapabilities - 01_forward.py: FAIL
> ERROR - ElementCapabilities association classname error
> 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: FAIL
> ERROR - ElementSettingData returned 0 ProcResourceAllocationSettingData instances
> ERROR - Unable to get associated ResourceAllocationSettingData from ElementSettingData
> CIM_ERR_NOT_FOUND: No such instance (domu/proc)
> 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: FAIL
> ERROR - Error checking RASD attribute values 'propertypolicy'
> HostSystem - 04_hs_to_EAPF.py: SKIP
> 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: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Exception: Unable to create domain domu using DefineSys()
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> Memory - 03_mem_gi_errs.py: PASS
> NetworkPort - 01_netport.py: PASS
> NetworkPort - 02_np_gi_errors.py: PASS
> NetworkPort - 03_user_netport.py: FAIL
> ERROR - Exception: (6, u'CIM_ERR_NOT_FOUND: No such instance (test_domain/00:11:22:33:44:55)')
> Processor - 01_processor.py: PASS
> Processor - 02_definesys_get_procs.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Exception: Unable create domain test_domain using DefineSystem()
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> 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: SKIP
> RASD - 01_verify_rasd_fields.py: PASS
> RASD - 02_enum.py: PASS
> RASD - 03_rasd_errs.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: PASS
> ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: PASS
> ResourcePoolConfigurationService - 05_AddResourcesToResourcePool.py: XFAIL Bug: 92173
> ERROR - Unexpected rc code 1 and description CIM_ERR_FAILED: Unknown Method
>
> InvokeMethod(AddResourcesToResourcePool): CIM_ERR_FAILED: Unknown Method
> Bug:<92173>
> ResourcePoolConfigurationService - 06_RemoveResourcesFromResourcePool.py: PASS
> ResourcePoolConfigurationService - 07_DeleteResourcePool.py: PASS
> SettingsDefine - 01_forward.py: PASS
> SettingsDefine - 02_reverse.py: FAIL
> ERROR - Mistmatching value for VSSDComponent association
> CIM_ERR_NOT_FOUND: No such instance (virtgst/proc)
> SettingsDefine - 03_sds_fwd_errs.py: PASS
> SettingsDefine - 04_sds_rev_errs.py: PASS
> SettingsDefineCapabilities - 01_forward.py: SKIP
> 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 - 04_vssd_to_rasd.py: PASS
> VirtualSystemManagementCapabilities - 01_enum.py: PASS
> VirtualSystemManagementCapabilities - 02_vsmcap_gi_errs.py: PASS
> VirtualSystemManagementService - 01_definesystem_name.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> VirtualSystemManagementService - 02_destroysystem.py: PASS
> VirtualSystemManagementService - 03_definesystem_ess.py: PASS
> VirtualSystemManagementService - 04_definesystem_ers.py: PASS
> VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
> ERROR - destroy_fail>>noname: Error executing DestroySystem, exception details below
> ERROR - (1, u'CIM_ERR_FAILED: Unable to retrieve domain name.')
> ERROR - destroy_fail>>nonexistent: Error executing DestroySystem, exception details below
> ERROR - (1, u'CIM_ERR_FAILED: Failed to find domain')
> InvokeMethod(DestroySystem): CIM_ERR_FAILED: Unable to retrieve domain name.
> InvokeMethod(DestroySystem): CIM_ERR_FAILED: Failed to find domain
> VirtualSystemManagementService - 06_addresource.py: FAIL
> ERROR - Error invoking AddRS
> ERROR - (1, u'CIM_ERR_FAILED: Failed to create domain')
> InvokeMethod(AddResourceSettings): CIM_ERR_FAILED: Failed to create domain
> VirtualSystemManagementService - 07_addresource_neg.py: PASS
> VirtualSystemManagementService - 08_modifyresource.py: XFAIL Bug: 90853
> ERROR - Error invoking ModifyRS
> ERROR - (1, u'CIM_ERR_FAILED: Failed to create domain')
> InvokeMethod(ModifyResourceSettings): CIM_ERR_FAILED: Failed to create domain
> Bug:<90853>
> 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: SKIP
> VirtualSystemSettingDataComponent - 02_reverse.py: PASS
> VirtualSystemSettingDataComponent - 03_vssdc_fwd_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
>
From kaitlin at linux.vnet.ibm.com Wed May 7 14:00:43 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Wed, 07 May 2008 07:00:43 -0700
Subject: [Libvirt-cim] Re: CimTest Report for KVM on F9 07-05-2008
In-Reply-To: <4821B19D.4090307@linux.vnet.ibm.com>
References: <48214FDA.1040004@linux.vnet.ibm.com>
<4821B19D.4090307@linux.vnet.ibm.com>
Message-ID: <4821B60B.8020900@linux.vnet.ibm.com>
>> VirtualSystemManagementService - 06_addresource.py: FAIL
>
> e9bc806e-1c65-11dd-b5f9-001a646394d4
> rstest_domain
> destroy
> destroy
>
> hvm
>
>
> 131072
> 131072
> 1
>
>
>
>
>
>
>
>
>
>
>
> misc_util.c(72): Connecting to libvirt with uri `qemu:///system'
> libvir: QEMU error : internal error No 'dev' attribute
> specified with
> Virt_VirtualSystemManagementService.c(595): Failed to define domain from
> XML
> std_invokemethod.c(305): Method `AddResourceSettings' returned 1
>
> The tc Failed to create the domain bcs of the missing bridge='testbridge'/> tag in the xml.
> With the in the xml file we can create the
> kvm guest successfully.
Can you check to see if this needs to be fixed in xvml.py.
>
>> VirtualSystemSettingDataComponent - 04_vssdc_rev_errs.py
> Segmentation fault.
>>
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Wed May 7 14:02:34 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Wed, 07 May 2008 07:02:34 -0700
Subject: [Libvirt-cim] KVM test report on Fedora 9 (05/07)
In-Reply-To:
References:
Message-ID: <4821B67A.2000402@linux.vnet.ibm.com>
Guo Lian Yun wrote:
> stro: Fedora 9 Beta
> Kernel: 2.6.25-0.121.rc5.git4.fc9
> Libvirt: 0.4.1-7.fc9
> CIMOM: 2.7.0-6.fc9
> PyWBEM: 0.6-1
> libcmpiutil: 0.3-1.fc9
> libvirt-cim: 0.3-4.fc9
> cimtest: changeset-132
>
>
> =================== FAIL(9) ======================================
> ComputerSystemIndication - 01_created_indication.py: FAIL
> It crashs the CIMOM on running
>
Can you look into why this is happening?
Thanks!
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From danms at us.ibm.com Wed May 7 14:25:21 2008
From: danms at us.ibm.com (Dan Smith)
Date: Wed, 07 May 2008 07:25:21 -0700
Subject: [Libvirt-cim] [PATCH] Make ReferenceConfiguration a reference
paramter instead of a string instance
Message-ID:
# HG changeset patch
# User Dan Smith
# Date 1210170309 25200
# Node ID d21b04d0ee82ac63d4ceb0cfc2446fee9fd50ac7
# Parent 2b8a381e2f2abde3b3325044ef36c4a49e108425
Make ReferenceConfiguration a reference paramter instead of a string instance
NB: This will need to be updated in all the DefineSystem() tests!
Signed-off-by: Dan Smith
diff -r 2b8a381e2f2a -r d21b04d0ee82 src/Virt_VirtualSystemManagementService.c
--- a/src/Virt_VirtualSystemManagementService.c Tue May 06 14:33:55 2008 -0700
+++ b/src/Virt_VirtualSystemManagementService.c Wed May 07 07:25:09 2008 -0700
@@ -1371,7 +1371,7 @@ static struct method_handler DefineSyste
.handler = define_system,
.args = {{"SystemSettings", CMPI_instance, false},
{"ResourceSettings", CMPI_instanceA, false},
- {"ReferenceConfiguration", CMPI_string, false},
+ {"ReferenceConfiguration", CMPI_ref, false},
ARG_END
}
};
From danms at us.ibm.com Wed May 7 15:24:20 2008
From: danms at us.ibm.com (Dan Smith)
Date: Wed, 07 May 2008 08:24:20 -0700
Subject: [Libvirt-cim] [PATCH] Add PoolID into DevicePool instances
Message-ID:
# HG changeset patch
# User Dan Smith
# Date 1210173475 25200
# Node ID a63bdadd9f6739b78b9f09f5483bb87b315a0953
# Parent d21b04d0ee82ac63d4ceb0cfc2446fee9fd50ac7
Add PoolID into DevicePool instances
Signed-off-by: Dan Smith
diff -r d21b04d0ee82 -r a63bdadd9f67 src/Virt_DevicePool.c
--- a/src/Virt_DevicePool.c Wed May 07 07:25:09 2008 -0700
+++ b/src/Virt_DevicePool.c Wed May 07 08:17:55 2008 -0700
@@ -600,6 +600,9 @@ static CMPIStatus mempool_instance(virCo
CMSetProperty(inst, "InstanceID",
(CMPIValue *)id, CMPI_chars);
+ CMSetProperty(inst, "PoolID",
+ (CMPIValue *)id, CMPI_chars);
+
CMSetProperty(inst, "ResourceType",
(CMPIValue *)&type, CMPI_uint16);
@@ -635,6 +638,9 @@ static CMPIStatus procpool_instance(virC
set_units(inst, "Processors");
CMSetProperty(inst, "InstanceID",
+ (CMPIValue *)id, CMPI_chars);
+
+ CMSetProperty(inst, "PoolID",
(CMPIValue *)id, CMPI_chars);
CMSetProperty(inst, "ResourceType",
@@ -690,6 +696,8 @@ static CMPIStatus _netpool_for_network(s
CMSetProperty(inst, "InstanceID",
(CMPIValue *)str, CMPI_chars);
+ CMSetProperty(inst, "PoolID",
+ (CMPIValue *)str, CMPI_chars);
free(str);
bridge = virNetworkGetBridgeName(network);
@@ -786,6 +794,9 @@ static CMPIInstance *diskpool_from_path(
return NULL;
CMSetProperty(inst, "InstanceID",
+ (CMPIValue *)poolid, CMPI_chars);
+
+ CMSetProperty(inst, "PoolID",
(CMPIValue *)poolid, CMPI_chars);
CMSetProperty(inst, "ResourceType",
From kaitlin at linux.vnet.ibm.com Wed May 7 18:06:31 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Wed, 07 May 2008 11:06:31 -0700
Subject: [Libvirt-cim] [PATCH] Make ReferenceConfiguration a reference
paramter instead of a string instance
In-Reply-To:
References:
Message-ID: <4821EFA7.2060801@linux.vnet.ibm.com>
Dan Smith wrote:
> # HG changeset patch
> # User Dan Smith
> # Date 1210170309 25200
> # Node ID d21b04d0ee82ac63d4ceb0cfc2446fee9fd50ac7
> # Parent 2b8a381e2f2abde3b3325044ef36c4a49e108425
> Make ReferenceConfiguration a reference paramter instead of a string instance
>
> NB: This will need to be updated in all the DefineSystem() tests!
>
Good call - plus, thanks on the heads up about how this will impact
cimtest.
+1
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Wed May 7 18:13:33 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Wed, 07 May 2008 11:13:33 -0700
Subject: [Libvirt-cim] [PATCH] Add PoolID into DevicePool instances
In-Reply-To:
References:
Message-ID: <4821F14D.7040806@linux.vnet.ibm.com>
Dan Smith wrote:
> # HG changeset patch
> # User Dan Smith
> # Date 1210173475 25200
> # Node ID a63bdadd9f6739b78b9f09f5483bb87b315a0953
> # Parent d21b04d0ee82ac63d4ceb0cfc2446fee9fd50ac7
> Add PoolID into DevicePool instances
Since we had to set the InstanceID, PoolID, and ResourceType for all 4
devices, should we farm that out to a different function?
It doesn't save much really, but having the same code in 4 places looks odd.
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From danms at us.ibm.com Wed May 7 18:27:59 2008
From: danms at us.ibm.com (Dan Smith)
Date: Wed, 07 May 2008 11:27:59 -0700
Subject: [Libvirt-cim] [PATCH] Add PoolID into DevicePool instances
In-Reply-To: <4821F14D.7040806@linux.vnet.ibm.com> (Kaitlin Rupert's message
of "Wed, 07 May 2008 11:13:33 -0700")
References:
<4821F14D.7040806@linux.vnet.ibm.com>
Message-ID: <87r6cej7f4.fsf@caffeine.beaverton.ibm.com>
KR> Since we had to set the InstanceID, PoolID, and ResourceType for
KR> all 4 devices, should we farm that out to a different function?
That was my initial thought, however the code is structured in such a
way that each of those handler functions can return more than one pool
if needed. As such, we could loop through the list at the end and
copy the InstanceID to the PoolID. However, as I explain it now, I
can't come up with a reasonable justification to not to that :)
--
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms at us.ibm.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL:
From deeptik at linux.vnet.ibm.com Thu May 8 06:00:17 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Thu, 08 May 2008 11:30:17 +0530
Subject: [Libvirt-cim] [PATCH] [TEST] #2 Updating 01_forward.py of SDC
to support XenFV, KVM
In-Reply-To:
References:
Message-ID: <482296F1.4090104@linux.vnet.ibm.com>
Any comments on this patch ?
Deepti B. Kalakeri wrote:
> # HG changeset patch
> # User Deepti B. Kalakeri
> # Date 1210164893 25200
> # Node ID adcbedf23f1d58e809fb4d91d6c40f83f21b776c
> # Parent 88d20825a9ba6dd3d070e02f698a7846b7e3a2c8
> [TEST] #2 Updating 01_forward.py of SDC to support XenFV, KVM.
>
> 1) To make use of the lib fn conf_file(), cleanup_restore() and create_diskpool_file().
> 2) To use the lib fn print_field_error.
> 3) To retain the PropertyPolicy, ValueRole, ValueRange depending on the revision no.
> 4) Tested on rpm based libvirt-cim KVM machine, latest libvirt-cim for KVM and Xen, XenFV.
>
> Signed-off-by: Deepti B. Kalakeri
>
> diff -r 88d20825a9ba -r adcbedf23f1d suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py
> --- a/suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py Wed May 07 05:34:23 2008 -0700
> +++ b/suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py Wed May 07 05:54:53 2008 -0700
> @@ -55,135 +55,86 @@ import sys
> import sys
> import os
> from distutils.file_util import move_file
> -from VirtLib import utils
> from XenKvmLib import assoc
> from XenKvmLib import enumclass
> -from CimTest import Globals
> -from CimTest.Globals import do_main
> from XenKvmLib.test_xml import netxml
> from XenKvmLib.test_doms import create_vnet
> from VirtLib.live import net_list
> from CimTest.ReturnCodes import PASS, FAIL, SKIP
> +from CimTest.Globals import do_main, platform_sup, logger, \
> +CIM_ERROR_GETINSTANCE, CIM_ERROR_ASSOCIATORS
> +from XenKvmLib.classes import get_typed_class
> +from XenKvmLib.common_util import cleanup_restore, test_dpath, \
> +create_diskpool_file
> +from XenKvmLib.common_util import print_field_error
> +from XenKvmLib.const import CIM_REV
>
> -sup_types = ['Xen']
> -
> -status = PASS
> -test_dpath = "foo"
> -disk_file = '/tmp/diskpool.conf'
> -back_disk_file = disk_file + "." + "SSDC_01_forward"
> diskid = "%s/%s" % ("DiskPool", test_dpath)
> memid = "%s/%s" % ("MemoryPool", 0)
> procid = "%s/%s" % ("ProcessorPool", 0)
> +libvirtcim_rev = 571
>
> -def conf_file():
> +
> +def get_or_bail(virt, ip, id, pool_class):
> """
> - Creating diskpool.conf file.
> - """
> - try:
> - f = open(disk_file, 'w')
> - f.write('%s %s' % (test_dpath, '/'))
> - f.close()
> - except Exception,detail:
> - Globals.logger.error("Exception: %s", detail)
> - status = SKIP
> - sys.exit(status)
> -
> -def clean_up_restore():
> - """
> - Restoring back the original diskpool.conf
> - file.
> - """
> - try:
> - if os.path.exists(back_disk_file):
> - os.remove(disk_file)
> - move_file(back_disk_file, disk_file)
> - except Exception, detail:
> - Globals.logger.error("Exception: %s", detail)
> - status = SKIP
> - sys.exit(status)
> -
> -
> -def get_or_bail(ip, id, pool_class):
> - """
> - Getinstance for the CLass and return instance on success, otherwise
> + Getinstance for the Class and return instance on success, otherwise
> exit after cleanup_restore .
> """
> key_list = { 'InstanceID' : id }
> -
> try:
> - instance = enumclass.getInstance(ip, pool_class, key_list)
> + instance = enumclass.getInstance(ip, pool_class, key_list, virt)
> except Exception, detail:
> - Globals.logger.error(Globals.CIM_ERROR_GETINSTANCE, '%s' % pool_class)
> - Globals.logger.error("Exception: %s", detail)
> - clean_up_restore()
> - status = FAIL
> - sys.exit(status)
> + logger.error(CIM_ERROR_GETINSTANCE, '%s' % pool_class)
> + logger.error("Exception: %s", detail)
> + cleanup_restore()
> + sys.exit(FAIL)
> return instance
>
>
> -def init_list(disk, mem, net, proc):
> +def init_list(virt, dpool, npool, mpool, ppool):
> """
> Creating the lists that will be used for comparisons.
> """
>
> instlist = [
> - disk.InstanceID, \
> - mem.InstanceID, \
> - net.InstanceID, \
> - proc.InstanceID
> - ]
> + dpool.InstanceID,
> + mpool.InstanceID,
> + npool.InstanceID,
> + ppool.InstanceID
> + ]
> cllist = [
> - "Xen_DiskResourceAllocationSettingData", \
> - "Xen_MemResourceAllocationSettingData", \
> - "Xen_NetResourceAllocationSettingData", \
> - "Xen_ProcResourceAllocationSettingData"
> + get_typed_class(virt, "DiskResourceAllocationSettingData"),
> + get_typed_class(virt, "MemResourceAllocationSettingData"),
> + get_typed_class(virt, "NetResourceAllocationSettingData"),
> + get_typed_class(virt, "ProcResourceAllocationSettingData")
> ]
> rtype = {
> - "Xen_DiskResourceAllocationSettingData" : 17, \
> - "Xen_MemResourceAllocationSettingData" : 4, \
> - "Xen_NetResourceAllocationSettingData" : 10, \
> - "Xen_ProcResourceAllocationSettingData" : 3
> + get_typed_class(virt, "DiskResourceAllocationSettingData") : 17,
> + get_typed_class(virt, "MemResourceAllocationSettingData") : 4,
> + get_typed_class(virt, "NetResourceAllocationSettingData") : 10,
> + get_typed_class(virt, "ProcResourceAllocationSettingData") : 3
> }
> rangelist = {
> - "Default" : 0, \
> - "Minimum" : 1, \
> - "Maximum" : 2, \
> + "Default" : 0,
> + "Minimum" : 1,
> + "Maximum" : 2,
> "Increment" : 3
> }
> return instlist, cllist, rtype, rangelist
>
> +def get_pool_info(virt, server, devid, poolname=""):
> + pool_cname = get_typed_class(virt, poolname)
> + pool_cn = eval("enumclass." + pool_cname)
> + return get_or_bail(virt, server, id=devid, pool_class=pool_cn)
>
> -def print_error(index, fieldname, assoc_info, exp_value):
> - ret_value = assoc_info[index][fieldname]
> - Globals.logger.error("%s Mismatch", fieldname)
> - Globals.logger.error("Returned %s instead of %s", ret_value, exp_value)
> +def get_pool_details(virt, server):
> + dpool = npool = mpool = ppool = None
> + try :
> + dpool = get_pool_info(virt, server, diskid, poolname="DiskPool")
> + mpool = get_pool_info(virt, server, memid, poolname= "MemoryPool")
> + ppool = get_pool_info(virt, server, procid, poolname= "ProcessorPool")
>
> -
> - at do_main(sup_types)
> -def main():
> - options = main.options
> - global status
> -
> - cn = 'Xen_AllocationCapabilities'
> - loop = 0
> - server = options.ip
> -
> - # Taking care of already existing diskconf file
> - # Creating diskpool.conf if it does not exist
> - # Otherwise backing up the prev file and create new one.
> - os.system("rm -f %s" % back_disk_file )
> - if not (os.path.exists(disk_file)):
> - conf_file()
> - else:
> - move_file(disk_file, back_disk_file)
> - conf_file()
> -
> - try :
> - disk = get_or_bail(server, id=diskid, \
> - pool_class=enumclass.Xen_DiskPool)
> - mem = get_or_bail(server, id = memid, \
> - pool_class=enumclass.Xen_MemoryPool)
> - vir_network = net_list(server)
> + vir_network = net_list(server, virt)
> if len(vir_network) > 0:
> test_network = vir_network[0]
> else:
> @@ -192,68 +143,102 @@ def main():
> net_xml, bridge = netxml(server, bridgename, test_network)
> ret = create_vnet(server, net_xml)
> if not ret:
> - Globals.logger.error("Failed to create the Virtual Network '%s'", \
> - test_network)
> - return SKIP
> + logger.error("Failed to create Virtual Network '%s'",
> + test_network)
> + return SKIP, dpool, npool, mpool, ppool
> +
> netid = "%s/%s" % ("NetworkPool", test_network)
> - net = get_or_bail(server, id = netid, \
> - pool_class=enumclass.Xen_NetworkPool)
> - proc = get_or_bail(server, id = procid, \
> - pool_class=enumclass.Xen_ProcessorPool)
> + npool = get_pool_info(virt, server, netid, poolname= "NetworkPool")
>
> except Exception, detail:
> - Globals.logger.error("Exception: %s", detail)
> - clean_up_restore()
> - status = FAIL
> - return status
> + logger.error("Exception: %s", detail)
> + return FAIL, dpool, npool, mpool, ppool
>
> - instlist, cllist, rtype, rangelist = init_list(disk, mem, net, proc )
> + return PASS, dpool, npool, mpool, ppool
>
> +def verify_rasd_fields(loop, assoc_info, cllist, rtype, rangelist):
> + for inst in assoc_info:
> + if inst.classname != cllist[loop]:
> + print_field_error("Classname", inst.classname, cllist[loop])
> + return FAIL
> + if inst['ResourceType'] != rtype[cllist[loop]]:
> + print_field_error("ResourceType", inst['ResourceType'],
> + rtype[cllist[loop]])
> + return FAIL
> +
> + # The following properties have been removed in the patchset 571
> + # but is present in the rpm libvirt-cim and hence retained it.
> +
> + if CIM_REV < libvirtcim_rev:
> + ppolicy = inst['PropertyPolicy']
> + if ppolicy != 0 and ppolicy != 1:
> + print_field_error("PropertyPolicy", inst['PropertyPolicy'],
> + ppolicy)
> + return FAIL
> +
> + vrole = inst['ValueRole']
> + if vrole < 0 or vrole > 4:
> + print_field_error("ValueRole", inst['ValueRole'], vrole)
> + return FAIL
> +
> + insid = inst['InstanceID']
> + vrange = rangelist[insid]
> + if vrange != inst['ValueRange']:
> + print_field_error("ValueRange", inst['ValueRange'], vrange)
> + return FAIL
> +
> + return PASS
> +
> +def verify_sdc_with_ac(virt, server, dpool, npool, mpool, ppool):
> + loop = 0
> + instlist, cllist, rtype, rangelist = init_list(virt, dpool, npool, mpool,
> + ppool)
> + assoc_cname = get_typed_class(virt, "SettingsDefineCapabilities")
> + cn = get_typed_class(virt, "AllocationCapabilities")
> for instid in sorted(instlist):
> try:
> - assoc_info = assoc.Associators(options.ip, \
> - "Xen_SettingsDefineCapabilities",
> - cn,
> - InstanceID = instid)
> + assoc_info = assoc.Associators(server, assoc_cname, cn,
> + InstanceID = instid, virt=virt)
> if len(assoc_info) != 4:
> - Globals.logger.error("Xen_SettingsDefineCapabilities returned \
> -%i ResourcePool objects instead 4", len(assoc_info))
> + logger.error("%s returned %i ResourcePool objects"
> + "instead 4", assoc_cname, len(assoc_info))
> status = FAIL
> break
> - for i in range(len(assoc_info)):
> - if assoc_info[i].classname != cllist[loop]:
> - print_error(i, "Classname", assoc_info, cllist[loop])
> - status = FAIL
> - if assoc_info[i]['ResourceType'] != rtype[cllist[loop]]:
> - print_error(i, "ResourceType", assoc_info, rtype[cllist[loop]])
> - status = FAIL
> - ppolicy = assoc_info[i]['PropertyPolicy']
> - if ppolicy != 0 and ppolicy != 1:
> - print_error(i, "PropertyPolicy", assoc_info, ppolicy)
> - status = FAIL
> - vrole = assoc_info[i]['ValueRole']
> - if vrole < 0 or vrole > 4:
> - print_error(i, "ValueRole", assoc_info, vrole)
> - status = FAIL
> - insid = assoc_info[i]['InstanceID']
> - vrange = rangelist[insid]
> - if vrange != assoc_info[i]['ValueRange']:
> - print_error(i, "ValueRange", assoc_info, vrange)
> - status = FAIL
> - if status != 0:
> - break
> - if status != 0:
> +
> + status = verify_rasd_fields(loop, assoc_info, cllist, rtype,
> + rangelist)
> + if status != PASS:
> break
> else:
> loop = loop + 1
> +
> except Exception, detail:
> - Globals.logger.error(Globals.CIM_ERROR_ASSOCIATORS, \
> - 'Xen_SettingsDefineCapabilities')
> - Globals.logger.error("Exception: %s", detail)
> - clean_up_restore()
> + logger.error(CIM_ERROR_ASSOCIATORS, assoc_cname)
> + logger.error("Exception: %s", detail)
> status = FAIL
>
> - clean_up_restore()
> + return status
> +
> + at do_main(platform_sup)
> +def main():
> + options = main.options
> +
> + server = options.ip
> + virt = options.virt
> +
> + # Verify DiskPool on machine
> + status = create_diskpool_file()
> + if status != PASS:
> + return status
> +
> + status, dpool, npool, mpool, ppool = get_pool_details(virt, server)
> + if status != PASS or dpool.InstanceID == None or mpool.InstanceID == None \
> + or npool.InstanceID == None or ppool.InstanceID == None:
> + cleanup_restore()
> + return FAIL
> +
> + status = verify_sdc_with_ac(virt, server, dpool, npool, mpool, ppool)
> + cleanup_restore()
> return status
>
> if __name__ == "__main__":
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
>
From deeptik at linux.vnet.ibm.com Thu May 8 06:53:04 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Thu, 08 May 2008 12:23:04 +0530
Subject: [Libvirt-cim] CimTest Report on XenFV 08-05-2008
Message-ID: <4822A350.2060702@linux.vnet.ibm.com>
======================================
CIM Test Report for XenFV
======================================
Distro : RHEL 5.2 Beta
Kernel : 2.6.18-88.el5xen
Xen version : 3.1.2-88.el5
Libvirt : libvirt-0.3.3-7.el5
CIMOM : pegasus
PyWBEM : pywbem-3.14
CIM Schema : cimv216Experimental
LibCMPIutil : 76
LibVirtCIM : 580
CIMTEST : 135
======================================
PASS : 76
FAIL : 25 (Previously 41 Failed)
XFAIL : 3
SKIP : 25
-----------------
Total : 129
======================================
List of test cases that are failing:
ComputerSystem - 03_defineVS.py: FAIL
ComputerSystem - 04_defineStartVS.py: FAIL
ComputerSystem - 05_activate_defined_start.py: FAIL
ComputerSystem - 06_paused_active_suspend.py: FAIL
ComputerSystem - 23_suspend_suspend.py: FAIL
ComputerSystem - 27_define_suspend_errs.py: FAIL
ComputerSystem - 32_start_reboot.py: FAIL
ComputerSystem - 33_suspend_reboot.py: FAIL
ComputerSystem - 35_start_reset.py: FAIL
ComputerSystem - 40_RSC_start.py: FAIL
ElementCapabilities - 01_forward.py: FAIL
ElementConforms - 01_forward.py: FAIL
EnabledLogicalElementCapabilities - 01_enum.py: FAIL
HostSystem - 02_hostsystem_to_rasd.py: FAIL
HostSystem - 03_hs_to_settdefcap.py: FAIL
LogicalDisk - 03_ld_gi_errs.py: FAIL
Memory - 01_memory.py: FAIL
Memory - 02_defgetmem.py: FAIL
Processor - 02_definesys_get_procs.py: FAIL
ResourceAllocationFromPool - 05_RAPF_err.py: FAIL
SettingsDefine - 02_reverse.py: FAIL
VSSD - 04_vssd_to_rasd.py: FAIL
VirtualSystemManagementService - 01_definesystem_name.py: FAIL
VirtualSystemManagementService - 02_destroysystem.py: FAIL
VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
Please find the complete test result along with the failures attached
with the mail.
Thanks and Regards,
Deepti.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: May-08-XenFV-report
URL:
From deeptik at linux.vnet.ibm.com Thu May 8 10:19:29 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Thu, 08 May 2008 15:49:29 +0530
Subject: [Libvirt-cim] Re: CimTest Report on XenFV 08-05-2008
In-Reply-To: <4822A350.2060702@linux.vnet.ibm.com>
References: <4822A350.2060702@linux.vnet.ibm.com>
Message-ID: <4822D3B1.2000707@linux.vnet.ibm.com>
Deepti B Kalakeri wrote:
> ======================================
> CIM Test Report for XenFV
> ======================================
> Distro : RHEL 5.2 Beta
> Kernel : 2.6.18-88.el5xen
> Xen version : 3.1.2-88.el5
> Libvirt : libvirt-0.3.3-7.el5
> CIMOM : pegasus
> PyWBEM : pywbem-3.14
> CIM Schema : cimv216Experimental
> LibCMPIutil : 76
> LibVirtCIM : 580
> CIMTEST : 135
> ======================================
> PASS : 76
> FAIL : 25 (Previously 41 Failed)
> XFAIL : 3
> SKIP : 25
> -----------------
> Total : 129
> ======================================
>
> List of test cases that are failing:
> ComputerSystem - 03_defineVS.py: FAIL
Passed when ran manually.
> ComputerSystem - 04_defineStartVS.py: FAIL
The Value of the enablestate is not getting set to 2 no longer wat
timeout value we give.
> ComputerSystem - 05_activate_defined_start.py: FAIL
The might have failed bcs of already existing domain with the same name
on the machine.
The tc XFAIL when run manually.
> ComputerSystem - 06_paused_active_suspend.py: FAIL
The XenFV domain that is getting created has enablestate set to 0.
But when we create a Xen Domain the enablestate is set appropriately.
> ComputerSystem - 23_suspend_suspend.py: FAIL
> ComputerSystem - 27_define_suspend_errs.py: FAIL
> ComputerSystem - 32_start_reboot.py: FAIL
> ComputerSystem - 33_suspend_reboot.py: FAIL
> ComputerSystem - 35_start_reset.py: FAIL
> ComputerSystem - 40_RSC_start.py: FAIL
All the above tc are failing with the error "Resource type not supported
on this platform"
> ElementCapabilities - 01_forward.py: FAIL
EC now returns AC , needs tc modification.
> ElementConforms - 01_forward.py: FAIL
Passed when run manually.
> EnabledLogicalElementCapabilities - 01_enum.py: FAIL
Passed when run manually.
> HostSystem - 02_hostsystem_to_rasd.py: FAIL
Passed when run manually.
> HostSystem - 03_hs_to_settdefcap.py: FAIL
The field -PropertyPolicy is no longer returned as part of association
between SDC with AC.
> LogicalDisk - 03_ld_gi_errs.py: FAIL
> Memory - 01_memory.py: FAIL
Passed when run manually
> Memory - 02_defgetmem.py: FAIL
> Processor - 02_definesys_get_procs.py: FAIL
The above tc are failing with the error "Resource type not supported on
this platform"
> ResourceAllocationFromPool - 05_RAPF_err.py: FAIL
Passed when run manually
> SettingsDefine - 02_reverse.py: FAIL
SDS expects InstanceID "testdom/0" instead of "testdom/proc".
> VSSD - 04_vssd_to_rasd.py: FAIL
Passed when run manually
> VirtualSystemManagementService - 01_definesystem_name.py: FAIL
The above tc are failing with the error "Resource type not supported on
this platform"
> VirtualSystemManagementService - 02_destroysystem.py: FAIL
The tc is failing with "Unable to retrieve domain name". The domains on
the test machine are getting created with enablestate value set to 0,
and hence I think this tc is failing.
Can someone tell me what could be the reason for the XenFV Domains to be
created with the "No State" ??
> VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
Needs tc modification, the provider now returns the exception
'CIM_ERR_FAILED: Unable to retrieve domain name.'
>
> Please find the complete test result along with the failures attached
> with the mail.
>
> Thanks and Regards,
> Deepti.
> ------------------------------------------------------------------------
>
> Starting test suite: libvirt-cim
> Cleaned log files.
> Testing XenFV hypervisor
> AllocationCapabilities - 01_enum.py: PASS
> AllocationCapabilities - 02_alloccap_gi_errs.py: PASS
> ComputerSystem - 01_enum.py: PASS
> ComputerSystem - 02_nosystems.py: SKIP
> ERROR - System has defined domains; unable to run
> ComputerSystem - 03_defineVS.py: FAIL
> ERROR - Failed to enumerate the class of Xen_ComputerSystem
> ERROR - Exception: No defined domain (domU1) is found
> ERROR - Error: property values are not set for VS domU1
> ComputerSystem - 04_defineStartVS.py: FAIL
> ERROR - Error: property values are not set for VS domguest
> ComputerSystem - 05_activate_defined_start.py: FAIL
> ERROR - Exception: (1, u'CIM_ERR_FAILED: Invalid state transition')
> ERROR - Unable start dom DomST1 using RequestedStateChange()
> InvokeMethod(RequestStateChange): CIM_ERR_FAILED: Invalid state transition
> ComputerSystem - 06_paused_active_suspend.py: FAIL
> ERROR - ERROR: VS DomST1 was not created
> ComputerSystem - 22_define_suspend.py: PASS
> ComputerSystem - 23_suspend_suspend.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Unable to define domain test_domain using DefineSystem()
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ComputerSystem - 27_define_suspend_errs.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Unable to define domain test_domain using DefineSystem()
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ComputerSystem - 32_start_reboot.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Unable to define domain test_domain using DefineSystem()
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ComputerSystem - 33_suspend_reboot.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Unable to define domain test_domain using DefineSystem()
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ComputerSystem - 35_start_reset.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Unable to define domain test_domain using DefineSystem()
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ComputerSystem - 40_RSC_start.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Exception: ('Unable create domain %s using DefineSystem()', 'test_domain')
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ComputerSystem - 41_cs_to_settingdefinestate.py: SKIP
> ComputerSystem - 42_cs_gi_errs.py: PASS
> ComputerSystemIndication - 01_created_indication.py: PASS
> ElementAllocatedFromPool - 01_forward.py: SKIP
> ElementAllocatedFromPool - 02_reverse.py: SKIP
> ElementAllocatedFromPool - 03_reverse_errs.py: PASS
> ElementAllocatedFromPool - 04_forward_errs.py: PASS
> ElementCapabilities - 01_forward.py: FAIL
> ERROR - ElementCapabilities association classname error
> 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: FAIL
> ERROR - Failed to get associators information for ElementConformsToProfile
> ERROR - Exception: not enough arguments for format string
> ElementConforms - 02_reverse.py: PASS
> ElementConforms - 03_ectp_fwd_errs.py: PASS
> ElementConforms - 04_ectp_rev_errs.py: PASS
> ElementSettingData - 01_forward.py: SKIP
> ElementSettingData - 03_esd_assoc_with_rasd_errs.py: SKIP
> EnabledLogicalElementCapabilities - 01_enum.py: FAIL
> ERROR - Get domain list error, the number of domains is not equal
> EnabledLogicalElementCapabilities - 02_elecap_gi_errs.py: PASS
> HostSystem - 01_enum.py: PASS
> HostSystem - 02_hostsystem_to_rasd.py: FAIL
> ERROR - Xen_HostSystem with CrossClass_GuestDom was not returned
> HostSystem - 03_hs_to_settdefcap.py: FAIL
> ERROR - Error checking RASD attribute values 'propertypolicy'
> ERROR - SystemExit : 1
> HostSystem - 04_hs_to_EAPF.py: SKIP
> HostSystem - 05_hs_gi_errs.py: PASS
> HostSystem - 06_hs_to_vsms.py: PASS
> HostedDependency - 01_forward.py: SKIP
> HostedDependency - 02_reverse.py: SKIP
> HostedDependency - 03_enabledstate.py: SKIP
> HostedDependency - 04_reverse_errs.py: SKIP
> 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: SKIP
> ERROR - System has defined domains; unable to run
> LogicalDisk - 03_ld_gi_errs.py: FAIL
> ERROR - Failed to get instance by the class of Xen_LogicalDisk
> ERROR - Exception: (6, u'CIM_ERR_NOT_FOUND: No such instance (hd_domain/hda)')
> Memory - 01_memory.py: FAIL
> ERROR - Capacity should be 256 MB instead of 128 MB
> Memory - 02_defgetmem.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Exception: Unable to create domain domu using DefineSys()
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> Memory - 03_mem_gi_errs.py: PASS
> NetworkPort - 01_netport.py: XFAIL Bug: 90844
> ERROR - Exception: (6, u'CIM_ERR_NOT_FOUND: No such instance (test_domain/00:11:22:33:44:55)')
> Bug:<90844>
> NetworkPort - 02_np_gi_errors.py: PASS
> NetworkPort - 03_user_netport.py: SKIP
> Processor - 01_processor.py: PASS
> Processor - 02_definesys_get_procs.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> ERROR - Exception: Unable create domain test_domain using DefineSystem()
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> Processor - 03_proc_gi_errs.py: PASS
> Profile - 01_enum.py: SKIP
> Profile - 02_profile_to_elec.py: SKIP
> Profile - 03_rprofile_gi_errs.py: SKIP
> RASD - 01_verify_rasd_fields.py: PASS
> RASD - 02_enum.py: PASS
> RASD - 03_rasd_errs.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: FAIL
> ERROR - Xen_NetResourceAllocationSettingData with RAPF_domain was not returned
> ERROR - ------FAILED: to verify the RAFP.------
> 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: PASS
> ResourcePoolConfigurationService - 02_rcps_gi_errors.py: PASS
> ResourcePoolConfigurationService - 03_CreateResourcePool.py: PASS
> ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: PASS
> ResourcePoolConfigurationService - 05_AddResourcesToResourcePool.py: XFAIL Bug: 92173
> ERROR - Unexpected rc code 1 and description CIM_ERR_FAILED: Unknown Method
>
> InvokeMethod(AddResourcesToResourcePool): CIM_ERR_FAILED: Unknown Method
> Bug:<92173>
> ResourcePoolConfigurationService - 06_RemoveResourcesFromResourcePool.py: PASS
> ResourcePoolConfigurationService - 07_DeleteResourcePool.py: PASS
> SettingsDefine - 01_forward.py: PASS
> SettingsDefine - 02_reverse.py: FAIL
> ERROR - Mistmatching value for VSSDComponent association
> CIM_ERR_NOT_FOUND: No such instance (virtgst/proc)
> SettingsDefine - 03_sds_fwd_errs.py: PASS
> SettingsDefine - 04_sds_rev_errs.py: PASS
> SettingsDefineCapabilities - 01_forward.py: SKIP
> 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: FAIL
> ERROR - Xen_VirtualSystemSettingData with VSSDC_dom was not returned
> ERROR - Xen_VirtualSystemSettingData returned 0 VSSD objects, expected only 1
> VirtualSystemManagementCapabilities - 01_enum.py: PASS
> VirtualSystemManagementCapabilities - 02_vsmcap_gi_errs.py: PASS
> VirtualSystemManagementService - 01_definesystem_name.py: FAIL
> ERROR - Unexpected rc code 1 and description:
> CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: Resource type not supported on this platform
> VirtualSystemManagementService - 02_destroysystem.py: FAIL
> ERROR - Unknow exception happened
> ERROR - (1, u'CIM_ERR_FAILED: Unable to retrieve domain name.')
> ERROR - Destroyed multiple domains
> InvokeMethod(DestroySystem): CIM_ERR_FAILED: Unable to retrieve domain name.
> VirtualSystemManagementService - 03_definesystem_ess.py: PASS
> VirtualSystemManagementService - 04_definesystem_ers.py: PASS
> VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
> ERROR - destroy_fail>>noname: Error executing DestroySystem, exception details below
> ERROR - (1, u'CIM_ERR_FAILED: Unable to retrieve domain name.')
> ERROR - destroy_fail>>nonexistent: Error executing DestroySystem, exception details below
> ERROR - (1, u'CIM_ERR_FAILED: Failed to find domain')
> InvokeMethod(DestroySystem): CIM_ERR_FAILED: Unable to retrieve domain name.
> InvokeMethod(DestroySystem): CIM_ERR_FAILED: Failed to find domain
> VirtualSystemManagementService - 06_addresource.py: SKIP
> VirtualSystemManagementService - 07_addresource_neg.py: PASS
> VirtualSystemManagementService - 08_modifyresource.py: XFAIL Bug: 90853
> ERROR - Error invoking ModifyRS
> ERROR - (1, u"CIM_ERR_FAILED: Unknown system `rstest_domain'")
> InvokeMethod(ModifyResourceSettings): CIM_ERR_FAILED: Unknown system `rstest_domain'
> Bug:<90853>
> 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: SKIP
> 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
>
>
From deeptik at linux.vnet.ibm.com Thu May 8 12:26:26 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Thu, 08 May 2008 17:56:26 +0530
Subject: [Libvirt-cim] [TEST] test cases fix list and assignment for the
next week
In-Reply-To: <87mynand55.fsf@caffeine.beaverton.ibm.com>
References:
<48174407.9020804@linux.vnet.ibm.com>
<87d4o8ievv.fsf@caffeine.beaverton.ibm.com>
<4817C734.3090309@linux.vnet.ibm.com>
<4818EB63.5050505@linux.vnet.ibm.com>
<87mynand55.fsf@caffeine.beaverton.ibm.com>
Message-ID: <4822F172.4050409@linux.vnet.ibm.com>
Dan Smith wrote:
> KR> I think what Dan meant is that we should be using a network
> KR> interface type for the cimtest guests.
>
> Well, the providers should be creating ,
> so I need to check and make sure we're doing that.
>
I checked whether the provider adds the and
it does for KVM.
I tried creating the KVM guest with two interface types:
1) Network Type :
It needs the following fields in the xml file:
We are handling this in the provider code.
2) Bridge Type :
It needs the following fields in the xml file:
The provider code in the xmlgen.c file does not support the KVM
guest to be created with the "bridge" type.
1) Also, I noticed that for creating the Xen guest we do not require the
field in the section for both Network and Bridge
interface Types.
But for the KVM guest its compulsory to have the field in
the section for both Network and Bridge interface Types.
2) Any specific reason for not supporting the KVM guest to be created
for the bridge type interface, and supporting Xen guest with only bridge
type ?
3) Also, I did not understand the need for the script field in the
interface section. We can create the Xen, KVM guests without this.
> KR> Dan - should the provider return an error if the guest doesn't use
> KR> a network type interface?
>
> Meaning an existing guest created outside the providers with a network
> type we don't support? I dunno, I'll have to think on that one.
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
Thanks and Regards,
Deepti.
From deeptik at linux.vnet.ibm.com Thu May 8 12:29:32 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Thu, 08 May 2008 17:59:32 +0530
Subject: [Libvirt-cim] Re: CimTest Report for KVM on F9 07-05-2008
In-Reply-To: <4821B60B.8020900@linux.vnet.ibm.com>
References: <48214FDA.1040004@linux.vnet.ibm.com>
<4821B19D.4090307@linux.vnet.ibm.com>
<4821B60B.8020900@linux.vnet.ibm.com>
Message-ID: <4822F22C.1020902@linux.vnet.ibm.com>
Kaitlin Rupert wrote:
>>> VirtualSystemManagementService - 06_addresource.py: FAIL
>>
>> e9bc806e-1c65-11dd-b5f9-001a646394d4
>> rstest_domain
>> destroy
>> destroy
>>
>> hvm
>>
>>
>> 131072
>> 131072
>> 1
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> misc_util.c(72): Connecting to libvirt with uri `qemu:///system'
>> libvir: QEMU error : internal error No 'dev' attribute
>> specified with
>> Virt_VirtualSystemManagementService.c(595): Failed to define domain
>> from XML
>> std_invokemethod.c(305): Method `AddResourceSettings' returned 1
>>
>> The tc Failed to create the domain bcs of the missing > bridge='testbridge'/> tag in the xml.
>> With the in the xml file we can create
>> the kvm guest successfully.
>
> Can you check to see if this needs to be fixed in xvml.py.
The test case support the KVM guest to be created with bridge type
interface by default, but the provider code does not support KVM with
for bridge and supports only network interface type.
Hence this problem. I can modify the vxml.py to use network type by
default for KVM.
>
>>
>>> VirtualSystemSettingDataComponent - 04_vssdc_rev_errs.py
>> Segmentation fault.
>>>
>
>
>
From kaitlin at linux.vnet.ibm.com Thu May 8 14:33:32 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Thu, 08 May 2008 07:33:32 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] #2 Updating 01_forward.py of SDC
to support XenFV, KVM
In-Reply-To:
References:
Message-ID: <48230F3C.3060206@linux.vnet.ibm.com>
Sorry for the delayed response Deepti - I was having trouble applying
this patch yesterday. I switched machines, and it seems to apply fine.
This test fails for me with KVM on F9 using recent sources. Here's the
output:
SettingsDefineCapabilities - 01_forward.py: FAIL
ERROR - AttributeError : 'list' object has no attribute 'InstanceID'
CIM_ERR_NOT_FOUND: No such instance (foo)
CIM_ERR_NOT_FOUND: No such instance (default-net)
> [TEST] #2 Updating 01_forward.py of SDC to support XenFV, KVM.
>
> 1) To make use of the lib fn conf_file(), cleanup_restore() and create_diskpool_file().
> 2) To use the lib fn print_field_error.
> 3) To retain the PropertyPolicy, ValueRole, ValueRange depending on the revision no.
> 4) Tested on rpm based libvirt-cim KVM machine, latest libvirt-cim for KVM and Xen, XenFV.
I'm not sure how this passed for you with the latest libvirt-cim on KVM.
See my note below..
> +
> + at do_main(platform_sup)
> +def main():
> + options = main.options
> +
> + server = options.ip
> + virt = options.virt
> +
> + # Verify DiskPool on machine
> + status = create_diskpool_file()
> + if status != PASS:
> + return status
Looks like there's two issues here. The first error is referring to the
diskpool. With recent sources, we need to create a diskpool (instead of
using the diskpool config file). create_diskpool_file() does not
currently create a diskpool - it only creates a diskpool config file.
The second issue looks to be related to the virtual network pool.
Anyway, I'd suggest verifying that nothing is broken with the network
pool portion of the test and then resending this patch with a note
saying this doesn't work currently with KVM on recent sources.
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From danms at us.ibm.com Thu May 8 16:26:06 2008
From: danms at us.ibm.com (Dan Smith)
Date: Thu, 08 May 2008 09:26:06 -0700
Subject: [Libvirt-cim] [PATCH] Add PoolID into DevicePool instances
Message-ID: <1eef845c77d096d65b25.1210263966@guaranine.danplanet.com>
# HG changeset patch
# User Dan Smith
# Date 1210263836 25200
# Node ID 1eef845c77d096d65b256384423b93cda19fb8db
# Parent a46dd9e2e4efbea37e7e5d2cf8c285e1a56bd726
Add PoolID into DevicePool instances
Changes:
- Consolidate the setting of common ResourcePool attributes
Signed-off-by: Dan Smith
diff -r a46dd9e2e4ef -r 1eef845c77d0 src/Virt_DevicePool.c
--- a/src/Virt_DevicePool.c Thu May 08 08:25:23 2008 -0700
+++ b/src/Virt_DevicePool.c Thu May 08 09:23:56 2008 -0700
@@ -561,13 +561,28 @@ static bool procpool_set_total(CMPIInsta
return procs != 0;
}
-static bool set_units(CMPIInstance *inst,
- const char *units)
-{
- CMSetProperty(inst, "AllocationUnits",
- (CMPIValue *)units, CMPI_chars);
-
- return true;
+static void set_params(CMPIInstance *inst,
+ uint16_t type,
+ const char *id,
+ const char *units,
+ const char *caption)
+{
+ CMSetProperty(inst, "InstanceID",
+ (CMPIValue *)id, CMPI_chars);
+
+ CMSetProperty(inst, "PoolID",
+ (CMPIValue *)id, CMPI_chars);
+
+ CMSetProperty(inst, "ResourceType",
+ (CMPIValue *)&type, CMPI_uint16);
+
+ if (units != NULL)
+ CMSetProperty(inst, "AllocationUnits",
+ (CMPIValue *)units, CMPI_chars);
+
+ if (caption != NULL)
+ CMSetProperty(inst, "Caption",
+ (CMPIValue *)caption, CMPI_chars);
}
static CMPIStatus mempool_instance(virConnectPtr conn,
@@ -577,7 +592,6 @@ static CMPIStatus mempool_instance(virCo
const CMPIBroker *broker)
{
const char *id = "MemoryPool/0";
- uint16_t type = CIM_RES_TYPE_MEM;
CMPIInstance *inst;
CMPIStatus s = {CMPI_RC_OK, NULL};
@@ -595,13 +609,8 @@ static CMPIStatus mempool_instance(virCo
mempool_set_total(inst, conn);
mempool_set_reserved(inst, conn);
- set_units(inst, "KiloBytes");
-
- CMSetProperty(inst, "InstanceID",
- (CMPIValue *)id, CMPI_chars);
-
- CMSetProperty(inst, "ResourceType",
- (CMPIValue *)&type, CMPI_uint16);
+
+ set_params(inst, CIM_RES_TYPE_MEM, id, "KiloBytes", NULL);
inst_list_add(list, inst);
@@ -615,7 +624,6 @@ static CMPIStatus procpool_instance(virC
const CMPIBroker *broker)
{
const char *id = "ProcessorPool/0";
- uint16_t type = CIM_RES_TYPE_PROC;
CMPIInstance *inst;
CMPIStatus s = {CMPI_RC_OK, NULL};
@@ -632,13 +640,8 @@ static CMPIStatus procpool_instance(virC
ns);
procpool_set_total(inst, conn);
- set_units(inst, "Processors");
-
- CMSetProperty(inst, "InstanceID",
- (CMPIValue *)id, CMPI_chars);
-
- CMSetProperty(inst, "ResourceType",
- (CMPIValue *)&type, CMPI_uint16);
+
+ set_params(inst, CIM_RES_TYPE_PROC, id, "Processors", NULL);
inst_list_add(list, inst);
@@ -653,9 +656,9 @@ static CMPIStatus _netpool_for_network(s
const CMPIBroker *broker)
{
CMPIStatus s = {CMPI_RC_OK, NULL};
- char *str = NULL;
+ char *id = NULL;
+ char *cap = NULL;
char *bridge = NULL;
- uint16_t type = CIM_RES_TYPE_NET;
CMPIInstance *inst;
virNetworkPtr network = NULL;
@@ -681,36 +684,27 @@ static CMPIStatus _netpool_for_network(s
goto out;
}
- if (asprintf(&str, "NetworkPool/%s", netname) == -1) {
+ if (asprintf(&id, "NetworkPool/%s", netname) == -1) {
cu_statusf(broker, &s,
CMPI_RC_ERR_FAILED,
"");
goto out;
}
- CMSetProperty(inst, "InstanceID",
- (CMPIValue *)str, CMPI_chars);
- free(str);
-
bridge = virNetworkGetBridgeName(network);
- if (asprintf(&str, "Bridge: %s", bridge) == -1) {
+ if (asprintf(&cap, "Bridge: %s", bridge) == -1) {
cu_statusf(broker, &s,
CMPI_RC_ERR_FAILED,
"");
goto out;
}
- CMSetProperty(inst, "Caption",
- (CMPIValue *)str, CMPI_chars);
- free(str);
+ set_params(inst, CIM_RES_TYPE_NET, id, NULL, cap);
+ free(id);
+ free(cap);
free(bridge);
- CMSetProperty(inst, "ResourceType",
- (CMPIValue *)&type, CMPI_uint16);
-
-
inst_list_add(list, inst);
-
out:
virNetworkFree(network);
@@ -778,24 +772,13 @@ static CMPIInstance *diskpool_from_path(
{
CMPIInstance *inst;
char *poolid = NULL;
- const uint16_t type = CIM_RES_TYPE_DISK;
inst = get_typed_instance(broker, refcn, "DiskPool", ns);
if (asprintf(&poolid, "DiskPool/%s", pool->tag) == -1)
return NULL;
- CMSetProperty(inst, "InstanceID",
- (CMPIValue *)poolid, CMPI_chars);
-
- CMSetProperty(inst, "ResourceType",
- (CMPIValue *)&type, CMPI_uint16);
-
- CMSetProperty(inst, "AllocationUnits",
- (CMPIValue *)"Megabytes", CMPI_chars);
-
- CMSetProperty(inst, "Caption",
- (CMPIValue *)pool->tag, CMPI_chars);
+ set_params(inst, CIM_RES_TYPE_DISK, poolid, "Megabytes", pool->tag);
if (!diskpool_set_capacity(conn, inst, pool))
CU_DEBUG("Failed to set capacity for disk pool: %s",
From danms at us.ibm.com Thu May 8 16:37:29 2008
From: danms at us.ibm.com (Dan Smith)
Date: Thu, 08 May 2008 09:37:29 -0700
Subject: [Libvirt-cim] [PATCH] Change VirtualQuantity to uint64 in all
sample RASDs
Message-ID:
# HG changeset patch
# User Dan Smith
# Date 1210264590 25200
# Node ID c2465f3f0a2472a45f90707ce9653ad2c59bb50b
# Parent 1eef845c77d096d65b256384423b93cda19fb8db
Change VirtualQuantity to uint64 in all sample RASDs
Signed-off-by: Dan Smith
diff -r 1eef845c77d0 -r c2465f3f0a24 src/Virt_SettingsDefineCapabilities.c
--- a/src/Virt_SettingsDefineCapabilities.c Thu May 08 09:23:56 2008 -0700
+++ b/src/Virt_SettingsDefineCapabilities.c Thu May 08 09:36:30 2008 -0700
@@ -403,13 +403,13 @@ static struct sdc_rasd_prop *proc_min(co
CMPIStatus *s)
{
bool ret;
- uint16_t num_procs = 1;
+ uint64_t num_procs = 1;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Minimum", CMPI_chars},
{"AllocationUnits", (CMPIValue *)"Processors", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&num_procs, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&num_procs, CMPI_uint64},
PROP_END
};
@@ -428,7 +428,7 @@ static struct sdc_rasd_prop *proc_max(co
{
bool ret;
virConnectPtr conn;
- uint16_t num_procs = 0;
+ uint64_t num_procs = 0;
struct sdc_rasd_prop *rasd = NULL;
CU_DEBUG("In proc_max()");
@@ -447,7 +447,7 @@ static struct sdc_rasd_prop *proc_max(co
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Maximum", CMPI_chars},
{"AllocationUnits", (CMPIValue *)"Processors", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&num_procs, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&num_procs, CMPI_uint64},
PROP_END
};
@@ -466,13 +466,13 @@ static struct sdc_rasd_prop *proc_def(co
CMPIStatus *s)
{
bool ret;
- uint16_t num_procs = 1;
+ uint64_t num_procs = 1;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Default", CMPI_chars},
{"AllocationUnits", (CMPIValue *)"Processors", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&num_procs, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&num_procs, CMPI_uint64},
PROP_END
};
@@ -490,13 +490,13 @@ static struct sdc_rasd_prop *proc_inc(co
CMPIStatus *s)
{
bool ret;
- uint16_t num_procs = 1;
+ uint64_t num_procs = 1;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Increment", CMPI_chars},
{"AllocationUnits", (CMPIValue *)"Processors", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&num_procs, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&num_procs, CMPI_uint64},
PROP_END
};
@@ -514,38 +514,38 @@ static struct sdc_rasd_prop *net_min(con
CMPIStatus *s)
{
bool ret;
- uint16_t num_nics = 0;
+ uint64_t num_nics = 0;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Minimum", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint16},
- PROP_END
- };
-
- ret = dup_rasd_prop_list(tmp, &rasd);
- if (!ret) {
- cu_statusf(_BROKER, s,
- CMPI_RC_ERR_FAILED,
- "Could not copy RASD");
- }
-
- return rasd;
-}
-
-static uint16_t net_max_kvm(const CMPIObjectPath *ref,
+ {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint64},
+ PROP_END
+ };
+
+ ret = dup_rasd_prop_list(tmp, &rasd);
+ if (!ret) {
+ cu_statusf(_BROKER, s,
+ CMPI_RC_ERR_FAILED,
+ "Could not copy RASD");
+ }
+
+ return rasd;
+}
+
+static uint64_t net_max_kvm(const CMPIObjectPath *ref,
CMPIStatus *s)
{
/* This appears to not require anything dynamic. */
return KVM_MAX_NICS;
}
-static uint16_t net_max_xen(const CMPIObjectPath *ref,
+static uint64_t net_max_xen(const CMPIObjectPath *ref,
CMPIStatus *s)
{
int rc;
virConnectPtr conn;
unsigned long version;
- uint16_t num_nics = -1;
+ uint64_t num_nics = -1;
conn = connect_by_classname(_BROKER, CLASSNAME(ref), s);
if (s->rc != CMPI_RC_OK) {
@@ -579,7 +579,7 @@ static struct sdc_rasd_prop *net_max(con
{
bool ret;
char *prefix;
- uint16_t num_nics;
+ uint64_t num_nics;
struct sdc_rasd_prop *rasd = NULL;
prefix = class_prefix_name(CLASSNAME(ref));
@@ -611,7 +611,7 @@ static struct sdc_rasd_prop *net_max(con
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Maximum", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint64},
PROP_END
};
@@ -630,11 +630,11 @@ static struct sdc_rasd_prop *net_def(con
CMPIStatus *s)
{
bool ret;
- uint16_t num_nics = 1;
+ uint64_t num_nics = 1;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Default", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint64},
PROP_END
};
@@ -652,12 +652,12 @@ static struct sdc_rasd_prop *net_inc(con
CMPIStatus *s)
{
bool ret;
- uint16_t num_nics = 1;
+ uint64_t num_nics = 1;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Increment", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint64},
PROP_END
};
@@ -675,13 +675,13 @@ static struct sdc_rasd_prop *disk_min(co
CMPIStatus *s)
{
bool ret;
- uint16_t disk_size = SDC_DISK_MIN;
+ uint64_t disk_size = SDC_DISK_MIN;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Minimum", CMPI_chars},
{"AllocationQuantity", (CMPIValue *)"MegaBytes", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&disk_size, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&disk_size, CMPI_uint64},
PROP_END
};
@@ -701,7 +701,7 @@ static struct sdc_rasd_prop *disk_max(co
bool ret;
const char *inst_id;
CMPIrc prop_ret;
- uint16_t free_space;
+ uint64_t free_space;
uint64_t free_64;
virConnectPtr conn;
CMPIInstance *pool_inst;
@@ -737,11 +737,11 @@ static struct sdc_rasd_prop *disk_max(co
}
CU_DEBUG("Got capacity from pool_inst: %lld", free_64);
- free_space = (uint16_t)free_64;
+ free_space = free_64;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Maximum", CMPI_chars},
{"AllocationQuantity", (CMPIValue *)"MegaBytes", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&free_space, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&free_space, CMPI_uint64},
PROP_END
};
@@ -760,13 +760,13 @@ static struct sdc_rasd_prop *disk_def(co
CMPIStatus *s)
{
bool ret;
- uint16_t disk_size = SDC_DISK_DEF;
+ uint64_t disk_size = SDC_DISK_DEF;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Default", CMPI_chars},
{"AllocationQuantity", (CMPIValue *)"MegaBytes", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&disk_size, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&disk_size, CMPI_uint64},
PROP_END
};
@@ -784,13 +784,13 @@ static struct sdc_rasd_prop *disk_inc(co
CMPIStatus *s)
{
bool ret;
- uint16_t disk_size = SDC_DISK_INC;
+ uint64_t disk_size = SDC_DISK_INC;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Increment", CMPI_chars},
{"AllocationQuantity", (CMPIValue *)"MegaBytes", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&disk_size, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&disk_size, CMPI_uint64},
PROP_END
};
From danms at us.ibm.com Thu May 8 17:11:57 2008
From: danms at us.ibm.com (Dan Smith)
Date: Thu, 08 May 2008 10:11:57 -0700
Subject: [Libvirt-cim] [PATCH] Make BlockSize * NumberOfBlocks result in the
correct number of bytes
Message-ID: <7d8223bceaf3206b1344.1210266717@guaranine.danplanet.com>
# HG changeset patch
# User Dan Smith
# Date 1210266649 25200
# Node ID 7d8223bceaf3206b13443db42e95d9e505ce5ff7
# Parent c2465f3f0a2472a45f90707ce9653ad2c59bb50b
Make BlockSize * NumberOfBlocks result in the correct number of bytes
Currently it adds up to kilobytes, so shift the size we get from libvirt
appropriately before doing the calculation.
Signed-off-by: Dan Smith
diff -r c2465f3f0a24 -r 7d8223bceaf3 src/Virt_Device.c
--- a/src/Virt_Device.c Thu May 08 09:36:30 2008 -0700
+++ b/src/Virt_Device.c Thu May 08 10:10:49 2008 -0700
@@ -141,8 +141,8 @@ static int mem_set_size(CMPIInstance *in
{
uint64_t consumableblocks, numberofblocks;
- consumableblocks = dev->size/XEN_MEM_BLOCKSIZE;
- numberofblocks = dev->maxsize/XEN_MEM_BLOCKSIZE;
+ consumableblocks = (dev->size << 10) / XEN_MEM_BLOCKSIZE;
+ numberofblocks = (dev->maxsize << 10) / XEN_MEM_BLOCKSIZE;
CMSetProperty(instance, "BlockSize",
(CMPIValue *)&XEN_MEM_BLOCKSIZE, CMPI_uint64);
From danms at us.ibm.com Thu May 8 17:21:21 2008
From: danms at us.ibm.com (Dan Smith)
Date: Thu, 08 May 2008 10:21:21 -0700
Subject: [Libvirt-cim] [PATCH] Temporarily fall through on processor devices
in DefineSystem()
Message-ID:
# HG changeset patch
# User Dan Smith
# Date 1210267263 25200
# Node ID eece298b820b031be45dc5aca525a43a7bb029dd
# Parent 7d8223bceaf3206b13443db42e95d9e505ce5ff7
Temporarily fall through on processor devices in DefineSystem()
This is breaking tests just because it refuses a domain with processors
defined. This will be replaced with Jay's processor support when it's
ready.
Signed-off-by: Dan Smith
diff -r 7d8223bceaf3 -r eece298b820b src/Virt_VirtualSystemManagementService.c
--- a/src/Virt_VirtualSystemManagementService.c Thu May 08 10:10:49 2008 -0700
+++ b/src/Virt_VirtualSystemManagementService.c Thu May 08 10:21:03 2008 -0700
@@ -457,6 +457,8 @@ static const char *_sysvirt_rasd_to_vdev
return net_rasd_to_vdev(inst, dev);
} else if (type == CIM_RES_TYPE_MEM) {
return mem_rasd_to_vdev(inst, dev);
+ } else if (type == CIM_RES_TYPE_PROC) {
+ return NULL; /* FIXME: replace when processor is done */
}
return "Resource type not supported on this platform";
From danms at us.ibm.com Thu May 8 17:49:06 2008
From: danms at us.ibm.com (Dan Smith)
Date: Thu, 08 May 2008 10:49:06 -0700
Subject: [Libvirt-cim] [PATCH] Add missing registration for LXC_DiskRASD
Message-ID: <6cbf201e90c5fd571e98.1210268946@guaranine.danplanet.com>
# HG changeset patch
# User Dan Smith
# Date 1210268930 25200
# Node ID 6cbf201e90c5fd571e988d7be3e64a4bef4cbac4
# Parent eece298b820b031be45dc5aca525a43a7bb029dd
Add missing registration for LXC_DiskRASD
Signed-off-by: Dan Smith
diff -r eece298b820b -r 6cbf201e90c5 schema/ResourceAllocationSettingData.registration
--- a/schema/ResourceAllocationSettingData.registration Thu May 08 10:21:03 2008 -0700
+++ b/schema/ResourceAllocationSettingData.registration Thu May 08 10:48:50 2008 -0700
@@ -9,3 +9,4 @@ KVM_ProcResourceAllocationSettingData ro
KVM_ProcResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
KVM_MemResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
LXC_MemResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
+LXC_DiskResourceAllocationSettingData root/virt Virt_RASD Virt_RASD instance
From deeptik at linux.vnet.ibm.com Fri May 9 13:10:12 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Fri, 09 May 2008 18:40:12 +0530
Subject: [Libvirt-cim] [PATCH] [TEST] #2 Updating 01_forward.py of SDC
to support XenFV, KVM
In-Reply-To: <48230F3C.3060206@linux.vnet.ibm.com>
References:
<48230F3C.3060206@linux.vnet.ibm.com>
Message-ID: <48244D34.9030102@linux.vnet.ibm.com>
Kaitlin Rupert wrote:
> Sorry for the delayed response Deepti - I was having trouble applying
> this patch yesterday. I switched machines, and it seems to apply fine.
>
> This test fails for me with KVM on F9 using recent sources. Here's the
> output:
>
> SettingsDefineCapabilities - 01_forward.py: FAIL
> ERROR - AttributeError : 'list' object has no attribute 'InstanceID'
> CIM_ERR_NOT_FOUND: No such instance (foo)
> CIM_ERR_NOT_FOUND: No such instance (default-net)
Sorry for the mistake, I did not observe that the diskpool.conf files
were present on the machine and hence the tc was passing with the latest
sources.
Even after deleting the conf files the tc was still passing and the
wbemcli command gave me DiskPool info. I was able to see the problem
only after I restarted the cimserver.
I will fix this.
Thanks and Regards,
Deepti.
From kaitlin at linux.vnet.ibm.com Fri May 9 13:22:29 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Fri, 09 May 2008 06:22:29 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] #2 Updating 01_forward.py of SDC
to support XenFV, KVM
In-Reply-To: <48244D34.9030102@linux.vnet.ibm.com>
References:
<48230F3C.3060206@linux.vnet.ibm.com>
<48244D34.9030102@linux.vnet.ibm.com>
Message-ID: <48245015.2020504@linux.vnet.ibm.com>
Deepti B Kalakeri wrote:
>
>
> Kaitlin Rupert wrote:
>> Sorry for the delayed response Deepti - I was having trouble applying
>> this patch yesterday. I switched machines, and it seems to apply fine.
>>
>> This test fails for me with KVM on F9 using recent sources. Here's the
>> output:
>>
>> SettingsDefineCapabilities - 01_forward.py: FAIL
>> ERROR - AttributeError : 'list' object has no attribute 'InstanceID'
>> CIM_ERR_NOT_FOUND: No such instance (foo)
>> CIM_ERR_NOT_FOUND: No such instance (default-net)
> Sorry for the mistake, I did not observe that the diskpool.conf files
> were present on the machine and hence the tc was passing with the latest
> sources.
> Even after deleting the conf files the tc was still passing and the
> wbemcli command gave me DiskPool info. I was able to see the problem
> only after I restarted the cimserver.
> I will fix this.
>
Even if the diskpool.conf file is present on the system, you should see
an error with latest sources. Maybe you were using the rpm and forgot
to restart the CIMOM after moving to latest sources.
Thanks for looking in to this! =)
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Fri May 9 14:47:16 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Fri, 09 May 2008 07:47:16 -0700
Subject: [Libvirt-cim] [PATCH] Add PoolID into DevicePool instances
In-Reply-To: <1eef845c77d096d65b25.1210263966@guaranine.danplanet.com>
References: <1eef845c77d096d65b25.1210263966@guaranine.danplanet.com>
Message-ID: <482463F4.6040109@linux.vnet.ibm.com>
Dan Smith wrote:
> # HG changeset patch
> # User Dan Smith
> # Date 1210263836 25200
> # Node ID 1eef845c77d096d65b256384423b93cda19fb8db
> # Parent a46dd9e2e4efbea37e7e5d2cf8c285e1a56bd726
> Add PoolID into DevicePool instances
>
> Changes:
> - Consolidate the setting of common ResourcePool attributes
>
> Signed-off-by: Dan Smith
>
> diff -r a46dd9e2e4ef -r 1eef845c77d0 src/Virt_DevicePool.c
I didn't have a chance to test this, but no complaints on the read
through. +1
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Fri May 9 15:29:51 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Fri, 09 May 2008 08:29:51 -0700
Subject: [Libvirt-cim] [PATCH] Change VirtualQuantity to uint64 in all
sample RASDs
In-Reply-To:
References:
Message-ID: <48246DEF.6060107@linux.vnet.ibm.com>
>
> diff -r 1eef845c77d0 -r c2465f3f0a24 src/Virt_SettingsDefineCapabilities.c
>
> @@ -701,7 +701,7 @@ static struct sdc_rasd_prop *disk_max(co
> bool ret;
> const char *inst_id;
> CMPIrc prop_ret;
> - uint16_t free_space;
> + uint64_t free_space;
> uint64_t free_64;
> virConnectPtr conn;
> CMPIInstance *pool_inst;
> @@ -737,11 +737,11 @@ static struct sdc_rasd_prop *disk_max(co
> }
> CU_DEBUG("Got capacity from pool_inst: %lld", free_64);
>
> - free_space = (uint16_t)free_64;
> + free_space = free_64;
I don't think we need both free_space and free_64 anymore. free_64 is
used to get the value from the Capacity attribute. The only other time
it's used is when free_space is assigned its value.
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From danms at us.ibm.com Fri May 9 16:07:35 2008
From: danms at us.ibm.com (Dan Smith)
Date: Fri, 09 May 2008 09:07:35 -0700
Subject: [Libvirt-cim] [PATCH] Change VirtualQuantity to uint64 in all
sample RASDs
In-Reply-To: <48246DEF.6060107@linux.vnet.ibm.com> (Kaitlin Rupert's message
of "Fri, 09 May 2008 08:29:51 -0700")
References:
<48246DEF.6060107@linux.vnet.ibm.com>
Message-ID: <87iqxncvg8.fsf@caffeine.beaverton.ibm.com>
KR> I don't think we need both free_space and free_64 anymore.
KR> free_64 is used to get the value from the Capacity attribute. The
KR> only other time it's used is when free_space is assigned its
KR> value.
Yep, good call.
Thanks!
--
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms at us.ibm.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL:
From danms at us.ibm.com Fri May 9 16:22:31 2008
From: danms at us.ibm.com (Dan Smith)
Date: Fri, 09 May 2008 09:22:31 -0700
Subject: [Libvirt-cim] [PATCH] Change VirtualQuantity to uint64 in all
sample RASDs
Message-ID: <874639813fb34a80455e.1210350151@guaranine.danplanet.com>
# HG changeset patch
# User Dan Smith
# Date 1210350149 25200
# Node ID 874639813fb34a80455efc4c886a52672734943d
# Parent 1eef845c77d096d65b256384423b93cda19fb8db
Change VirtualQuantity to uint64 in all sample RASDs
Changes:
- Remove unneeded additional variable in disk case
Signed-off-by: Dan Smith
diff -r 1eef845c77d0 -r 874639813fb3 src/Virt_SettingsDefineCapabilities.c
--- a/src/Virt_SettingsDefineCapabilities.c Thu May 08 09:23:56 2008 -0700
+++ b/src/Virt_SettingsDefineCapabilities.c Fri May 09 09:22:29 2008 -0700
@@ -403,13 +403,13 @@ static struct sdc_rasd_prop *proc_min(co
CMPIStatus *s)
{
bool ret;
- uint16_t num_procs = 1;
+ uint64_t num_procs = 1;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Minimum", CMPI_chars},
{"AllocationUnits", (CMPIValue *)"Processors", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&num_procs, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&num_procs, CMPI_uint64},
PROP_END
};
@@ -428,7 +428,7 @@ static struct sdc_rasd_prop *proc_max(co
{
bool ret;
virConnectPtr conn;
- uint16_t num_procs = 0;
+ uint64_t num_procs = 0;
struct sdc_rasd_prop *rasd = NULL;
CU_DEBUG("In proc_max()");
@@ -447,7 +447,7 @@ static struct sdc_rasd_prop *proc_max(co
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Maximum", CMPI_chars},
{"AllocationUnits", (CMPIValue *)"Processors", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&num_procs, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&num_procs, CMPI_uint64},
PROP_END
};
@@ -466,13 +466,13 @@ static struct sdc_rasd_prop *proc_def(co
CMPIStatus *s)
{
bool ret;
- uint16_t num_procs = 1;
+ uint64_t num_procs = 1;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Default", CMPI_chars},
{"AllocationUnits", (CMPIValue *)"Processors", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&num_procs, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&num_procs, CMPI_uint64},
PROP_END
};
@@ -490,13 +490,13 @@ static struct sdc_rasd_prop *proc_inc(co
CMPIStatus *s)
{
bool ret;
- uint16_t num_procs = 1;
+ uint64_t num_procs = 1;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Increment", CMPI_chars},
{"AllocationUnits", (CMPIValue *)"Processors", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&num_procs, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&num_procs, CMPI_uint64},
PROP_END
};
@@ -514,38 +514,38 @@ static struct sdc_rasd_prop *net_min(con
CMPIStatus *s)
{
bool ret;
- uint16_t num_nics = 0;
+ uint64_t num_nics = 0;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Minimum", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint16},
- PROP_END
- };
-
- ret = dup_rasd_prop_list(tmp, &rasd);
- if (!ret) {
- cu_statusf(_BROKER, s,
- CMPI_RC_ERR_FAILED,
- "Could not copy RASD");
- }
-
- return rasd;
-}
-
-static uint16_t net_max_kvm(const CMPIObjectPath *ref,
+ {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint64},
+ PROP_END
+ };
+
+ ret = dup_rasd_prop_list(tmp, &rasd);
+ if (!ret) {
+ cu_statusf(_BROKER, s,
+ CMPI_RC_ERR_FAILED,
+ "Could not copy RASD");
+ }
+
+ return rasd;
+}
+
+static uint64_t net_max_kvm(const CMPIObjectPath *ref,
CMPIStatus *s)
{
/* This appears to not require anything dynamic. */
return KVM_MAX_NICS;
}
-static uint16_t net_max_xen(const CMPIObjectPath *ref,
+static uint64_t net_max_xen(const CMPIObjectPath *ref,
CMPIStatus *s)
{
int rc;
virConnectPtr conn;
unsigned long version;
- uint16_t num_nics = -1;
+ uint64_t num_nics = -1;
conn = connect_by_classname(_BROKER, CLASSNAME(ref), s);
if (s->rc != CMPI_RC_OK) {
@@ -579,7 +579,7 @@ static struct sdc_rasd_prop *net_max(con
{
bool ret;
char *prefix;
- uint16_t num_nics;
+ uint64_t num_nics;
struct sdc_rasd_prop *rasd = NULL;
prefix = class_prefix_name(CLASSNAME(ref));
@@ -611,7 +611,7 @@ static struct sdc_rasd_prop *net_max(con
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Maximum", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint64},
PROP_END
};
@@ -630,11 +630,11 @@ static struct sdc_rasd_prop *net_def(con
CMPIStatus *s)
{
bool ret;
- uint16_t num_nics = 1;
+ uint64_t num_nics = 1;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Default", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint64},
PROP_END
};
@@ -652,12 +652,12 @@ static struct sdc_rasd_prop *net_inc(con
CMPIStatus *s)
{
bool ret;
- uint16_t num_nics = 1;
+ uint64_t num_nics = 1;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Increment", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&num_nics, CMPI_uint64},
PROP_END
};
@@ -675,13 +675,13 @@ static struct sdc_rasd_prop *disk_min(co
CMPIStatus *s)
{
bool ret;
- uint16_t disk_size = SDC_DISK_MIN;
+ uint64_t disk_size = SDC_DISK_MIN;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Minimum", CMPI_chars},
{"AllocationQuantity", (CMPIValue *)"MegaBytes", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&disk_size, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&disk_size, CMPI_uint64},
PROP_END
};
@@ -701,8 +701,7 @@ static struct sdc_rasd_prop *disk_max(co
bool ret;
const char *inst_id;
CMPIrc prop_ret;
- uint16_t free_space;
- uint64_t free_64;
+ uint64_t free_space;
virConnectPtr conn;
CMPIInstance *pool_inst;
struct sdc_rasd_prop *rasd = NULL;
@@ -728,20 +727,19 @@ static struct sdc_rasd_prop *disk_max(co
if (s->rc != CMPI_RC_OK)
goto out;
- prop_ret = cu_get_u64_prop(pool_inst, "Capacity", &free_64);
+ prop_ret = cu_get_u64_prop(pool_inst, "Capacity", &free_space);
if (prop_ret != CMPI_RC_OK) {
cu_statusf(_BROKER, s,
CMPI_RC_ERR_FAILED,
"Could not get capacity from instance");
goto out;
}
- CU_DEBUG("Got capacity from pool_inst: %lld", free_64);
-
- free_space = (uint16_t)free_64;
+ CU_DEBUG("Got capacity from pool_inst: %lld", free_space);
+
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Maximum", CMPI_chars},
{"AllocationQuantity", (CMPIValue *)"MegaBytes", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&free_space, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&free_space, CMPI_uint64},
PROP_END
};
@@ -760,13 +758,13 @@ static struct sdc_rasd_prop *disk_def(co
CMPIStatus *s)
{
bool ret;
- uint16_t disk_size = SDC_DISK_DEF;
+ uint64_t disk_size = SDC_DISK_DEF;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Default", CMPI_chars},
{"AllocationQuantity", (CMPIValue *)"MegaBytes", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&disk_size, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&disk_size, CMPI_uint64},
PROP_END
};
@@ -784,13 +782,13 @@ static struct sdc_rasd_prop *disk_inc(co
CMPIStatus *s)
{
bool ret;
- uint16_t disk_size = SDC_DISK_INC;
+ uint64_t disk_size = SDC_DISK_INC;
struct sdc_rasd_prop *rasd = NULL;
struct sdc_rasd_prop tmp[] = {
{"InstanceID", (CMPIValue *)"Increment", CMPI_chars},
{"AllocationQuantity", (CMPIValue *)"MegaBytes", CMPI_chars},
- {"VirtualQuantity", (CMPIValue *)&disk_size, CMPI_uint16},
+ {"VirtualQuantity", (CMPIValue *)&disk_size, CMPI_uint64},
PROP_END
};
From kaitlin at linux.vnet.ibm.com Fri May 9 17:19:02 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Fri, 09 May 2008 10:19:02 -0700
Subject: [Libvirt-cim] [PATCH] Change VirtualQuantity to uint64 in all
sample RASDs
In-Reply-To: <874639813fb34a80455e.1210350151@guaranine.danplanet.com>
References: <874639813fb34a80455e.1210350151@guaranine.danplanet.com>
Message-ID: <48248786.6060800@linux.vnet.ibm.com>
Dan Smith wrote:
> # HG changeset patch
> # User Dan Smith
> # Date 1210350149 25200
> # Node ID 874639813fb34a80455efc4c886a52672734943d
> # Parent 1eef845c77d096d65b256384423b93cda19fb8db
> Change VirtualQuantity to uint64 in all sample RASDs
>
> Changes:
> - Remove unneeded additional variable in disk case
>
> Signed-off-by: Dan Smith
>
> diff -r 1eef845c77d0 -r 874639813fb3 src/Virt_SettingsDefineCapabilities.c
Cool - yeah, that looks better. I haven't tested it, but it's mostly a
straight find and replace. +1
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Fri May 9 17:24:08 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Fri, 09 May 2008 10:24:08 -0700
Subject: [Libvirt-cim] [PATCH] Make BlockSize * NumberOfBlocks result
in the correct number of bytes
In-Reply-To: <7d8223bceaf3206b1344.1210266717@guaranine.danplanet.com>
References: <7d8223bceaf3206b1344.1210266717@guaranine.danplanet.com>
Message-ID: <482488B8.7040304@linux.vnet.ibm.com>
Dan Smith wrote:
> # HG changeset patch
> # User Dan Smith
> # Date 1210266649 25200
> # Node ID 7d8223bceaf3206b13443db42e95d9e505ce5ff7
> # Parent c2465f3f0a2472a45f90707ce9653ad2c59bb50b
> Make BlockSize * NumberOfBlocks result in the correct number of bytes
>
> Currently it adds up to kilobytes, so shift the size we get from libvirt
> appropriately before doing the calculation.
>
> Signed-off-by: Dan Smith
>
> diff -r c2465f3f0a24 -r 7d8223bceaf3 src/Virt_Device.c
+1
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Fri May 9 17:26:19 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Fri, 09 May 2008 10:26:19 -0700
Subject: [Libvirt-cim] [PATCH] Temporarily fall through on processor
devices in DefineSystem()
In-Reply-To:
References:
Message-ID: <4824893B.3020006@linux.vnet.ibm.com>
Dan Smith wrote:
> # HG changeset patch
> # User Dan Smith
> # Date 1210267263 25200
> # Node ID eece298b820b031be45dc5aca525a43a7bb029dd
> # Parent 7d8223bceaf3206b13443db42e95d9e505ce5ff7
> Temporarily fall through on processor devices in DefineSystem()
>
> This is breaking tests just because it refuses a domain with processors
> defined. This will be replaced with Jay's processor support when it's
> ready.
>
> Signed-off-by: Dan Smith
>
> diff -r 7d8223bceaf3 -r eece298b820b src/Virt_VirtualSystemManagementService.c
Cool thanks for working this up. +1
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Sat May 10 21:42:59 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Sat, 10 May 2008 14:42:59 -0700
Subject: [Libvirt-cim] [PATCH] Add missing registration for LXC_DiskRASD
In-Reply-To: <6cbf201e90c5fd571e98.1210268946@guaranine.danplanet.com>
References: <6cbf201e90c5fd571e98.1210268946@guaranine.danplanet.com>
Message-ID: <482616E3.6060708@linux.vnet.ibm.com>
Dan Smith wrote:
> # HG changeset patch
> # User Dan Smith
> # Date 1210268930 25200
> # Node ID 6cbf201e90c5fd571e988d7be3e64a4bef4cbac4
> # Parent eece298b820b031be45dc5aca525a43a7bb029dd
> Add missing registration for LXC_DiskRASD
>
> Signed-off-by: Dan Smith
>
> diff -r eece298b820b -r 6cbf201e90c5 schema/ResourceAllocationSettingData.registration
+1
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Mon May 12 02:32:32 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Sun, 11 May 2008 19:32:32 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Capture return from
create_using_definesystem() in 01_created_indication.py
Message-ID: <0647d07426408da321b4.1210559552@elm3b41.beaverton.ibm.com>
# HG changeset patch
# User Kaitlin Rupert
# Date 1210559507 25200
# Node ID 0647d07426408da321b42cb23eaefab0032f50e6
# Parent 336c6f965baed9b56b484507171ad940e09e6096
[TEST] Capture return from create_using_definesystem() in 01_created_indication.py
This test was returning a false positive in the case where create_using_definesystem() fails.
Signed-off-by: Kaitlin Rupert
diff -r 336c6f965bae -r 0647d0742640 suites/libvirt-cim/cimtest/ComputerSystemIndication/01_created_indication.py
--- a/suites/libvirt-cim/cimtest/ComputerSystemIndication/01_created_indication.py Wed May 07 09:54:57 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ComputerSystemIndication/01_created_indication.py Sun May 11 19:31:47 2008 -0700
@@ -63,7 +63,13 @@
else:
sys.exit(0)
else:
- create_using_definesystem(test_dom, options.ip, None, None, options.virt)
+ status = create_using_definesystem(test_dom, options.ip, None, None, options.virt)
+ if status != PASS:
+ sub.unsubscribe(dict['default_auth'])
+ logger.info("Cancelling subscription for %s" % indication_name)
+ os.kill(pid, signal.SIGKILL)
+ return status
+
for i in range(0,100):
pw = os.waitpid(pid, os.WNOHANG)[1]
if pw == 0:
From yunguol at cn.ibm.com Mon May 12 07:27:18 2008
From: yunguol at cn.ibm.com (Guo Lian Yun)
Date: Mon, 12 May 2008 15:27:18 +0800
Subject: [Libvirt-cim] KVM test report on Fedora 9 (05/12)
Message-ID:
stro: Fedora 9 Beta
Kernel: 2.6.25-0.121.rc5.git4.fc9
Libvirt: 0.4.1-7.fc9
CIMOM: 2.7.0-6.fc9
PyWBEM: 0.6-1
libcmpiutil: 0.3-1.fc9
libvirt-cim: 0.3-4.fc9
cimtest: changeset-135
=================== FAIL ======================================
ComputerSystemIndication - 01_created_indication.py: FAIL
ElementConforms - 02_reverse.py: FAIL
NetworkPort - 03_user_netport.py: FAIL
SettingsDefine - 02_reverse.py: FAIL
VirtualSystemManagementService - 06_addresource.py: FAIL
========FULL CIMTEST REPORT=PASS(96)=FAIL(5)=SKIP(19)=XFAIL(9)===
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: XFAIL Bug: 85769
ComputerSystem - 06_paused_active_suspend.py: XFAIL Bug: 85769
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: XFAIL Bug: 91410
InvokeMethod(RequestStateChange): CIM_ERR_FAILED: Domain Operation Failed
Bug:<91410>
ComputerSystem - 41_cs_to_settingdefinestate.py: SKIP
ComputerSystem - 42_cs_gi_errs.py: PASS
ElementAllocatedFromPool - 01_forward.py: SKIP
ElementAllocatedFromPool - 02_reverse.py: SKIP
ElementAllocatedFromPool - 03_reverse_errs.py: XFAIL Bug: 88651
ElementAllocatedFromPool - 04_forward_errs.py: XFAIL Bug: 88651
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: FAIL
ElementConforms - 03_ectp_fwd_errs.py: XFAIL Bug: 92642
Bug:<92642>
Bug:<92642>
Bug:<92642>
ElementConforms - 04_ectp_rev_errs.py: XFAIL Bug: 92642
Bug:<92642>
Bug:<92642>
Bug:<92642>
Bug:<92642>
Bug:<92642>
Bug:<92642>
Bug:<92642>
Bug:<92642>
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: SKIP
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: FAIL
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: SKIP
RASD - 01_verify_rasd_fields.py: PASS
RASD - 02_enum.py: PASS
RASD - 03_rasd_errs.py: PASS
ReferencedProfile - 01_verify_refprof.py: SKIP
ReferencedProfile - 02_refprofile_errs.py: SKIP
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: PASS
ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: PASS
ResourcePoolConfigurationService - 05_AddResourcesToResourcePool.py: XFAIL
Bug: 92173
InvokeMethod(AddResourcesToResourcePool): CIM_ERR_FAILED: Unknown Method
Bug:<92173>
ResourcePoolConfigurationService - 06_RemoveResourcesFromResourcePool.py:
PASS
ResourcePoolConfigurationService - 07_DeleteResourcePool.py: PASS
SettingsDefine - 01_forward.py: PASS
SettingsDefine - 02_reverse.py: FAIL
SettingsDefine - 03_sds_fwd_errs.py: PASS
SettingsDefine - 04_sds_rev_errs.py: PASS
SettingsDefineCapabilities - 01_forward.py: SKIP
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
VirtualSystemManagementService - 03_definesystem_ess.py: PASS
VirtualSystemManagementService - 04_definesystem_ers.py: PASS
VirtualSystemManagementService - 05_destroysystem_neg.py: PASS
VirtualSystemManagementService - 06_addresource.py: FAIL
InvokeMethod(AddResourceSettings): CIM_ERR_FAILED: Failed to create domain
VirtualSystemManagementService - 07_addresource_neg.py: PASS
VirtualSystemManagementService - 08_modifyresource.py: XFAIL Bug: 90853
InvokeMethod(ModifyResourceSettings): CIM_ERR_FAILED: Failed to create
domain
Bug:<90853>
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: SKIP
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 (???)
IBM STG Greater China Development Lab, Shanghai
E-mail: yunguol at cn.ibm.com
TEL: (86)-21-60922144
Building 10, 399 Ke Yuan Rd, Pudong Shanghai, 201203
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
From deeptik at linux.vnet.ibm.com Mon May 12 10:23:39 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Mon, 12 May 2008 03:23:39 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] #3 Updating 01_forward.py of SDC
Message-ID:
# HG changeset patch
# User Deepti B. Kalakeri
# Date 1210587792 25200
# Node ID cdcf642c493a548d2deb499f223bb9a1f414cb3c
# Parent 336c6f965baed9b56b484507171ad940e09e6096
[TEST] #3 Updating 01_forward.py of SDC.
1) To make use of the lib fn conf_file(), cleanup_restore() and create_diskpool_file().
2) To use the lib fn print_field_error.
3) To retain the PropertyPolicy, ValueRole, ValueRange depending on the revision no.
4) Tested on rpm based libvirt-cim KVM machine, latest libvirt-cim for KVM and Xen, XenFV.
5) This tc will fail on latest libvirt-cim for KVM, need storage pool to make test case work.
Signed-off-by: Deepti B. Kalakeri
diff -r 336c6f965bae -r cdcf642c493a suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py
--- a/suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py Wed May 07 09:54:57 2008 -0700
+++ b/suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py Mon May 12 03:23:12 2008 -0700
@@ -55,205 +55,189 @@ import sys
import sys
import os
from distutils.file_util import move_file
-from VirtLib import utils
from XenKvmLib import assoc
from XenKvmLib import enumclass
-from CimTest import Globals
-from CimTest.Globals import do_main
from XenKvmLib.test_xml import netxml
from XenKvmLib.test_doms import create_vnet
from VirtLib.live import net_list
from CimTest.ReturnCodes import PASS, FAIL, SKIP
+from CimTest.Globals import do_main, platform_sup, logger, \
+CIM_ERROR_GETINSTANCE, CIM_ERROR_ASSOCIATORS
+from XenKvmLib.classes import get_typed_class
+from XenKvmLib.common_util import cleanup_restore, test_dpath, \
+create_diskpool_file
+from XenKvmLib.common_util import print_field_error
+from XenKvmLib.const import CIM_REV
-sup_types = ['Xen']
-
-status = PASS
-test_dpath = "foo"
-disk_file = '/tmp/diskpool.conf'
-back_disk_file = disk_file + "." + "SSDC_01_forward"
diskid = "%s/%s" % ("DiskPool", test_dpath)
memid = "%s/%s" % ("MemoryPool", 0)
procid = "%s/%s" % ("ProcessorPool", 0)
+libvirtcim_sdc_rasd_rev = 571
-def conf_file():
+
+def get_or_bail(virt, ip, id, pool_class):
"""
- Creating diskpool.conf file.
- """
- try:
- f = open(disk_file, 'w')
- f.write('%s %s' % (test_dpath, '/'))
- f.close()
- except Exception,detail:
- Globals.logger.error("Exception: %s", detail)
- status = SKIP
- sys.exit(status)
-
-def clean_up_restore():
- """
- Restoring back the original diskpool.conf
- file.
- """
- try:
- if os.path.exists(back_disk_file):
- os.remove(disk_file)
- move_file(back_disk_file, disk_file)
- except Exception, detail:
- Globals.logger.error("Exception: %s", detail)
- status = SKIP
- sys.exit(status)
-
-
-def get_or_bail(ip, id, pool_class):
- """
- Getinstance for the CLass and return instance on success, otherwise
+ Getinstance for the Class and return instance on success, otherwise
exit after cleanup_restore .
"""
key_list = { 'InstanceID' : id }
-
try:
- instance = enumclass.getInstance(ip, pool_class, key_list)
+ instance = enumclass.getInstance(ip, pool_class, key_list, virt)
except Exception, detail:
- Globals.logger.error(Globals.CIM_ERROR_GETINSTANCE, '%s' % pool_class)
- Globals.logger.error("Exception: %s", detail)
- clean_up_restore()
- status = FAIL
- sys.exit(status)
+ logger.error(CIM_ERROR_GETINSTANCE, '%s' % pool_class)
+ logger.error("Exception: %s", detail)
+ cleanup_restore()
+ sys.exit(FAIL)
return instance
-def init_list(disk, mem, net, proc):
+def init_list(virt, dpool, npool, mpool, ppool):
"""
Creating the lists that will be used for comparisons.
"""
instlist = [
- disk.InstanceID, \
- mem.InstanceID, \
- net.InstanceID, \
- proc.InstanceID
- ]
+ dpool.InstanceID,
+ mpool.InstanceID,
+ npool.InstanceID,
+ ppool.InstanceID
+ ]
cllist = [
- "Xen_DiskResourceAllocationSettingData", \
- "Xen_MemResourceAllocationSettingData", \
- "Xen_NetResourceAllocationSettingData", \
- "Xen_ProcResourceAllocationSettingData"
+ get_typed_class(virt, "DiskResourceAllocationSettingData"),
+ get_typed_class(virt, "MemResourceAllocationSettingData"),
+ get_typed_class(virt, "NetResourceAllocationSettingData"),
+ get_typed_class(virt, "ProcResourceAllocationSettingData")
]
rtype = {
- "Xen_DiskResourceAllocationSettingData" : 17, \
- "Xen_MemResourceAllocationSettingData" : 4, \
- "Xen_NetResourceAllocationSettingData" : 10, \
- "Xen_ProcResourceAllocationSettingData" : 3
+ get_typed_class(virt, "DiskResourceAllocationSettingData") : 17,
+ get_typed_class(virt, "MemResourceAllocationSettingData") : 4,
+ get_typed_class(virt, "NetResourceAllocationSettingData") : 10,
+ get_typed_class(virt, "ProcResourceAllocationSettingData") : 3
}
rangelist = {
- "Default" : 0, \
- "Minimum" : 1, \
- "Maximum" : 2, \
+ "Default" : 0,
+ "Minimum" : 1,
+ "Maximum" : 2,
"Increment" : 3
}
return instlist, cllist, rtype, rangelist
+def get_pool_info(virt, server, devid, poolname=""):
+ pool_cname = get_typed_class(virt, poolname)
+ pool_cn = eval("enumclass." + pool_cname)
+ return get_or_bail(virt, server, id=devid, pool_class=pool_cn)
-def print_error(index, fieldname, assoc_info, exp_value):
- ret_value = assoc_info[index][fieldname]
- Globals.logger.error("%s Mismatch", fieldname)
- Globals.logger.error("Returned %s instead of %s", ret_value, exp_value)
+def get_pool_details(virt, server):
+ dpool = npool = mpool = ppool = None
+ try :
+ dpool = get_pool_info(virt, server, diskid, poolname="DiskPool")
+ mpool = get_pool_info(virt, server, memid, poolname= "MemoryPool")
+ ppool = get_pool_info(virt, server, procid, poolname= "ProcessorPool")
-
- at do_main(sup_types)
-def main():
- options = main.options
- global status
-
- cn = 'Xen_AllocationCapabilities'
- loop = 0
- server = options.ip
-
- # Taking care of already existing diskconf file
- # Creating diskpool.conf if it does not exist
- # Otherwise backing up the prev file and create new one.
- os.system("rm -f %s" % back_disk_file )
- if not (os.path.exists(disk_file)):
- conf_file()
- else:
- move_file(disk_file, back_disk_file)
- conf_file()
-
- try :
- disk = get_or_bail(server, id=diskid, \
- pool_class=enumclass.Xen_DiskPool)
- mem = get_or_bail(server, id = memid, \
- pool_class=enumclass.Xen_MemoryPool)
- vir_network = net_list(server)
+ vir_network = net_list(server, virt)
if len(vir_network) > 0:
test_network = vir_network[0]
else:
bridgename = 'testbridge'
test_network = 'default-net'
net_xml, bridge = netxml(server, bridgename, test_network)
- ret = create_vnet(server, net_xml)
+ ret = create_vnet(server, net_xml, virt)
if not ret:
- Globals.logger.error("Failed to create the Virtual Network '%s'", \
- test_network)
+ logger.error("Failed to create Virtual Network '%s'",
+ test_network)
return SKIP
+
netid = "%s/%s" % ("NetworkPool", test_network)
- net = get_or_bail(server, id = netid, \
- pool_class=enumclass.Xen_NetworkPool)
- proc = get_or_bail(server, id = procid, \
- pool_class=enumclass.Xen_ProcessorPool)
+ npool = get_pool_info(virt, server, netid, poolname= "NetworkPool")
except Exception, detail:
- Globals.logger.error("Exception: %s", detail)
- clean_up_restore()
- status = FAIL
- return status
+ logger.error("Exception: %s", detail)
+ return FAIL, dpool, npool, mpool, ppool
- instlist, cllist, rtype, rangelist = init_list(disk, mem, net, proc )
+ return PASS, dpool, npool, mpool, ppool
+def verify_rasd_fields(loop, assoc_info, cllist, rtype, rangelist):
+ for inst in assoc_info:
+ if inst.classname != cllist[loop]:
+ print_field_error("Classname", inst.classname, cllist[loop])
+ return FAIL
+ if inst['ResourceType'] != rtype[cllist[loop]]:
+ print_field_error("ResourceType", inst['ResourceType'],
+ rtype[cllist[loop]])
+ return FAIL
+
+ # The following properties have been removed in the patchset 571
+ # but is present in the rpm libvirt-cim and hence retained it.
+
+ if CIM_REV < libvirtcim_sdc_rasd_rev:
+ ppolicy = inst['PropertyPolicy']
+ if ppolicy != 0 and ppolicy != 1:
+ print_field_error("PropertyPolicy", inst['PropertyPolicy'],
+ ppolicy)
+ return FAIL
+
+ vrole = inst['ValueRole']
+ if vrole < 0 or vrole > 4:
+ print_field_error("ValueRole", inst['ValueRole'], vrole)
+ return FAIL
+
+ insid = inst['InstanceID']
+ vrange = rangelist[insid]
+ if vrange != inst['ValueRange']:
+ print_field_error("ValueRange", inst['ValueRange'], vrange)
+ return FAIL
+
+ return PASS
+
+def verify_sdc_with_ac(virt, server, dpool, npool, mpool, ppool):
+ loop = 0
+ instlist, cllist, rtype, rangelist = init_list(virt, dpool, npool, mpool,
+ ppool)
+ assoc_cname = get_typed_class(virt, "SettingsDefineCapabilities")
+ cn = get_typed_class(virt, "AllocationCapabilities")
for instid in sorted(instlist):
try:
- assoc_info = assoc.Associators(options.ip, \
- "Xen_SettingsDefineCapabilities",
- cn,
- InstanceID = instid)
+ assoc_info = assoc.Associators(server, assoc_cname, cn,
+ InstanceID = instid, virt=virt)
if len(assoc_info) != 4:
- Globals.logger.error("Xen_SettingsDefineCapabilities returned \
-%i ResourcePool objects instead 4", len(assoc_info))
+ logger.error("%s returned %i ResourcePool objects"
+ "instead 4", assoc_cname, len(assoc_info))
status = FAIL
break
- for i in range(len(assoc_info)):
- if assoc_info[i].classname != cllist[loop]:
- print_error(i, "Classname", assoc_info, cllist[loop])
- status = FAIL
- if assoc_info[i]['ResourceType'] != rtype[cllist[loop]]:
- print_error(i, "ResourceType", assoc_info, rtype[cllist[loop]])
- status = FAIL
- ppolicy = assoc_info[i]['PropertyPolicy']
- if ppolicy != 0 and ppolicy != 1:
- print_error(i, "PropertyPolicy", assoc_info, ppolicy)
- status = FAIL
- vrole = assoc_info[i]['ValueRole']
- if vrole < 0 or vrole > 4:
- print_error(i, "ValueRole", assoc_info, vrole)
- status = FAIL
- insid = assoc_info[i]['InstanceID']
- vrange = rangelist[insid]
- if vrange != assoc_info[i]['ValueRange']:
- print_error(i, "ValueRange", assoc_info, vrange)
- status = FAIL
- if status != 0:
- break
- if status != 0:
+ status = verify_rasd_fields(loop, assoc_info, cllist, rtype,
+ rangelist)
+ if status != PASS:
break
else:
loop = loop + 1
+
except Exception, detail:
- Globals.logger.error(Globals.CIM_ERROR_ASSOCIATORS, \
- 'Xen_SettingsDefineCapabilities')
- Globals.logger.error("Exception: %s", detail)
- clean_up_restore()
+ logger.error(CIM_ERROR_ASSOCIATORS, assoc_cname)
+ logger.error("Exception: %s", detail)
status = FAIL
- clean_up_restore()
+ return status
+
+ at do_main(platform_sup)
+def main():
+ options = main.options
+
+ server = options.ip
+ virt = options.virt
+
+ # Verify DiskPool on machine
+ status = create_diskpool_file()
+ if status != PASS:
+ return status
+
+ status, dpool, npool, mpool, ppool = get_pool_details(virt, server)
+ if status != PASS or dpool.InstanceID == None or mpool.InstanceID == None \
+ or npool.InstanceID == None or ppool.InstanceID == None:
+ cleanup_restore()
+ return FAIL
+
+ status = verify_sdc_with_ac(virt, server, dpool, npool, mpool, ppool)
+ cleanup_restore()
return status
if __name__ == "__main__":
From kaitlin at linux.vnet.ibm.com Mon May 12 19:44:52 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Mon, 12 May 2008 12:44:52 -0700
Subject: [Libvirt-cim] [TEST] Issue with
VirtualSystemManagementService/06_addresource.py
In-Reply-To: <4822F172.4050409@linux.vnet.ibm.com>
References:
<48174407.9020804@linux.vnet.ibm.com>
<87d4o8ievv.fsf@caffeine.beaverton.ibm.com>
<4817C734.3090309@linux.vnet.ibm.com>
<4818EB63.5050505@linux.vnet.ibm.com>
<87mynand55.fsf@caffeine.beaverton.ibm.com>
<4822F172.4050409@linux.vnet.ibm.com>
Message-ID: <48289E34.6090906@linux.vnet.ibm.com>
>>
>> Well, the providers should be creating ,
>> so I need to check and make sure we're doing that.
>>
> I checked whether the provider adds the and
> it does for KVM.
> I tried creating the KVM guest with two interface types:
>
> 1) Network Type :
>
> It needs the following fields in the xml file:
>
>
>
>
>
>
> We are handling this in the provider code.
>
> 2) Bridge Type :
> It needs the following fields in the xml file:
>
>
>
>
>
> The provider code in the xmlgen.c file does not support the KVM
> guest to be created with the "bridge" type.
Excellent find Deepti. Thanks for looking into this - I think this is
an issue with the provider.
You're correct - this is an issue in xmlgen.c What is happening here is
the following:
1) Guest is created using virsh using network type bridge.
2) xen_net_to_xml() in xmlgen.c gets called instead of kvm_net_to_xml().
3) Since xend is fine with using a bridge interface without the
tag defined, we don't specify one in the xmlgen
code. QEMU borks when it attempts to create the guest with the new XML.
>
> 1) Also, I noticed that for creating the Xen guest we do not require the
> field in the section for both Network and Bridge
> interface Types.
> But for the KVM guest its compulsory to have the field in
> the section for both Network and Bridge interface Types.
> 2) Any specific reason for not supporting the KVM guest to be created
> for the bridge type interface, and supporting Xen guest with only bridge
> type ?
If you use the network interface type, the libvirt gets all the
necessary network information from the virtual network. We don't have
to worry about whether the bridge exists, etc.
> 3) Also, I did not understand the need for the script field in the
> interface section. We can create the Xen, KVM guests without this.
This is a good point. Actually, I thought there was some talk of having
both Xen and KVM guests use the network interface, but I might be mistaken.
>
>
>> KR> Dan - should the provider return an error if the guest doesn't use
>> KR> a network type interface?
>>
>> Meaning an existing guest created outside the providers with a network
>> type we don't support? I dunno, I'll have to think on that one.
>>
Right - that's the issue here. We have a KVM guest with a bridge
network type. The AddResource() call fails because it generates the new
XML incorrectly.
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From danms at us.ibm.com Mon May 12 20:09:13 2008
From: danms at us.ibm.com (Dan Smith)
Date: Mon, 12 May 2008 13:09:13 -0700
Subject: [Libvirt-cim] [TEST] Issue with
VirtualSystemManagementService/06_addresource.py
In-Reply-To: <48289E34.6090906@linux.vnet.ibm.com> (Kaitlin Rupert's message
of "Mon, 12 May 2008 12:44:52 -0700")
References:
<48174407.9020804@linux.vnet.ibm.com>
<87d4o8ievv.fsf@caffeine.beaverton.ibm.com>
<4817C734.3090309@linux.vnet.ibm.com>
<4818EB63.5050505@linux.vnet.ibm.com>
<87mynand55.fsf@caffeine.beaverton.ibm.com>
<4822F172.4050409@linux.vnet.ibm.com>
<48289E34.6090906@linux.vnet.ibm.com>
Message-ID: <87fxsnthcm.fsf@caffeine.beaverton.ibm.com>
KR> This is a good point. Actually, I thought there was some talk of
KR> having both Xen and KVM guests use the network interface, but I
KR> might be mistaken.
Yeah, and I think this is a good idea. There's no real benefit to
supporting the bridge type during the creation of guests because it
will only result in a lack of association to a pool.
KR> Right - that's the issue here. We have a KVM guest with a bridge
KR> network type. The AddResource() call fails because it generates
KR> the new XML incorrectly.
I guess what we need to do is make sure that device_parsing.c can
parse a guest with a bridge type of interface and that xmlgen.c writes
it back out correctly. Then, we won't break existing guests, but
won't support creating them in that configuration from scratch.
Does that sound reasonable?
--
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms at us.ibm.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL:
From kaitlin at linux.vnet.ibm.com Mon May 12 21:49:58 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Mon, 12 May 2008 14:49:58 -0700
Subject: [Libvirt-cim] [TEST] Issue with
VirtualSystemManagementService/06_addresource.py
In-Reply-To: <87fxsnthcm.fsf@caffeine.beaverton.ibm.com>
References:
<48174407.9020804@linux.vnet.ibm.com>
<87d4o8ievv.fsf@caffeine.beaverton.ibm.com>
<4817C734.3090309@linux.vnet.ibm.com>
<4818EB63.5050505@linux.vnet.ibm.com>
<87mynand55.fsf@caffeine.beaverton.ibm.com>
<4822F172.4050409@linux.vnet.ibm.com>
<48289E34.6090906@linux.vnet.ibm.com>
<87fxsnthcm.fsf@caffeine.beaverton.ibm.com>
Message-ID: <4828BB86.6040407@linux.vnet.ibm.com>
Dan Smith wrote:
> KR> This is a good point. Actually, I thought there was some talk of
> KR> having both Xen and KVM guests use the network interface, but I
> KR> might be mistaken.
>
> Yeah, and I think this is a good idea. There's no real benefit to
> supporting the bridge type during the creation of guests because it
> will only result in a lack of association to a pool.
>
> KR> Right - that's the issue here. We have a KVM guest with a bridge
> KR> network type. The AddResource() call fails because it generates
> KR> the new XML incorrectly.
>
> I guess what we need to do is make sure that device_parsing.c can
> parse a guest with a bridge type of interface and that xmlgen.c writes
> it back out correctly. Then, we won't break existing guests, but
> won't support creating them in that configuration from scratch.
>
> Does that sound reasonable?
It means we'd need to do the same with all the interface types (user,
ethernet, etc). It's a lot of extra work, but it allows us to manage
existing guests.
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Mon May 12 23:00:46 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Mon, 12 May 2008 16:00:46 -0700
Subject: [Libvirt-cim] [PATCH] [CU] url should be options.url in
indication_tester.py
Message-ID:
# HG changeset patch
# User Kaitlin Rupert
# Date 1210633243 25200
# Node ID ea4548b7afe19e8d186246f4cce405565a1eb8c2
# Parent 79873958006140bbcd14122f9c7e1e80c00d9eef
[CU] url should be options.url in indication_tester.py
Signed-off-by: Kaitlin Rupert
diff -r 798739580061 -r ea4548b7afe1 tools/indication_tester.py
--- a/tools/indication_tester.py Fri May 02 11:32:27 2008 -0600
+++ b/tools/indication_tester.py Mon May 12 16:00:43 2008 -0700
@@ -413,7 +413,7 @@
if ":" in options.url:
(sysname, port) = options.url.split(":")
else:
- sysname = url
+ sysname = options.url
if options.dump:
dump_xml(options.name, args[0], options.ns, sysname)
From kaitlin at linux.vnet.ibm.com Mon May 12 23:15:17 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Mon, 12 May 2008 16:15:17 -0700
Subject: [Libvirt-cim] [PATCH] Make ReferencedConfiguration optional
Message-ID:
# HG changeset patch
# User Kaitlin Rupert
# Date 1210633918 25200
# Node ID b9ddfef54aa7b51515efea27b95faf00edc5ace7
# Parent 1a31955ae3975f88582287fd1c3bbb7a57da3ed9
Make ReferencedConfiguration optional.
The profile states that this parameter can be NULL.
Signed-off-by: Kaitlin Rupert
diff -r 1a31955ae397 -r b9ddfef54aa7 src/Virt_VirtualSystemManagementService.c
--- a/src/Virt_VirtualSystemManagementService.c Mon May 12 09:21:07 2008 -0700
+++ b/src/Virt_VirtualSystemManagementService.c Mon May 12 16:11:58 2008 -0700
@@ -1373,7 +1373,7 @@
.handler = define_system,
.args = {{"SystemSettings", CMPI_instance, false},
{"ResourceSettings", CMPI_instanceA, false},
- {"ReferenceConfiguration", CMPI_ref, false},
+ {"ReferenceConfiguration", CMPI_ref, true},
ARG_END
}
};
From deeptik at linux.vnet.ibm.com Tue May 13 05:30:56 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Tue, 13 May 2008 11:00:56 +0530
Subject: [Libvirt-cim] [PATCH] [TEST] Capture return from
create_using_definesystem() in 01_created_indication.py
In-Reply-To: <0647d07426408da321b4.1210559552@elm3b41.beaverton.ibm.com>
References: <0647d07426408da321b4.1210559552@elm3b41.beaverton.ibm.com>
Message-ID: <48292790.6090900@linux.vnet.ibm.com>
+1 for me .
This returns error when the create_using_definesystem() fails.
Thanks and Regards,
Deepti.
Kaitlin Rupert wrote:
> # HG changeset patch
> # User Kaitlin Rupert
> # Date 1210559507 25200
> # Node ID 0647d07426408da321b42cb23eaefab0032f50e6
> # Parent 336c6f965baed9b56b484507171ad940e09e6096
> [TEST] Capture return from create_using_definesystem() in 01_created_indication.py
>
> This test was returning a false positive in the case where create_using_definesystem() fails.
>
> Signed-off-by: Kaitlin Rupert
>
> diff -r 336c6f965bae -r 0647d0742640 suites/libvirt-cim/cimtest/ComputerSystemIndication/01_created_indication.py
> --- a/suites/libvirt-cim/cimtest/ComputerSystemIndication/01_created_indication.py Wed May 07 09:54:57 2008 -0700
> +++ b/suites/libvirt-cim/cimtest/ComputerSystemIndication/01_created_indication.py Sun May 11 19:31:47 2008 -0700
> @@ -63,7 +63,13 @@
> else:
> sys.exit(0)
> else:
> - create_using_definesystem(test_dom, options.ip, None, None, options.virt)
> + status = create_using_definesystem(test_dom, options.ip, None, None, options.virt)
> + if status != PASS:
> + sub.unsubscribe(dict['default_auth'])
> + logger.info("Cancelling subscription for %s" % indication_name)
> + os.kill(pid, signal.SIGKILL)
> + return status
> +
> for i in range(0,100):
> pw = os.waitpid(pid, os.WNOHANG)[1]
> if pw == 0:
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
>
From deeptik at linux.vnet.ibm.com Tue May 13 06:20:32 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Tue, 13 May 2008 11:50:32 +0530
Subject: [Libvirt-cim] [TEST] Issue with
VirtualSystemManagementService/06_addresource.py
In-Reply-To: <48289E34.6090906@linux.vnet.ibm.com>
References:
<48174407.9020804@linux.vnet.ibm.com>
<87d4o8ievv.fsf@caffeine.beaverton.ibm.com>
<4817C734.3090309@linux.vnet.ibm.com>
<4818EB63.5050505@linux.vnet.ibm.com>
<87mynand55.fsf@caffeine.beaverton.ibm.com>
<4822F172.4050409@linux.vnet.ibm.com>
<48289E34.6090906@linux.vnet.ibm.com>
Message-ID: <48293330.4060909@linux.vnet.ibm.com>
Kaitlin Rupert wrote:
>>>
>>> Well, the providers should be creating ,
>>> so I need to check and make sure we're doing that.
>>>
>> I checked whether the provider adds the
>> and it does for KVM.
>> I tried creating the KVM guest with two interface types:
>>
>> 1) Network Type :
>>
>> It needs the following fields in the xml file:
>>
>>
>>
>>
>>
>>
>> We are handling this in the provider code.
>>
>> 2) Bridge Type :
>> It needs the following fields in the xml file:
>>
>>
>>
>>
>>
>> The provider code in the xmlgen.c file does not support the KVM
>> guest to be created with the "bridge" type.
>
> Excellent find Deepti. Thanks for looking into this - I think this is
> an issue with the provider.
>
> You're correct - this is an issue in xmlgen.c What is happening here
> is the following:
>
> 1) Guest is created using virsh using network type bridge.
> 2) xen_net_to_xml() in xmlgen.c gets called instead of kvm_net_to_xml().
> 3) Since xend is fine with using a bridge interface without the
> tag defined, we don't specify one in the xmlgen
> code. QEMU borks when it attempts to create the guest with the new XML.
>
>>
>> 1) Also, I noticed that for creating the Xen guest we do not require
>> the field in the section for both Network and
>> Bridge interface Types.
>> But for the KVM guest its compulsory to have the field in
>> the section for both Network and Bridge interface Types.
>> 2) Any specific reason for not supporting the KVM guest to be created
>> for the bridge type interface, and supporting Xen guest with only
>> bridge type ?
>
> If you use the network interface type, the libvirt gets all the
> necessary network information from the virtual network. We don't have
> to worry about whether the bridge exists, etc.
Well, I think we still need the bridge to exist on the system, to be
able to use the virtual network available on the machine.
In order to see whether the bridge is really required to be present on
the machine.
I created a virtual network with the following network config file.
default
91e73602-dd76-464c-aaf7-99002d45d289
Though I have not specified the bridge info anywhere in the config file
, the libvirt assigned its own bridge "vnet0" , see the dump below:
virsh net-dumpxml default
default
91e73602-dd76-464c-aaf7-99002d45d289
I then
1) brought the vnet0 down
2) deleted the bridge
3) tried creating the KVM guest with the following network information
in it:
and got the following error while creating the guest
virsh create new_kvm_net.xml
libvir: QEMU error : internal error Failed to add tap interface 'vnet%d'
to bridge 'vnet0' : Operation not supported
error: Failed to create domain from new_kvm_net.xml
Is there any other way to create the virtual network where it does not
bother to have a bridge to exist?
>
>> 3) Also, I did not understand the need for the script field in the
>> interface section. We can create the Xen, KVM guests without this.
>
> This is a good point. Actually, I thought there was some talk of
> having both Xen and KVM guests use the network interface, but I might
> be mistaken.
>
>>
>>
>>> KR> Dan - should the provider return an error if the guest doesn't use
>>> KR> a network type interface?
>>>
>>> Meaning an existing guest created outside the providers with a network
>>> type we don't support? I dunno, I'll have to think on that one.
>>>
>
> Right - that's the issue here. We have a KVM guest with a bridge
> network type. The AddResource() call fails because it generates the
> new XML incorrectly.
>
Thanks and Regards,
Deepti.
From yunguol at cn.ibm.com Wed May 14 15:34:09 2008
From: yunguol at cn.ibm.com (yunguol at cn.ibm.com)
Date: Wed, 14 May 2008 23:34:09 +0800
Subject: [Libvirt-cim] [PATCH] [TEST] Add PoolXML class for creating a
virtual pool in vxml.py
Message-ID:
# HG changeset patch
# User Guolian Yun
# Date 1210779243 -28800
# Node ID dcb1f04780e641973d1070440bc6f50fac2e9831
# Parent cdcf642c493a548d2deb499f223bb9a1f414cb3c
[TEST] Add PoolXML class for creating a virtual pool in vxml.py
Signed-off-by: Kaitlin Rupert
diff -r cdcf642c493a -r dcb1f04780e6 suites/libvirt-cim/lib/XenKvmLib/const.py
--- a/suites/libvirt-cim/lib/XenKvmLib/const.py Mon May 12 03:23:12 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/const.py Wed May 14 23:34:03 2008 +0800
@@ -37,6 +37,9 @@
default_bridge_name = 'testbridge'
default_network_name = 'default-net'
+#vxml.PoolXML
+default_pool_name = 'testpool'
+
# vxml.VirtXML
default_domname = 'domU1'
default_memory = 128
diff -r cdcf642c493a -r dcb1f04780e6 suites/libvirt-cim/lib/XenKvmLib/vxml.py
--- a/suites/libvirt-cim/lib/XenKvmLib/vxml.py Mon May 12 03:23:12 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/vxml.py Wed May 14 23:34:03 2008 +0800
@@ -143,7 +143,7 @@
self.vuri = 'qemu:///system'
def run(self, ip, vcmd, param):
- file_arg_cmds = ['define', 'create', 'net-create']
+ file_arg_cmds = ['define', 'create', 'net-create', 'pool-create']
if vcmd in file_arg_cmds:
ntf = tempfile.NamedTemporaryFile('w')
ntf.write(param)
@@ -211,6 +211,27 @@
def create_vnet(self):
return self.run(self.server, 'net-create', self.xml_string)
+class PoolXML(Virsh, XMLClass):
+
+ def __init__(self, server, poolname=const.default_pool_name,
+ virt='xen'):
+
+ XMLClass.__init__(self)
+ if virt == 'XenFV':
+ virt = 'xen'
+ Virsh.__init__(self, str(virt).lower())
+ self.pool_name = poolname
+ self.server = server
+
+ pool = self.add_sub_node(self.xdoc, 'pool', type='dir')
+ self.add_sub_node(pool, 'name', self.pool_name)
+ source = self.add_sub_node(pool, 'source')
+ self.add_sub_node(source, 'device', path='/tmp')
+ target = self.add_sub_node(pool, 'target')
+ self.add_sub_node(target, 'path', '/tmp')
+
+ def create_vpool(self):
+ return self.run(self.server, 'pool-create', self.xml_string)
class VirtXML(Virsh, XMLClass):
"""Base class for all XML generation & operation"""
From deeptik at linux.vnet.ibm.com Tue May 13 12:11:14 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Tue, 13 May 2008 17:41:14 +0530
Subject: [Libvirt-cim] [PATCH] [TEST] Add PoolXML class for creating a
virtual pool in vxml.py
In-Reply-To:
References:
Message-ID: <48298562.9020005@linux.vnet.ibm.com>
+1 for me.
But can we also add pool-destroy to the file_arg_cmds list ?
Thanks and Regards,
Deepti.
yunguol at cn.ibm.com wrote:
> # HG changeset patch
> # User Guolian Yun
> # Date 1210779243 -28800
> # Node ID dcb1f04780e641973d1070440bc6f50fac2e9831
> # Parent cdcf642c493a548d2deb499f223bb9a1f414cb3c
> [TEST] Add PoolXML class for creating a virtual pool in vxml.py
>
> Signed-off-by: Kaitlin Rupert
>
> diff -r cdcf642c493a -r dcb1f04780e6 suites/libvirt-cim/lib/XenKvmLib/const.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/const.py Mon May 12 03:23:12 2008 -0700
> +++ b/suites/libvirt-cim/lib/XenKvmLib/const.py Wed May 14 23:34:03 2008 +0800
> @@ -37,6 +37,9 @@
> default_bridge_name = 'testbridge'
> default_network_name = 'default-net'
>
> +#vxml.PoolXML
> +default_pool_name = 'testpool'
> +
> # vxml.VirtXML
> default_domname = 'domU1'
> default_memory = 128
> diff -r cdcf642c493a -r dcb1f04780e6 suites/libvirt-cim/lib/XenKvmLib/vxml.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/vxml.py Mon May 12 03:23:12 2008 -0700
> +++ b/suites/libvirt-cim/lib/XenKvmLib/vxml.py Wed May 14 23:34:03 2008 +0800
> @@ -143,7 +143,7 @@
> self.vuri = 'qemu:///system'
>
> def run(self, ip, vcmd, param):
> - file_arg_cmds = ['define', 'create', 'net-create']
> + file_arg_cmds = ['define', 'create', 'net-create', 'pool-create']
> if vcmd in file_arg_cmds:
> ntf = tempfile.NamedTemporaryFile('w')
> ntf.write(param)
> @@ -211,6 +211,27 @@
> def create_vnet(self):
> return self.run(self.server, 'net-create', self.xml_string)
>
> +class PoolXML(Virsh, XMLClass):
> +
> + def __init__(self, server, poolname=const.default_pool_name,
> + virt='xen'):
> +
> + XMLClass.__init__(self)
> + if virt == 'XenFV':
> + virt = 'xen'
> + Virsh.__init__(self, str(virt).lower())
> + self.pool_name = poolname
> + self.server = server
> +
> + pool = self.add_sub_node(self.xdoc, 'pool', type='dir')
> + self.add_sub_node(pool, 'name', self.pool_name)
> + source = self.add_sub_node(pool, 'source')
> + self.add_sub_node(source, 'device', path='/tmp')
> + target = self.add_sub_node(pool, 'target')
> + self.add_sub_node(target, 'path', '/tmp')
> +
> + def create_vpool(self):
> + return self.run(self.server, 'pool-create', self.xml_string)
>
> class VirtXML(Virsh, XMLClass):
> """Base class for all XML generation & operation"""
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
>
From deeptik at linux.vnet.ibm.com Tue May 13 13:07:44 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Tue, 13 May 2008 06:07:44 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Adding virsh_version() and
diskpool_list() to live.py
Message-ID:
# HG changeset patch
# User Deepti B. Kalakeri
# Date 1210684047 25200
# Node ID f81fd5f73b3e71630bf2b6e6e6a51a8f7f254346
# Parent cdcf642c493a548d2deb499f223bb9a1f414cb3c
[TEST] Adding virsh_version() and diskpool_list() to live.py.
Signed-off-by: Deepti B. Kalakeri
diff -r cdcf642c493a -r f81fd5f73b3e lib/VirtLib/live.py
--- a/lib/VirtLib/live.py Mon May 12 03:23:12 2008 -0700
+++ b/lib/VirtLib/live.py Tue May 13 06:07:27 2008 -0700
@@ -313,3 +313,28 @@ def network_by_bridge(bridge, server, vi
return network
return None
+
+def virsh_version(server, virt="KVM"):
+ cmd = "virsh -c %s -v " % utils.virt2uri(virt)
+ ret, out = utils.run_remote(server, cmd)
+ if ret != 0:
+ return None
+ return out
+
+def diskpool_list(server, virt="KVM"):
+ """Function to list active DiskPool list"""
+ names = []
+ cmd = "virsh -c %s pool-list | sed -e '1,2 d' -e '$ d'" % \
+ utils.virt2uri(virt)
+ ret, out = utils.run_remote(server, cmd)
+
+ if ret != 0:
+ return names
+
+ lines = out.split("\n")
+ for line in lines:
+ disk_pool = line.split()
+ if len(disk_pool) >= 1 and disk_pool[1] == "active":
+ names.append(disk_pool[0])
+
+ return names
From deeptik at linux.vnet.ibm.com Tue May 13 13:12:44 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Tue, 13 May 2008 06:12:44 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Adding create_diskpool() function
Message-ID:
# HG changeset patch
# User Deepti B. Kalakeri
# Date 1210684342 25200
# Node ID a6ffa074aab4b3867358eb77c0dcc7c622c595d4
# Parent f81fd5f73b3e71630bf2b6e6e6a51a8f7f254346
[TEST] Adding create_diskpool() function
To create the storage pool on machine with libvirt >= 0.4.1
Signed-off-by: Deepti B. Kalakeri
diff -r f81fd5f73b3e -r a6ffa074aab4 suites/libvirt-cim/lib/XenKvmLib/common_util.py
--- a/suites/libvirt-cim/lib/XenKvmLib/common_util.py Tue May 13 06:07:27 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/common_util.py Tue May 13 06:12:22 2008 -0700
@@ -1,3 +1,4 @@
+#!/usr/bin/python
#
# Copyright 2008 IBM Corp.
#
@@ -32,9 +33,12 @@ from XenKvmLib.classes import get_typed_
from XenKvmLib.classes import get_typed_class
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 XenKvmLib.const import CIM_REV, default_pool_name
+from VirtLib.live import diskpool_list
+from XenKvmLib.vxml import PoolXML
test_dpath = "foo"
+dpoolname = default_pool_name
diskpoolconf_rev = 558
if CIM_REV < diskpoolconf_rev:
@@ -294,3 +298,17 @@ def create_diskpool_file():
return conf_file()
+def create_diskpool(server, virt='KVM'):
+ dpool_list = diskpool_list(server, virt='KVM')
+ if len(dpool_list) > 0:
+ dpoolname=dpool_list[0]
+ else:
+ global dpoolname
+ diskxml = PoolXML(server, virt=virt)
+ ret = diskxml.create_vpool()
+ if not ret:
+ logger.error('Failed to create the disk pool "%s"',
+ dpoolname)
+ return FAIL
+ logger.info("Disk Pool on machine is: %s ", dpoolname)
+ return PASS
From deeptik at linux.vnet.ibm.com Tue May 13 13:20:45 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Tue, 13 May 2008 06:20:45 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Updating 01_forward.py of SDC
Message-ID:
# HG changeset patch
# User Deepti B. Kalakeri
# Date 1210684825 25200
# Node ID cf44a468be8440eb3b09c9a43804af7ecf5f9ae0
# Parent a6ffa074aab4b3867358eb77c0dcc7c622c595d4
[TEST] Updating 01_forward.py of SDC.
To use the storage pool present on the machine.
This tc will now pass on latest libvirt-cim for KVM.
This tc will require virsh_version() and diskpool_list() and create_diskpool() function
changes to work.
Signed-off-by: Deepti B. Kalakeri
diff -r a6ffa074aab4 -r cf44a468be84 suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py
--- a/suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py Tue May 13 06:12:22 2008 -0700
+++ b/suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py Tue May 13 06:20:25 2008 -0700
@@ -59,17 +59,16 @@ from XenKvmLib import enumclass
from XenKvmLib import enumclass
from XenKvmLib.test_xml import netxml
from XenKvmLib.test_doms import create_vnet
-from VirtLib.live import net_list
+from VirtLib.live import net_list, virsh_version
from CimTest.ReturnCodes import PASS, FAIL, SKIP
from CimTest.Globals import do_main, platform_sup, logger, \
CIM_ERROR_GETINSTANCE, CIM_ERROR_ASSOCIATORS
from XenKvmLib.classes import get_typed_class
from XenKvmLib.common_util import cleanup_restore, test_dpath, \
-create_diskpool_file
+create_diskpool_file, diskpoolconf_rev, create_diskpool, dpoolname
from XenKvmLib.common_util import print_field_error
from XenKvmLib.const import CIM_REV
-diskid = "%s/%s" % ("DiskPool", test_dpath)
memid = "%s/%s" % ("MemoryPool", 0)
procid = "%s/%s" % ("ProcessorPool", 0)
libvirtcim_sdc_rasd_rev = 571
@@ -130,6 +129,18 @@ def get_pool_details(virt, server):
def get_pool_details(virt, server):
dpool = npool = mpool = ppool = None
try :
+ libvirt_version = virsh_version(server, virt)
+ if virt == 'KVM' and libvirt_version >= '0.4.1' and \
+ CIM_REV > diskpoolconf_rev:
+ diskid = "%s/%s" % ("DiskPool", dpoolname)
+ status = create_diskpool(server, virt=virt)
+ else:
+ diskid = "%s/%s" % ("DiskPool", test_dpath)
+ status = create_diskpool_file()
+
+ if status != PASS:
+ return status, dpool, npool, mpool, ppool
+
dpool = get_pool_info(virt, server, diskid, poolname="DiskPool")
mpool = get_pool_info(virt, server, memid, poolname= "MemoryPool")
ppool = get_pool_info(virt, server, procid, poolname= "ProcessorPool")
@@ -145,7 +156,7 @@ def get_pool_details(virt, server):
if not ret:
logger.error("Failed to create Virtual Network '%s'",
test_network)
- return SKIP
+ return SKIP, dpool, npool, mpool, ppool
netid = "%s/%s" % ("NetworkPool", test_network)
npool = get_pool_info(virt, server, netid, poolname= "NetworkPool")
@@ -225,11 +236,6 @@ def main():
server = options.ip
virt = options.virt
- # Verify DiskPool on machine
- status = create_diskpool_file()
- if status != PASS:
- return status
-
status, dpool, npool, mpool, ppool = get_pool_details(virt, server)
if status != PASS or dpool.InstanceID == None or mpool.InstanceID == None \
or npool.InstanceID == None or ppool.InstanceID == None:
From deeptik at linux.vnet.ibm.com Tue May 13 13:15:51 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Tue, 13 May 2008 18:45:51 +0530
Subject: [Libvirt-cim] [PATCH] [TEST] Add PoolXML class for creating a
virtual pool in vxml.py
In-Reply-To:
References:
Message-ID: <48299487.5070402@linux.vnet.ibm.com>
yunguol at cn.ibm.com wrote:
> # HG changeset patch
> # User Guolian Yun
> # Date 1210779243 -28800
> # Node ID dcb1f04780e641973d1070440bc6f50fac2e9831
> # Parent cdcf642c493a548d2deb499f223bb9a1f414cb3c
> [TEST] Add PoolXML class for creating a virtual pool in vxml.py
>
> Signed-off-by: Kaitlin Rupert
>
> diff -r cdcf642c493a -r dcb1f04780e6 suites/libvirt-cim/lib/XenKvmLib/const.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/const.py Mon May 12 03:23:12 2008 -0700
> +++ b/suites/libvirt-cim/lib/XenKvmLib/const.py Wed May 14 23:34:03 2008 +0800
> @@ -37,6 +37,9 @@
> default_bridge_name = 'testbridge'
> default_network_name = 'default-net'
>
> +#vxml.PoolXML
> +default_pool_name = 'testpool'
> +
> # vxml.VirtXML
> default_domname = 'domU1'
> default_memory = 128
> diff -r cdcf642c493a -r dcb1f04780e6 suites/libvirt-cim/lib/XenKvmLib/vxml.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/vxml.py Mon May 12 03:23:12 2008 -0700
> +++ b/suites/libvirt-cim/lib/XenKvmLib/vxml.py Wed May 14 23:34:03 2008 +0800
> @@ -143,7 +143,7 @@
> self.vuri = 'qemu:///system'
>
> def run(self, ip, vcmd, param):
> - file_arg_cmds = ['define', 'create', 'net-create']
> + file_arg_cmds = ['define', 'create', 'net-create', 'pool-create']
> if vcmd in file_arg_cmds:
> ntf = tempfile.NamedTemporaryFile('w')
> ntf.write(param)
> @@ -211,6 +211,27 @@
> def create_vnet(self):
> return self.run(self.server, 'net-create', self.xml_string)
>
> +class PoolXML(Virsh, XMLClass):
> +
> + def __init__(self, server, poolname=const.default_pool_name,
> + virt='xen'):
> +
> + XMLClass.__init__(self)
> + if virt == 'XenFV':
> + virt = 'xen'
> + Virsh.__init__(self, str(virt).lower())
> + self.pool_name = poolname
> + self.server = server
> +
> + pool = self.add_sub_node(self.xdoc, 'pool', type='dir')
> + self.add_sub_node(pool, 'name', self.pool_name)
> + source = self.add_sub_node(pool, 'source')
> + self.add_sub_node(source, 'device', path='/tmp')
>
Also , creation of the pool works fine without the source tags.
> + target = self.add_sub_node(pool, 'target')
> + self.add_sub_node(target, 'path', '/tmp')
> +
> + def create_vpool(self):
> + return self.run(self.server, 'pool-create', self.xml_string)
>
> class VirtXML(Virsh, XMLClass):
> """Base class for all XML generation & operation"""
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
>
From danms at us.ibm.com Tue May 13 15:54:43 2008
From: danms at us.ibm.com (Dan Smith)
Date: Tue, 13 May 2008 08:54:43 -0700
Subject: [Libvirt-cim] [TEST] Issue with
VirtualSystemManagementService/06_addresource.py
In-Reply-To: <48293330.4060909@linux.vnet.ibm.com> (Deepti B. Kalakeri's
message of "Tue, 13 May 2008 11:50:32 +0530")
References:
<48174407.9020804@linux.vnet.ibm.com>
<87d4o8ievv.fsf@caffeine.beaverton.ibm.com>
<4817C734.3090309@linux.vnet.ibm.com>
<4818EB63.5050505@linux.vnet.ibm.com>
<87mynand55.fsf@caffeine.beaverton.ibm.com>
<4822F172.4050409@linux.vnet.ibm.com>
<48289E34.6090906@linux.vnet.ibm.com>
<48293330.4060909@linux.vnet.ibm.com>
Message-ID: <87zlqurygs.fsf@caffeine.beaverton.ibm.com>
DK> Well, I think we still need the bridge to exist on the system, to
DK> be able to use the virtual network available on the machine. In
DK> order to see whether the bridge is really required to be present
DK> on the machine.
Sure, but we can rely on libvirt to handle that for us.
DK> Though I have not specified the bridge info anywhere in the config
DK> file , the libvirt assigned its own bridge "vnet0" , see the dump
DK> below:
Right.
DK> 1) brought the vnet0 down
DK> 2) deleted the bridge
DK> 3) tried creating the KVM guest with the following network information
This isn't a valid thing to do, though. If the user goes behind
libvirt and breaks the networking config, then I think the expectation
is that things will not work :)
DK> and got the following error while creating the guest
DK> virsh create new_kvm_net.xml
DK> libvir: QEMU error : internal error Failed to add tap interface
DK> vnet%d' to bridge 'vnet0' : Operation not supported
DK> error: Failed to create domain from new_kvm_net.xml
This is because libvirtd tried to attach the domain's ethernet adapter
to a bridge that no longer exists. This _should_ fail and it does.
DK> Is there any other way to create the virtual network where it does
DK> not bother to have a bridge to exist?
I'm not sure what you're asking here, but as far as I can tell, things
are behaving as they should.
--
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms at us.ibm.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL:
From kaitlin at linux.vnet.ibm.com Tue May 13 18:25:56 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Tue, 13 May 2008 11:25:56 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Add PoolXML class for creating a
virtual pool in vxml.py
In-Reply-To: <48299487.5070402@linux.vnet.ibm.com>
References:
<48299487.5070402@linux.vnet.ibm.com>
Message-ID: <4829DD34.2050006@linux.vnet.ibm.com>
Deepti B Kalakeri wrote:
>
>
> yunguol at cn.ibm.com wrote:
>> # HG changeset patch
>> # User Guolian Yun
>> # Date 1210779243 -28800
>> # Node ID dcb1f04780e641973d1070440bc6f50fac2e9831
>> # Parent cdcf642c493a548d2deb499f223bb9a1f414cb3c
>> [TEST] Add PoolXML class for creating a virtual pool in vxml.py
>>
>> Signed-off-by: Kaitlin Rupert
Please sign with your DCO, not mine.
>> +
>> + pool = self.add_sub_node(self.xdoc, 'pool', type='dir')
>> + self.add_sub_node(pool, 'name', self.pool_name)
>> + source = self.add_sub_node(pool, 'source')
>> + self.add_sub_node(source, 'device', path='/tmp')
>>
> Also , creation of the pool works fine without the source tags.
I source is needed for some kind of pools, such as iscsi pools.
However, for dir type storage pools, agreed: you don't need the source
tag.
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Tue May 13 18:35:27 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Tue, 13 May 2008 11:35:27 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Adding create_diskpool() function
In-Reply-To:
References:
Message-ID: <4829DF6F.4040907@linux.vnet.ibm.com>
> +def create_diskpool(server, virt='KVM'):
> + dpool_list = diskpool_list(server, virt='KVM')
> + if len(dpool_list) > 0:
> + dpoolname=dpool_list[0]
> + else:
> + global dpoolname
Don't use a global here. Globals should be avoided, especially in this
case where this function is modifying a value that is used by multiple
test cases.
Instead, have this function return the name of the diskpool it uses.
> + diskxml = PoolXML(server, virt=virt)
> + ret = diskxml.create_vpool()
> + if not ret:
> + logger.error('Failed to create the disk pool "%s"',
> + dpoolname)
> + return FAIL
> + logger.info("Disk Pool on machine is: %s ", dpoolname)
> + return PASS
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Tue May 13 18:40:54 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Tue, 13 May 2008 11:40:54 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Updating 01_forward.py of SDC
In-Reply-To:
References:
Message-ID: <4829E0B6.4000104@linux.vnet.ibm.com>
> @@ -130,6 +129,18 @@ def get_pool_details(virt, server):
> def get_pool_details(virt, server):
> dpool = npool = mpool = ppool = None
> try :
> + libvirt_version = virsh_version(server, virt)
> + if virt == 'KVM' and libvirt_version >= '0.4.1' and \
> + CIM_REV > diskpoolconf_rev:
> + diskid = "%s/%s" % ("DiskPool", dpoolname)
> + status = create_diskpool(server, virt=virt)
> + else:
> + diskid = "%s/%s" % ("DiskPool", test_dpath)
> + status = create_diskpool_file()
This block will be basically be identical for each test that needs to
create a diskpool. Instead, create common function that determines
which diskpool function to call. That way, the test cases only need to
make one call. If this changes in the future, it's easier to change it
in one function than it is to change it in multiple test cases.
On my system, I have an existing pool called mypool. This test case
fails with the following error:
SettingsDefineCapabilities - 01_forward.py: FAIL
ERROR - AttributeError : 'list' object has no attribute 'InstanceID'
CIM_ERR_NOT_FOUND: No such instance (testpool)
If I delete mypool, the test passes.
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From yunguol at cn.ibm.com Wed May 14 02:01:32 2008
From: yunguol at cn.ibm.com (Guo Lian Yun)
Date: Tue, 13 May 2008 19:01:32 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Resubmit PoolXML class for creating a
virtual pool in vxml.py
Message-ID: <82e90471b04874cb48a4.1210730492@elm3b197.beaverton.ibm.com>
# HG changeset patch
# User Guolian Yun
# Date 1210730487 25200
# Node ID 82e90471b04874cb48a473dd72468be6f784acba
# Parent 06c87ac466e374f7ca5b7e3dd1923ee32f1ef2ce
[TEST] Resubmit PoolXML class for creating a virtual pool in vxml.py
Removed source tag and add pool destroy function
Signed-off-by: Guolian Yun
diff -r 06c87ac466e3 -r 82e90471b048 suites/libvirt-cim/lib/XenKvmLib/const.py
--- a/suites/libvirt-cim/lib/XenKvmLib/const.py Tue May 13 06:07:27 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/const.py Tue May 13 19:01:27 2008 -0700
@@ -37,6 +37,9 @@ default_bridge_name = 'testbridge'
default_bridge_name = 'testbridge'
default_network_name = 'default-net'
+#vxml.PoolXML
+default_pool_name = 'testpool'
+
# vxml.VirtXML
default_domname = 'domU1'
default_memory = 128
diff -r 06c87ac466e3 -r 82e90471b048 suites/libvirt-cim/lib/XenKvmLib/vxml.py
--- a/suites/libvirt-cim/lib/XenKvmLib/vxml.py Tue May 13 06:07:27 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/vxml.py Tue May 13 19:01:27 2008 -0700
@@ -143,12 +143,14 @@ class Virsh:
self.vuri = 'qemu:///system'
def run(self, ip, vcmd, param):
- file_arg_cmds = ['define', 'create', 'net-create']
+ file_arg_cmds = ['define', 'create', 'net-create', 'pool-create']
if vcmd in file_arg_cmds:
ntf = tempfile.NamedTemporaryFile('w')
ntf.write(param)
ntf.flush()
name = ntf.name
+ elif vcmd == 'pool-destroy':
+ name = param
elif param is None:
name = ""
else:
@@ -211,6 +213,28 @@ class NetXML(Virsh, XMLClass):
def create_vnet(self):
return self.run(self.server, 'net-create', self.xml_string)
+class PoolXML(Virsh, XMLClass):
+
+ def __init__(self, server, poolname=const.default_pool_name,
+ virt='xen'):
+
+ XMLClass.__init__(self)
+ if virt == 'XenFV':
+ virt = 'xen'
+ Virsh.__init__(self, str(virt).lower())
+ self.pool_name = poolname
+ self.server = server
+
+ pool = self.add_sub_node(self.xdoc, 'pool', type='dir')
+ self.add_sub_node(pool, 'name', self.pool_name)
+ target = self.add_sub_node(pool, 'target')
+ self.add_sub_node(target, 'path', '/tmp')
+
+ def create_vpool(self):
+ return self.run(self.server, 'pool-create', self.xml_string)
+
+ def destroy_vpool(self):
+ return self.run(self.server, 'pool-destroy', self.pool_name)
class VirtXML(Virsh, XMLClass):
"""Base class for all XML generation & operation"""
From deeptik at linux.vnet.ibm.com Wed May 14 06:36:12 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Wed, 14 May 2008 12:06:12 +0530
Subject: [Libvirt-cim] CimTest Report for KVM on F9 14-05-2008
Message-ID: <482A885C.2010603@linux.vnet.ibm.com>
========================================================================
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 : 77
LibVirtCIM : 587
CIMTEST : 138
=======================================================
PASS : 94
FAIL : 15
XFAIL : 4
SKIP : 16
-----------------
Total : 129
=======================================================
List of tc that are failing
ComputerSystem - 40_RSC_start.py: FAIL
ComputerSystemIndication - 01_created_indication.py: FAIL
ElementCapabilities - 01_forward.py: FAIL
HostSystem - 03_hs_to_settdefcap.py: FAIL
Memory - 01_memory.py: FAIL [This is extra failure from the last test
run , this is bcs of the recent memory modifications.]
Memory - 02_defgetmem.py: FAIL
NetworkPort - 03_user_netport.py: FAIL
Processor - 02_definesys_get_procs.py: FAIL
SettingsDefine - 02_reverse.py: FAIL
SettingsDefineCapabilities - 01_forward.py: FAIL [ This tc was skipped
last time, fails here bcs it require the storage pool.]
VSSD - 03_vssd_gi_errs.py: FAIL
VirtualSystemManagementService - 01_definesystem_name.py: FAIL
VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
VirtualSystemManagementService - 06_addresource.py: FAIL
VirtualSystemSettingDataComponent - 04_vssdc_rev_errs.py
Please find the complete report attached with the mail.
Thanks and Regards,
Deepti.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: May-14-KVM-report
URL:
From yunguol at cn.ibm.com Wed May 14 06:27:36 2008
From: yunguol at cn.ibm.com (Guo Lian Yun)
Date: Tue, 13 May 2008 23:27:36 -0700
Subject: [Libvirt-cim] [PATCH 2 of 3] [TEST] add LXCXML class to support LXC
guest
In-Reply-To:
Message-ID: <6a8318103e42f7e18910.1210746456@elm3b197.beaverton.ibm.com>
# HG changeset patch
# User Guolian Yun
# Date 1210745379 25200
# Node ID 6a8318103e42f7e1891011550d3a9f7d7f86839c
# Parent 935b2c485f8857ddb396efd729d5fc7ff7b41614
[TEST] add LXCXML class to support LXC guest
Signed-off-by: Guolian Yun
diff -r 935b2c485f88 -r 6a8318103e42 suites/libvirt-cim/lib/XenKvmLib/const.py
--- a/suites/libvirt-cim/lib/XenKvmLib/const.py Tue May 13 22:57:46 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/const.py Tue May 13 23:09:39 2008 -0700
@@ -78,3 +78,9 @@ XenFV_default_disk_dev = 'hda'
XenFV_default_disk_dev = 'hda'
XenFV_default_mac = '00:16:3e:5d:c7:9e'
XenFV_default_net_type = 'bridge'
+
+#vxml.LXCXML
+LXC_init_path = os.path.join(_image_dir)
+LXC_default_file_src = '/tmp'
+LXC_default_file_tar = '/tmp'
+LXC_default_tty = '/tmp'
diff -r 935b2c485f88 -r 6a8318103e42 suites/libvirt-cim/lib/XenKvmLib/vxml.py
--- a/suites/libvirt-cim/lib/XenKvmLib/vxml.py Tue May 13 22:57:46 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/vxml.py Tue May 13 23:09:39 2008 -0700
@@ -141,6 +141,8 @@ class Virsh:
self.vuri = 'xen:///'
elif vir_type == 'kvm':
self.vuri = 'qemu:///system'
+ elif vir_type == 'lxc':
+ self.vuri = 'lxc:///system'
def run(self, ip, vcmd, param):
file_arg_cmds = ['define', 'create', 'net-create']
@@ -246,7 +248,7 @@ class VirtXML(Virsh, XMLClass):
raise NotImplementedError('virtual method, implement your own')
def issubinstance(self):
- return isinstance(self, (XenXML, KVMXML, XenFVXML))
+ return isinstance(self, (XenXML, KVMXML, XenFVXML, LXCXML))
def set_memory(self, mem):
self.set_cdata('/domain/memory', mem * 1024)
@@ -593,6 +595,35 @@ class XenFVXML(VirtXML):
def set_vbridge(self, ip):
return self._set_vbridge(ip, 'XenFV')
+class LXCXML(VirtXML):
+
+ def __init__(self, test_dom=const.default_domname,
+ mem=const.default_memory,
+ vcpus=const.default_vcpus,
+ file_path_src=const.LXC_default_file_src,
+ file_path_tar=const.LXC_default_file_tar,
+ tty=const.LXC_default_tty):
+ if not os.path.exists(const.LXC_init_path):
+ logger.error('ERROR: init_path does not exist')
+ sys.exit(1)
+ VirtXML.__init__(self, 'lxc', test_dom, set_uuid(), mem, vcpus)
+ self._os(const.LXC_init_path)
+ self._devices(const.LXC_default_file_src,
+ const.LXC_default_file_tar,
+ const.LXC_default_tty)
+
+ def _os(self, os_init):
+ os = self.get_node('/domain/os')
+ self.add_sub_node(os, 'init', os_init)
+
+ def _devices(self, file_src, file_tar, tty):
+ devices = self.get_node('/domain/devices')
+
+ disk = self.add_sub_node(devices, 'filesystem', type='mount')
+ self.add_sub_node(disk, 'source', dir=file_src)
+ self.add_sub_node(disk, 'target', dir=file_tar)
+
+ interface = self.add_sub_node(devices, 'console', tty)
def get_class(virt):
if virt in virt_types:
From yunguol at cn.ibm.com Wed May 14 06:27:37 2008
From: yunguol at cn.ibm.com (Guo Lian Yun)
Date: Tue, 13 May 2008 23:27:37 -0700
Subject: [Libvirt-cim] [PATCH 3 of 3] [TEST] update ComputerSystem.01&03 tc
for LXC support
In-Reply-To:
Message-ID: <4ebde2a615e2b2449d13.1210746457@elm3b197.beaverton.ibm.com>
# HG changeset patch
# User Guolian Yun
# Date 1210745607 25200
# Node ID 4ebde2a615e2b2449d1334409f0374fdea26a279
# Parent 6a8318103e42f7e1891011550d3a9f7d7f86839c
[TEST] update ComputerSystem.01&03 tc for LXC support
Signed-off-by: Guolian Yun
diff -r 6a8318103e42 -r 4ebde2a615e2 suites/libvirt-cim/cimtest/ComputerSystem/01_enum.py
--- a/suites/libvirt-cim/cimtest/ComputerSystem/01_enum.py Tue May 13 23:09:39 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ComputerSystem/01_enum.py Tue May 13 23:13:27 2008 -0700
@@ -30,7 +30,7 @@ from CimTest import Globals
from CimTest import Globals
from CimTest.ReturnCodes import PASS, FAIL
-SUPPORTED_TYPES = ['Xen', 'KVM', 'XenFV']
+SUPPORTED_TYPES = ['Xen', 'KVM', 'XenFV', 'LXC']
@do_main(SUPPORTED_TYPES)
def main():
diff -r 6a8318103e42 -r 4ebde2a615e2 suites/libvirt-cim/cimtest/ComputerSystem/03_defineVS.py
--- a/suites/libvirt-cim/cimtest/ComputerSystem/03_defineVS.py Tue May 13 23:09:39 2008 -0700
+++ b/suites/libvirt-cim/cimtest/ComputerSystem/03_defineVS.py Tue May 13 23:13:27 2008 -0700
@@ -35,7 +35,7 @@ from CimTest.Globals import do_main
from CimTest.Globals import do_main
from CimTest.ReturnCodes import PASS, FAIL
-sup_types = ['Xen', 'KVM', 'XenFV']
+sup_types = ['Xen', 'KVM', 'XenFV', 'LXC']
test_dom = "domU1"
@do_main(sup_types)
diff -r 6a8318103e42 -r 4ebde2a615e2 suites/libvirt-cim/lib/XenKvmLib/computersystem.py
--- a/suites/libvirt-cim/lib/XenKvmLib/computersystem.py Tue May 13 23:09:39 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/computersystem.py Tue May 13 23:13:27 2008 -0700
@@ -69,6 +69,9 @@ class KVM_ComputerSystem(CIM_System):
class KVM_ComputerSystem(CIM_System):
pass
+class LXC_ComputerSystem(CIM_System):
+ pass
+
def get_cs_class(virt):
if virt in virt_types:
return eval(get_typed_class(virt, 'ComputerSystem'))
From yunguol at cn.ibm.com Wed May 14 06:27:34 2008
From: yunguol at cn.ibm.com (Guo Lian Yun)
Date: Tue, 13 May 2008 23:27:34 -0700
Subject: [Libvirt-cim] [PATCH 0 of 3] [TEST] bundles of LXC support
Message-ID:
patch 1 includes all the helper function changes for LXC tc running
patch 2 adds LXCXML class, you can use it to define a lxc domain, also you can add more functions
in it to support more devices
patch 3 changes ComputerSystem.01&03 and related lib to reflect the lxc changes
Signed-off-by: Guolian Yun
From yunguol at cn.ibm.com Wed May 14 06:27:35 2008
From: yunguol at cn.ibm.com (Guo Lian Yun)
Date: Tue, 13 May 2008 23:27:35 -0700
Subject: [Libvirt-cim] [PATCH 1 of 3] [TEST] add helpers function for LXC
support
In-Reply-To:
Message-ID: <935b2c485f8857ddb396.1210746455@elm3b197.beaverton.ibm.com>
# HG changeset patch
# User Guolian Yun
# Date 1210744666 25200
# Node ID 935b2c485f8857ddb396efd729d5fc7ff7b41614
# Parent 06c87ac466e374f7ca5b7e3dd1923ee32f1ef2ce
[TEST] add helpers function for LXC support
Signed-off-by: Guolian Yun
diff -r 06c87ac466e3 -r 935b2c485f88 lib/CimTest/Globals.py
--- a/lib/CimTest/Globals.py Tue May 13 06:07:27 2008 -0700
+++ b/lib/CimTest/Globals.py Tue May 13 22:57:46 2008 -0700
@@ -49,7 +49,7 @@ CIM_IP = os.getenv("CIM_IP")
CIM_IP = os.getenv("CIM_IP")
CIM_PORT = "5988"
NM = "TEST LOG"
-platform_sup = ["Xen", "KVM", "XenFV"]
+platform_sup = ["Xen", "KVM", "XenFV", "LXC"]
logging.basicConfig(filename='/dev/null')
logger = logging.getLogger(NM)
logging.PRINT = logging.DEBUG + 50
@@ -67,7 +67,7 @@ parser.add_option("-i", "--ip", dest="ip
help="IP address of machine to test, default: localhost")
parser.add_option("-v", "--virt", dest="virt", type="choice",
choices=platform_sup, default="Xen",
- help="Virt type, select from: 'Xen' & 'KVM' & 'XenFV', default: Xen")
+ help="Virt type, select from: 'Xen' & 'KVM' & 'XenFV' & 'LXC', default: Xen")
parser.add_option("-d", "--debug-output", action="store_true", dest="debug",
help="Duplicate the output to stderr")
diff -r 06c87ac466e3 -r 935b2c485f88 lib/VirtLib/utils.py
--- a/lib/VirtLib/utils.py Tue May 13 06:07:27 2008 -0700
+++ b/lib/VirtLib/utils.py Tue May 13 22:57:46 2008 -0700
@@ -161,5 +161,7 @@ def virt2uri(virt):
return "xen:///"
if virt == "KVM":
return "qemu:///system"
+ if virt == "LXC":
+ return "lxc:///system"
return ""
diff -r 06c87ac466e3 -r 935b2c485f88 suites/libvirt-cim/lib/XenKvmLib/classes.py
--- a/suites/libvirt-cim/lib/XenKvmLib/classes.py Tue May 13 06:07:27 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/classes.py Tue May 13 22:57:46 2008 -0700
@@ -19,7 +19,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
-virt_types = ['Xen', 'KVM', 'XenFV']
+virt_types = ['Xen', 'KVM', 'XenFV', 'LXC']
def get_typed_class(virt, basename):
if virt not in virt_types:
diff -r 06c87ac466e3 -r 935b2c485f88 suites/libvirt-cim/main.py
--- a/suites/libvirt-cim/main.py Tue May 13 06:07:27 2008 -0700
+++ b/suites/libvirt-cim/main.py Tue May 13 22:57:46 2008 -0700
@@ -51,7 +51,7 @@ parser.add_option("-c", "--clean-log",
help="Will remove existing log files before test run")
parser.add_option("-v", "--virt", dest="virt", type="choice",
choices=platform_sup, default="Xen",
- help="Virt type, select from 'Xen' & 'KVM' & 'XenFV'(default: Xen). ")
+ help="Virt type, select from 'Xen' & 'KVM' & 'XenFV' & 'LXC'(default: Xen). ")
parser.add_option("-d", "--debug-output", action="store_true", dest="debug",
help="Duplicate the output to stderr")
From yunguol at cn.ibm.com Wed May 14 07:24:22 2008
From: yunguol at cn.ibm.com (Guo Lian Yun)
Date: Wed, 14 May 2008 00:24:22 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] add LXC class to library for test
Message-ID:
# HG changeset patch
# User Guolian Yun
# Date 1210749855 25200
# Node ID ea663bc93926cbff6fac7c484a2f61749b51eb32
# Parent 06c87ac466e374f7ca5b7e3dd1923ee32f1ef2ce
[TEST] add LXC class to library for test
Signed-off-by: Guolian Yun
diff -r 06c87ac466e3 -r ea663bc93926 suites/libvirt-cim/lib/XenKvmLib/devices.py
--- a/suites/libvirt-cim/lib/XenKvmLib/devices.py Tue May 13 06:07:27 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/devices.py Wed May 14 00:24:15 2008 -0700
@@ -75,10 +75,16 @@ class KVM_LogicalDisk(CIM_LogicalDisk):
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):
@@ -87,10 +93,16 @@ class KVM_Memory(CIM_Memory):
class KVM_Memory(CIM_Memory):
pass
+class LXC_Memory(CIM_Memory):
+ pass
+
class Xen_Processor(CIM_Processor):
pass
class KVM_Processor(CIM_Processor):
+ pass
+
+class LXC_Processor(CIM_Processor):
pass
def get_class(classname):
diff -r 06c87ac466e3 -r ea663bc93926 suites/libvirt-cim/lib/XenKvmLib/hostsystem.py
--- a/suites/libvirt-cim/lib/XenKvmLib/hostsystem.py Tue May 13 06:07:27 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/hostsystem.py Wed May 14 00:24:15 2008 -0700
@@ -50,6 +50,8 @@ class KVM_HostSystem(CIM_System):
class KVM_HostSystem(CIM_System):
pass
+class LXC_HostSystem(CIM_System):
+ pass
def enumerate(server, virt='Xen'):
conn = pywbem.WBEMConnection('http://%s' % server,
diff -r 06c87ac466e3 -r ea663bc93926 suites/libvirt-cim/lib/XenKvmLib/rpcs.py
--- a/suites/libvirt-cim/lib/XenKvmLib/rpcs.py Tue May 13 06:07:27 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/rpcs.py Wed May 14 00:24:15 2008 -0700
@@ -50,6 +50,8 @@ class KVM_ResourcePoolConfigurationServi
class KVM_ResourcePoolConfigurationService(CIM_ResourcePoolConfigurationService):
pass
+class LXC_ResourcePoolConfigurationService(CIM_ResourcePoolConfigurationService):
+ pass
def enumerate(server, classname):
conn = pywbem.WBEMConnection('http://%s' % server,
diff -r 06c87ac466e3 -r ea663bc93926 suites/libvirt-cim/lib/XenKvmLib/vsms.py
--- a/suites/libvirt-cim/lib/XenKvmLib/vsms.py Tue May 13 06:07:27 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/vsms.py Wed May 14 00:24:15 2008 -0700
@@ -64,6 +64,9 @@ class Xen_VirtualSystemManagementService
pass
class KVM_VirtualSystemManagementService(CIM_VirtualSystemManagementService):
+ pass
+
+class LXC_VirtualSystemManagementService(CIM_VirtualSystemManagementService):
pass
@eval_cls('VirtualSystemManagementService')
From yunguol at cn.ibm.com Wed May 14 07:37:33 2008
From: yunguol at cn.ibm.com (Guo Lian Yun)
Date: Wed, 14 May 2008 00:37:33 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] add AC and related pool class for LXC
AC support
Message-ID: <2466e8715737283b27fe.1210750653@elm3b197.beaverton.ibm.com>
# HG changeset patch
# User Guolian Yun
# Date 1210750647 25200
# Node ID 2466e8715737283b27fe04426b1f7ebc555ac35b
# Parent 06c87ac466e374f7ca5b7e3dd1923ee32f1ef2ce
[TEST] add AC and related pool class for LXC AC support
Signed-off-by: Guolian Yun
diff -r 06c87ac466e3 -r 2466e8715737 suites/libvirt-cim/lib/XenKvmLib/enumclass.py
--- a/suites/libvirt-cim/lib/XenKvmLib/enumclass.py Tue May 13 06:07:27 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/enumclass.py Wed May 14 00:37:27 2008 -0700
@@ -119,10 +119,16 @@ class KVM_MemoryPool(CIM_ResourcePool):
class KVM_MemoryPool(CIM_ResourcePool):
pass
+class LXC_MemoryPool(CIM_ResourcePool):
+ pass
+
class Xen_ProcessorPool(CIM_ResourcePool):
pass
class KVM_ProcessorPool(CIM_ResourcePool):
+ pass
+
+class LXC_ProcessorPool(CIM_ResourcePool):
pass
class Xen_VirtualSystemManagementCapabilities(CIM_VirtualSystemManagementCapabilities):
@@ -149,12 +155,18 @@ class KVM_DiskPool(CIM_ResourcePool):
class KVM_DiskPool(CIM_ResourcePool):
pass
+class LXC_DiskPool(CIM_ResourcePool):
+ pass
+
class Xen_NetworkPool(CIM_ResourcePool):
pass
class KVM_NetworkPool(CIM_ResourcePool):
pass
+class LXC_NetworkPool(CIM_ResourcePool):
+ pass
+
class Xen_VirtualSystemMigrationCapabilities(Virt_VirtualSystemMigrationCapabilities):
pass
@@ -165,6 +177,9 @@ class Xen_AllocationCapabilities(CIM_All
pass
class KVM_AllocationCapabilities(CIM_AllocationCapabilities):
+ pass
+
+class LXC_AllocationCapabilities(CIM_AllocationCapabilities):
pass
class Xen_VirtualSystemMigrationSettingData(CIM_VirtualSystemMigrationSettingData):
From deeptik at linux.vnet.ibm.com Wed May 14 08:27:48 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Wed, 14 May 2008 13:57:48 +0530
Subject: [Libvirt-cim] Re: CimTest Report for KVM on F9 14-05-2008
In-Reply-To: <482A885C.2010603@linux.vnet.ibm.com>
References: <482A885C.2010603@linux.vnet.ibm.com>
Message-ID: <482AA284.3080205@linux.vnet.ibm.com>
Deepti B Kalakeri wrote:
> ========================================================================
> 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 : 77
> LibVirtCIM : 587
> CIMTEST : 138
> =======================================================
> PASS : 94
> FAIL : 15
> XFAIL : 4
> SKIP : 16
> -----------------
> Total : 129
> =======================================================
>
> List of tc that are failing
> ComputerSystem - 40_RSC_start.py: FAIL
> ComputerSystemIndication - 01_created_indication.py: FAIL
> ElementCapabilities - 01_forward.py: FAIL
> HostSystem - 03_hs_to_settdefcap.py: FAIL
> Memory - 01_memory.py: FAIL [This is extra failure from the last test
> run , this is bcs of the recent memory modifications.]
> Memory - 02_defgetmem.py: FAIL
> NetworkPort - 03_user_netport.py: FAIL
> Processor - 02_definesys_get_procs.py: FAIL
> SettingsDefine - 02_reverse.py: FAIL
> SettingsDefineCapabilities - 01_forward.py: FAIL [ This tc was skipped
> last time, fails here bcs it require the storage pool.]
> VSSD - 03_vssd_gi_errs.py: FAIL
> VirtualSystemManagementService - 01_definesystem_name.py: FAIL
> VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
> VirtualSystemManagementService - 06_addresource.py: FAIL
> VirtualSystemSettingDataComponent - 04_vssdc_rev_errs.py
>
> 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: XFAIL Bug: 85769
> ERROR - ERROR: VS DomST1 transition from Defined State to Activate state was not Successful
> Bug:<85769>
> ComputerSystem - 06_paused_active_suspend.py: XFAIL Bug: 85769
> ERROR - ERROR: VS DomST1 transition from suspend State to Activate state was not Successful
> Bug:<85769>
> 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: FAIL
> ERROR - Error invoke method `DefineSystem'. invalid extra attributes [u'EMBEDDEDOBJECT']
>
This error is because of the changes to the VSMS .
> ERROR - Exception: ('Unable create domain %s using DefineSystem()', 'test_domain')
> ComputerSystem - 41_cs_to_settingdefinestate.py: SKIP
> ComputerSystem - 42_cs_gi_errs.py: PASS
> ComputerSystemIndication - 01_created_indication.py: FAIL
> ERROR - Error invoke method `DefineSystem'. invalid extra attributes [u'EMBEDDEDOBJECT']
> ElementAllocatedFromPool - 01_forward.py: SKIP
> ElementAllocatedFromPool - 02_reverse.py: SKIP
> ElementAllocatedFromPool - 03_reverse_errs.py: PASS
> ElementAllocatedFromPool - 04_forward_errs.py: PASS
> ElementCapabilities - 01_forward.py: FAIL
> ERROR - ElementCapabilities association classname error
> 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: FAIL
> ERROR - HostedResourcePool has returned 3 instances, expected 4 instances
> HostSystem - 04_hs_to_EAPF.py: SKIP
> 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: FAIL
> ERROR - Capacity should be 256 MB instead of 262144 MB
> Memory - 02_defgetmem.py: FAIL
> ERROR - Error invoke method `DefineSystem'. invalid extra attributes [u'EMBEDDEDOBJECT']
> ERROR - Exception: Unable to create domain domu using DefineSys()
> Memory - 03_mem_gi_errs.py: PASS
> NetworkPort - 01_netport.py: PASS
> NetworkPort - 02_np_gi_errors.py: PASS
> NetworkPort - 03_user_netport.py: FAIL
> ERROR - Exception: (6, u'CIM_ERR_NOT_FOUND: No such instance (test_domain/00:11:22:33:44:55)')
> Processor - 01_processor.py: PASS
> Processor - 02_definesys_get_procs.py: FAIL
> ERROR - Error invoke method `DefineSystem'. invalid extra attributes [u'EMBEDDEDOBJECT']
> ERROR - Exception: Unable create domain test_domain using DefineSystem()
> 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: SKIP
> RASD - 01_verify_rasd_fields.py: PASS
> RASD - 02_enum.py: PASS
> RASD - 03_rasd_errs.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: PASS
> ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: PASS
> ResourcePoolConfigurationService - 05_AddResourcesToResourcePool.py: XFAIL Bug: 92173
> ERROR - Unexpected rc code 1 and description CIM_ERR_FAILED: Unknown Method
>
> InvokeMethod(AddResourcesToResourcePool): CIM_ERR_FAILED: Unknown Method
> Bug:<92173>
> ResourcePoolConfigurationService - 06_RemoveResourcesFromResourcePool.py: PASS
> ResourcePoolConfigurationService - 07_DeleteResourcePool.py: PASS
> SettingsDefine - 01_forward.py: PASS
> SettingsDefine - 02_reverse.py: FAIL
> ERROR - Mistmatching value for VSSDComponent association
> CIM_ERR_NOT_FOUND: No such instance (virtgst/proc)
> SettingsDefine - 03_sds_fwd_errs.py: PASS
> SettingsDefine - 04_sds_rev_errs.py: PASS
> SettingsDefineCapabilities - 01_forward.py: FAIL
> ERROR - AttributeError : 'list' object has no attribute 'InstanceID'
> CIM_ERR_NOT_FOUND: No such instance (foo)
> 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 - 04_vssd_to_rasd.py: PASS
> VirtualSystemManagementCapabilities - 01_enum.py: PASS
> VirtualSystemManagementCapabilities - 02_vsmcap_gi_errs.py: PASS
> VirtualSystemManagementService - 01_definesystem_name.py: FAIL
> ERROR - Error invoke method `DefineSystem'. invalid extra attributes [u'EMBEDDEDOBJECT']
> VirtualSystemManagementService - 02_destroysystem.py: PASS
> VirtualSystemManagementService - 03_definesystem_ess.py: PASS
> VirtualSystemManagementService - 04_definesystem_ers.py: PASS
> VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
> ERROR - destroy_fail>>noname: Error executing DestroySystem, exception details below
> ERROR - (1, u'CIM_ERR_FAILED: Unable to retrieve domain name.')
> ERROR - destroy_fail>>nonexistent: Error executing DestroySystem, exception details below
> ERROR - (1, u'CIM_ERR_FAILED: Failed to find domain')
> InvokeMethod(DestroySystem): CIM_ERR_FAILED: Unable to retrieve domain name.
> InvokeMethod(DestroySystem): CIM_ERR_FAILED: Failed to find domain
> VirtualSystemManagementService - 06_addresource.py: FAIL
> ERROR - Error invoking AddRS
> ERROR - (1, u'CIM_ERR_FAILED: Failed to create domain')
> InvokeMethod(AddResourceSettings): CIM_ERR_FAILED: Failed to create domain
> VirtualSystemManagementService - 07_addresource_neg.py: PASS
> VirtualSystemManagementService - 08_modifyresource.py: XFAIL Bug: 90853
> ERROR - Error invoking ModifyRS
> ERROR - (1, u'CIM_ERR_FAILED: Failed to create domain')
> InvokeMethod(ModifyResourceSettings): CIM_ERR_FAILED: Failed to create domain
> Bug:<90853>
> 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: SKIP
> VirtualSystemSettingDataComponent - 02_reverse.py: PASS
> VirtualSystemSettingDataComponent - 03_vssdc_fwd_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
>
From deeptik at linux.vnet.ibm.com Wed May 14 11:46:17 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Wed, 14 May 2008 04:46:17 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Adding create_diskpool() function
Message-ID: <6671b339cc8fd7c2cc7c.1210765577@elm3b216.beaverton.ibm.com>
# HG changeset patch
# User Deepti B. Kalakeri
# 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
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()
+ except Exception, detail:
+ logger.error("Exception: In fn create_diskpool(): %s", detail)
+ status=FAIL
+ return status, dpoolname
+
+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:
+ 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
diff -r 63c2d5e576bd -r 6671b339cc8f suites/libvirt-cim/lib/XenKvmLib/vxml.py
--- a/suites/libvirt-cim/lib/XenKvmLib/vxml.py Wed May 14 04:36:40 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/vxml.py Wed May 14 04:45:49 2008 -0700
@@ -121,7 +121,6 @@ class XMLClass:
except Exception:
logger.info('Zero or multiple node found')
return None
-
if node.nodeType == Node.ATTRIBUTE_NODE:
return node.value
if node.nodeType == Node.TEXT_NODE:
@@ -213,10 +212,14 @@ class NetXML(Virsh, XMLClass):
def create_vnet(self):
return self.run(self.server, 'net-create', self.xml_string)
+ def xml_get_netpool_name(self):
+ npoolname = self.get_value_xpath('/network/name')
+ return npoolname
+
class PoolXML(Virsh, XMLClass):
def __init__(self, server, poolname=const.default_pool_name,
- virt='xen'):
+ virt='xen'):
XMLClass.__init__(self)
if virt == 'XenFV':
@@ -235,6 +238,10 @@ class PoolXML(Virsh, XMLClass):
def destroy_vpool(self):
return self.run(self.server, 'pool-destroy', self.pool_name)
+
+ def xml_get_diskpool_name(self):
+ dpoolname = self.get_value_xpath('/pool/name')
+ return dpoolname
class VirtXML(Virsh, XMLClass):
"""Base class for all XML generation & operation"""
@@ -293,7 +300,7 @@ class VirtXML(Virsh, XMLClass):
def set_diskdev(self, diskdev):
self.set_attributes('/domain/devices/disk/target', dev=diskdev)
-
+
def define(self, ip):
return self.run(ip, 'define', self.xml_string)
@@ -374,7 +381,8 @@ class VirtXML(Virsh, XMLClass):
bridgeStr = self.get_value_xpath(
'/domain/devices/interface/source/@bridge')
return bridgeStr
-
+
+
def dumpxml(self, ip):
cmd = 'virsh -c %s dumpxml %s' % (self.vuri, self.dname)
s, o = utils.run_remote(ip, cmd)
From deeptik at linux.vnet.ibm.com Wed May 14 11:47:25 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Wed, 14 May 2008 04:47:25 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] #2 Updating 01_forward.py of SDC
Message-ID: <128d23c76793c50f8273.1210765645@elm3b216.beaverton.ibm.com>
# HG changeset patch
# User Deepti B. Kalakeri
# Date 1210765634 25200
# Node ID 128d23c76793c50f827372963acf29db57663a87
# Parent 6671b339cc8fd7c2cc7cada2ac15bc93635fbe4b
[TEST] #2 Updating 01_forward.py of SDC.
To use the storage pool present on the machine.
This tc will now pass on latest libvirt-cim for KVM.
This tc will require virsh_version() and diskpool_list() and create_diskpool() function
changes to work.
Signed-off-by: Deepti B. Kalakeri
diff -r 6671b339cc8f -r 128d23c76793 suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py
--- a/suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py Wed May 14 04:45:49 2008 -0700
+++ b/suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py Wed May 14 04:47:14 2008 -0700
@@ -57,19 +57,16 @@ from distutils.file_util import move_fil
from distutils.file_util import move_file
from XenKvmLib import assoc
from XenKvmLib import enumclass
-from XenKvmLib.test_xml import netxml
-from XenKvmLib.test_doms import create_vnet
-from VirtLib.live import net_list
+from VirtLib.live import virsh_version
from CimTest.ReturnCodes import PASS, FAIL, SKIP
from CimTest.Globals import do_main, platform_sup, logger, \
CIM_ERROR_GETINSTANCE, CIM_ERROR_ASSOCIATORS
from XenKvmLib.classes import get_typed_class
-from XenKvmLib.common_util import cleanup_restore, test_dpath, \
-create_diskpool_file
+from XenKvmLib.common_util import cleanup_restore, create_diskpool_conf, \
+create_netpool_conf
from XenKvmLib.common_util import print_field_error
from XenKvmLib.const import CIM_REV
-diskid = "%s/%s" % ("DiskPool", test_dpath)
memid = "%s/%s" % ("MemoryPool", 0)
procid = "%s/%s" % ("ProcessorPool", 0)
libvirtcim_sdc_rasd_rev = 571
@@ -130,22 +127,17 @@ def get_pool_details(virt, server):
def get_pool_details(virt, server):
dpool = npool = mpool = ppool = None
try :
+ status, diskid = create_diskpool_conf(server, virt)
+ if status != PASS:
+ return status, dpool, npool, mpool, ppool
+
dpool = get_pool_info(virt, server, diskid, poolname="DiskPool")
mpool = get_pool_info(virt, server, memid, poolname= "MemoryPool")
ppool = get_pool_info(virt, server, procid, poolname= "ProcessorPool")
- vir_network = net_list(server, virt)
- if len(vir_network) > 0:
- test_network = vir_network[0]
- else:
- bridgename = 'testbridge'
- test_network = 'default-net'
- net_xml, bridge = netxml(server, bridgename, test_network)
- ret = create_vnet(server, net_xml, virt)
- if not ret:
- logger.error("Failed to create Virtual Network '%s'",
- test_network)
- return SKIP
+ status, test_network = create_netpool_conf(server, virt)
+ if status != PASS:
+ return status, dpool, npool, mpool, ppool
netid = "%s/%s" % ("NetworkPool", test_network)
npool = get_pool_info(virt, server, netid, poolname= "NetworkPool")
@@ -225,11 +217,6 @@ def main():
server = options.ip
virt = options.virt
- # Verify DiskPool on machine
- status = create_diskpool_file()
- if status != PASS:
- return status
-
status, dpool, npool, mpool, ppool = get_pool_details(virt, server)
if status != PASS or dpool.InstanceID == None or mpool.InstanceID == None \
or npool.InstanceID == None or ppool.InstanceID == None:
From grendel at linux.vnet.ibm.com Wed May 14 15:25:15 2008
From: grendel at linux.vnet.ibm.com (Jay Gagnon)
Date: Wed, 14 May 2008 11:25:15 -0400
Subject: [Libvirt-cim] [PATCH] ProcessorRASD, the class that won't go away
Message-ID: <5d6e45906bf07c81d973.1210778715@naegling>
# HG changeset patch
# User Jay Gagnon
# Date 1210778696 14400
# Node ID 5d6e45906bf07c81d973e2edcc10dcefbc265dab
# Parent 0b26d79ea3283461b349d20dbcfdf1715344afcd
ProcessorRASD, the class that won't go away
Around and round we go on the merry-go-round of indecision, hopefully for our last ride. The definitely probably absolutely tentative final plan is that the default representation of processors as virt_device structs will be one per domain, with a quantity. Virt_Devices will just need to be told how to handle that, and all the RASD stuff will be much happier for it. And then we will never speak of this again.
So today being my last official day on the team, I kind of have to get this out in a not perfect state. From what I can see it does what it is supposed to do, but it is entirely possible (likely?) that there are a few things in here that aren't really great things to do. I wish I could polish it more but I think I've at least got it to the point where any work left to be done is generic "not a great idea in C" problems, as opposed to the much more annoying "what exactly are we supposed to do in this case" problems.
Signed-off-by: Jay Gagnon
diff -r 0b26d79ea328 -r 5d6e45906bf0 libxkutil/device_parsing.c
--- a/libxkutil/device_parsing.c Fri May 02 16:32:37 2008 -0400
+++ b/libxkutil/device_parsing.c Wed May 14 11:24:56 2008 -0400
@@ -337,7 +337,6 @@ static int parse_vcpu_device(xmlNode *no
struct virt_device *list = NULL;
char *count_str;
int count;
- int i;
count_str = get_node_content(node);
if (count_str == NULL)
@@ -347,24 +346,15 @@ static int parse_vcpu_device(xmlNode *no
free(count_str);
- list = calloc(count, sizeof(*list));
+ list = calloc(1, sizeof(*list));
if (list == NULL)
goto err;
-
- for (i = 0; i < count; i++) {
- struct virt_device *vdev = &list[i];
- struct vcpu_device *cdev = &vdev->dev.vcpu;
-
- cdev->number = i;
-
- vdev->type = CIM_RES_TYPE_PROC;
- if (asprintf(&vdev->id, "%i", i) == -1)
- vdev->id = NULL;
- }
+
+ list->dev.vcpu.quantity = count;
*vdevs = list;
- return count;
+ return 1;
err:
free(list);
@@ -620,7 +610,7 @@ struct virt_device *virt_device_dup(stru
dev->dev.mem.size = _dev->dev.mem.size;
dev->dev.mem.maxsize = _dev->dev.mem.maxsize;
} else if (dev->type == CIM_RES_TYPE_PROC) {
- dev->dev.vcpu.number = _dev->dev.vcpu.number;
+ dev->dev.vcpu.quantity = _dev->dev.vcpu.quantity;
} else if (dev->type == CIM_RES_TYPE_EMU) {
DUP_FIELD(dev, _dev, dev.emu.path);
} else if (dev->type == CIM_RES_TYPE_GRAPHICS) {
@@ -672,6 +662,32 @@ static int _get_mem_device(const char *x
return 1;
}
+static int _get_proc_device(const char *xml, struct virt_device **list)
+{
+ struct virt_device *proc_devs = NULL;
+ struct virt_device *proc_dev = NULL;
+ int ret;
+
+ ret = parse_devices(xml, &proc_devs, CIM_RES_TYPE_PROC);
+ if (ret <= 0)
+ return ret;
+
+ proc_dev = malloc(sizeof(*proc_dev));
+ if (proc_dev == NULL)
+ return 0;
+
+ memset(proc_dev, 0, sizeof(*proc_dev));
+
+ proc_dev->type = CIM_RES_TYPE_PROC;
+ proc_dev->id = strdup("proc");
+ proc_dev->dev.vcpu.quantity = proc_devs[0].dev.vcpu.quantity;
+ *list = proc_dev;
+
+ cleanup_virt_devices(&proc_devs, ret);
+
+ return 1;
+};
+
int get_devices(virDomainPtr dom, struct virt_device **list, int type)
{
char *xml;
@@ -683,6 +699,8 @@ int get_devices(virDomainPtr dom, struct
if (type == CIM_RES_TYPE_MEM)
ret = _get_mem_device(xml, list);
+ else if (type == CIM_RES_TYPE_PROC)
+ ret = _get_proc_device(xml, list);
else
ret = parse_devices(xml, list, type);
diff -r 0b26d79ea328 -r 5d6e45906bf0 libxkutil/device_parsing.h
--- a/libxkutil/device_parsing.h Fri May 02 16:32:37 2008 -0400
+++ b/libxkutil/device_parsing.h Wed May 14 11:24:56 2008 -0400
@@ -50,7 +50,7 @@ struct mem_device {
};
struct vcpu_device {
- uint64_t number;
+ uint64_t quantity;
};
struct emu_device {
diff -r 0b26d79ea328 -r 5d6e45906bf0 src/Virt_Device.c
--- a/src/Virt_Device.c Fri May 02 16:32:37 2008 -0400
+++ b/src/Virt_Device.c Wed May 14 11:24:56 2008 -0400
@@ -174,23 +174,6 @@ static CMPIInstance *mem_instance(const
return inst;
}
-static CMPIInstance *vcpu_instance(const CMPIBroker *broker,
- struct vcpu_device *dev,
- const virDomainPtr dom,
- const char *ns)
-{
- CMPIInstance *inst;
- virConnectPtr conn;
-
- conn = virDomainGetConnect(dom);
- inst = get_typed_instance(broker,
- pfx_from_conn(conn),
- "Processor",
- ns);
-
- return inst;
-}
-
static int device_set_devid(CMPIInstance *instance,
struct virt_device *dev,
const virDomainPtr dom)
@@ -229,43 +212,114 @@ static int device_set_systemname(CMPIIns
return 1;
}
-static CMPIInstance *device_instance(const CMPIBroker *broker,
- struct virt_device *dev,
- const virDomainPtr dom,
- const char *ns)
-{
- CMPIInstance *instance;
-
- if (dev->type == CIM_RES_TYPE_NET)
- instance = net_instance(broker,
- &dev->dev.net,
- dom,
- ns);
- else if (dev->type == CIM_RES_TYPE_DISK)
- instance = disk_instance(broker,
- &dev->dev.disk,
- dom,
- ns);
- else if (dev->type == CIM_RES_TYPE_MEM)
- instance = mem_instance(broker,
- &dev->dev.mem,
- dom,
- ns);
- else if (dev->type == CIM_RES_TYPE_PROC)
- instance = vcpu_instance(broker,
- &dev->dev.vcpu,
- dom,
- ns);
- else
- return NULL;
-
- if (!instance)
- return NULL;
-
- device_set_devid(instance, dev, dom);
- device_set_systemname(instance, dom);
-
- return instance;
+static char *get_vcpu_inst_id(const virDomainPtr dom,
+ int proc_num)
+{
+ int rc;
+ char *id_num = NULL;
+ char *dev_id = NULL;
+
+ rc = asprintf(&id_num, "%d", proc_num);
+ if (rc == -1) {
+ free(dev_id);
+ dev_id = NULL;
+ goto out;
+ }
+
+ dev_id = get_fq_devid((char *)virDomainGetName(dom), id_num);
+ free(id_num);
+
+ out:
+ return dev_id;
+}
+
+static bool vcpu_instances(const CMPIBroker *broker,
+ const virDomainPtr dom,
+ const char *ns,
+ uint64_t proc_count,
+ struct inst_list *list)
+{
+ int i;
+ char *dev_id;
+ CMPIInstance *inst;
+ virConnectPtr conn;
+
+ for (i = 0; i < proc_count; i++) {
+ conn = virDomainGetConnect(dom);
+ inst = get_typed_instance(broker,
+ pfx_from_conn(conn),
+ "Processor",
+ ns);
+ if (inst == NULL)
+ return false;
+
+ dev_id = get_vcpu_inst_id(dom, i);
+ CMSetProperty(inst, "DeviceID",
+ (CMPIValue *)dev_id, CMPI_chars);
+ free(dev_id);
+
+ device_set_systemname(inst, dom);
+ inst_list_add(list, inst);
+ }
+
+ return true;
+}
+
+static bool device_instances(const CMPIBroker *broker,
+ struct virt_device *devs,
+ int count,
+ const virDomainPtr dom,
+ const char *ns,
+ struct inst_list *list)
+{
+ int i;
+ bool ret;
+ uint64_t proc_count = 0;
+ bool proc_found = false;
+ CMPIInstance *instance = NULL;
+
+ for (i = 0; i < count; i++) {
+ struct virt_device *dev = &devs[i];
+
+ if (dev->type == CIM_RES_TYPE_NET)
+ instance = net_instance(broker,
+ &dev->dev.net,
+ dom,
+ ns);
+ else if (dev->type == CIM_RES_TYPE_DISK)
+ instance = disk_instance(broker,
+ &dev->dev.disk,
+ dom,
+ ns);
+ else if (dev->type == CIM_RES_TYPE_MEM)
+ instance = mem_instance(broker,
+ &dev->dev.mem,
+ dom,
+ ns);
+ else if (dev->type == CIM_RES_TYPE_PROC) {
+ proc_found = true;
+ proc_count = dev->dev.vcpu.quantity;
+ continue;
+ } else
+ return false;
+
+ if (!instance)
+ return false;
+
+ device_set_devid(instance, dev, dom);
+ device_set_systemname(instance, dom);
+ inst_list_add(list, instance);
+ }
+
+ if (proc_count) {
+ ret = vcpu_instances(broker,
+ dom,
+ ns,
+ proc_count,
+ list);
+ }
+
+ return true;
}
uint16_t res_type_from_device_classname(const char *classname)
@@ -290,25 +344,27 @@ static CMPIStatus _get_devices(const CMP
{
CMPIStatus s = {CMPI_RC_OK, NULL};
int count;
- int i;
+ bool rc;
struct virt_device *devs = NULL;
count = get_devices(dom, &devs, type);
if (count <= 0)
goto out;
- for (i = 0; i < count; i++) {
- CMPIInstance *dev = NULL;
-
- dev = device_instance(broker,
- &devs[i],
- dom,
- NAMESPACE(reference));
- if (dev)
- inst_list_add(list, dev);
-
- cleanup_virt_device(&devs[i]);
- }
+ rc = device_instances(broker,
+ devs,
+ count,
+ dom,
+ NAMESPACE(reference),
+ list);
+
+ if (!rc) {
+ CU_DEBUG("Problem getting device instances");
+ cu_statusf(broker, &s,
+ CMPI_RC_ERR_FAILED,
+ "Couldn't get device instances");
+
+ cleanup_virt_devices(&devs, count);
out:
free(devs);
@@ -427,6 +483,29 @@ static int parse_devid(const char *devid
return 1;
}
+static int proc_dev_list(uint64_t quantity,
+ struct virt_device **list)
+{
+ int i;
+ int rc;
+
+
+ *list = (struct virt_device *)calloc(quantity,
+ sizeof(struct virt_device));
+
+ for (i = 0; i < quantity; i++) {
+ char *dev_num;
+
+ rc = asprintf(&dev_num, "%d", i);
+
+ (*list)[i].id = strdup(dev_num);
+
+ free(dev_num);
+ }
+
+ return quantity;
+}
+
static struct virt_device *find_dom_dev(virDomainPtr dom,
char *device,
int type)
@@ -439,6 +518,17 @@ static struct virt_device *find_dom_dev(
count = get_devices(dom, &list, type);
if (!count)
goto out;
+
+ if (type == CIM_RES_TYPE_PROC) {
+ struct virt_device *tmp_list;
+ int tmp_count;
+
+ tmp_count = proc_dev_list(list[0].dev.vcpu.quantity,
+ &tmp_list);
+ cleanup_virt_devices(&list, count);
+ list = tmp_list;
+ count = tmp_count;
+ }
for (i = 0; i < count; i++) {
if (STREQC(device, list[i].id))
@@ -462,10 +552,13 @@ CMPIStatus get_device_by_name(const CMPI
CMPIStatus s = {CMPI_RC_OK, NULL};
char *domain = NULL;
char *device = NULL;
- CMPIInstance *instance = NULL;
virConnectPtr conn = NULL;
virDomainPtr dom = NULL;
struct virt_device *dev = NULL;
+ struct inst_list tmp_list;
+ bool rc;
+
+ inst_list_init(&tmp_list);
conn = connect_by_classname(broker, CLASSNAME(reference), &s);
if (conn == NULL) {
@@ -501,13 +594,27 @@ CMPIStatus get_device_by_name(const CMPI
goto err;
}
- instance = device_instance(broker,
- dev,
- dom,
- NAMESPACE(reference));
+ if (type == CIM_RES_TYPE_PROC) {
+ CU_DEBUG("PROC");
+ rc = vcpu_instances(broker,
+ dom,
+ NAMESPACE(reference),
+ 1,
+ &tmp_list);
+ } else {
+
+ rc = device_instances(broker,
+ dev,
+ 1,
+ dom,
+ NAMESPACE(reference),
+ &tmp_list);
+ }
+
cleanup_virt_device(dev);
- *_inst = instance;
+ *_inst = tmp_list.list[0];
+ CU_DEBUG("cleaning up");
err:
virDomainFree(dom);
@@ -515,6 +622,7 @@ CMPIStatus get_device_by_name(const CMPI
free(device);
out:
+ inst_list_free(&tmp_list);
virConnectClose(conn);
return s;
diff -r 0b26d79ea328 -r 5d6e45906bf0 src/Virt_RASD.c
--- a/src/Virt_RASD.c Fri May 02 16:32:37 2008 -0400
+++ b/src/Virt_RASD.c Wed May 14 11:24:56 2008 -0400
@@ -173,10 +173,8 @@ static CMPIInstance *rasd_from_vdev(cons
CMSetProperty(inst, "Limit",
(CMPIValue *)&dev->dev.mem.maxsize, CMPI_uint64);
} else if (dev->type == CIM_RES_TYPE_PROC) {
- /* This would be the place to set the virtualquantity. */
- uint64_t quantity = dev->dev.vcpu.number + 1;
CMSetProperty(inst, "VirtualQuantity",
- (CMPIValue *)&quantity, CMPI_uint64);
+ (CMPIValue *)&dev->dev.vcpu.quantity, CMPI_uint64);
}
/* FIXME: Put the HostResource in place */
From kaitlin at linux.vnet.ibm.com Wed May 14 16:47:19 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Wed, 14 May 2008 09:47:19 -0700
Subject: [Libvirt-cim] [PATCH] ProcessorRASD, the class that won't go away
In-Reply-To: <5d6e45906bf07c81d973.1210778715@naegling>
References: <5d6e45906bf07c81d973.1210778715@naegling>
Message-ID: <482B1797.8060408@linux.vnet.ibm.com>
> +static bool vcpu_instances(const CMPIBroker *broker,
> + const virDomainPtr dom,
> + const char *ns,
> + uint64_t proc_count,
> + struct inst_list *list)
> +{
> + int i;
> + char *dev_id;
> + CMPIInstance *inst;
> + virConnectPtr conn;
> +
> + for (i = 0; i < proc_count; i++) {
> + conn = virDomainGetConnect(dom);
> + inst = get_typed_instance(broker,
> + pfx_from_conn(conn),
> + "Processor",
> + ns);
> + if (inst == NULL)
> + return false;
> +
> + dev_id = get_vcpu_inst_id(dom, i);
> + CMSetProperty(inst, "DeviceID",
> + (CMPIValue *)dev_id, CMPI_chars);
> + free(dev_id);
> +
> + device_set_systemname(inst, dom);
> + inst_list_add(list, inst);
> + }
Need to close the virConnectPtr here.
> +
> + return true;
> +}
> +
> +static bool device_instances(const CMPIBroker *broker,
> + struct virt_device *devs,
> + int count,
> + const virDomainPtr dom,
> + const char *ns,
> + struct inst_list *list)
> +{
> + int i;
> + bool ret;
> + uint64_t proc_count = 0;
> + bool proc_found = false;
> + CMPIInstance *instance = NULL;
> +
> + for (i = 0; i < count; i++) {
> + struct virt_device *dev = &devs[i];
> +
> + if (dev->type == CIM_RES_TYPE_NET)
> + instance = net_instance(broker,
> + &dev->dev.net,
> + dom,
> + ns);
> + else if (dev->type == CIM_RES_TYPE_DISK)
> + instance = disk_instance(broker,
> + &dev->dev.disk,
> + dom,
> + ns);
> + else if (dev->type == CIM_RES_TYPE_MEM)
> + instance = mem_instance(broker,
> + &dev->dev.mem,
> + dom,
> + ns);
> + else if (dev->type == CIM_RES_TYPE_PROC) {
> + proc_found = true;
proc_found isn't used anywhere else
> + proc_count = dev->dev.vcpu.quantity;
> + continue;
> + } else
> + return false;
> +
> + if (!instance)
> + return false;
> +
> + device_set_devid(instance, dev, dom);
> + device_set_systemname(instance, dom);
> + inst_list_add(list, instance);
> + }
> +
> + if (proc_count) {
> + ret = vcpu_instances(broker,
> + dom,
> + ns,
> + proc_count,
> + list);
> + }
> +
> + return true;
> }
>
> uint16_t res_type_from_device_classname(const char *classname)
> @@ -290,25 +344,27 @@ static CMPIStatus _get_devices(const CMP
> {
> CMPIStatus s = {CMPI_RC_OK, NULL};
> int count;
> - int i;
> + bool rc;
> struct virt_device *devs = NULL;
>
> count = get_devices(dom, &devs, type);
> if (count <= 0)
> goto out;
>
> - for (i = 0; i < count; i++) {
> - CMPIInstance *dev = NULL;
> -
> - dev = device_instance(broker,
> - &devs[i],
> - dom,
> - NAMESPACE(reference));
> - if (dev)
> - inst_list_add(list, dev);
> -
> - cleanup_virt_device(&devs[i]);
> - }
> + rc = device_instances(broker,
> + devs,
> + count,
> + dom,
> + NAMESPACE(reference),
> + list);
> +
> + if (!rc) {
> + CU_DEBUG("Problem getting device instances");
> + cu_statusf(broker, &s,
> + CMPI_RC_ERR_FAILED,
> + "Couldn't get device instances");
This block is missing a closing brace.
> @@ -462,10 +552,13 @@ CMPIStatus get_device_by_name(const CMPI
> CMPIStatus s = {CMPI_RC_OK, NULL};
> char *domain = NULL;
> char *device = NULL;
> - CMPIInstance *instance = NULL;
> virConnectPtr conn = NULL;
> virDomainPtr dom = NULL;
> struct virt_device *dev = NULL;
> + struct inst_list tmp_list;
> + bool rc;
> +
> + inst_list_init(&tmp_list);
>
> conn = connect_by_classname(broker, CLASSNAME(reference), &s);
> if (conn == NULL) {
> @@ -501,13 +594,27 @@ CMPIStatus get_device_by_name(const CMPI
> goto err;
> }
>
> - instance = device_instance(broker,
> - dev,
> - dom,
> - NAMESPACE(reference));
> + if (type == CIM_RES_TYPE_PROC) {
> + CU_DEBUG("PROC");
This statement should be removed or should be more descriptive.
> + rc = vcpu_instances(broker,
> + dom,
> + NAMESPACE(reference),
> + 1,
> + &tmp_list);
I think you need a different function here. If you have a guest with
more than one proc, a query with the following with fail:
wbemcli gi
'http://localhost/root/virt:KVM_Processor.CreationClassName="KVM_Processor",SystemName="demo2",DeviceID="demo2/1",SystemCreationClassName="KVM_ComputerSystem"'
This is because you are telling vcpu_instances() there is only 1 device,
and so vcpu_instances() assigns the instance a DeviceID of
/0 instead of /1.
> + } else {
> +
> + rc = device_instances(broker,
> + dev,
> + 1,
> + dom,
> + NAMESPACE(reference),
> + &tmp_list);
> + }
> +
> cleanup_virt_device(dev);
>
> - *_inst = instance;
> + *_inst = tmp_list.list[0];
> + CU_DEBUG("cleaning up");
Same here - this statement can be removed.
Also, the following queries fail for me - not sure why:
wbemcli ain -ac KVM_SettingsDefineState
'http://localhost/root/virt:KVM_Processor.CreationClassName="KVM_Processor",SystemName="demo2",DeviceID="demo2/0",SystemCreationClassName="KVM_ComputerSystem"'
wbemcli ain -ac KVM_SettingsDefineState
'http://localhost/root/virt:KVM_ProcResourceAllocationSettingData.InstanceID="demo2/proc"'
Here's the values I get back from the enumerate calls:
wbemcli ein http://localhost/root/virt:KVM_ProcResourceAllocationSettingData
localhost:5988/root/virt:KVM_ProcResourceAllocationSettingData.InstanceID="demo2/proc"
wbemcli ein http://localhost/root/virt:KVM_Processor
localhost:5988/root/virt:KVM_Processor.CreationClassName="KVM_Processor",DeviceID="demo2/0",SystemCreationClassName="KVM_ComputerSystem",SystemName="demo2"
localhost:5988/root/virt:KVM_Processor.CreationClassName="KVM_Processor",DeviceID="demo2/1",SystemCreationClassName="KVM_ComputerSystem",SystemName="demo2"
localhost:5988/root/virt:KVM_Processor.CreationClassName="KVM_Processor",DeviceID="demo2/2",SystemCreationClassName="KVM_ComputerSystem",SystemName="demo2"
localhost:5988/root/virt:KVM_Processor.CreationClassName="KVM_Processor",DeviceID="demo2/3",SystemCreationClassName="KVM_ComputerSystem",SystemName="demo2"
Don't forget the xml_parse.c related change.
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Wed May 14 18:58:34 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Wed, 14 May 2008 11:58:34 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Resubmit PoolXML class for creating
a virtual pool in vxml.py
In-Reply-To: <82e90471b04874cb48a4.1210730492@elm3b197.beaverton.ibm.com>
References: <82e90471b04874cb48a4.1210730492@elm3b197.beaverton.ibm.com>
Message-ID: <482B365A.8060502@linux.vnet.ibm.com>
Guo Lian Yun wrote:
> # HG changeset patch
> # User Guolian Yun
> # Date 1210730487 25200
> # Node ID 82e90471b04874cb48a473dd72468be6f784acba
> # Parent 06c87ac466e374f7ca5b7e3dd1923ee32f1ef2ce
> [TEST] Resubmit PoolXML class for creating a virtual pool in vxml.py
>
> Removed source tag and add pool destroy function
> Signed-off-by: Guolian Yun
>
> diff -r 06c87ac466e3 -r 82e90471b048 suites/libvirt-cim/lib/XenKvmLib/const.py
> diff -r 06c87ac466e3 -r 82e90471b048 suites/libvirt-cim/lib/XenKvmLib/vxml.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/vxml.py Tue May 13 06:07:27 2008 -0700
> +++ b/suites/libvirt-cim/lib/XenKvmLib/vxml.py Tue May 13 19:01:27 2008 -0700
> @@ -143,12 +143,14 @@ class Virsh:
> self.vuri = 'qemu:///system'
>
> def run(self, ip, vcmd, param):
> - file_arg_cmds = ['define', 'create', 'net-create']
> + file_arg_cmds = ['define', 'create', 'net-create', 'pool-create']
You'll also need to add pool-destroy here as well.
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Wed May 14 21:02:40 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Wed, 14 May 2008 14:02:40 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Adding create_diskpool() function
In-Reply-To: <6671b339cc8fd7c2cc7c.1210765577@elm3b216.beaverton.ibm.com>
References: <6671b339cc8fd7c2cc7c.1210765577@elm3b216.beaverton.ibm.com>
Message-ID: <482B5370.8030008@linux.vnet.ibm.com>
Deepti B. Kalakeri wrote:
> # HG changeset patch
> # User Deepti B. Kalakeri
> # 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
>
> 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 at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Wed May 14 21:03:39 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Wed, 14 May 2008 14:03:39 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] Adding create_diskpool() function
In-Reply-To: <6671b339cc8fd7c2cc7c.1210765577@elm3b216.beaverton.ibm.com>
References: <6671b339cc8fd7c2cc7c.1210765577@elm3b216.beaverton.ibm.com>
Message-ID: <482B53AB.8090503@linux.vnet.ibm.com>
> +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:
> + 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
> +
> +
Forgot to mention this in my review mail, but these functions look
really good. Using the diskid as a return value here is an excellent idea.
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Wed May 14 21:05:03 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Wed, 14 May 2008 14:05:03 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] #2 Updating 01_forward.py of SDC
In-Reply-To: <128d23c76793c50f8273.1210765645@elm3b216.beaverton.ibm.com>
References: <128d23c76793c50f8273.1210765645@elm3b216.beaverton.ibm.com>
Message-ID: <482B53FF.2060204@linux.vnet.ibm.com>
Deepti B. Kalakeri wrote:
> # HG changeset patch
> # User Deepti B. Kalakeri
> # Date 1210765634 25200
> # Node ID 128d23c76793c50f827372963acf29db57663a87
> # Parent 6671b339cc8fd7c2cc7cada2ac15bc93635fbe4b
> [TEST] #2 Updating 01_forward.py of SDC.
>
> To use the storage pool present on the machine.
> This tc will now pass on latest libvirt-cim for KVM.
> This tc will require virsh_version() and diskpool_list() and create_diskpool() function
> changes to work.
>
> Signed-off-by: Deepti B. Kalakeri
>
> diff -r 6671b339cc8f -r 128d23c76793 suites/libvirt-cim/cimtest/SettingsDefineCapabilities/01_forward.py
No complaints here - this should be ready to apply once the patches it
is dependent on are in the tree.
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From kaitlin at linux.vnet.ibm.com Wed May 14 22:35:27 2008
From: kaitlin at linux.vnet.ibm.com (Kaitlin Rupert)
Date: Wed, 14 May 2008 15:35:27 -0700
Subject: [Libvirt-cim] [PATCH 2 of 3] [TEST] add LXCXML class to support
LXC guest
In-Reply-To: <6a8318103e42f7e18910.1210746456@elm3b197.beaverton.ibm.com>
References: <6a8318103e42f7e18910.1210746456@elm3b197.beaverton.ibm.com>
Message-ID: <482B692F.8040703@linux.vnet.ibm.com>
Guo Lian Yun wrote:
> # HG changeset patch
> # User Guolian Yun
> # Date 1210745379 25200
> # Node ID 6a8318103e42f7e1891011550d3a9f7d7f86839c
> # Parent 935b2c485f8857ddb396efd729d5fc7ff7b41614
> [TEST] add LXCXML class to support LXC guest
>
> Signed-off-by: Guolian Yun
>
> diff -r 935b2c485f88 -r 6a8318103e42 suites/libvirt-cim/lib/XenKvmLib/const.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/const.py Tue May 13 22:57:46 2008 -0700
> +++ b/suites/libvirt-cim/lib/XenKvmLib/const.py Tue May 13 23:09:39 2008 -0700
> @@ -78,3 +78,9 @@ XenFV_default_disk_dev = 'hda'
> XenFV_default_disk_dev = 'hda'
> XenFV_default_mac = '00:16:3e:5d:c7:9e'
> XenFV_default_net_type = 'bridge'
> +
> +#vxml.LXCXML
> +LXC_init_path = os.path.join(_image_dir)
Containers don't boot from an image like Xen and KVM do. You can think
of containers as a way of encapsulating a process or a group of
processes. So the init_path for a container needs to be a process or a
group of processes you can run inside the container.
Something to try would be to create a script and run something like exec
/bin/bash in the script.
> +LXC_default_file_src = '/tmp'
> +LXC_default_file_tar = '/tmp'
All this does is mount the /tmp dir as /tmp within the container, which
is redundant. I can't think of a good reason to use the filesystem tag
for a test guest. Thoughts?
> +LXC_default_tty = '/tmp'
/tmp isn't a valid value for the console. For this, you'd want to
specify /dev/ptmx, which creates a pseudo terminal to use for the console.
--
Kaitlin Rupert
IBM Linux Technology Center
kaitlin at linux.vnet.ibm.com
From deeptik at linux.vnet.ibm.com Thu May 15 11:52:17 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Thu, 15 May 2008 04:52:17 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] #2 Resubmit PoolXML class for creating
a virtual pool in vxml.py
Message-ID:
# HG changeset patch
# User Deepti B. Kalakeri
# Date 1210852307 25200
# Node ID a8dbad0a9854623167932386e4bae8a737b46672
# Parent 06c87ac466e374f7ca5b7e3dd1923ee32f1ef2ce
[TEST] #2 Resubmit PoolXML class for creating a virtual pool in vxml.py.
Removed source tag and add pool destroy function.
Added the pool-destroy to the file_arg_cmds list.
Signed-off-by: Deepti B. Kalakeri
diff -r 06c87ac466e3 -r a8dbad0a9854 suites/libvirt-cim/lib/XenKvmLib/const.py
--- a/suites/libvirt-cim/lib/XenKvmLib/const.py Tue May 13 06:07:27 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/const.py Thu May 15 04:51:47 2008 -0700
@@ -37,6 +37,9 @@ default_bridge_name = 'testbridge'
default_bridge_name = 'testbridge'
default_network_name = 'default-net'
+#vxml.PoolXML
+default_pool_name = 'testpool'
+
# vxml.VirtXML
default_domname = 'domU1'
default_memory = 128
diff -r 06c87ac466e3 -r a8dbad0a9854 suites/libvirt-cim/lib/XenKvmLib/vxml.py
--- a/suites/libvirt-cim/lib/XenKvmLib/vxml.py Tue May 13 06:07:27 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/vxml.py Thu May 15 04:51:47 2008 -0700
@@ -143,12 +143,14 @@ class Virsh:
self.vuri = 'qemu:///system'
def run(self, ip, vcmd, param):
- file_arg_cmds = ['define', 'create', 'net-create']
+ file_arg_cmds = ['define', 'create', 'net-create', 'pool-create', 'pool-destroy']
if vcmd in file_arg_cmds:
ntf = tempfile.NamedTemporaryFile('w')
ntf.write(param)
ntf.flush()
name = ntf.name
+ elif vcmd == 'pool-destroy':
+ name = param
elif param is None:
name = ""
else:
@@ -211,6 +213,28 @@ class NetXML(Virsh, XMLClass):
def create_vnet(self):
return self.run(self.server, 'net-create', self.xml_string)
+class PoolXML(Virsh, XMLClass):
+
+ def __init__(self, server, poolname=const.default_pool_name,
+ virt='xen'):
+
+ XMLClass.__init__(self)
+ if virt == 'XenFV':
+ virt = 'xen'
+ Virsh.__init__(self, str(virt).lower())
+ self.pool_name = poolname
+ self.server = server
+
+ pool = self.add_sub_node(self.xdoc, 'pool', type='dir')
+ self.add_sub_node(pool, 'name', self.pool_name)
+ target = self.add_sub_node(pool, 'target')
+ self.add_sub_node(target, 'path', '/tmp')
+
+ def create_vpool(self):
+ return self.run(self.server, 'pool-create', self.xml_string)
+
+ def destroy_vpool(self):
+ return self.run(self.server, 'pool-destroy', self.pool_name)
class VirtXML(Virsh, XMLClass):
"""Base class for all XML generation & operation"""
From deeptik at linux.vnet.ibm.com Thu May 15 12:06:19 2008
From: deeptik at linux.vnet.ibm.com (Deepti B Kalakeri)
Date: Thu, 15 May 2008 17:36:19 +0530
Subject: [Libvirt-cim] CimTest Report on XenFV 15-05-2008
Message-ID: <482C273B.4000203@linux.vnet.ibm.com>
======================================
CIM Test Report for XenFV
======================================
Distro : RHEL 5.2 Beta
Kernel : 2.6.18-88.el5xen
Xen version : 3.1.2-88.el5
Libvirt : libvirt-0.3.3-7.el5
CIMOM : pegasus
PyWBEM : pywbem-3.14
CIM Schema : cimv216Experimental
LibCMPIutil : 78
LibVirtCIM : 587
CIMTEST : 138
======================================
PASS : 85
FAIL : 18
XFAIL : 4
SKIP : 22
-----------------
Total : 129
======================================
List of tc that are failing
ComputerSystem - 04_defineStartVS.py: FAIL
ComputerSystem - 06_paused_active_suspend.py: FAIL
ComputerSystem - 23_suspend_suspend.py: FAIL
ComputerSystem - 32_start_reboot.py: FAIL
ComputerSystem - 33_suspend_reboot.py: FAIL
ComputerSystem - 35_start_reset.py: FAIL
ElementAllocatedFromPool - 04_forward_errs.py: FAIL
ElementCapabilities - 01_forward.py: FAIL
ElementConforms - 01_forward.py: FAIL
EnabledLogicalElementCapabilities - 01_enum.py: FAIL
HostSystem - 03_hs_to_settdefcap.py: FAIL
LogicalDisk - 03_ld_gi_errs.py: FAIL
Memory - 01_memory.py: FAIL
ResourceAllocationFromPool - 05_RAPF_err.py: FAIL
SettingsDefine - 02_reverse.py: FAIL
VSSD - 04_vssd_to_rasd.py: FAIL
VirtualSystemManagementService - 02_destroysystem.py: FAIL
VirtualSystemManagementService - 05_destroysystem_neg.py: FAIL
Please find the complete report attached with the mail.
Thanks and Regards,
Deepti.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: May-15-XenFV-report
URL:
From deeptik at linux.vnet.ibm.com Thu May 15 13:05:36 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Thu, 15 May 2008 06:05:36 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] 2# Adding create_diskpool() function
Message-ID: <3c476a21c4b4f95f5ff7.1210856736@elm3b216.beaverton.ibm.com>
# HG changeset patch
# User Deepti B. Kalakeri
# Date 1210856720 25200
# Node ID 3c476a21c4b4f95f5ff783a199a6feab9d9c66b1
# Parent a8dbad0a9854623167932386e4bae8a737b46672
[TEST] 2# Adding create_diskpool() function.
Modified vxml to get the poolname and networkname .
To create the storage pool on machine with libvirt >= 0.4.1
Addressed the review comment.
Added logic to skip the removal of the diskconf file when libvirt >= 0.4.1 and CIM_REV > 558.
Signed-off-by: Deepti B. Kalakeri
diff -r a8dbad0a9854 -r 3c476a21c4b4 suites/libvirt-cim/lib/XenKvmLib/common_util.py
--- a/suites/libvirt-cim/lib/XenKvmLib/common_util.py Thu May 15 04:51:47 2008 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/common_util.py Thu May 15 06:05:20 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
@@ -265,12 +268,20 @@ def conf_file():
return status
-def cleanup_restore():
+def cleanup_restore(server, virt):
"""
Restoring back the original diskpool.conf
file.
"""
status = PASS
+ libvirt_version = virsh_version(server, virt)
+ # The conf file is not present on the machine if
+ # libvirt_version >= 0.4.1 and CIM_REV > 558
+ # Hence Skipping the logic to delete the new conf file
+ # and just returning PASS
+ if libvirt_version >= '0.4.1' and \
+ CIM_REV > diskpoolconf_rev:
+ return status
try:
if os.path.exists(back_disk_file):
os.remove(disk_file)
@@ -294,3 +305,57 @@ def create_diskpool_file():
return conf_file()
+def create_diskpool(server, virt='KVM'):
+ status = PASS
+ dpoolname = None
+ 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
+ else:
+ dpoolname=diskxml.xml_get_diskpool_name()
+ except Exception, detail:
+ logger.error("Exception: In fn create_diskpool(): %s", detail)
+ status=FAIL
+ return status, dpoolname
+
+def create_diskpool_conf(server, virt):
+ libvirt_version = virsh_version(server, virt)
+ if libvirt_version >= '0.4.1' and \
+ CIM_REV > diskpoolconf_rev:
+ 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
+ test_network = None
+ 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
+ else:
+ 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
From deeptik at linux.vnet.ibm.com Thu May 15 13:07:52 2008
From: deeptik at linux.vnet.ibm.com (Deepti B. Kalakeri)
Date: Thu, 15 May 2008 06:07:52 -0700
Subject: [Libvirt-cim] [PATCH] [TEST] #3 Updating 01_forward.py of SDC
Message-ID:
# HG changeset patch
# User Deepti B. Kalakeri