- 30 7月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
esxVI_WaitForTaskCompletion can take a UUID to lookup the corresponding domain and check if the current task for it is blocked by a question. It calls another function to do this: esxVI_LookupAndHandleVirtualMachineQuestion looks up the VirtualMachine and checks for a question. If there is a question it calls esxVI_HandleVirtualMachineQuestion to handle it. If there was no question or it has been answered the call to esxVI_LookupAndHandleVirtualMachineQuestion returns 0. If any error occurred during the lookup and answering process -1 is returned. The problem with this is, that -1 is also returned when there was no error but the question could not be answered. So esxVI_WaitForTaskCompletion cannot distinguish between this two situations and reports that a question is blocking the task even when there was actually another problem. This inherent problem didn't surface until vSphere 4.1 when you try to define a new domain. The driver tries to lookup the domain that is just in the process of being registered. There seems to be some kind of race condition and the driver manages to issue a lookup command before the ESX server was able to register the domain. This used to work before. Due to the return value problem described above the driver reported a false error message in that case. To solve this esxVI_WaitForTaskCompletion now takes an additional occurrence parameter that describes whether or not to expect the domain to be existent. Also add a new parameter to esxVI_LookupAndHandleVirtualMachineQuestion that allows to distinguish if the call returned -1 because of an actual error or because the question could not be answered.
-
- 25 7月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
Also accept version > 4.1, but output a warning.
-
- 09 6月, 2010 2 次提交
-
-
由 Matthias Bolte 提交于
Allow to specify a proxy to be used by libcurl.
-
由 Matthias Bolte 提交于
Pass a struct containing the parameters instead of passing each one individually. This make future extensions a bit simpler.
-
- 26 5月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
Allows listing existing pools and requesting information about them. Alter the esxVI_ProductVersion enum in a way that allows to check for product type by masking.
-
- 22 4月, 2010 1 次提交
-
-
由 Eric Blake 提交于
* src/esx/esx_vi.h: Placate cppi.
-
- 21 4月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
-
- 16 4月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
This also fixes a portability problem with the %a format modifier. %a is not portable and made esxDomainDumpXML fail at runtime in MinGW builds.
-
- 09 4月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
Fix invalid code generating in esx_vi_generator.py regarding deep copy types that contain enum properties. Add strptime and timegm to bootstrap.conf. Both are used to convert a xsd:dateTime to calendar time. Add a testcase of the xsd:dateTime conversion.
-
- 07 4月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
Also define ESX_ERROR and ESX_VI_ERROR in a central place, instead of defining them in each source file. Add ESX_ERROR and ESX_VI_ERROR to the msg_gen_function list in cfg.mk. Update po/POTFILES.in accordingly.
-
- 31 3月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
The Python script generates the mappings based on the type descriptions in the esx_vi_generator.input file. This also improves the inheritance handling and allows to get rid of the ugly, inflexible, and error prone _base/_super approach. Now every struct that represents a SOAP type contains a _type member, that allows to recreate C++-like dynamic dispatch for "method" calls in C.
-
- 23 3月, 2010 2 次提交
-
-
由 Matthias Bolte 提交于
Used in esxDomainLookupByName and to be used in esxDomainDefineXML later.
-
由 Matthias Bolte 提交于
This is actually a consequence of the reworked required parameter checking: Unify the required parameter check into a Validate function instead of doing it separately im the (de)serialization part. The required parameter checking for the mapped methods parameter was done in the (de)serialize functions before. Now it's explicitly done in the mapped method itself.
-
- 10 3月, 2010 1 次提交
-
-
由 Eric Blake 提交于
* global: patch created by running: for f in $(git ls-files '*.[ch]') ; do cppi $f > $f.t && mv $f.t $f done
-
- 27 1月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
-
- 26 1月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
-
- 23 12月, 2009 1 次提交
-
-
由 Matthias Bolte 提交于
Alter the offending variable names to fix this.
-
- 19 12月, 2009 3 次提交
-
-
由 Matthias Bolte 提交于
Also move XPath expression composition into esxVI_Context_Execute().
-
由 Matthias Bolte 提交于
-
由 Matthias Bolte 提交于
Questions can block tasks, to handle them automatically the driver can answers them with the default answer. The auto_answer query parameter allows to enable this automatic question handling. * src/esx/README: add a detailed explanation for automatic question handling * src/esx/esx_driver.c: add automatic question handling for all task related driver functions * src/esx/esx_util.[ch]: add handling for the auto_answer query parameter * src/esx/esx_vi.[ch], src/esx/esx_vi_methods.[ch], src/esx/esx_vi_types.[ch]: add new VI API methods and types and additional helper functions for automatic question handling
-
- 03 11月, 2009 2 次提交
-
-
由 Matthias Bolte 提交于
The default transport for the VI API is HTTPS. If the server redirects from HTTPS to HTTP the driver would silently follow that redirection. The user assumes to communicate with the server over a secure transport but isn't. This patch disables automatical redirection following. The driver reports an error if the server tries to redirect. * src/esx/esx_vi.c: refactor the call to curl_easy_perform() into a function and do error handling there, disable automatical redirection following for curl * src/esx/esx_vi.h: change the type of responseCode to int
-
由 Matthias Bolte 提交于
Unified function naming scheme: - 'lookup' functions query the ESX or vCenter for information - 'get' functions return information from a local object * src/esx/esx_driver.c, src/esx/esx_vi.[ch]: unify function naming
-
- 23 9月, 2009 4 次提交
-
-
由 Matthias Bolte 提交于
A given domain XML gets converted to a VMX config, uploaded to the host and registered as new virtual machine. * src/esx/esx_driver.c: refactor datastore related path parsing into esxUtil_ParseDatastoreRelatedPath() * src/esx/esx_util.[ch]: add esxUtil_ParseDatastoreRelatedPath() * src/esx/esx_vi.[ch]: add esxVI_Context_UploadFile(), add datastores to the traversal in esxVI_BuildFullTraversalSpecList(), add esxVI_LookupDatastoreByName() * src/esx/esx_vi_methods.[ch]: add esxVI_RegisterVM_Task() * src/esx/esx_vi_types.c: make some error message more verbose * src/esx/esx_vmx.[ch]: add esxVMX_AbsolutePathToDatastoreRelatedPath() to convert a path into a datastore related path, add esxVMX_ParseFileName() to convert from VMX path format to domain XML path format, extend the other parsing function to be datastore aware, add esxVMX_FormatFileName() to convert from domain XML path format to VMX path format, fix VMX ethernet entry formating * tests/esxutilstest.c: add test for esxUtil_ParseDatastoreRelatedPath() * tests/vmx2xmldata/*: update domain XML files to use datastore related paths * tests/xml2vmxdata/*: update domain XML files to use datastore related paths, update VMX files to use absolute paths
-
由 Matthias Bolte 提交于
Add esxVI_Occurence enum to describe expected occurence of items * src/esx/esx_driver.c: update the use of esxVI_LookupVirtualMachineByUuid() * src/esx/esx_vi.c: add an esxVI_Occurence parameter to esxVI_LookupVirtualMachineByUuid() and take care if esxVI_FindByUuid() can't find anything for a given uuid * src/esx/esx_vi.h: add esxVI_Occurence enum * src/esx/esx_vi_methods.c: expect null or more items to be returned from esxVI_FindByUuid()
-
由 Matthias Bolte 提交于
* src/esx/esx_driver.c: add esxSupportsLongMode() and update esxCapsInit() * src/esx/esx_vi.[ch]: Add AnyType handling for lists * src/esx/esx_vi_types.c: bind VI type HostCpuIdInfo
-
由 Matthias Bolte 提交于
* src/esx/esx_driver.c: add esxNodeGetFreeMemory(), cache IP address * src/esx/esx_vi.[ch]: refactor resource pool query into esxVI_GetResourcePool() * src/esx/esx_vi_types.[ch]: bind VI type ResourcePoolResourceUsage
-
- 05 9月, 2009 3 次提交
-
-
由 Matthias Bolte 提交于
* src/esx/esx_vi.[ch]: convert esxVI_RemoteRequest_Execute() to a simpler esxVI_Context_Execute() version, remove esxVI_RemoteRequest and convert esxVI_RemoteResponse to esxVI_Response * src/esx/esx_vi_methods.c: update and simplify callers to use esxVI_Context_Execute() instead of esxVI_RemoteRequest_Execute()
-
由 Matthias Bolte 提交于
* src/esx/esx_vi.[ch]: use virXPathNode*() in esxVI_RemoteRequest_Execute() and remove esxVI_RemoteResponse_DeserializeXPathObject*() * src/esx/esx_vi_methods.c: update callers to use the new syntax of esxVI_RemoteRequest_Execute()
-
由 Matthias Bolte 提交于
* src/esx/esx_driver.c: add configStatus to the requested properties to check it in esxVI_GetVirtualMachineIdentity() * src/esx/esx_vi.[ch]: add esxVI_GetManagedEntityStatus() and use it in esxVI_GetVirtualMachineIdentity() * src/esx/esx_vi_types.[ch]: add VI type esxVI_ManagedEntityStatus
-
- 06 8月, 2009 1 次提交
-
-
由 Matthias Bolte 提交于
* src/esx/esx_driver.c src/esx/esx_util.[ch] src/esx/esx_vi.[ch]: just a name change
-
- 05 8月, 2009 1 次提交
-
-
由 Matthias Bolte 提交于
* src/esx/esx_driver.c src/esx/esx_vi.[ch] src/esx/esx_vmx.[ch]: adds version checking for GSX 2.0, allows to pass a specific port for the connection and also add a new specific gsx scheme for easier connections to GSX hosts
-
- 27 7月, 2009 2 次提交
-
-
由 Matthias Bolte 提交于
* src/esx/esx_driver.c src/esx/esx_vi.c src/esx/esx_vi.h src/esx/esx_vmx.c src/esx/esx_vmx.h: extend the VI API version checks to accept version 4.0 and takes care of the virtualHW.version change from 4 to 7.
-
由 Matthias Bolte 提交于
* src/esx/esx_driver.c src/esx/esx_util.c src/esx/esx_util.h src/esx/esx_vi.c src/esx/esx_vi.h: adds a no_verify query parameter to stop libcurl from verifying theserver certificate for the https transport.
-
- 24 7月, 2009 1 次提交
-
-
由 Matthias Bolte 提交于
* src/esx/esx_*.[ch]: the driver, uses a remote minimal SOAP client to talk to the VI services on ESX nodes. * configure.in include/libvirt/virterror.h src/Makefile.am src/driver.h src/libvirt.c src/virterror.c: glue in the new driver
-