From 8cd4ca459ef60dfcb46b422defe0eb15d528c74e Mon Sep 17 00:00:00 2001 From: Matthias Bolte Date: Mon, 20 Dec 2010 19:16:05 +0100 Subject: [PATCH] esx: Fix cluster resource lookup when connecting to a vCenter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c index 74a2a422ec..482a118083 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;