From 5d99a309e6606d8b43ce297dc9251cc67c860a7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guido=20G=C3=BCnther?= Date: Mon, 19 Jan 2009 21:06:26 +0000 Subject: [PATCH] save domstate as string in status file --- ChangeLog | 10 ++++++++++ src/domain_conf.c | 9 +++++++++ src/domain_conf.h | 2 ++ src/libvirt_private.syms | 2 ++ src/qemu_conf.c | 12 ++++++++---- 5 files changed, 31 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index a035267bd1..0930a4f138 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +Mon Jan 19 21:54:25 CET 2009 Guido Günther + + 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 * src/xen_internal.c src/xend_internal.c: Relax NUMA checking diff --git a/src/domain_conf.c b/src/domain_conf.c index 94196e83f7..8deb9923fd 100644 --- a/src/domain_conf.c +++ b/src/domain_conf.c @@ -142,6 +142,15 @@ VIR_ENUM_IMPL(virDomainHostdevSubsys, VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST, "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) diff --git a/src/domain_conf.h b/src/domain_conf.h index 1e5c10369a..45b3e10cf4 100644 --- a/src/domain_conf.h +++ b/src/domain_conf.h @@ -625,5 +625,7 @@ VIR_ENUM_DECL(virDomainHostdevSubsys) VIR_ENUM_DECL(virDomainInput) VIR_ENUM_DECL(virDomainInputBus) VIR_ENUM_DECL(virDomainGraphics) +/* from libvirt.h */ +VIR_ENUM_DECL(virDomainState) #endif /* __DOMAIN_CONF_H */ diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index c76b6c2376..3f83a07807 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -94,6 +94,8 @@ virDomainVirtTypeToString; virDomainFSDefFree; virDomainObjLock; virDomainObjUnlock; +virDomainStateTypeToString; +virDomainStateTypeFromString; # domain_event.h diff --git a/src/qemu_conf.c b/src/qemu_conf.c index faf1e12ade..45108f32f3 100644 --- a/src/qemu_conf.c +++ b/src/qemu_conf.c @@ -1375,12 +1375,14 @@ qemudDomainStatusParseFile(virConnectPtr conn, } 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, @@ -1433,7 +1435,9 @@ qemudDomainStatusFormat(virConnectPtr conn, char *config_xml = NULL, *xml = NULL; virBuffer buf = VIR_BUFFER_INITIALIZER; - virBufferVSprintf(&buf, "\n", vm->state, vm->pid); + virBufferVSprintf(&buf, "\n", + virDomainStateTypeToString(vm->state), + vm->pid); virBufferEscapeString(&buf, " \n", vm->monitorpath); if (!(config_xml = virDomainDefFormat(conn,