BUT, if this namespace is not included it not only prevents populating of ServiceContent object but also hides some API methods such as: ParseDescriptor, ImportVApp and CreateImportSpec etc. I'm thinking of limiting the impact and update the headers only inside the routines where its needed and revert back the headers on exit (given it is necessary evil). Please suggest if there is a better idea.
> From: ata.husain@hotmail.com
> To: libvir-list@redhat.com
> CC: ata.husain@hotmail.com
> Subject: [PATCH] ESX: append CURL headers to fix serviceContent entities
> Date: Tue, 25 Dec 2012 16:44:23 -0800
>
> Append curl headers with "SOAPAction" header to populate
> serviceContent object entities which are otherwise missing.
> ---
> src/esx/esx_vi.c | 2 ++
> src/esx/esx_vi_generator.input | 3 +++
> 2 files changed, 5 insertions(+)
>
> diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c
> index 99c1eb1..a379183 100644
> --- a/src/esx/esx_vi.c
> +++ b/src/esx/esx_vi.c
> @@ -322,6 +322,8 @@ esxVI_CURL_Connect(esxVI_CURL *curl, esxUtil_ParsedUri *parsedUri)
> * approx. 2 sec per POST operation.
> */
> curl->headers = curl_slist_append(curl->headers, "Expect:");
> + curl->headers = curl_slist_append(curl->headers,
> + _("SOAPAction: \"urn:vim25\""));
>
> if (curl->headers == NULL) {
> virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> diff --git a/src/esx/esx_vi_generator.input b/src/esx/esx_vi_generator.input
> index 22c114e..236dcb3 100644
> --- a/src/esx/esx_vi_generator.input
> +++ b/src/esx/esx_vi_generator.input
> @@ -1008,6 +1008,8 @@ object ServiceContent
> ManagedObjectReference clusterProfileManager o
> ManagedObjectReference complianceManager o
> ManagedObjectReference localizationManager o
> + ManagedObjectReference storageResourceManager o
> + ManagedObjectReference guestOperationsManager o
> end
>
>
> @@ -1073,6 +1075,7 @@ object UserSession
> DateTime lastActiveTime r
> String locale r
> String messageLocale r
> + Boolean extensionSession o
> end
>
>
> --
> 1.7.9.5
>