1. 09 4月, 2010 1 次提交
    • M
      esx: Add domain snapshot support · 1aaa9091
      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.
      1aaa9091
  2. 08 4月, 2010 1 次提交
  3. 07 4月, 2010 1 次提交
    • M
      esx: Mark error messages for translation · 028db0bf
      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.
      028db0bf
  4. 05 4月, 2010 1 次提交
  5. 04 4月, 2010 1 次提交
    • D
      Add managed save API entry points · 15c647a9
      Daniel Veillard 提交于
      virDomainManagedSave() is to be run on a running domain. Once the call
      complete, as in virDomainSave() the domain is stopped upon completion,
      but there is no restore counterpart as any order to start the domain
      from the API would load the state from the managed file, similary if
      the domain is autostarted when libvirtd starts.
      Once a domain has restarted his managed save image is destroyed,
      basically managed save image can only exist for a stopped domain,
      for a running domain that would be by definition outdated data.
      
      * include/libvirt/libvirt.h.in src/libvirt.c src/libvirt_public.syms:
        adds the new entry points virDomainManagedSave(),
        virDomainHasManagedSaveImage() and virDomainManagedSaveRemove()
      * src/driver.h src/esx/esx_driver.c src/lxc/lxc_driver.c
        src/opennebula/one_driver.c  src/openvz/openvz_driver.c
        src/phyp/phyp_driver.c src/qemu/qemu_driver.c src/vbox/vbox_tmpl.c
        src/remote/remote_driver.c src/test/test_driver.c src/uml/uml_driver.c
        src/xen/xen_driver.c: add corresponding new internal drivers entry
        points
      15c647a9
  6. 01 4月, 2010 1 次提交
  7. 31 3月, 2010 2 次提交
    • E
      maint: remove redundant tests after virStrToLong · 9d6614df
      Eric Blake 提交于
      virStrToLong* guarantees (via strtol) that the end pointer will be set
      to the point at which parsing stopped (even on failure, this point is
      the start of the input string).
      
      * src/esx/esx_driver.c (esxGetVersion): Remove pointless
      conditional.
      * src/qemu/qemu_conf.c (qemuParseCommandLinePCI)
      (qemuParseCommandLineUSB, qemuParseCommandLineSmp): Likewise.
      * src/qemu/qemu_monitor_text.c
      (qemuMonitorTextGetMigrationStatus): Likewise.
      9d6614df
    • M
      esx: Generate most SOAP mapping and improve inheritance handling · 50723581
      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.
      50723581
  8. 26 3月, 2010 2 次提交
    • D
      Introduce a new virDomainUpdateDeviceFlags public API · 46a2ea36
      Daniel P. Berrange 提交于
      The current virDomainAttachDevice API can be (ab)used to change
      the media of an existing CDROM/Floppy device. Going forward there
      will be more devices that can be configured on the fly and overloading
      virDomainAttachDevice for this is not too pleasant. This patch adds
      a new virDomainUpdateDeviceFlags() explicitly just for modifying
      existing devices.
      
      * include/libvirt/libvirt.h.in: Add virDomainUpdateDeviceFlags
      * src/driver.h: Internal API for virDomainUpdateDeviceFlags
      * src/libvirt.c, src/libvirt_public.syms: Glue public API to
        driver API
      * src/esx/esx_driver.c, src/lxc/lxc_driver.c, src/opennebula/one_driver.c,
        src/openvz/openvz_driver.c, src/phyp/phyp_driver.c, src/qemu/qemu_driver.c,
        src/remote/remote_driver.c, src/test/test_driver.c, src/uml/uml_driver.c,
        src/vbox/vbox_tmpl.c, src/xen/xen_driver.c, src/xenapi/xenapi_driver.c: Add
        stubs for new driver entry point
      46a2ea36
    • D
      Introduce a new public API for domain events · 44457238
      Daniel P. Berrange 提交于
      The current API for domain events has a number of problems
      
       - Only allows for domain lifecycle change events
       - Does not allow the same callback to be registered multiple times
       - Does not allow filtering of events to a specific domain
      
      This introduces a new more general purpose domain events API
      
        typedef enum {
           VIR_DOMAIN_EVENT_ID_LIFECYCLE = 0,       /* virConnectDomainEventCallback */
            ...more events later..
        }
      
        int virConnectDomainEventRegisterAny(virConnectPtr conn,
                                             virDomainPtr dom, /* Optional, to filter */
                                             int eventID,
                                             virConnectDomainEventGenericCallback cb,
                                             void *opaque,
                                             virFreeCallback freecb);
      
        int virConnectDomainEventDeregisterAny(virConnectPtr conn,
                                               int callbackID);
      
      Since different event types can received different data in the callback,
      the API is defined with a generic callback. Specific events will each
      have a custom signature for their callback. Thus when registering an
      event it is neccessary to cast the callback to the generic signature
      
      eg
      
        int myDomainEventCallback(virConnectPtr conn,
                                  virDomainPtr dom,
                                  int event,
                                  int detail,
                                  void *opaque)
        {
          ...
        }
      
        virConnectDomainEventRegisterAny(conn, NULL,
                                         VIR_DOMAIN_EVENT_ID_LIFECYCLE,
                                         VIR_DOMAIN_EVENT_CALLBACK(myDomainEventCallback)
                                         NULL, NULL);
      
      The VIR_DOMAIN_EVENT_CALLBACK() macro simply does a "bad" cast
      to the generic signature
      
      * include/libvirt/libvirt.h.in: Define new APIs for registering
        domain events
      * src/driver.h: Internal driver entry points for new events APIs
      * src/libvirt.c: Wire up public API to driver API for events APIs
      * src/libvirt_public.syms: Export new APIs
      * src/esx/esx_driver.c, src/lxc/lxc_driver.c, src/opennebula/one_driver.c,
        src/openvz/openvz_driver.c, src/phyp/phyp_driver.c,
        src/qemu/qemu_driver.c, src/remote/remote_driver.c,
        src/test/test_driver.c, src/uml/uml_driver.c,
        src/vbox/vbox_tmpl.c, src/xen/xen_driver.c,
        src/xenapi/xenapi_driver.c: Stub out new API entries
      44457238
  9. 23 3月, 2010 3 次提交
    • M
      esx: Add esxVI_LookupVirtualMachineByName · 041a18be
      Matthias Bolte 提交于
      Used in esxDomainLookupByName and to be used in esxDomainDefineXML later.
      041a18be
    • M
      esx: Cleanup file header comments · 055d21d2
      Matthias Bolte 提交于
      Replace 'method' with 'function' and get the filename's suffix right.
      055d21d2
    • M
      esx: Generate method mappings via macros · d304352b
      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.
      d304352b
  10. 20 3月, 2010 1 次提交
  11. 17 3月, 2010 1 次提交
  12. 10 3月, 2010 1 次提交
  13. 08 3月, 2010 1 次提交
    • E
      build: consistently use C99 varargs macros · 2e56fb2b
      Eric Blake 提交于
      Prior to this patch, there was an inconsistent mix between GNU and C99.
      
      For consistency, and potential portability to other compilers, stick
      with the C99 vararg macro syntax.
      
      * src/conf/cpu_conf.c (virCPUReportError): Use C99 rather than GNU
        vararg macro syntax.
      * src/conf/domain_conf.c (virDomainReportError): Likewise.
      * src/conf/domain_event.c (eventReportError): Likewise.
      * src/conf/interface_conf.c (virInterfaceReportError): Likewise.
      * src/conf/network_conf.c (virNetworkReportError): Likewise.
      * src/conf/node_device_conf.h (virNodeDeviceReportError): Likewise.
      * src/conf/secret_conf.h (virSecretReportError): Likewise.
      * src/conf/storage_conf.h (virStorageReportError): Likewise.
      * src/esx/esx_device_monitor.c (ESX_ERROR): Use C99 rather than
        GNU vararg macro syntax.
      * src/esx/esx_driver.c (ESX_ERROR): Likewise.
      * src/esx/esx_interface_driver.c (ESX_ERROR): Likewise.
      * src/esx/esx_network_driver.c (ESX_ERROR): Likewise.
      * src/esx/esx_secret_driver.c (ESX_ERROR): Likewise.
      * src/esx/esx_storage_driver.c (ESX_ERROR): Likewise.
      * src/esx/esx_util.c (ESX_ERROR): Likewise.
      * src/esx/esx_vi.c (ESX_VI_ERROR): Likewise.
      * src/esx/esx_vi_methods.c (ESX_VI_ERROR): Likewise.
      * src/esx/esx_vi_types.c (ESX_VI_ERROR): Likewise.
      * src/esx/esx_vmx.c (ESX_ERROR): Likewise.
      * src/util/hostusb.c (usbReportError): Use C99 rather than GNU
        vararg macro syntax.
      * src/util/json.c (virJSONError): Likewise.
      * src/util/macvtap.c (ReportError): Likewise.
      * src/util/pci.c (pciReportError): Likewise.
      * src/util/stats_linux.c (virStatsError): Likewise.
      * src/util/util.c (virUtilError): Likewise.
      * src/util/xml.c (virXMLError): Likewise.
      * src/xen/proxy_internal.c (virProxyError): Use C99 rather than
        GNU vararg macro syntax.
      * src/xen/sexpr.c (virSexprError): Likewise.
      * src/xen/xen_driver.c (xenUnifiedError): Likewise.
      * src/xen/xen_hypervisor.c (virXenError): Likewise.
      * src/xen/xen_inotify.c (virXenInotifyError): Likewise.
      * src/xen/xend_internal.c (virXendError): Likewise.
      * src/xen/xm_internal.c (xenXMError): Likewise.
      * src/xen/xs_internal.c (virXenStoreError): Likewise.
      * src/cpu/cpu.h (virCPUReportError): Use C99 rather than GNU
        vararg macro syntax.
      * src/datatypes.c (virLibConnError): Likewise.
      * src/interface/netcf_driver.c (interfaceReportError): Likewise.
      * src/libvirt.c (virLibStreamError): Likewise.
      * src/lxc/lxc_conf.h (lxcError): Likewise.
      * src/network/bridge_driver.c (networkReportError): Likewise.
      * src/nodeinfo.c (nodeReportError): Likewise.
      * src/opennebula/one_conf.h (oneError): Likewise.
      * src/openvz/openvz_conf.h (openvzError): Likewise.
      * src/phyp/phyp_driver.c (PHYP_ERROR): Likewise.
      * src/qemu/qemu_conf.h (qemuReportError): Likewise.
      * src/remote/remote_driver.c (errorf): Likewise.
      * src/security/security_driver.h (virSecurityReportError): Likewise.
      * src/test/test_driver.c (testError): Likewise.
      * src/uml/uml_conf.h (umlReportError): Likewise.
      * src/vbox/vbox_driver.c (vboxError): Likewise.
      * src/vbox/vbox_tmpl.c (vboxError): Likewise.
      2e56fb2b
  14. 03 3月, 2010 3 次提交
    • E
      esx: don't ignore failure on close · a8464c51
      Eric Blake 提交于
      Another warning caught by coverity.  Continue to perform best-effort
      closing and resource release, but warn the caller about the failure.
      
      * src/esx/esx_driver.c (esxClose): Return an error on failure to close.
      a8464c51
    • D
      Wire up internal entry points for virDomainAbortJob API · 0d8aa35f
      Daniel P. Berrange 提交于
      This provides the internal glue for the driver API
      
      * src/driver.h: Internal API contract
      * src/libvirt.c, src/libvirt_public.syms: Connect public API
        to driver API
      * src/esx/esx_driver.c, src/lxc/lxc_driver.c, src/opennebula/one_driver.c,
        src/openvz/openvz_driver.c, src/phyp/phyp_driver.c,
        src/qemu/qemu_driver.c, src/remote/remote_driver.c,
        src/test/test_driver.c src/uml/uml_driver.c, src/vbox/vbox_tmpl.c,
        src/xen/xen_driver.c: Stub out entry points
      0d8aa35f
    • D
      Stub out internal driver entry points for job processing · 92bd859a
      Daniel P. Berrange 提交于
      The internal glue layer for the new pubic API
      
      * src/driver.h: Define internal driver API contract
      * src/libvirt.c, src/libvirt_public.syms: Wire up public
        API to internal driver API
      * src/esx/esx_driver.c, src/lxc/lxc_driver.c, src/opennebula/one_driver.c,
        src/openvz/openvz_driver.c, src/phyp/phyp_driver.c,
        src/qemu/qemu_driver.c, src/remote/remote_driver.c,
        src/test/test_driver.c, src/uml/uml_driver.c, src/vbox/vbox_tmpl.c,
        src/xen/xen_driver.c: Stub new entry point
      92bd859a
  15. 12 2月, 2010 1 次提交
  16. 10 2月, 2010 1 次提交
  17. 09 2月, 2010 2 次提交
  18. 05 2月, 2010 1 次提交
  19. 26 1月, 2010 1 次提交
  20. 18 1月, 2010 2 次提交
  21. 09 1月, 2010 1 次提交
  22. 07 1月, 2010 2 次提交
    • M
      esx: Fix 'vpx' MAC address range and allow arbitrary MAC addresses · 96ceb124
      Matthias Bolte 提交于
      The MAC addresses with 00:50:56 prefix are split into several ranges:
      
        00:50:56:00:00:00 - 00:50:56:3f:ff:ff  'static' range (manually assigned)
        00:50:56:80:00:00 - 00:50:56:bf:ff:ff  'vpx' range (assigned by a VI Client)
      
      Erroneously the 'vpx' range was assumed to be larger and to occupy the
      remaining addresses of the 00:50:56 prefix that are not part of the 'static'
      range.
      
      00:50:56 was used as prefix for generated MAC addresses, this is not possible
      anymore, because there are gaps in the allowed ranges. Therefore, change the
      prefix to 00:0c:29 which is the prefix for auto generated MAC addresses anyway.
      
      Allow arbitrary MAC addresses to be used and set the checkMACAddress VMX option
      to false in case the MAC address doesn't fall into any predefined range.
      
      * docs/drvesx.html.in: update website accordingly
      * src/esx/esx_driver.c: set the auto generation prefix to 00:0c:29
      * src/esx/esx_vmx.c: fix MAC address range handling and allow arbitrary MAC
        addresses
      * tests/vmx2xml*, tests/xml2vmx*: add some basic MAC address range tests
      96ceb124
    • M
      esx: Don't warn about an empty URI path · b0367e86
      Matthias Bolte 提交于
      b0367e86
  23. 20 12月, 2009 1 次提交
    • A
      Add new API virDomainMemoryStats to header and drivers · 3a701313
      Adam Litke 提交于
      Set up the types for the domainMemoryStats function and insert it into the
      virDriver structure definition.  Because of static initializers, update
      every driver and set the new field to NULL.
      
      * include/libvirt/libvirt.h.in: new API
      * src/driver.h src/*/*_driver.c src/vbox/vbox_tmpl.c: add the new
        entry to the driver structure
      * python/generator.py: fix compiler errors, the actual python binding is
        implemented later
      3a701313
  24. 19 12月, 2009 7 次提交
    • M
      esx: Destroy virtual machine on a vCenter if available · 470764f0
      Matthias Bolte 提交于
      If a virtual machine is destroyed on a ESX server then immediately
      undefining this virtual machine on a vCenter may fail, because the
      vCenter has not been informed about the status change yet. Therefore,
      destroy a virtual machine on a vCenter if available, so the vCenter
      is up-to-date when the virtual machine should be undefined.
      470764f0
    • M
      esx: Undefine virtual machine on a vCenter if available · 46306c9c
      Matthias Bolte 提交于
      Undefining a virtual machine on an ESX server leaves a orphan on the
      vCenter behind. So undefine a virtual machine on a vCenter if available
      to fix this problem.
      46306c9c
    • M
      esx: Don't warn about '/' paths · a5d8d265
      Matthias Bolte 提交于
      a5d8d265
    • M
      esx: Fix occurence typo · cf54204e
      Matthias Bolte 提交于
      cf54204e
    • M
      esx: Extend vCenter query parameter · c23a4fd1
      Matthias Bolte 提交于
      If an ESX host is managed by a vCenter, it knows the IP address of the
      vCenter. Setting the vCenter query parameter to * allows to connect to the
      vCenter known to an ESX host without the need to specify its IP address
      or hostname explicitly.
      c23a4fd1
    • M
      esx: Improve domain lookup by UUID · 06ef64d1
      Matthias Bolte 提交于
      esxDomainLookupByUUID() and esxDomainIsActive() lookup a domain by asking
      ESX for all known domains and searching manually for the one with the
      matching UUID. This is inefficient. The VI API allows to lookup by UUID
      directly: FindByUuid().
      
      * src/esx/esx_driver.c: change esxDomainLookupByUUID() and esxDomainIsActive()
        to use esxVI_LookupVirtualMachineByUuid(), also reorder some functions to
        keep them in sync with the driver struct
      06ef64d1
    • M
      esx: Add automatic question handling · f66d5745
      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
      f66d5745
  25. 18 12月, 2009 1 次提交
    • J
      Adds the internal driver API · 16e4084a
      Jiri Denemark 提交于
      * src/driver.h: add an extra entry point in the structure
      * src/esx/esx_driver.c src/lxc/lxc_driver.c src/opennebula/one_driver.c
        src/openvz/openvz_driver.c src/phyp/phyp_driver.c src/qemu/qemu_driver.c
        src/remote/remote_driver.c src/test/test_driver.c src/uml/uml_driver.c
        src/vbox/vbox_tmpl.c src/xen/xen_driver.c: add NULL entry points for
        all drivers
      16e4084a