Connecting to a ESX(i) server that is part of a cluster failed
when the connection also involved a vCenter.
Accept ClusterComputeResource type in addition to ComputeResource
type in the object lookup function.
Reported by Guillaume Le Louët.
---
src/esx/esx_vi.c | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c
index 74a2a42..482a118 100644
--- a/src/esx/esx_vi.c
+++ b/src/esx/esx_vi.c
@@ -538,7 +538,7 @@ esxVI_Context_LookupObjectsByPath(esxVI_Context *ctx,
goto cleanup;
}
- /* Lookup ComputeResource */
+ /* Lookup (Cluster)ComputeResource */
esxVI_String_Free(&propertyNameList);
if (esxVI_String_AppendValueListToList(&propertyNameList,
@@ -699,7 +699,7 @@ esxVI_Context_LookupObjectsByHostSystemIp(esxVI_Context *ctx,
goto cleanup;
}
- /* Lookup ComputeResource */
+ /* Lookup (Cluster)ComputeResource */
esxVI_String_Free(&propertyNameList);
if (esxVI_String_AppendValueListToList(&propertyNameList,
@@ -1654,7 +1654,8 @@ esxVI_LookupObjectContentByType(esxVI_Context *ctx,
if (STRNEQ(root->type, type)) {
if (STREQ(root->type, "Folder")) {
- if (STREQ(type, "Datacenter") || STREQ(type,
"ComputeResource")) {
+ if (STREQ(type, "Datacenter") || STREQ(type,
"ComputeResource") ||
+ STREQ(type, "ClusterComputeResource")) {
objectSpec->selectSet = ctx->selectSet_folderToChildEntity;
} else {
ESX_VI_ERROR(VIR_ERR_INTERNAL_ERROR,
@@ -1662,7 +1663,8 @@ esxVI_LookupObjectContentByType(esxVI_Context *ctx,
type, root->type);
goto cleanup;
}
- } else if (STREQ(root->type, "ComputeResource")) {
+ } else if (STREQ(root->type, "ComputeResource") ||
+ STREQ(root->type, "ClusterComputeResource")) {
if (STREQ(type, "HostSystem")) {
objectSpec->selectSet = ctx->selectSet_computeResourceToHost;
} else if (STREQ(type, "Datacenter")) {
@@ -1674,7 +1676,8 @@ esxVI_LookupObjectContentByType(esxVI_Context *ctx,
goto cleanup;
}
} else if (STREQ(root->type, "HostSystem")) {
- if (STREQ(type, "ComputeResource")) {
+ if (STREQ(type, "ComputeResource") ||
+ STREQ(type, "ClusterComputeResource")) {
objectSpec->selectSet = ctx->selectSet_hostSystemToParent;
} else if (STREQ(type, "VirtualMachine")) {
objectSpec->selectSet = ctx->selectSet_hostSystemToVm;
--
1.7.0.4