@@ -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(a)linux.vnet.ibm.com