
@@ -1135,6 +1136,24 @@ return s; }
+static void clear_infstore_migration_mark(virDomainPtr dom)
I would change "mark' to "flag" as I think flag makes a little more sense.
+{ + 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");
Same here, change "mark" to "flag"
+ 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)
Same here.
+{ + 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;
Instead of getting the connection here, why not take a virConnectPtr parameter?
+ + 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");
Change "mark" to "flag"
+ goto out; + } + + ret = infostore_set_bool(infp, "migrating", true); + CU_DEBUG("Migration mark set");
Same here.
+ + 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"); +
Change "mark" to "flag". -- Kaitlin Rupert IBM Linux Technology Center kaitlin@linux.vnet.ibm.com