[PATCH] [TEST] Clean up HostedDependency 04 - older test, needs restructuring
by Kaitlin Rupert
# HG changeset patch
# User Kaitlin Rupert <karupert(a)us.ibm.com>
# Date 1250201576 25200
# Node ID fae006fcf2478e28934ae764d153665bd2e139b3
# Parent 85a07c7dadb889ffeb0e38ba7de31cd42dcfcc79
[TEST] Clean up HostedDependency 04 - older test, needs restructuring
This is a major overhaul of this test case. There are several issues this fix
resolves:
-Remove cim_undefine() calls. This call doesn't exist. Instead of cleaning up
the guest in the verify_fields() call, just call try_assoc() directly from
main and cleanup the guest at the end of the test
-Remove "INVALID_KeyName" and "INVALID_CCNKeyName" scenarios. These test the
CIMOM itself and not the providers, which outside of the scope of the test
suite.
Signed-off-by: Kaitlin Rupert <karupert(a)us.ibm.com>
diff -r 85a07c7dadb8 -r fae006fcf247 suites/libvirt-cim/cimtest/HostedDependency/04_reverse_errs.py
--- a/suites/libvirt-cim/cimtest/HostedDependency/04_reverse_errs.py Thu Aug 13 10:19:11 2009 -0700
+++ b/suites/libvirt-cim/cimtest/HostedDependency/04_reverse_errs.py Thu Aug 13 15:12:56 2009 -0700
@@ -55,31 +55,12 @@
exp_d2 = "No such instance (CreationClassName)"
expr_values = {
- "INVALID_KeyName" : { 'rc' : exp_rc, 'desc' : exp_d1 },
"INVALID_NameValue" : { 'rc' : exp_rc, 'desc' : exp_d1 },
- "INVALID_CCNKeyName" : { 'rc' : exp_rc, 'desc' : exp_d2 },
"INVALID_CCNameValue" : { 'rc' : exp_rc, 'desc' : exp_d2 }
}
return expr_values
-def verify_err_fields(cxml, server, conn, keys, classname,
- assoc_classname, msg, field, expr_values):
- try:
- ret = try_assoc(conn, classname, assoc_classname, keys,
- field_name=field, expr_values=expr_values[field],
- bug_no="")
- if ret != PASS:
- logger.error("--- FAILED: %s---", msg)
- cxml.cim_destroy(server)
- cxml.cim_undefine(server)
- except Exception, details:
- logger.error("Exception: %s", details)
- cxml.cim_destroy(server)
- cxml.cim_undefine(server)
- return FAIL
- return ret
-
@do_main(sup_types)
def main():
options = main.options
@@ -103,55 +84,45 @@
logger.error("Failed to start the dom: %s", test_dom)
return FAIL
- conn = assoc.myWBEMConnection('http://%s' % server,
- (CIM_USER, CIM_PASS), CIM_NS)
+ status = FAIL
- acn = get_typed_class(virt, 'HostedDependency')
- status, host_inst = get_host_info(server, virt)
- if status:
- logger.error("Unable to get host info")
- cxml.cim_destroy(server)
- cxml.undefine(server)
- return status
+ try:
+ conn = assoc.myWBEMConnection('http://%s' % server,
+ (CIM_USER, CIM_PASS), CIM_NS)
- classname = host_inst.CreationClassName
- host_name = host_inst.Name
+ acn = get_typed_class(virt, 'HostedDependency')
+ status, host_inst = get_host_info(server, virt)
+ if status:
+ raise Exception("Unable to get host info")
- expr_values = set_expr_values(classname)
+ classname = host_inst.CreationClassName
+ host_name = host_inst.Name
- msg = 'Invalid Name Key Name'
- field = 'INVALID_KeyName'
- keys = { 'CreationClassName' : classname, field : host_name }
- ret_value = verify_err_fields(cxml, server, conn, keys, classname,
- acn, msg, field, expr_values)
- if ret_value != PASS:
- return ret_value
-
- msg = 'Invalid Name Key Value'
- field='INVALID_NameValue'
- keys = { 'CreationClassName' : classname, 'Name' : field }
- ret_value = verify_err_fields(cxml, server, conn, keys, classname,
- acn, msg, field, expr_values)
- if ret_value != PASS:
- return ret_value
+ expr_values = set_expr_values(classname)
- msg = 'Invalid CreationClassName Key Name'
- field='INVALID_CCNKeyName'
- keys = { field : classname, 'Name' : host_name }
- ret_value = verify_err_fields(cxml, server, conn, keys, classname,
- acn, msg, field, expr_values)
- if ret_value != PASS:
- return ret_value
+ msg = 'Invalid Name Key Value'
+ field='INVALID_NameValue'
+ keys = { 'CreationClassName' : classname, 'Name' : field }
- msg = 'Invalid CreationClassName Key Value'
- field='INVALID_CCNameValue'
- keys = { 'CreationClassName' : field, 'Name' : host_name }
- ret_value = verify_err_fields(cxml, server, conn, keys, classname,
- acn, msg, field, expr_values)
- if ret_value == PASS:
- cxml.cim_destroy(server)
- cxml.undefine(server)
- return ret_value
+ status = try_assoc(conn, classname, acn, keys, field_name=field,
+ expr_values=expr_values[field], bug_no="")
+ if status != PASS:
+ raise Exception("Test is %s failed" % field)
+
+ msg = 'Invalid CreationClassName Key Value'
+ field='INVALID_CCNameValue'
+ keys = { 'CreationClassName' : field, 'Name' : host_name }
+
+ status = try_assoc(conn, classname, acn, keys, field_name=field,
+ expr_values=expr_values[field], bug_no="")
+
+ except Exception, details:
+ logger.error(details)
+
+ cxml.cim_destroy(server)
+ cxml.undefine(server)
+
+ return status
if __name__ == "__main__":
sys.exit(main())
15 years, 4 months
[PATCH] [Test](#2)Testcase to check for duplicate UUID
by Yogananth Subramanian
# HG changeset patch
# User anantyog(a)in.ibm.com
# Date 1250252541 25200
# Node ID 9169e2a0e51a841e35ab75ad7072c3924ed2cf91
# Parent 85a07c7dadb889ffeb0e38ba7de31cd42dcfcc79
[Test](#2)Testcase to check for duplicate UUID
ModifySystemSetting does thrw an error for duplicate UUID, as Deepti Kalakeri,
had indicated. I have updated my providers and redesigned the test accourdingly.
Have also removed bug 00016 from 'know provider issues' wiki page.
Signed-off-by: Yogananth Subramanian <anantyog(a)linux.vnet.ibm.com>
diff -r 85a07c7dadb8 -r 9169e2a0e51a suites/libvirt-cim/cimtest/VSSD/06_dupicate_uuid.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/suites/libvirt-cim/cimtest/VSSD/06_dupicate_uuid.py Fri Aug 14 05:22:21 2009 -0700
@@ -0,0 +1,115 @@
+#!/usr/bin/python
+#
+# Copyright 2009 IBM Corp.
+#
+# Authors:
+# Yogananth Subramanian <anantyog(a)linux.vnet.ibm.com>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#Steps:
+#1) Define 2 domains,'default' and 'test', both with random UUID
+#2) Reset the uuid of the second domain, 'test', to the uuid of the
+# first domain, using ModifySystemSettings
+#
+
+import sys
+import time
+from XenKvmLib import vsms
+from XenKvmLib import vxml
+from CimTest.Globals import logger
+from CimTest.ReturnCodes import PASS, FAIL
+from XenKvmLib.const import do_main
+from XenKvmLib.classes import get_typed_class, inst_to_mof
+from XenKvmLib.enumclass import GetInstance
+
+sup_types = ['Xen', 'KVM', 'XenFV', 'LXC']
+default_dom = 'uuid_domain'
+test_dom = 'test_domain'
+nmac = '99:aa:bb:cc:ee:ff'
+
+def get_vssd(ip, virt, get_cim_inst, default_dom):
+ cn = get_typed_class(virt, "VirtualSystemSettingData")
+ inst = None
+
+ try:
+ if virt == "XenFV":
+ virt = "Xen"
+
+ key_list = {"InstanceID" : "%s:%s" % (virt, default_dom) }
+ inst = GetInstance(ip, cn, key_list, get_cim_inst)
+
+ except Exception, details:
+ logger.error(details)
+ return FAIL, inst
+
+ if inst is None:
+ return FAIL, inst
+
+ return PASS, inst
+
+@do_main(sup_types)
+def main():
+ options = main.options
+
+ service = vsms.get_vsms_class(options.virt)(options.ip)
+
+ cxml = vxml.get_class(options.virt)(default_dom)
+ ret = cxml.cim_define(options.ip)
+ if not ret:
+ logger.error("Failed to define the dom: %s", default_dom)
+ return FAIL
+
+ try:
+ status, inst = get_vssd(options.ip, options.virt, True,default_dom)
+ if status != PASS:
+ raise Exception("Failed to get the VSSD instance for %s"%
+ default_dom)
+
+ uuid = inst['UUID']
+
+ sxml = vxml.get_class(options.virt)(test_dom, uuid, mac=nmac)
+ ret = sxml.cim_define(options.ip)
+ if not ret:
+ raise Exception("Failed to define the dom: %s"% test_dom)
+
+ status, inst = get_vssd(options.ip, options.virt, True,test_dom)
+ if status != PASS:
+ raise Exception("Failed to get the VSSD instance for %s"%
+ test_dom)
+
+ inst['UUID'] = uuid
+ vssd = inst_to_mof(inst)
+ ret = service.ModifySystemSettings(SystemSettings=vssd)
+ if ret[0] == 0:
+ raise Exception("Was able to define domains with duplicate UUID")
+
+ except Exception, details:
+ err_no = details[0]
+ err_desc = details[1]
+ if err_desc.find("domain 'uuid_domain' is already defined"):
+ logger.info('Got expected error desc')
+ status = PASS
+ else:
+ logger.error(details)
+ status = FAIL
+
+ sxml.undefine(options.ip)
+ cxml.undefine(options.ip)
+ return status
+
+if __name__ == "__main__":
+ sys.exit(main())
+
15 years, 4 months
Problem of Python dependancies
by Daniel Veillard
Hi,
trying to run the testsuite as checkout from hg today on a Fedora 11
box I got the following error:
[root@paphio cimtest]# CIM_NS=root/virt CIM_USER=root CIM_PASS=xxxxxx
./runtests libvirt-cim -v KVM -i localhost
Starting test suite: libvirt-cim
Traceback (most recent call last):
File "main.py", line 41, in <module>
from XenKvmLib.common_util import create_netpool_conf,
destroy_netpool, \
File "./lib/XenKvmLib/common_util.py", line 29, in <module>
from XenKvmLib.test_xml import *
File "./lib/XenKvmLib/test_xml.py", line 32, in <module>
from xml import xpath
ImportError: cannot import name xpath
Looking at suites/libvirt-cim/lib/XenKvmLib/test_xml.py
it seems to try to use the native xml support of Python
from xml import xpath
from xml.dom import minidom, Node
to implement:
------------------------------------------------
def get_value_xpath(xmlStr, xpathStr):
xmldoc = minidom.parseString(xmlStr)
nodes = xpath.Evaluate(xpathStr, xmldoc.documentElement)
if len(nodes) != 1:
raise LookupError('Zero or multiple xpath results found!')
node = nodes[0]
if node.nodeType == Node.ATTRIBUTE_NODE:
return node.value
if node.nodeType == Node.TEXT_NODE:
return node.toxml()
if node.nodeType == Node.ELEMENT_NODE:
ret = ''
for child in node.childNodes:
ret = ret + child.toxml()
return ret
--------------------------------------------------
Then get_value_xpath() is used in the module to poke various values.
First it's not really optimal, the XML should probably be parsed once
but the performance impact is really neglectible :-)
Is there a workaround to have that code run on a standard Fedora 11
setup or did I missed anything ?
I wonder if there are other uses of xml::xpath in the regression
suite. In any case it might be a good idea to use libxml2 bindings
instead since libvirt uses libxml2 it's not likely to be a problem
and would avoid this kind of Python XML portability problems. I may
even provide the trivial patch to replace that fragment of code (but
if there is many other use of python xml code in the test suite, that's
a different matter :-)
thanks,
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
15 years, 4 months
[PATCH 0 of 3] Add call to libvirt to create storage volume
by Kaitlin Rupert
This set also has creates a StorageVolume instance to return to the user.
Ideally, the bit of code in patch 3 should be in Virt_RASD, but that takes some
signigicant amount of reshuffiling in the Virt_RASD provider. This will be
fixed after this set of patches goes in.
This is the last set of patches to get basic image creation working.
15 years, 4 months
[PATCH] (#3) MigrationJob will write a migration flag to the infostore of the guest migrating
by Richard Maciel
# HG changeset patch
# User Richard Maciel <rmaciel(a)linux.vnet.ibm.com>
# Date 1250182294 10800
# Node ID 69ee9e708fe8fb2f5af562fdc412290e30fa41e7
# Parent 20528f913ec18441bf1ef2f812d110580fa01015
(#3) MigrationJob will write a migration flag to the infostore of the guest migrating
This allows ComputerSystem to know when its respective guest is being migrated
#2:
Fixed patch submission date
#3:
Changed 'mark' word to 'flag'
Removed unneeded code
Signed-off-by: Richard Maciel <rmaciel(a)linux.vnet.ibm.com>
diff -r 20528f913ec1 -r 69ee9e708fe8 src/Virt_VSMigrationService.c
--- a/src/Virt_VSMigrationService.c Tue Jun 16 14:25:50 2009 -0700
+++ b/src/Virt_VSMigrationService.c Thu Aug 13 13:51:34 2009 -0300
@@ -48,6 +48,7 @@
#include "Virt_ComputerSystem.h"
#include "Virt_VSMigrationSettingData.h"
#include "svpc_types.h"
+#include "libxkutil/infostore.h"
#include "config.h"
@@ -1135,6 +1136,24 @@
return s;
}
+static void clear_infstore_migration_flag(virDomainPtr dom)
+{
+ struct infostore_ctx *infp;
+ bool ret = false;
+
+ infp = infostore_open(dom);
+ if (infp == NULL) {
+ CU_DEBUG("Unable to open domain information store."
+ "Migration flag won't be cleared");
+ return;
+ }
+
+ ret = infostore_set_bool(infp, "migrating", false);
+ CU_DEBUG("Clearing infostore migrating flag");
+
+ infostore_close(infp);
+}
+
static CMPIStatus migrate_vs(struct migration_job *job)
{
CMPIStatus s;
@@ -1210,6 +1229,7 @@
CMGetCharPtr(s.msg));
}
out:
+ clear_infstore_migration_flag(dom);
raise_deleted_ind(job);
free(uri);
@@ -1251,6 +1271,38 @@
return NULL;
}
+static bool set_infstore_migration_flag(const virConnectPtr conn,
+ const char *domain)
+{
+ struct infostore_ctx *infp;
+ bool ret = false;
+ virDomainPtr dom = NULL;
+
+ dom = virDomainLookupByName(conn, domain);
+ if (dom == NULL) {
+ CU_DEBUG("No such domain");
+ goto out;
+ }
+
+ infp = infostore_open(dom);
+ if (infp == NULL) {
+ CU_DEBUG("Unable to open domain information store."
+ "Migration flag won't be placed");
+ goto out;
+ }
+
+ ret = infostore_set_bool(infp, "migrating", true);
+ CU_DEBUG("Migration flag set");
+
+ infostore_close(infp);
+
+ out:
+ virDomainFree(dom);
+ virConnectClose(conn);
+
+ return ret;
+}
+
static CMPIInstance *_migrate_job_new_instance(const char *cn,
const char *ns)
{
@@ -1411,6 +1463,10 @@
goto out;
}
+ rc = set_infstore_migration_flag(job->conn, domain);
+ if (!rc)
+ CU_DEBUG("Failed to set migration flag in infostore");
+
ind = prepare_indication(_BROKER, inst, job, MIG_CREATED, &s);
rc = raise_indication(job->context, MIG_CREATED, job->ref_ns,
inst, ind);
15 years, 4 months
[PATCH] [TEST] Fixing get_vssd_mof() to pass uuid param
by Deepti B. Kalakeri
# HG changeset patch
# User Deepti B. Kalakeri <deeptik@linux..vnet.ibm.com>
# Date 1250183951 25200
# Node ID 125d6eb391eeab673f087f7df2ade5e993f0cbe8
# Parent 090c55ea601c4ef759475bf1d0b64eae9c8f33b8
[TEST] Fixing get_vssd_mof() to pass uuid param.
Rebased to the latest cimtest
This patch fixes VSSD/02_bootldr.py VSSD/05_set_uuid.py
Signed-off-by: Deepti B. Kalakeri <deeptik(a)linux.vnet.ibm.com>
diff -r 090c55ea601c -r 125d6eb391ee suites/libvirt-cim/lib/XenKvmLib/vsms.py
--- a/suites/libvirt-cim/lib/XenKvmLib/vsms.py Wed Aug 12 04:28:07 2009 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/vsms.py Thu Aug 13 10:19:11 2009 -0700
@@ -128,9 +128,9 @@
class LXC_VirtualSystemSettingData(CIM_VirtualSystemSettingData):
pass
-def get_vssd_mof(virt, dom_name, bldr=None):
+def get_vssd_mof(virt, dom_name, uuid=None, bldr=None):
vssd_cn = eval(get_typed_class(virt, "VirtualSystemSettingData"))
- vssd = vssd_cn(dom_name, virt, bldr)
+ vssd = vssd_cn(dom_name, virt, uuid=uuid, bldr=bldr)
return vssd.mof()
# classes to define RASD parameters
diff -r 090c55ea601c -r 125d6eb391ee suites/libvirt-cim/lib/XenKvmLib/vxml.py
--- a/suites/libvirt-cim/lib/XenKvmLib/vxml.py Wed Aug 12 04:28:07 2009 -0700
+++ b/suites/libvirt-cim/lib/XenKvmLib/vxml.py Thu Aug 13 10:19:11 2009 -0700
@@ -563,7 +563,7 @@
self.domain_name = dom_name
self.err_rc = None
self.err_desc = None
- self.vssd = vsms.get_vssd_mof(virt, dom_name, uuid)
+ self.vssd = vsms.get_vssd_mof(virt, dom_name, uuid=uuid)
self.nasd = vsms.get_nasd_class(virt)(type=net_type,
mac=net_mac,
name=dom_name,
@@ -836,7 +836,7 @@
def set_bootloader(self, ip, gtype=0):
bldr = bootloader(ip, gtype)
self.add_sub_node('/domain', 'bootloader', bldr)
- self.vssd = vsms.get_vssd_mof(self.virt, self.domain_name, bldr)
+ self.vssd = vsms.get_vssd_mof(self.virt, self.domain_name, bldr=bldr)
return bldr
def set_bridge(self, ip):
15 years, 4 months
Test Run Summary (Aug 13 2009): KVM on Fedora release 11 (Leonidas) with Pegasus
by Deepti B Kalakeri
=================================================
Test Run Summary (Aug 13 2009): KVM on Fedora release 11 (Leonidas) with Pegasus
=================================================
Distro: Fedora release 11 (Leonidas)
Kernel: 2.6.27.5-117.fc10.x86_64
libvirt: 0.7.0
Hypervisor: QEMU 0.10.1
CIMOM: Pegasus 2.9.0
Libvirt-cim revision: 945
Libvirt-cim changeset: 2de7d9bdb9af
Cimtest revision: 758
Cimtest changeset: 090c55ea601c
=================================================
FAIL : 6
XFAIL : 4
SKIP : 10
PASS : 147
-----------------
Total : 167
=================================================
FAIL Test Summary:
ComputerSystemIndication - 01_created_indication.py: FAIL
ResourcePoolConfigurationService - 04_CreateChildResourcePool.py: FAIL
ResourcePoolConfigurationService - 07_DeleteResourcePool.py: FAIL
VirtualSystemManagementService - 08_modifyresource.py: FAIL
VirtualSystemManagementService - 13_refconfig_additional_devs.py: FAIL
VirtualSystemManagementService - 19_definenetwork_ers.py: FAIL
=================================================
XFAIL Test Summary:
ComputerSystem - 32_start_reboot.py: XFAIL
ComputerSystem - 33_suspend_reboot.py: XFAIL
VirtualSystemManagementService - 16_removeresource.py: XFAIL
VirtualSystemManagementService - 22_addmulti_brg_interface.py: XFAIL
=================================================
SKIP Test Summary:
ComputerSystem - 02_nosystems.py: SKIP
ComputerSystemMigrationJobIndication - 01_csmig_ind_for_offline_mig.py: SKIP
LogicalDisk - 02_nodevs.py: SKIP
VSSD - 02_bootldr.py: SKIP
VirtualSystemMigrationService - 01_migratable_host.py: SKIP
VirtualSystemMigrationService - 02_host_migrate_type.py: SKIP
VirtualSystemMigrationService - 05_migratable_host_errs.py: SKIP
VirtualSystemMigrationService - 06_remote_live_migration.py: SKIP
VirtualSystemMigrationService - 07_remote_offline_migration.py: SKIP
VirtualSystemMigrationService - 08_remote_restart_resume_migration.py: SKIP
=================================================
Full report:
--------------------------------------------------------------------
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: PASS
--------------------------------------------------------------------
ComputerSystem - 05_activate_defined_start.py: PASS
--------------------------------------------------------------------
ComputerSystem - 06_paused_active_suspend.py: PASS
--------------------------------------------------------------------
ComputerSystem - 22_define_suspend.py: PASS
--------------------------------------------------------------------
ComputerSystem - 23_pause_pause.py: PASS
--------------------------------------------------------------------
ComputerSystem - 27_define_pause_errs.py: PASS
--------------------------------------------------------------------
ComputerSystem - 32_start_reboot.py: XFAIL
ERROR - Got CIM error CIM_ERR_FAILED: Unable to reboot domain: this function is not supported by the hypervisor: virDomainReboot with return code 1
ERROR - Exception: Unable reboot dom 'cs_test_domain'
InvokeMethod(RequestStateChange): CIM_ERR_FAILED: Unable to reboot domain: this function is not supported by the hypervisor: virDomainReboot
Bug:<00005>
--------------------------------------------------------------------
ComputerSystem - 33_suspend_reboot.py: XFAIL
ERROR - Got CIM error CIM_ERR_NOT_SUPPORTED: State not supported with return code 7
ERROR - Exception: Unable Suspend dom 'test_domain'
InvokeMethod(RequestStateChange): CIM_ERR_NOT_SUPPORTED: State not supported
Bug:<00012>
--------------------------------------------------------------------
ComputerSystem - 34_start_disable.py: PASS
--------------------------------------------------------------------
ComputerSystem - 35_start_reset.py: PASS
--------------------------------------------------------------------
ComputerSystem - 40_RSC_start.py: PASS
--------------------------------------------------------------------
ComputerSystem - 41_cs_to_settingdefinestate.py: PASS
--------------------------------------------------------------------
ComputerSystem - 42_cs_gi_errs.py: PASS
--------------------------------------------------------------------
ComputerSystemIndication - 01_created_indication.py: FAIL
ERROR - Waited too long for destroy indication
--------------------------------------------------------------------
ComputerSystemMigrationJobIndication - 01_csmig_ind_for_offline_mig.py: SKIP
--------------------------------------------------------------------
ElementAllocatedFromPool - 01_forward.py: PASS
--------------------------------------------------------------------
ElementAllocatedFromPool - 02_reverse.py: PASS
--------------------------------------------------------------------
ElementAllocatedFromPool - 03_reverse_errs.py: PASS
--------------------------------------------------------------------
ElementAllocatedFromPool - 04_forward_errs.py: PASS
--------------------------------------------------------------------
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: 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: PASS
--------------------------------------------------------------------
HostSystem - 04_hs_to_EAPF.py: PASS
--------------------------------------------------------------------
HostSystem - 05_hs_gi_errs.py: PASS
--------------------------------------------------------------------
HostSystem - 06_hs_to_vsms.py: PASS
--------------------------------------------------------------------
HostedAccessPoint - 01_forward.py: PASS
--------------------------------------------------------------------
HostedAccessPoint - 02_reverse.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
--------------------------------------------------------------------
KVMRedirectionSAP - 01_enum_KVMredSAP.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: 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: PASS
--------------------------------------------------------------------
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: PASS
--------------------------------------------------------------------
Profile - 03_rprofile_gi_errs.py: PASS
--------------------------------------------------------------------
RASD - 01_verify_rasd_fields.py: PASS
--------------------------------------------------------------------
RASD - 02_enum.py: PASS
--------------------------------------------------------------------
RASD - 03_rasd_errs.py: PASS
--------------------------------------------------------------------
RASD - 04_disk_rasd_size.py: PASS
--------------------------------------------------------------------
RASD - 05_disk_rasd_emu_type.py: PASS
--------------------------------------------------------------------
RASD - 06_parent_net_pool.py: PASS
--------------------------------------------------------------------
RASD - 07_parent_disk_pool.py: PASS
--------------------------------------------------------------------
RedirectionService - 01_enum_crs.py: PASS
--------------------------------------------------------------------
RedirectionService - 02_enum_crscap.py: PASS
--------------------------------------------------------------------
RedirectionService - 03_RedirectionSAP_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: FAIL
ERROR - Exception in create_pool()
ERROR - Exception details: (1, u'CIM_ERR_FAILED: Pool with that name already exists')
ERROR - Error in networkpool creation
InvokeMethod(CreateChildResourcePool): CIM_ERR_FAILED: Pool with that name already exists
--------------------------------------------------------------------
ResourcePoolConfigurationService - 05_AddResourcesToResourcePool.py: PASS
--------------------------------------------------------------------
ResourcePoolConfigurationService - 06_RemoveResourcesFromResourcePool.py: PASS
--------------------------------------------------------------------
ResourcePoolConfigurationService - 07_DeleteResourcePool.py: FAIL
ERROR - Exception in create_pool()
ERROR - Exception details: (1, u'CIM_ERR_FAILED: Pool with that name already exists')
ERROR - Error in networkpool creation
InvokeMethod(CreateChildResourcePool): CIM_ERR_FAILED: Pool with that name already exists
--------------------------------------------------------------------
ResourcePoolConfigurationService - 08_CreateDiskResourcePool.py: PASS
--------------------------------------------------------------------
ResourcePoolConfigurationService - 09_DeleteDiskPool.py: PASS
--------------------------------------------------------------------
ServiceAccessBySAP - 01_forward.py: PASS
--------------------------------------------------------------------
ServiceAccessBySAP - 02_reverse.py: PASS
--------------------------------------------------------------------
ServiceAffectsElement - 01_forward.py: PASS
--------------------------------------------------------------------
ServiceAffectsElement - 02_reverse.py: PASS
--------------------------------------------------------------------
SettingsDefine - 01_forward.py: PASS
--------------------------------------------------------------------
SettingsDefine - 02_reverse.py: PASS
--------------------------------------------------------------------
SettingsDefine - 03_sds_fwd_errs.py: PASS
--------------------------------------------------------------------
SettingsDefine - 04_sds_rev_errs.py: PASS
--------------------------------------------------------------------
SettingsDefineCapabilities - 01_forward.py: PASS
--------------------------------------------------------------------
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
--------------------------------------------------------------------
VSSD - 05_set_uuid.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: PASS
--------------------------------------------------------------------
VirtualSystemManagementService - 07_addresource_neg.py: PASS
--------------------------------------------------------------------
VirtualSystemManagementService - 08_modifyresource.py: FAIL
ERROR - Error invoking ModifyRS: mod_net_res
ERROR - (1, u"CIM_ERR_FAILED: Device `None' not found")
InvokeMethod(ModifyResourceSettings): CIM_ERR_FAILED: Device `None' not found
--------------------------------------------------------------------
VirtualSystemManagementService - 09_procrasd_persist.py: PASS
--------------------------------------------------------------------
VirtualSystemManagementService - 10_hv_version.py: PASS
--------------------------------------------------------------------
VirtualSystemManagementService - 11_define_memrasdunits.py: PASS
--------------------------------------------------------------------
VirtualSystemManagementService - 12_referenced_config.py: PASS
--------------------------------------------------------------------
VirtualSystemManagementService - 13_refconfig_additional_devs.py: FAIL
ERROR - Got CIM error CIM_ERR_FAILED: ResourceSettings Error: VirtualDevice property must be unique for each DiskResourceAllocationSettingData in a single guest with return code 1
ERROR - Unable define domain rstest_domain2
ERROR - Unable to define rstest_domain2
InvokeMethod(DefineSystem): CIM_ERR_FAILED: ResourceSettings Error: VirtualDevice property must be unique for each DiskResourceAllocationSettingData in a single guest
--------------------------------------------------------------------
VirtualSystemManagementService - 14_define_sys_disk.py: PASS
--------------------------------------------------------------------
VirtualSystemManagementService - 15_mod_system_settings.py: PASS
--------------------------------------------------------------------
VirtualSystemManagementService - 16_removeresource.py: XFAIL
ERROR - 0 RASD insts for domain/mouse:ps2
CIM_ERR_NOT_FOUND: No such instance (no device domain/mouse:ps2)
Bug:<00014>
--------------------------------------------------------------------
VirtualSystemManagementService - 17_removeresource_neg.py: PASS
--------------------------------------------------------------------
VirtualSystemManagementService - 18_define_sys_bridge.py: PASS
--------------------------------------------------------------------
VirtualSystemManagementService - 19_definenetwork_ers.py: FAIL
ERROR - Got CIM error CIM_ERR_FAILED: Unable to start domain: internal error Failed to add tap interface 'vnet%d' to bridge 'virbr0' : No such device with return code 1
ERROR - Got desc: 'CIM_ERR_FAILED: Unable to start domain: internal error Failed to add tap interface 'vnet%d' to bridge 'virbr0' : No such device', exp 'Valid param '
ERROR - Starting domain with invalid network name None gave unexpected rc code 1 and description:
CIM_ERR_FAILED: Unable to start domain: internal error Failed to add tap interface 'vnet%d' to bridge 'virbr0' : No such device
InvokeMethod(RequestStateChange): CIM_ERR_FAILED: Unable to start domain: internal error Failed to add tap interface 'vnet%d' to bridge 'virbr0' : No such device
--------------------------------------------------------------------
VirtualSystemManagementService - 20_verify_vnc_password.py: PASS
--------------------------------------------------------------------
VirtualSystemManagementService - 21_createVS_verifyMAC.py: PASS
--------------------------------------------------------------------
VirtualSystemManagementService - 22_addmulti_brg_interface.py: XFAIL
ERROR - Error invoking AddRS: add_net_res
ERROR - (1, u'CIM_ERR_FAILED: Unable to change (0) device: Error 0')
ERROR - Failed to destroy Virtual Network 'my_network1'
InvokeMethod(AddResourceSettings): CIM_ERR_FAILED: Unable to change (0) device: Error 0
Bug:<00015>
--------------------------------------------------------------------
VirtualSystemManagementService - 23_verify_duplicate_mac_err.py: PASS
--------------------------------------------------------------------
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
--------------------------------------------------------------------
VirtualSystemMigrationService - 06_remote_live_migration.py: SKIP
--------------------------------------------------------------------
VirtualSystemMigrationService - 07_remote_offline_migration.py: SKIP
--------------------------------------------------------------------
VirtualSystemMigrationService - 08_remote_restart_resume_migration.py: SKIP
--------------------------------------------------------------------
VirtualSystemMigrationSettingData - 01_enum.py: PASS
--------------------------------------------------------------------
VirtualSystemMigrationSettingData - 02_vsmsd_gi_errs.py: PASS
--------------------------------------------------------------------
VirtualSystemSettingDataComponent - 01_forward.py: PASS
--------------------------------------------------------------------
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
--------------------------------------------------------------------
VirtualSystemSnapshotService - 03_create_snapshot.py: PASS
--------------------------------------------------------------------
VirtualSystemSnapshotServiceCapabilities - 01_enum.py: PASS
--------------------------------------------------------------------
VirtualSystemSnapshotServiceCapabilities - 02_vs_sservicecap_gi_errs.py: PASS
--------------------------------------------------------------------
--
Thanks and Regards,
Deepti B. Kalakeri
IBM Linux Technology Center
deeptik(a)linux.vnet.ibm.com
15 years, 4 months
[PATCH] (#2) Add three new OperationalStatus states and map them all to libvirt states
by Richard Maciel
# HG changeset patch
# User Richard Maciel <rmaciel(a)linux.vnet.ibm.com>
# Date 1250173962 10800
# Node ID cb885d38b2d89130c13342aa6e7455f991e8fda5
# Parent fc6b58380e5f04b09514bdfe8aef54ed0a013e42
(#2) Add three new OperationalStatus states and map them all to libvirt states
OperationalStatus states added:
STARTED
SUSPENDED
RELOCATED
#2:
Fixed patch submission date
Signed-off-by: Richard Maciel <rmaciel(a)linux.vnet.ibm.com>
diff -r fc6b58380e5f -r cb885d38b2d8 src/Virt_ComputerSystem.c
--- a/src/Virt_ComputerSystem.c Thu Aug 13 11:31:46 2009 -0300
+++ b/src/Virt_ComputerSystem.c Thu Aug 13 11:32:42 2009 -0300
@@ -187,7 +187,7 @@
}
}
-static uint16_t state_lv_to_cim_os(const char lv_state)
+static uint16_t state_lv_to_cim_os(const char lv_state, const bool migrating)
{
enum CIM_op_status {
CIM_OP_STATUS_UNKNOWN = 0,
@@ -208,25 +208,33 @@
CIM_OP_STATUS_DORMANT = 15,
CIM_OP_STATUS_COMPLETED = 17,
CIM_OP_STATUS_POWER_MODE = 18,
+ CIM_OP_STATUS_STARTED = 32768,
+ CIM_OP_STATUS_SUSPENDED = 32769,
+ CIM_OP_STATUS_RELOCATED = 32770,
};
+
+ if (migrating)
+ return CIM_OP_STATUS_RELOCATED;
+
switch (lv_state) {
case VIR_DOMAIN_NOSTATE:
case VIR_DOMAIN_SHUTDOWN:
case VIR_DOMAIN_SHUTOFF:
- return CIM_OP_STATUS_DORMANT;
+ return CIM_OP_STATUS_STOPPED;
case VIR_DOMAIN_CRASHED:
return CIM_OP_STATUS_ERROR;
case VIR_DOMAIN_RUNNING:
+ return CIM_OP_STATUS_STARTED;
+
case VIR_DOMAIN_BLOCKED:
case VIR_DOMAIN_PAUSED:
- return CIM_OP_STATUS_OK;
+ return CIM_OP_STATUS_SUSPENDED;
default:
return CIM_OP_STATUS_UNKNOWN;
-
}
}
@@ -271,6 +279,7 @@
CMPIArray *array;
CMPIStatus s;
struct infostore_ctx *infostore = NULL;
+ bool migrating = false;
ret = virDomainGetInfo(dom, &info);
if (ret != 0)
@@ -290,14 +299,19 @@
array = CMNewArray(broker, 1, CMPI_uint16, &s);
if ((s.rc != CMPI_RC_OK) || (CMIsNullObject(array)))
return 0;
+
+ infostore = infostore_open(dom);
- op_status = state_lv_to_cim_os((const int)info.state);
+ if (infostore != NULL)
+ migrating = infostore_get_bool(infostore, "migrating");
+
+ op_status = state_lv_to_cim_os((const int)info.state, migrating);
+
CMSetArrayElementAt(array, 0, &op_status, CMPI_uint16);
CMSetProperty(instance, "OperationalStatus",
(CMPIValue *)&array, CMPI_uint16A);
- infostore = infostore_open(dom);
if (infostore != NULL)
req_state = (uint16_t)infostore_get_u64(infostore, "reqstate");
else
15 years, 4 months
[PATCH] Ensure hostname always returns a value
by Kaitlin Rupert
# HG changeset patch
# User Kaitlin Rupert <karupert(a)us.ibm.com>
# Date 1250034843 25200
# Node ID c7fa7f2f08f01abe23da18e3ed3a22efbae718af
# Parent bf7220c52d7afecf85d7c2a6b11d9ba0f45052f9
Ensure hostname always returns a value.
Signed-off-by: Kaitlin Rupert <karupert(a)us.ibm.com>
diff -r bf7220c52d7a -r c7fa7f2f08f0 src/Virt_HostSystem.c
--- a/src/Virt_HostSystem.c Tue Aug 11 14:15:34 2009 -0600
+++ b/src/Virt_HostSystem.c Tue Aug 11 16:54:03 2009 -0700
@@ -58,7 +58,20 @@
}
CU_DEBUG("Unable to find FQDN, using hostname.");
- strncpy(buf, he->h_name, size);
+
+ /* FIXME: An ugly hack to ensure we return something for the hostname,
+ but also be sure the value isn't empty and that it doesn't
+ contain "localhost" */
+ if ((he->h_name != NULL) && (!STREQC(he->h_name, "")) &&
+ (strstr(he->h_name, "localhost") == NULL))
+ strncpy(buf, he->h_name, size);
+ else if ((host != NULL) && (!STREQC(host, "")) &&
+ (strstr(host, "localhost") == NULL))
+ strncpy(buf, host, size);
+ else {
+ CU_DEBUG("Unable to find valid hostname value.");
+ return -1;
+ }
return 0;
}
@@ -78,7 +91,7 @@
else
ret = resolve_host(host, buf, size);
- return 0;
+ return ret;
}
static int set_host_system_properties(CMPIInstance *instance)
15 years, 4 months
[PATCH] MigrationJob will write a migration mark to the infostore of the guest migrating
by Richard Maciel
# HG changeset patch
# User Richard Maciel <rmaciel(a)linux.vnet.ibm.com>
# Date 1249923132 10800
# Node ID 411a3090c6a098de809144334edaa41f5d3007b0
# Parent 20528f913ec18441bf1ef2f812d110580fa01015
MigrationJob will write a migration mark to the infostore of the guest migrating
This allows ComputerSystem to know when its respective guest is being migrated
Signed-off-by: Richard Maciel <rmaciel(a)linux.vnet.ibm.com>
diff -r 20528f913ec1 -r 411a3090c6a0 src/Virt_VSMigrationService.c
--- a/src/Virt_VSMigrationService.c Tue Jun 16 14:25:50 2009 -0700
+++ b/src/Virt_VSMigrationService.c Mon Aug 10 13:52:12 2009 -0300
@@ -48,6 +48,7 @@
#include "Virt_ComputerSystem.h"
#include "Virt_VSMigrationSettingData.h"
#include "svpc_types.h"
+#include "libxkutil/infostore.h"
#include "config.h"
@@ -1135,6 +1136,24 @@
return s;
}
+static void clear_infstore_migration_mark(virDomainPtr dom)
+{
+ struct infostore_ctx *infp;
+ bool ret = false;
+
+ infp = infostore_open(dom);
+ if (infp == NULL) {
+ CU_DEBUG("Unable to open domain information store."
+ "Migration mark won't be cleared");
+ return;
+ }
+
+ ret = infostore_set_bool(infp, "migrating", false);
+ CU_DEBUG("Clearing infostore migrating flag");
+
+ infostore_close(infp);
+}
+
static CMPIStatus migrate_vs(struct migration_job *job)
{
CMPIStatus s;
@@ -1210,6 +1229,7 @@
CMGetCharPtr(s.msg));
}
out:
+ clear_infstore_migration_mark(dom);
raise_deleted_ind(job);
free(uri);
@@ -1251,6 +1271,45 @@
return NULL;
}
+static bool set_infstore_migration_mark(const CMPIObjectPath *ref,
+ const char *domain)
+{
+ struct infostore_ctx *infp;
+ bool ret = false;
+ CMPIStatus s;
+ virConnectPtr conn = NULL;
+ virDomainPtr dom = NULL;
+
+ conn = connect_by_classname(_BROKER, CLASSNAME(ref), &s);
+ if (conn == NULL)
+ goto out;
+
+ dom = virDomainLookupByName(conn, domain);
+ if (dom == NULL) {
+ CU_DEBUG("No such domain");
+ goto out;
+ }
+
+
+ infp = infostore_open(dom);
+ if (infp == NULL) {
+ CU_DEBUG("Unable to open domain information store."
+ "Migration mark won't be placed");
+ goto out;
+ }
+
+ ret = infostore_set_bool(infp, "migrating", true);
+ CU_DEBUG("Migration mark set");
+
+ infostore_close(infp);
+
+ out:
+ virDomainFree(dom);
+ virConnectClose(conn);
+
+ return ret;
+}
+
static CMPIInstance *_migrate_job_new_instance(const char *cn,
const char *ns)
{
@@ -1411,6 +1470,10 @@
goto out;
}
+ rc = set_infstore_migration_mark(ref, domain);
+ if (!rc)
+ CU_DEBUG("Failed to set migration mark in infostore");
+
ind = prepare_indication(_BROKER, inst, job, MIG_CREATED, &s);
rc = raise_indication(job->context, MIG_CREATED, job->ref_ns,
inst, ind);
15 years, 4 months