1. 20 10月, 2010 2 次提交
    • E
      vcpu: make old API trivially wrap to new API · 50c51f13
      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.
      50c51f13
    • E
      vcpu: define internal driver API · dd255d64
      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.
      dd255d64
  2. 19 10月, 2010 1 次提交
    • M
      esx: Handle non-UTF-8 encoded VMX files · 1c616489
      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.
      1c616489
  3. 16 10月, 2010 1 次提交
  4. 15 10月, 2010 2 次提交
  5. 13 10月, 2010 2 次提交
    • N
      XML parsing for memory tunables · d390fce4
      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
      d390fce4
    • N
      Adding virDomainSetMemoryParameters and virDomainGetMemoryParameters API · 0cd78232
      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.
      0cd78232
  6. 02 10月, 2010 1 次提交
    • M
      esx: Add support for virtual serial device network backing · 02e11b83
      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.
      02e11b83
  7. 08 9月, 2010 2 次提交
    • M
      esx: Use SessionIsActive when available · 5699034b
      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.
      5699034b
    • M
      esx: Fall back to path as key when QueryVirtualDiskUuid isn't available · 8fdb0b0c
      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.
      8fdb0b0c
  8. 04 9月, 2010 2 次提交
  9. 03 9月, 2010 1 次提交
    • M
      esx: Rework datastore path parsing and handling · 84768912
      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.
      84768912
  10. 02 9月, 2010 1 次提交
  11. 31 8月, 2010 1 次提交
  12. 27 8月, 2010 2 次提交
  13. 24 8月, 2010 1 次提交
    • M
      esx: Improve object-by-type lookup performance · 8c48743b
      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.
      8c48743b
  14. 21 8月, 2010 2 次提交
  15. 18 8月, 2010 1 次提交
  16. 15 8月, 2010 1 次提交
  17. 12 8月, 2010 1 次提交
    • M
      esx: Improve VMX file name parsing and formatting · 145d6cb0
      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.
      145d6cb0
  18. 11 8月, 2010 1 次提交
    • M
      esx: Split VMX code into a general and an ESX specific part · 3de82455
      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.
      3de82455
  19. 03 8月, 2010 5 次提交
    • M
      esx: Set storage pool target path to host.mountInfo.path · 14954fb8
      Matthias Bolte 提交于
      Now all storage pool types expose the target path.
      14954fb8
    • M
      esx: Make storage pool lookup by name and UUID more robust · 5254546b
      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
      5254546b
    • M
      esx: Restrict vpx:// to handle a single host in a vCenter · e4938ce2
      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.
      e4938ce2
    • M
      esx: Map some managed object types · 9f85668b
      Matthias Bolte 提交于
      Datacenter, ComputeResource and HostSystem will be used for
      simplified handling and caching.
      9f85668b
    • M
      esx: Parse the path of the URI · ac041072
      Matthias Bolte 提交于
      The path will be used to specify the datacenter, compute resource
      and host system to be used with a vpx:// connection.
      ac041072
  20. 31 7月, 2010 1 次提交
  21. 30 7月, 2010 5 次提交
    • M
      esx: Update ID after starting a domain · 6139b274
      Matthias Bolte 提交于
      6139b274
    • M
      esx: Fix freeing of heterogeneous lists · 5cff36e3
      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.
      5cff36e3
    • M
      c38e2f7a
    • M
      esx: Improve blocked task detection and fix race condition · 25e34b70
      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.
      25e34b70
    • E
      esx: silence spurious compiler warning · 2c216d95
      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.
      2c216d95
  22. 29 7月, 2010 1 次提交
  23. 25 7月, 2010 2 次提交
    • M
      esx: Support vSphere 4.1 · d3864c37
      Matthias Bolte 提交于
      Also accept version > 4.1, but output a warning.
      d3864c37
    • M
      esx: Add vpx:// scheme to allow direct connection to a vCenter · 3827f7f0
      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.
      3827f7f0
  24. 24 7月, 2010 1 次提交
    • M
      esx: Don't ignore the vcenter query parameter · 1b38e92b
      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.
      1b38e92b