- 20 10月, 2010 2 次提交
-
-
由 Eric Blake 提交于
Note - this wrapping is completely mechanical; the old API will function identically, since the new API validates that the exact same flags are provided by the old API. On a per-driver basis, it may make sense to have the old API pass a different set of flags, but that should be done in the per-driver patch that implements the full range of flag support in the new API. * src/esx/esx_driver.c (esxDomainSetVcpus, escDomainGetMaxVpcus): Move guts... (esxDomainSetVcpusFlags, esxDomainGetVcpusFlags): ...to new functions. (esxDriver): Trivially support the new API. * src/openvz/openvz_driver.c (openvzDomainSetVcpus) (openvzDomainSetVcpusFlags, openvzDomainGetMaxVcpus) (openvzDomainGetVcpusFlags, openvzDriver): Likewise. * src/phyp/phyp_driver.c (phypDomainSetCPU) (phypDomainSetVcpusFlags, phypGetLparCPUMAX) (phypDomainGetVcpusFlags, phypDriver): Likewise. * src/qemu/qemu_driver.c (qemudDomainSetVcpus) (qemudDomainSetVcpusFlags, qemudDomainGetMaxVcpus) (qemudDomainGetVcpusFlags, qemuDriver): Likewise. * src/test/test_driver.c (testSetVcpus, testDomainSetVcpusFlags) (testDomainGetMaxVcpus, testDomainGetVcpusFlags, testDriver): Likewise. * src/vbox/vbox_tmpl.c (vboxDomainSetVcpus) (vboxDomainSetVcpusFlags, virDomainGetMaxVcpus) (virDomainGetVcpusFlags, virDriver): Likewise. * src/xen/xen_driver.c (xenUnifiedDomainSetVcpus) (xenUnifiedDomainSetVcpusFlags, xenUnifiedDomainGetMaxVcpus) (xenUnifiedDomainGetVcpusFlags, xenUnifiedDriver): Likewise. * src/xenapi/xenapi_driver.c (xenapiDomainSetVcpus) (xenapiDomainSetVcpusFlags, xenapiDomainGetMaxVcpus) (xenapiDomainGetVcpusFlags, xenapiDriver): Likewise. (xenapiError): New helper macro.
-
由 Eric Blake 提交于
* src/driver.h (virDrvDomainSetVcpusFlags) (virDrvDomainGetVcpusFlags): New typedefs. (_virDriver): New callback members. * src/esx/esx_driver.c (esxDriver): Add stub for driver. * src/lxc/lxc_driver.c (lxcDriver): Likewise. * src/opennebula/one_driver.c (oneDriver): Likewise. * src/openvz/openvz_driver.c (openvzDriver): Likewise. * src/phyp/phyp_driver.c (phypDriver): Likewise. * src/qemu/qemu_driver.c (qemuDriver): Likewise. * src/remote/remote_driver.c (remote_driver): Likewise. * src/test/test_driver.c (testDriver): Likewise. * src/uml/uml_driver.c (umlDriver): Likewise. * src/vbox/vbox_tmpl.c (Driver): Likewise. * src/xen/xen_driver.c (xenUnifiedDriver): Likewise. * src/xenapi/xenapi_driver.c (xenapiDriver): Likewise.
-
- 19 10月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
ESX(i) uses UTF-8, but a Windows based GSX server writes Windows-1252 encoded VMX files. Add a test case to ensure that libxml2 provides Windows-1252 to UTF-8 conversion.
-
- 16 10月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
-
- 15 10月, 2010 2 次提交
-
-
由 Matthias Bolte 提交于
-
由 Matthias Bolte 提交于
VMware uses a mix of percent-, pipe- and base64-encoding in different combinations in different places. Add a testcase for this.
-
- 13 10月, 2010 2 次提交
-
-
由 Nikunj A. Dadhania 提交于
Adding parsing code for memory tunables in the domain xml file also change the internal define structures used for domain memory informations Adds a new specific test
-
由 Nikunj A. Dadhania 提交于
Public api to set/get memory tunables supported by the hypervisors. dv: * some cleanups in libvirt.c * adding extra checks in libvirt.c new entry points v4: * Move exporting public API to this patch * Add unsigned int flags to the public api for future extensions v3: * Add domainGetMemoryParamters and NULL in all the driver interface v2: * Initialize domainSetMemoryParameters to NULL in all the driver interface structure.
-
- 02 10月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
Since version 4.1 ESX(i) can expose virtual serial devices over TCP. Add support in the VMX handling code for this, add test cases to cover it and add links to some documentation. ESX supports two additional protocols: TELNETS and TLS. Add them to the list of serial-over-TCP protocols.
-
- 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.
-
- 02 9月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
Distinguish between strings as parameters (const char *) and strings as return values (char **).
-
- 31 8月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
Take care of escaping '"' and '|' (the escape character). Add tests for this.
-
- 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.
-
- 21 8月, 2010 2 次提交
-
-
由 Matthias Bolte 提交于
With the previous storage pool UUID source not all storage pools had a proper UUID, especially GSX storage pools. The mount path is unique per host and cannot change during the lifetime of the datastore. Therefore, it's MD5 sum can be used as UUID. Use gnulib's crypto/md5 module to generate the MD5 sum.
-
由 Matthias Bolte 提交于
-
- 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.
-
- 15 8月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
floppy0.present defaults to true. Therefore, it needs to be explicitly set to false when the XML config doesn't specify the corresponding floppy device. Also update tests accordingly.
-
- 12 8月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
For parsing try to match by datastore mount path first, if that fails fallback to /vmfs/volumes/<datastore>/<path> parsing. This also fixes problems with GSX on Windows. Because GSX on Windows doesn't use /vmfs/volumes/ style file names. For formatting use the datastore mount path too, instead of using /vmfs/volumes/<datastore>/<path> as fixed format.
-
- 11 8月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
Introduce esxVMX_Context containing functions pointers to glue both parts together in a generic way. Move the ESX specific part to esx_driver.c. This is a step towards making the VMX code reusable in a potential VMware Workstation and VMware Player driver.
-
- 03 8月, 2010 5 次提交
-
-
由 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 提交于
Datacenter, ComputeResource and HostSystem will be used for simplified handling and caching.
-
由 Matthias Bolte 提交于
The path will be used to specify the datacenter, compute resource and host system to be used with a vpx:// connection.
-
- 31 7月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
-
- 30 7月, 2010 5 次提交
-
-
由 Matthias Bolte 提交于
-
由 Matthias Bolte 提交于
Always call the free function of the base type. The base type function then dynamically dispatches the call to the free function for the actual type.
-
由 Matthias Bolte 提交于
-
由 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.
-
由 Eric Blake 提交于
* src/esx/esx_vi_types.c (_DESERIALIZE_NUMBER) (ESX_VI__TEMPLATE__DESERIALIZE_NUMBER): Add range check to shut up gcc 4.5.0 regarding long long.
-
- 29 7月, 2010 1 次提交
-
-
由 Cole Robinson 提交于
There is actually a difference between the character device type (serial, parallel, channel, ...) and the target type (virtio, guestfwd). Currently they are awkwardly conflated. Start to pull them apart by renaming targetType -> deviceType. This is an entirely mechanical change. Signed-off-by: NCole Robinson <crobinso@redhat.com>
-
- 25 7月, 2010 2 次提交
-
-
由 Matthias Bolte 提交于
Also accept version > 4.1, but output a warning.
-
由 Matthias Bolte 提交于
Add a pointer to the primary context of a connection and use it in all driver functions that don't dependent on the context type. This includes almost all functions that deal with a virDomianPtr. Therefore, using a vpx:// connection allows you to perform all the usual domain related actions like start, destroy, suspend, resume, dumpxml etc. Some functions that require an explicitly specified ESX server don't work yet. This includes the host UUID, the hostname, the general node info, the max vCPU count and the free memory. Also not working yet are migration and defining new domains.
-
- 24 7月, 2010 1 次提交
-
-
由 Matthias Bolte 提交于
Since 070f6100 the vcenter query parameter has been ignored, because the refactoring to use esxUtil_ParseQuery was incomplete. This effectively broke migration, because the vcenter query parameter is essential for a migration.
-