From a8cc67a44b4182aa1c81e515cabb5897f8506e8d Mon Sep 17 00:00:00 2001 From: Matthias Bolte Date: Fri, 20 Aug 2010 20:42:45 +0200 Subject: [PATCH] esx: Make sure dumpxml outputs proper ID for active domains --- src/esx/esx_driver.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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); }