1. 15 6月, 2011 3 次提交
  2. 13 6月, 2011 1 次提交
  3. 03 6月, 2011 1 次提交
    • E
      remote: avoid leak on failure · c0e65ae5
      Eric Blake 提交于
      Detected by Coverity.  Only possible in OOM situations.
      
      * daemon/remote.c (remoteDispatchDomainScreenshot): Plug leak.
      c0e65ae5
  4. 01 6月, 2011 3 次提交
  5. 29 5月, 2011 4 次提交
    • D
      Introduce a new event emitted when a virtualization failure occurs · a6135ec1
      Daniel P. Berrange 提交于
      This introduces a new domain
      
        VIR_DOMAIN_EVENT_ID_CONTROL_ERROR
      
      Which uses the existing generic callback
      
      typedef void (*virConnectDomainEventGenericCallback)(virConnectPtr conn,
                                                           virDomainPtr dom,
                                                           void *opaque);
      
      This event is intended to be emitted when there is a failure in
      some part of the domain virtualization system. Whether the domain
      continues to run/exist after the failure is an implementation
      detail specific to the hypervisor.
      
      The idea is that with some types of failure, hypervisors may
      prefer to leave the domain running in a "degraded" mode of
      operation. For example, if something goes wrong with the QEMU
      monitor, it is possible to leave the guest OS running quite
      happily. The mgmt app will simply loose the ability todo various
      tasks. The mgmt app can then choose how/when to deal with the
      failure that occured.
      * daemon/remote.c: Dispatch of new event
      * examples/domain-events/events-c/event-test.c: Demo catch
        of event
      * include/libvirt/libvirt.h.in: Define event ID and callback
      * src/conf/domain_event.c, src/conf/domain_event.h: Internal
        event handling
      * src/remote/remote_driver.c: Receipt of new event from daemon
      * src/remote/remote_protocol.x: Wire protocol for new event
      * src/remote_protocol-structs: add new event for checks
      a6135ec1
    • E
      remote: introduce remoteGetSchedulerParametersFlags · baa371ec
      Eric Blake 提交于
      * daemon/remote.c (remoteDispatchDomainGetSchedulerParameters):
      New function.
      * src/remote/remote_driver.c (remoteDomainGetSchedulerParameters):
      Likewise.
      * src/remote/remote_protocol.x
      (remote_domain_get_scheduler_parameters_flags_args)
      (remote_domain_get_scheduler_parameters_flags_ret): New types.
      (remote_procedure): New RPC.
      * src/remote_protocol-structs: Likewise.
      baa371ec
    • E
      remote: consolidate typed parameter handling · 8a47ed29
      Eric Blake 提交于
      * src/remote/remote_protocol.x (remote_typed_param_value)
      (remote_typed_param):  New types.
      (remote_sched_param_value, remote_sched_param)
      (remote_blkio_param_value, remote_blkio_param)
      (remote_memory_param_value, remote_memory_param): Delete.
      (remote_domain_get_scheduler_parameters_ret)
      (remote_domain_set_scheduler_parameters_args)
      (remote_domain_set_scheduler_parameters_flags_args)
      (remote_domain_set_blkio_parameters_args)
      (remote_domain_get_blkio_parameters_ret)
      (remote_domain_set_memory_parameters_args)
      (remote_domain_get_memory_parameters_ret): Update clients.
      * src/remote_protocol-structs: Likewise.
      * src/remote/remote_driver.c (remoteSerializeTypedParameters)
      (remoteDeserializeTypedParameters): New functions.
      (remoteDomainSetMemoryParameters)
      (remoteDomainGetMemoryParameters, remoteDomainSetBlkioParameters)
      (remoteDomainGetBlkioParameters)
      (remoteDomainGetSchedulerParameters)
      (remoteDomainSetSchedulerParameters)
      (remoteDomainSetSchedulerParametersFlags): Update clients.
      * daemon/remote.c (remoteSerializeTypedParameters)
      (remoteDeserializeTypedParameters): New functions.
      (remoteDispatchDomainGetSchedulerParameters)
      (remoteDispatchDomainSetSchedulerParameters)
      (remoteDispatchDomainSetSchedulerParametersFlags)
      (remoteDispatchDomainSetMemoryParameters)
      (remoteDispatchDomainGetMemoryParameters)
      (remoteDispatchDomainSetBlkioParameters)
      (remoteDispatchDomainGetBlkioParameters): Update clients.
      8a47ed29
    • E
      maint: prefer newer API names internally · 163e5f04
      Eric Blake 提交于
      Rather mechanical in nature.
      
      * src/driver.h: Use newer virTypedParameter API names.
      * src/libvirt.c: Likewise.
      * daemon/remote.c: Likewise.
      * src/esx/esx_driver.c: Likewise.
      * src/libxl/libxl_driver.c: Likewise.
      * src/lxc/lxc_driver.c: Likewise.
      * src/qemu/qemu_driver.c: Likewise.
      * src/remote/remote_driver.c: Likewise.
      * src/test/test_driver.c: Likewise.
      * src/xen/xen_driver.c: Likewise.
      * src/xen/xen_hypervisor.c: Likewise.
      * src/xen/xen_hypervisor.h: Likewise.
      * src/xen/xend_internal.c: Likewise.
      * tools/virsh.c: Likewise.
      163e5f04
  6. 26 5月, 2011 2 次提交
  7. 25 5月, 2011 3 次提交
    • D
      Fix the signature of virDomainMigrateFinish3 for error reporting · 2593f969
      Daniel P. Berrange 提交于
      The current virDomainMigrateFinish3 method signature attempts to
      distinguish two types of errors, by allowing return with ret== 0,
      but ddomain == NULL, to indicate a failure to start the guest.
      This is flawed, because when ret == 0, there is no way for the
      virErrorPtr details to be sent back to the client.
      
      Change the signature of virDomainMigrateFinish3 so it simply
      returns a virDomainPtr, in the same way as virDomainMigrateFinish2
      The disk locking code will protect against the only possible
      failure mode this doesn't account for (loosing conenctivity to
      libvirtd after Finish3 starts the CPUs, but before the client
      sees the reply for Finish3).
      
      * src/driver.h, src/libvirt.c, src/libvirt_internal.h: Change
        virDomainMigrateFinish3 to return a virDomainPtr instead of int
      * src/remote/remote_driver.c, src/remote/remote_protocol.x,
        daemon/remote.c, src/qemu/qemu_driver.c, src/qemu/qemu_migration.c:
        Update for API change
      2593f969
    • D
      Add a second URI parameter to virDomainMigratePerform3 method · f9f2d4e1
      Daniel P. Berrange 提交于
      The virDomainMigratePerform3 currently has a single URI parameter
      whose meaning varies. It is either
      
       - A QEMU migration URI (normal migration)
       - A libvirtd connection URI (peer2peer migration)
      
      Unfortunately when using peer2peer migration, without also
      using tunnelled migration, it is possible that both URIs are
      required.
      
      This adds a second URI parameter to the virDomainMigratePerform3
      method, to cope with this scenario. Each parameter how has a fixed
      meaning.
      
      NB, there is no way to actually take advantage of this yet,
      since virDomainMigrate/virDomainMigrateToURI do not have any
      way to provide the 2 separate URIs
      
      * daemon/remote.c, src/remote/remote_driver.c,
        src/remote/remote_protocol.x, src/remote_protocol-structs: Add
        the second URI parameter to perform3 message
      * src/driver.h, src/libvirt.c, src/libvirt_internal.h: Add
        the second URI parameter to Perform3 method
      * src/libvirt_internal.h, src/qemu/qemu_migration.c,
        src/qemu/qemu_migration.h: Update to handle URIs correctly
      f9f2d4e1
    • D
      Extend v3 migration protocol to allow app supplied XML for target · 7ad4b6b9
      Daniel P. Berrange 提交于
      This extends the v3 migration protocol such that the
      virDomainMigrateBegin3 and virDomainMigratePerform3
      methods accept an application supplied XML config for
      the target VM.
      
      If the 'xmlin' parameter is NULL, then Begin3 uses the
      current guest XML as normal. A driver implementing the
      Begin3 method should either reject all non-NULL 'xmlin'
      parameters, or strictly validate that the app supplied
      XML does not change guest ABI.
      
      The Perform3 method also needed the xmlin parameter to
      cope with the Peer2Peer migration sequence.
      
      NB it is not yet possible to use this capability since
      neither of the public virDomainMigrate/virDomainMigrateToURI
      methods have a way to pass in XML.
      
      * daemon/remote.c, src/remote/remote_driver.c,
        src/remote/remote_protocol.x, src/remote_protocol-structs:
        Add 'remote_string xmlin' parameter to begin3/perform3
        RPC messages
      * src/libvirt.c, src/driver.h, src/libvirt_internal.h: Add
        'const char *xmlin' parameter to Begin3/Perform3 methods
      * src/qemu/qemu_driver.c, src/qemu/qemu_migration.c,
        src/qemu/qemu_migration.h: Pass xmlin parameter around
        migration methods
      7ad4b6b9
  8. 21 5月, 2011 1 次提交
  9. 20 5月, 2011 1 次提交
  10. 18 5月, 2011 1 次提交
  11. 17 5月, 2011 3 次提交
  12. 16 5月, 2011 2 次提交
  13. 13 5月, 2011 1 次提交
  14. 12 5月, 2011 2 次提交
    • E
      maint: omit translation for all VIR_INFO · cb84580a
      Eric Blake 提交于
      We were 31/73 on whether to translate; since less than 50% translated
      and since VIR_INFO is less than VIR_WARN which also doesn't translate,
      this makes sense.
      
      * cfg.mk (sc_prohibit_gettext_markup): Add VIR_INFO, since it
      falls between WARN and DEBUG.
      * daemon/libvirtd.c (qemudDispatchSignalEvent, remoteCheckAccess)
      (qemudDispatchServer): Adjust offenders.
      * daemon/remote.c (remoteDispatchAuthPolkit): Likewise.
      * src/network/bridge_driver.c (networkReloadIptablesRules)
      (networkStartNetworkDaemon, networkShutdownNetworkDaemon)
      (networkCreate, networkDefine, networkUndefine): Likewise.
      * src/qemu/qemu_driver.c (qemudDomainDefine)
      (qemudDomainUndefine): Likewise.
      * src/storage/storage_driver.c (storagePoolCreate)
      (storagePoolDefine, storagePoolUndefine, storagePoolStart)
      (storagePoolDestroy, storagePoolDelete, storageVolumeCreateXML)
      (storageVolumeCreateXMLFrom, storageVolumeDelete): Likewise.
      * src/util/bridge.c (brProbeVnetHdr): Likewise.
      * po/POTFILES.in: Drop src/util/bridge.c.
      cb84580a
    • L
      libvirt,logging: cleanup VIR_XXX0() · b65f37a4
      Lai Jiangshan 提交于
      These VIR_XXXX0 APIs make us confused, use the non-0-suffix APIs instead.
      
      How do these coversions works? The magic is using the gcc extension of ##.
      When __VA_ARGS__ is empty, "##" will swallow the "," in "fmt," to
      avoid compile error.
      
      example: origin				after CPP
      	high_level_api("%d", a_int)	low_level_api("%d", a_int)
      	high_level_api("a  string")	low_level_api("a  string")
      
      About 400 conversions.
      
      8 special conversions:
      VIR_XXXX0("") -> VIR_XXXX("msg") (avoid empty format) 2 conversions
      VIR_XXXX0(string_literal_with_%) -> VIR_XXXX(%->%%) 0 conversions
      VIR_XXXX0(non_string_literal) -> VIR_XXXX("%s", non_string_literal)
        (for security) 6 conversions
      Signed-off-by: NLai Jiangshan <laijs@cn.fujitsu.com>
      b65f37a4
  15. 07 5月, 2011 11 次提交
  16. 05 5月, 2011 1 次提交
    • E
      remote: avoid null dereference on error · 85cb2926
      Eric Blake 提交于
      Clang found three instances of uninitialized use of nparams in
      the cleanup path.  Unfortunately, one is a false positive: clang
      couldn't see that ret->params.params_val is guaranteed to be
      NULL unless allocated within a function, and that nparams is
      guaranteed to be assigned prior to the allocation; hoisting the
      assignment to nparams to be earlier in the function shuts up
      that false positive.  But two of the reports also happened to
      highlight a real bug - the error path can dereference NULL.
      
      Regression introduced in commit 158ba873.
      
      * daemon/remote.c (remoteDispatchDomainGetMemoryParameters)
      (remoteDispatchDomainGetBlkioParameters): Don't clear fields if
      array was not allocated.
      (remoteDispatchDomainGetSchedulerParameters): Initialize nparams
      earlier.
      85cb2926