1. 20 1月, 2010 1 次提交
  2. 14 1月, 2010 2 次提交
    • C
      daemon: Don't blindly unregister domain events · 438fa793
      Cole Robinson 提交于
      The daemon will attempt to unregister domain events on client disconnect,
      even if no events were ever registered. This raises an unneeded error.
      
      Track in the qemu_client structure if events have been registered, and
      check this when performing cleanup.
      438fa793
    • C
      daemon: Fix various error reporting issues · 2d4d6576
      Cole Robinson 提交于
      Many node device calls weren't properly relaying error messages, and
      domain event registeration was not checking for error.
      2d4d6576
  3. 20 12月, 2009 1 次提交
    • A
      Add domainMemoryStats support to remote driver · 841d5035
      Adam Litke 提交于
      Use a dynamically sized xdr_array to pass memory stats on the wire.  This
      supports the addition of future memory stats and reduces the message size
      since only supported statistics are returned.
      
      * src/remote/remote_protocol.x: provide defines for the new entry point
      * src/remote/remote_driver.c daemon/remote.c: implement the client and
        server side
      * daemon/remote_dispatch_args.h daemon/remote_dispatch_prototypes.h
        daemon/remote_dispatch_ret.h daemon/remote_dispatch_table.h
        src/remote/remote_protocol.c src/remote/remote_protocol.h: generated
        stubs
      841d5035
  4. 18 12月, 2009 1 次提交
    • J
      CPU flags wire protocol format and server side · 3a2881fa
      Jiri Denemark 提交于
      * src/remote/remote_protocol.x: update with new entry point
      * daemon/remote.c: add the new server dispatcher
      * daemon/remote_dispatch_args.h daemon/remote_dispatch_prototypes.h
        daemon/remote_dispatch_ret.h daemon/remote_dispatch_table.h
        src/remote/remote_protocol.c src/remote/remote_protocol.h: regenerated
      3a2881fa
  5. 11 12月, 2009 1 次提交
  6. 12 11月, 2009 1 次提交
    • C
      Add virConnectGetLibvirtVersion API · ce4c0bf5
      Cole Robinson 提交于
      There is currently no way to determine the libvirt version of a remote
      libvirtd we are connected to. This is a useful piece of data to enable
      feature detection.
      ce4c0bf5
  7. 11 11月, 2009 1 次提交
    • D
      Implmentation of new APIs to checking state/persistence of objects · cabc2cc9
      Daniel P. Berrange 提交于
      This implements the virConnectIsSecure, virConnectIsEncrypted,
      virDomainIsPersistent, virDomainIsActive, virNetworkIsActive,
      virNetworkIsPersistent, virStoragePoolIsActive,
      virStoragePoolIsPersistent, virInterfaceIsActive APIs in
      (nearly) all drivers. Exceptions are:
      
       phyp: missing domainIsActive/Persistent
       esx: missing domainIsPersistent
       opennebula: missing domainIsActive/Persistent
      
      * src/remote/remote_protocol.x: Define remote wire ABI for newly
        added APIs.
      * daemon/remote_dispatch*.h: Re-generated from remote_protocol.x
      * src/esx/esx_driver.c, src/lxc/lxc_driver.c, src/network/bridge_driver.c,
        src/opennebula/one_driver.c, src/openvz/openvz_conf.c,
        src/openvz/openvz_driver.c, src/phyp/phyp_driver.c,
        src/remote/remote_driver.c, src/storage/storage_driver.c,
        src/test/test_driver.c, src/uml/uml_driver.c, src/vbox/vbox_tmpl.c,
        src/xen/xen_driver.c, src/xen/xen_driver.h, src/xen/xen_inotify.c,
        src/xen/xen_inotify.h: Implement all the new APIs where possible
      cabc2cc9
  8. 10 11月, 2009 1 次提交
  9. 09 10月, 2009 1 次提交
    • D
      Remove unneccessary uri_in parameter from virMigratePrepareTunnel · f6c66d01
      Daniel P. Berrange 提交于
      Since virMigratePrepareTunnel() is used for migration over the
      native libvirt connection, there is never any need to pass the
      target URI to this method.
      
      * daemon/remote.c, src/driver.h, src/libvirt.c, src/libvirt_internal.h,
        src/qemu/qemu_driver.c, src/remote/remote_driver.c,
        src/remote/remote_protocol.c, src/remote/remote_protocol.h,
        src/remote/remote_protocol.x: Remove 'uri_in' parameter from
        virMigratePrepareTunnel() method
      f6c66d01
  10. 02 10月, 2009 2 次提交
    • D
      Fix emission of domain events messages · 398d01b8
      Daniel P. Berrange 提交于
      The code which updated the message length after writing the
      payload wrote the updated length word in the wrong place since
      the XDR object was given a buffer pointing to the start of the
      header payload, rather than message start.
      
      * daemon/remote.c: Fix updating of event message length so that
        we actually send the payload, not just the header
      398d01b8
    • C
      Tunnelled migration. · 6e16575a
      Chris Lalancette 提交于
      Implementation of tunnelled migration, using a Unix Domain Socket
      on the qemu backend.  Note that this requires very new versions of
      qemu (0.10.7 at least) in order to get the appropriate bugfixes.
      Signed-off-by: NChris Lalancette <clalance@redhat.com>
      6e16575a
  11. 30 9月, 2009 1 次提交
  12. 23 9月, 2009 1 次提交
    • C
      Introduce virStrncpy. · 03d777f3
      Chris Lalancette 提交于
      Add the virStrncpy function, which takes a dst string, source string,
      the number of bytes to copy and the number of bytes available in the
      dest string.  If the source string is too large to fit into the
      destination string, including the \0 byte, then no data is copied and
      the function returns NULL.  Otherwise, this function copies n bytes
      from source into dst, including the \0, and returns a pointer to the
      dst string.  This function is intended to replace all unsafe uses
      of strncpy in the code base, since strncpy does *not* guarantee that
      the buffer terminates with a \0.
      Signed-off-by: NChris Lalancette <clalance@redhat.com>
      03d777f3
  13. 21 9月, 2009 1 次提交
    • D
      Rename qemud/ directory to daemon/ · 5c2a1ae8
      Daniel P. Berrange 提交于
      * qemud/: Rename to daemon/
      * Makefile.am, configure.in, src/Makefile.am, src/remote_internal.c,
        tests/Makefile.am, tests/eventtest.c: s/qemud/daemon/ where needed
      5c2a1ae8
  14. 15 9月, 2009 2 次提交
    • D
      Add usage type/id as a public API property of virSecret · a2a30038
      Daniel P. Berrange 提交于
      * include/libvirt/libvirt.h, include/libvirt/libvirt.h.in: Add
        virSecretGetUsageType, virSecretGetUsageID and virLookupSecretByUsage
      * python/generator.py: Mark virSecretGetUsageType, virSecretGetUsageID
        as not throwing exceptions
      * qemud/remote.c: Implement dispatch for virLookupSecretByUsage
      * qemud/remote_protocol.x: Add usage type & ID as attributes of
        remote_nonnull_secret. Add RPC calls for new public APIs
      * qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h,
        qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h,
        qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate
      * src/datatypes.c, src/datatypes.h: Add usageType and usageID as
        properties of virSecretPtr
      * src/driver.h: Add virLookupSecretByUsage driver entry point
      * src/libvirt.c: Implement virSecretGetUsageType, virSecretGetUsageID
        and virLookupSecretByUsage
      * src/libvirt_public.syms: Export virSecretGetUsageType, virSecretGetUsageID
        and virLookupSecretByUsage
      * src/remote_internal.c: Implement virLookupSecretByUsage entry
      * src/secret_conf.c, src/secret_conf.h: Remove the
        virSecretUsageType enum, now in public API. Make volume
        path mandatory when parsing XML
      * src/secret_driver.c: Enforce usage uniqueness when defining secrets.
        Implement virSecretLookupByUsage api method
      * src/virsh.c: Include usage for secret-list command
      a2a30038
    • D
      Fix UUID handling in secrets/storage encryption APIs · 47e7a258
      Daniel P. Berrange 提交于
      Convert all the secret/storage encryption APIs / wire format to
      handle UUIDs in raw format instead of non-canonical printable
      format. Guarentees data format correctness.
      
      * docs/schemas/storageencryption.rng: Make UUID mandatory for a secret
        and validate fully
      * docs/schemas/secret.rng: Fully validate UUID
      * include/libvirt/libvirt.h, include/libvirt/libvirt.h.in, Add
        virSecretLookupByUUID and virSecretGetUUID. Make
        virSecretGetUUIDString follow normal API design pattern
      * python/generator.py: Skip generation of virSecretGetUUID,
        virSecretGetUUIDString and virSecretLookupByUUID
      * python/libvir.c, python/libvirt-python-api.xml: Manual impl
        of virSecretGetUUID,virSecretGetUUIDString and virSecretLookupByUUID
      * qemud/remote.c: s/virSecretLookupByUUIDString/virSecretLookupByUUID/
        Fix get_nonnull_secret/make_nonnull_secret to use unsigned char
      * qemud/remote_protocol.x: Fix remote_nonnull_secret to use a
        remote_uuid instead of remote_nonnull_string for UUID field.
        Rename REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING to
        REMOTE_PROC_SECRET_LOOKUP_BY_UUID_STRING and make it take an
        remote_uuid  value
      * qemud/remote_dispatch_args.h, qemud/remote_dispatch_prototypes.h,
        qemud/remote_dispatch_ret.h, qemud/remote_dispatch_table.h,
        qemud/remote_protocol.c, qemud/remote_protocol.h: Re-generate
      * src/datatypes.h, src/datatypes.c: Store UUID in raw format instead
        of printable. Change virGetSecret to use raw format UUID
      * src/driver.h: Rename virDrvSecretLookupByUUIDString to
        virDrvSecretLookupByUUID and use raw format UUID
      * src/libvirt.c: Add virSecretLookupByUUID and virSecretGetUUID
        and re-implement virSecretLookupByUUIDString and
        virSecretGetUUIDString in terms of those
      * src/libvirt_public.syms: Add virSecretLookupByUUID and
        virSecretGetUUID
      * src/remote_internal.c: Rename remoteSecretLookupByUUIDString
        to remoteSecretLookupByUUID. Fix typo in args for
        remoteSecretDefineXML impl. Use raw UUID format for
        get_nonnull_secret and make_nonnull_secret
      * src/storage_encryption_conf.c, src/storage_encryption_conf.h:
        Storage UUID in raw format, and require it to be present in
        XML. Use UUID parser to validate.
      * secret_conf.h, secret_conf.c: Generate a UUID if none is provided.
        Storage UUID in raw format.
      * src/secret_driver.c: Adjust to deal with raw UUIDs. Save secrets
        in a filed with printable UUID, instead of base64 UUID.
      * src/virsh.c: Adjust for changed public API contract of
        virSecretGetUUIDString.
      * src/storage_Backend.c: DOn't undefine secret we just generated
        upon successful volume creation. Fix to handle raw UUIDs. Generate
        a non-clashing UUID
      * src/qemu_driver.c: Change to use lookupByUUID instead of
        lookupByUUIDString
      47e7a258
  15. 02 9月, 2009 1 次提交
    • M
      Secret manipulation libvirtd wire protocol & remote dispatcher · 0de63c67
      Miloslav Trmač 提交于
      * qemud/remote_protocol.x: Define wire protocol for secrets public
        APIs
      * qemud/remote_protocol.h, qemud/remote_protocol.c,
        qemud/remote_dispatch_table.h, qemud/remote_dispatch_ret.h,
        qemud/remote_dispatch_prototypes.h, qemud/remote_dispatch_args.h:
        Re-generate from updated protocol definition
      * qemud/remote.c: Implement RPC dispatchers for new secrets APIs
      0de63c67
  16. 26 8月, 2009 1 次提交
  17. 25 8月, 2009 1 次提交
    • D
      Support new PolicyKit 1.0 API · 8e06c8b3
      Daniel P. Berrange 提交于
      * configure.in: Check for pkcheck which indicates new policykit
      * qemud/Makefile.am: Install different versions of policy
      * qemud/libvirtd.policy: Rename to libvirtd.policy-0
      * qemud/libvirtd.policy-1: new style policy
      * qemud/qemud.c, qemud/qemud.h, qemud/remote.c: Support new
        policykit API via external pkcheck helper
      * src/remote_internal.c: Don't prompt for polkit auth with new
        policykit API
      * libvirt.spec.in: deal with new policy install locations & deps
      8e06c8b3
  18. 23 7月, 2009 1 次提交
  19. 16 7月, 2009 6 次提交
    • L
      Implement the new virinterface functions · d4ad29be
      Laine Stump 提交于
      * src/driver.h: add new driver functions virDrvNumOfDefinedInterfaces
        and virDrvListDefinedInterfaces
      * src/libvirt.c: implements the entry points, calling new driver
        functions
      * qemud/remote.c qemud/remote_dispatch_args.h qemud/remote_protocol.[chx]
        qemud/remote_dispatch_prototypes.h qemud/remote_dispatch_ret.h
        qemud/remote_dispatch_table.h src/remote_internal.c: implement the
        client/server side of the RPC
      d4ad29be
    • D
      Rename 'direction' to 'type' in remote_message_header · 27944fac
      Daniel P. Berrange 提交于
      The 'remote_message_header' struct has a mis-leadingly named
      field 'direction'. It is really a reflection of the type of
      message, and some types can be sent in either direction. Thus
      the field is more accurately named 'type'. No function change.
      
      * qemud/remote_protocol.x: Rename 'direction' to 'type' in
        'remote_message_header. Write better docs describing the
        message header field semantics & usage
      * qemud/remote_protocol.c, qemud/remote_protocol.h: Regenerate
      * qemud/remote.c, qemud/dispatch.c, src/remote_internal.c
        Update to reflect rename of 'direction' to 'type'
      27944fac
    • D
      Change the way client event loop watches are managed · af4dad0f
      Daniel P. Berrange 提交于
      The current qemudRegisterClientEvent() code is used both for
      registering the initial socket watch, and updating the already
      registered watch. This causes unneccessary complexity in alot
      of code which only cares about updating existing watches. The
      updating of a watch cannot ever fail, nor is a reference to the
      'qemud_server' object required.
      
      This introduces a new qemudUpdateClientEvent() method for that
      case, allowing the elimination of unneccessary error checking
      and removal of the server back-reference in struct qemud_client.
      
      * qemud/qemud.h: Remove 'server' field from struct qemud_client.
        Add qemudUpdateClientEvent() method. Remove 'update' param
        from qemudRegisterClientEvent method
      * qemud/dispatch.c, qemud/qemud.c, qemud/remote.c: Update alot
        of code to use qemudUpdateClientEvent() instead of
        qemudRegisterClientEvent(). Move more logic from remoteRelayDomainEvent
        into remoteDispatchDomainEventSend.
      af4dad0f
    • D
      Change code generator to give async event messages their own postfix · aa23d432
      Daniel P. Berrange 提交于
      The naming convention for structs used in the RPC layer is for
      incoming requests to be called XXXX_args, and the associated
      outgoing reply to be called XXXX_ret.  Asynchronously emitted
      messages (eg events) are re-using the XXXX_ret naming scheme.
      This patch changes that such that async messages are XXXX_msg,
      and stops adding entries for them in the dispatch table, avoiding
      the need for a dummy no-op implementation.
      
      * qemud/remote.c: Remove dummy remoteDispatchDomainEvent, no
        longer required. Update to replace remote_domain_event_ret
        with xdr_remote_domain_event_msg
      * qemud/remote_protocol.x: Rename remote_domain_event_ret to
        remote_domain_event_msg
      * qemud/remote_generate_stubs.pl: Adding handling for new
        XXX_msg structs.
      * src/remote_internal.c: Rename remote_domain_event_ret to
        remote_domain_event_msg
      * qemud/remote_dispatch_prototypes.h, qemud/remote_dispatch_ret.h,
        qemud/remote_dispatch_table.h, qemud/remote_protocol.h,
        qemud/remote_protocol.c: auto-regenerate
      aa23d432
    • D
      Separate code for encoding outgoing remote message headers · 852fa7d0
      Daniel P. Berrange 提交于
      Introduces an API for encoding the header field for outgoing messages
      allowing some duplicated code to be eliminated
      
      * qemud/dispatch.c, qemud/dispatch.h: add remoteEncodeClientMessageHeader
        for encoding message header. Update remoteDispatchClientRequest to
        use this method.
      * qemud/remote.c: Update remoteDispatchDomainEventSend to use the
        generic remoteEncodeClientMessageHeader() for encoding event
        message hedaders. Push some logic from remoteRelayDomainEvent
        down into remoteDispatchDomainEventSend.
      852fa7d0
    • D
      Split generic RPC message dispatch code out from remote protocol API handlers · a147ef38
      Daniel P. Berrange 提交于
      * po/POTFILES.in: Add qemud/dispatch.c
      * qemud/dispatch.c, qemud/dispatch.h: Generic code handling dispatch of
        RPC messages.
      * qemud/Makefile.am: Add dispatch.c to build
      * qemud/qemud.c: Include dispatch.h
      * qemud/qemud.h: Remove remoteDispatchClientRequest, remoteRelayDomainEvent
        now in dispatch.h
      * qemud/remote.c: Remove remoteDispatchClientRequest, remoteRelayDomainEvent
        now in dispatch.c, and dispatch_args, dispatch_ret, dispatch_fn & dispatch_data
        now in remote.h
      * qemud/remote.h: Add typedefs for dispatch_args, dispatch_ret,
        dispatch_fn, dispath_data. Add remoteGetDispatchData() API
      a147ef38
  20. 15 7月, 2009 1 次提交
    • D
      Fix error reporting for security driver over remote protocol · 84565934
      Daniel P. Berrange 提交于
      * qemud/remote.c: Send back the actual libvirt connection error
        rather than formatting a generic error for security driver
        methods
      * src/libvirt.c: Fix virDomainGetSecurityLabel, and
        virNodeGetSecurityModel to correctly set the error on
        the virConnectPtr object, and raise a full error rather
        than warning when not supported
      84565934
  21. 11 6月, 2009 1 次提交
  22. 29 5月, 2009 1 次提交
  23. 21 5月, 2009 1 次提交
  24. 20 5月, 2009 1 次提交
    • D
      Add the Interface config APIs · 73bc0114
      Daniel Veillard 提交于
      * configure.in include/libvirt/libvirt.h[.in]
        include/libvirt/virterror.h qemud/remote.c
        qemud/remote_dispatch_args.h qemud/remote_dispatch_prototypes.h
        qemud/remote_dispatch_ret.h qemud/remote_dispatch_table.h
        qemud/remote_protocol.[chx] src/Makefile.am src/datatypes.c
        src/datatypes.h src/driver.h src/libvirt.c src/remote_internal.c
        src/virterror.c src/libvirt_private.syms src/libvirt_public.syms:
        Add the Interface config APIs and remote stubs for those, patch
        by Laine Stump
      * AUTHORS: add Laine
      daniel
      73bc0114
  25. 19 5月, 2009 1 次提交
  26. 13 5月, 2009 1 次提交
  27. 24 4月, 2009 1 次提交
  28. 03 4月, 2009 1 次提交
  29. 16 3月, 2009 1 次提交
  30. 03 3月, 2009 2 次提交
  31. 06 2月, 2009 1 次提交
    • J
      remove remainder of offending strerror uses · bafd7389
      Jim Meyering 提交于
      * qemud/qemud.c (GET_CONF_STR): Use virStrerror, not strerror.
      * qemud/remote.c (remoteDispatchDomainBlockPeek): Likewise.
      (remoteDispatchDomainMemoryPeek, remoteDispatchAuthSaslInit): Likewise.
      (remoteDispatchAuthPolkit): Likewise.
      * src/lxc_container.c (lxcContainerAvailable): Likewise.
      * src/network_driver.c (networkStartNetworkDaemon): Likewise.
      (networkShutdownNetworkDaemon): Likewise.
      * src/qemu_conf.c (qemudExtractVersion, qemudNetworkIfaceConnect):
      * src/storage_conf.c (virStoragePoolLoadAllConfigs): Likewise.
      * src/storage_driver.c (storagePoolUndefine): Likewise.
      * src/uml_driver.c (umlStartup, umlStartVMDaemon): Likewise.
      * src/util.c (virFileReadAll): Likewise.
      * src/uuid.c (virUUIDGenerate): Likewise.
      * src/xen_internal.c (get_cpu_flags): Likewise.
      bafd7389