- 14 4月, 2011 1 次提交
-
-
由 Matthias Bolte 提交于
Generate lookup functions for managed object types.
-
- 08 1月, 2011 1 次提交
-
-
由 Matthias Bolte 提交于
This simplifies the callers of esxVI_LookupObjectContentByType.
-
- 07 1月, 2011 1 次提交
-
-
由 Matthias Bolte 提交于
-
- 30 12月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
Also include some whitespace changes. No functional change included.
-
- 22 12月, 2010 2 次提交
-
-
由 Matthias Bolte 提交于
Now the VMware driver doesn't depend on the ESX driver anymore. Add a WITH_VMX option that depends on WITH_ESX and WITH_VMWARE. Also add a libvirt_vmx.syms file. Move some escaping functions from esx_util.c to vmx.c. Adapt the test suite, ESX and VMware driver to the new code layout.
-
由 Matthias Bolte 提交于
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.
-
- 11 12月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
Instead of just reporting that a task failed get the localized message from the TaskInfo error and include it in the reported error message. Implement minimal deserialization support for the MethodFault type in order to obtain the actual fault type. For example, this changes the reported error message when trying to create a volume with zero size from Could not create volume to Could not create volume: InvalidArgument - A specified parameter was not correct. Not perfect yet, but better than before.
-
- 10 11月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
Also add a test case for the VMX handling of it.
-
- 15 10月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
VMware uses a mix of percent-, pipe- and base64-encoding in different combinations in different places. Add a testcase for this.
-
- 08 9月, 2010 2 次提交
-
-
由 Matthias Bolte 提交于
Before this commit SessionIsActive was not used because ESX(i) doesn't implement it. vCenter supports SessionIsActive, so use it here, but keep the fall back mechanism for ESX(i) and GSX.
-
由 Matthias Bolte 提交于
QueryVirtualDiskUuid is only available on an ESX(i) server. vCenter returns an NotImplemented fault and a GSX server is missing the VirtualDiskManager completely. Therefore only use QueryVirtualDiskUuid with an ESX(i) server and fall back to path as storage volume key for vCenter and GSX server.
-
- 04 9月, 2010 2 次提交
-
-
由 Matthias Bolte 提交于
VirtualDisks are .vmdk file based. Other files in a datastore like .iso or .flp files don't have a UUID attached, fall back to the path as key for them.
-
由 Matthias Bolte 提交于
-
- 03 9月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
Instead of splitting the path part of a datastore path into directory and file name, keep this in one piece. An example: "[datastore] directory/file" was split into this before: datastoreName = "datastore" directoryName = "directory" fileName = "file" Now it's split into this: datastoreName = "datastore" directoryName = "directory" directoryAndFileName = "directory/file" This simplifies code using esxUtil_ParseDatastorePath, because directoryAndFileName is used more often than fileName. Also the old approach expected the datastore path to reference an actual file, but this isn't always correct, especially when listing volumes. In that case esxUtil_ParseDatastorePath is used to parse a path that references a directory. This fails for a vpx:// connection because the vCenter returns directory paths with a trailing '/'. The new approach is robust against this and the actual decision if the datastore path should reference a file or a directory is up to the caller of esxUtil_ParseDatastorePath. Update the tests accordingly.
-
- 27 8月, 2010 2 次提交
-
-
由 Matthias Bolte 提交于
The check was altered in 8c48743b and got too strict, I've no clue how that snuck in. This check makes every try to open a connection using the ESX driver fail with an invalid argument error. Revert the change to the check and add a comment to prevent future mistakes with this check.
-
由 Matthias Bolte 提交于
This allows to list existing volumes and to retrieve information about them.
-
- 24 8月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
Instead of using one big traversal spec for lookup use a set of more fine grained traversal specs that are selected based on the actual needs of the lookup. This gives up to 20% speedup for certain operations like domain listing due to less HTTP(S) traffic.
-
- 18 8月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
In case an optional object cannot be found the lookup function is left early and the cleanup code is not executed. This pattern occurs in some other functions too.
-
- 03 8月, 2010 4 次提交
-
-
由 Matthias Bolte 提交于
Now all storage pool types expose the target path.
-
由 Matthias Bolte 提交于
Don't rely on summary.url anymore, because its value is different between an esx:// and vpx:// connection. Use host.mountInfo.path instead. Don't fallback to lookup by UUID (actually lookup by absolute path) in esxVI_LookupDatastoreByName when lookup by name fails. Add a seperate function for this: esxVI_LookupDatastoreByAbsolutePath
-
由 Matthias Bolte 提交于
Now a vpx:// connection has an explicitly specified host. This allows to enabled several functions for a vpx:// connection again, like host UUID, hostname, general node info, max vCPU count, free memory, migration and defining new domains. Lookup datacenter, compute resource, resource pool and host system once and cache them. This simplifies the rest of the code and reduces overall HTTP(S) traffic a bit. esx:// and vpx:// can be mixed freely for a migration. Ensure that migration source and destination refer to the same vCenter. Also directly encode the resource pool and host system object IDs into the migration URI in the prepare function. Then directly build managed object references in the perform function instead of re-looking up already known information.
-
由 Matthias Bolte 提交于
The path will be used to specify the datacenter, compute resource and host system to be used with a vpx:// connection.
-
- 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.
-
- 27 5月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
Eliminate almost all backward jumps by replacing this common pattern: int some_random_function(void) { int result = 0; ... cleanup: <unconditional cleanup code> return result; failure: <cleanup code in case of an error> result = -1; goto cleanup } with this simpler pattern: int some_random_function(void) { int result = -1; ... result = 0; cleanup: if (result < 0) { <cleanup code in case of an error> } <unconditional cleanup code> return result; } Add a bool success variable in functions that don't have a int result that can be used for the new pattern. Also remove some unnecessary memsets in error paths.
-
- 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.
-
- 21 5月, 2010 1 次提交
-
-
由 Jim Meyering 提交于
Handle concatenated strings manually.
-
- 21 4月, 2010 3 次提交
-
-
由 Chris Wong 提交于
An empty root snapshot list was considered as error condition. Creating a new snapshot would fail if the domain didn't have snapshots yet, because the snapshot-create function tries to lookup the list of existing snapshots in order to verify that the snapshot name is unique. This fails if the domain doesn't have snapshots yet. Removing the NULL check from esxVI_LookupRootSnapshotTreeList fixes this.
-
由 Matthias Bolte 提交于
-
由 Matthias Bolte 提交于
FindByIp may return nothing if there is no host or virtual machine with the given IP address. Handle that case properly.
-
- 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.
-
- 14 4月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
Generate almost all SOAP method mapping code. Update the driver code to use the complete paramater list of some methods that had parameters skipped before. Improve the ESX_VI__METHOD marco to do automatic output deserialization based on output occurrence. Also incorporate automatic _this binding and output pointer check.
-
- 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 3 次提交
-
-
由 Matthias Bolte 提交于
Used in esxDomainLookupByName and to be used in esxDomainDefineXML later.
-
由 Matthias Bolte 提交于
If esxVI_String_DeepCopyValue or esxVI_SelectionSpec_AppendToList fail then selectionSpec would leak. Add a free call in the failure path to fix the leak.
-
由 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.
-