Hi Everyone, Merry Christmas and Happy New Year! I'm trying to upload disk to ESX 5.0
server using the URL obtained by the server (during VM installation process); I'm
using libcurl support in libvirt to upload the disk, but I get this error on file
upload:----------------------* About to connect() to <ip> port 443 (#1)
* Trying <ip>... * connected
* found 153 certificates in /etc/ssl/certs/ca-certificates.crt
* server certificate verification SKIPPED
* compression: NULL
* cipher: AES-128-CBC
* MAC: SHA1
PUT /ha-nfc/52c6d592-7636-67c5-29f3-d5b373be4f42/disk-0.vmdk HTTP/1.1
User-Agent: libvirt-esx
Host: <ip>
Accept: */*
Cookie: vmware_soap_session="521af33d-2bbe-38aa-21e8-13d474ccb023"
Content-Type: text/xml; charset=UTF-8
SOAPAction: "urn:vim25"
Content-Length: 7021568< HTTP/1.1 403 Forbidden
< Date: Sun, 30 Dec 2012 01:28:19 GMT
< Connection: close
< Content-Type: text; charset=plain
< Content-Length: 44
----------------------To achieve this operation I've added a routine to support file
Upload (for ESX driver as currently it only support buffer upload), I verified its
functioning my uploading a file using datastore based
URL:(http(s)//<ip>/file??dcPath=ha-datacenter?dsName=xxx). CURL options provided by
me are; ----------- curl_easy_setopt(curl->handle, CURLOPT_UPLOAD, 1L);
curl_easy_setopt(curl->handle, CURLOPT_URL, url);
curl_easy_setopt(curl->handle, CURLOPT_READDATA, <data pointer>);
curl_easy_setopt(curl->handle, CURLOPT_INFILESIZE_LARGE,
(curl_off_t) fileData->size);
curl_easy_setopt(curl->handle, CURLOPT_READFUNCTION,
<read function>);
curl_easy_setopt(curl->handle, CURLOPT_VERBOSE, 1);------------------------ My
understanding is there needs to be some tuning done to ESX server to accept this upload
operation, please suggest if anyone has faced this issue before. Thanks!Ata