From: Matthias Bolte Date: Fri, 20 Aug 2010 18:42:45 +0000 (+0200) Subject: esx: Make sure dumpxml outputs proper ID for active domains X-Git-Tag: v0.8.4~60 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8cc67a44b4182aa1c81e515cabb5897f8506e8d;p=thirdparty%2Flibvirt.git esx: Make sure dumpxml outputs proper ID for active domains --- diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c index 4fb357bf74..c6bd3b8044 100644 --- a/src/esx/esx_driver.c +++ b/src/esx/esx_driver.c @@ -2624,6 +2624,8 @@ esxDomainDumpXML(virDomainPtr domain, int flags) esxPrivate *priv = domain->conn->privateData; esxVI_String *propertyNameList = NULL; esxVI_ObjectContent *virtualMachine = NULL; + esxVI_VirtualMachinePowerState powerState; + int id; char *vmPathName = NULL; char *datastoreName = NULL; char *directoryName = NULL; @@ -2640,11 +2642,14 @@ esxDomainDumpXML(virDomainPtr domain, int flags) return NULL; } - if (esxVI_String_AppendValueToList(&propertyNameList, - "config.files.vmPathName") < 0 || + if (esxVI_String_AppendValueListToList(&propertyNameList, + "config.files.vmPathName\0" + "runtime.powerState\0") < 0 || esxVI_LookupVirtualMachineByUuid(priv->primary, domain->uuid, propertyNameList, &virtualMachine, esxVI_Occurrence_RequiredItem) < 0 || + esxVI_GetVirtualMachinePowerState(virtualMachine, &powerState) < 0 || + esxVI_GetVirtualMachineIdentity(virtualMachine, &id, NULL, NULL) < 0 || esxVI_GetStringValue(virtualMachine, "config.files.vmPathName", &vmPathName, esxVI_Occurrence_RequiredItem) < 0) { goto cleanup; @@ -2693,6 +2698,10 @@ esxDomainDumpXML(virDomainPtr domain, int flags) priv->primary->productVersion); if (def != NULL) { + if (powerState != esxVI_VirtualMachinePowerState_PoweredOff) { + def->id = id; + } + xml = virDomainDefFormat(def, flags); }