+Mon Jan 19 21:54:25 CET 2009 Guido Günther <agx@sigxcpu.org>
+
+ save domstate as string in status file
+ * src/domain_conf.c (virDomainState): add VIR_ENUM_IMPL
+ * src/domain_conf.h (virDomainState): add VIR_ENUM_DECL
+ * src/qemu_conf.c (qemudDomainStatusParseFile): parse state as string
+ (qemudDomainStatusFormat): write as string
+ * src/libvirt_private.syms (virDomainStateTypeToString,
+ virDomainStateTypeFromString): add sympbols
+
Mon Jan 19 20:58:34 CET 2009 Daniel Veillard <veillard@redhat.com>
* src/xen_internal.c src/xend_internal.c: Relax NUMA checking
"usb",
"pci")
+VIR_ENUM_IMPL(virDomainState, VIR_DOMAIN_CRASHED+1,
+ "nostate",
+ "running",
+ "blocked",
+ "paused",
+ "shutdown",
+ "shutoff",
+ "crashed")
+
#define virDomainReportError(conn, code, fmt...) \
virReportErrorHelper(conn, VIR_FROM_DOMAIN, code, __FILE__, \
__FUNCTION__, __LINE__, fmt)
VIR_ENUM_DECL(virDomainInput)
VIR_ENUM_DECL(virDomainInputBus)
VIR_ENUM_DECL(virDomainGraphics)
+/* from libvirt.h */
+VIR_ENUM_DECL(virDomainState)
#endif /* __DOMAIN_CONF_H */
}
ctxt->node = root;
- if((virXPathLong(conn, "string(./@state)", ctxt, &val)) < 0) {
+ if(!(tmp = virXPathString(conn, "string(./@state)", ctxt))) {
qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR,
"%s", _("invalid domain state"));
goto error;
- } else
- status->state = (int)val;
+ } else {
+ status->state = virDomainStateTypeFromString(tmp);
+ VIR_FREE(tmp);
+ }
if((virXPathLong(conn, "string(./@pid)", ctxt, &val)) < 0) {
qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR,
char *config_xml = NULL, *xml = NULL;
virBuffer buf = VIR_BUFFER_INITIALIZER;
- virBufferVSprintf(&buf, "<domstatus state='%d' pid='%d'>\n", vm->state, vm->pid);
+ virBufferVSprintf(&buf, "<domstatus state='%s' pid='%d'>\n",
+ virDomainStateTypeToString(vm->state),
+ vm->pid);
virBufferEscapeString(&buf, " <monitor path='%s'/>\n", vm->monitorpath);
if (!(config_xml = virDomainDefFormat(conn,