1. 17 7月, 2009 14 次提交
  2. 16 7月, 2009 26 次提交
    • 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
    • L
      Public API for new virInterface functions · 043c954e
      Laine Stump 提交于
      * include/libvirt/libvirt.h[.in]: adds signatures for the new exported
        functions virConnectNumOfDefinedInterfaces and
        virConnectListDefinedInterfaces
      * src/libvirt_public.syms: export the new symbols
      043c954e
    • D
      Fix configure flags in spec file · d3c236f9
      Daniel Veillard 提交于
      * libvirt.spec.in: we were still using deprecated configure switches
      d3c236f9
    • D
      Rename a bunch of internal methods to clarify their meaning · 5dd21f2a
      Daniel P. Berrange 提交于
      This renames a lot of the methods in the remote driver client
      to more accurately reflect their responsibility of IO handling
      vs message handling.
      5dd21f2a
    • D
      Simplify remote driver error reporting · d65707a5
      Daniel P. Berrange 提交于
      Remove redundant error reporting functions which obscured the
      filename/line number reporting. Removed code which created a
      virDomain/virNetwork object, since those are silently dropped
      in error reporting functions now
      
      * src/remote_internal.c: Remove error() and errorf() in favour of
       macros, and remove server_error in favour of direct call
      d65707a5
    • D
      Refactor message sending to allow code reuse for data streams · 9c9ed0f3
      Daniel P. Berrange 提交于
      Splits up the 'call' method moving generic IO code out into
      separate method to allow it to be easily reused for sending
      data streams
      
      * src/remote_internal.c: Split 'call' into two methods, the first
        with same name serializes a set of method arguments into a
        message, the second 'remoteIO' takes a pre-serialized messages,
        sends it and awaits a reply
      9c9ed0f3
    • D
      Refactor incoming message handling to prepare for data stream support · 7a61c138
      Daniel P. Berrange 提交于
      * src/remote_internal.c: Rename processCallRecvMsg to
        processCallDispatch, and move code specific to method replies
        into processCallDispatchReply, and rename processCallAsyncEvent
        to processCallDispatchMessage
      7a61c138
    • 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
      Define an API for registering incoming message dispatch filters · caaa1b8f
      Daniel P. Berrange 提交于
      All incoming messages currently get routed to the generic method
      remoteDispatchClientRequest() for processing. To allow incoming
      data stream messages to bypass this and be routed to a specific
      location, a concept of dispatch filters is introduced.
      
      * qemud/qemud.h: Add a qemud_client_filter struct and a callback
        qemud_client_filter_func. Maintain a list of filters on every
        struct qemud_client
      * qemud/qemud.c: Move remoteDecodeClientMessageHeader() out of
        qemudWorker() into qemudDispatchClientRead(). Check registered
        message filters in qemudDispatchClientRead() to decide where
        to send incoming messages for dispatch.
      caaa1b8f
    • D
      Split out code for handling incoming method call messages · 47cab734
      Daniel P. Berrange 提交于
      The remoteDispatchClientRequest() method is currently hardwired to
      assume there is only one type of incoming message, a method call.
      To allow for alternate types of incoming messags, the code that is
      specific to method calls is being split into a separate method
      remoteDispatchClientCall
      
      * qemud/dispatch.c: Move method call specific code out into
        remoteDispatchClientCall. Add a helper remoteSerializeError
        for returning error messages to client
      47cab734
    • 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
      Move queuing of RPC replies into dispatch code · c40e14b4
      Daniel P. Berrange 提交于
      This removes an assumption from qemudWorker() code that every
      incoming message will generate a reply.
      
      * qemud/dispatch.c: remoteDispatchClientRequest now has responsibility
        for queuing the reply message to the RPC call
      * qemud/qemud.c: Do not queue the RPC call reply in qemudWorker(),
        allowing remoteDispatchClientRequest() to take care of it
      c40e14b4
    • 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
      Decode incoming request header before invoking dispatch code · 081c6330
      Daniel P. Berrange 提交于
      Separate the decoding of incoming request header out from the
      dispatch code. This will allow later code to making dispatcher
      routing decisions based on the header field data.
      
      * qemud/dispatch.c, qemud/dispatch.h: Add remoteDecodeClientMessageHeader
        API for decoding the header of a client message. Update the
        remoteDispatchClientRequest method to assume a pre-decoded
        header.
      * qemud/qemud.h: Include a 'remote_message_header' field in
        'struct qemud_client_message' for pre-decoded header data
      * qemud/qemud.c: Decode the incoming client message header before
        invoking remoteDispatchClientRequest
      081c6330
    • 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
    • P
      Implement qemu dump capabilities · e1abc448
      Paolo Bonzini 提交于
      * src/qemu_driver.c (qemudDomainCoreDump): New
        (qemuDriver): Add core dump function. The behaviour is similar
        as the current Xen dump
      e1abc448
    • P
      add cd and pwd commands to virsh · c4951f11
      Paolo Bonzini 提交于
      * src/virsh.c: adds cd and pwd commands to virsh useful for save and
        restore commands
      * docs/virsh.pod virsh.1: update the documentation
      * AUTHORS: add Paolo Bonzini
      c4951f11
    • J
      make "make syntax-check" consistent with "git diff --check" · 08a2e796
      Jim Meyering 提交于
      This makes "make syntax-check" fail when a version-controlled
      file contains a trailing blank line.
      * cfg.mk (sc_prohibit_trailing_blank_lines): New rule.
      08a2e796
    • J
      remove all trailing blank lines · 07613d20
      Jim Meyering 提交于
      by running this command:
      git ls-files -z | xargs -0 perl -pi -0777 -e 's/\n\n+$/\n/'
      This is in preparation for a more strict make syntax-check
      rule that will detect trailing blank lines.
      07613d20
    • D
      4a7acedd
    • D
      Fix SELinux denial during hotplug · 1795bfe4
      Daniel P. Berrange 提交于
      * src/qemu_driver.c: Relabel disk images *before* running QEMU
      hotplug monitor commands
      1795bfe4
    • D
      Fix PCI device hotplug/unplug with newer QEMU · 326ecb78
      Daniel P. Berrange 提交于
      * src/qemu_driver.c: Try new monitor syntax for hotplug first. If
        that fails fallback to old KVM specific syntax
      326ecb78
    • D
      Fix problem with QEMU monitor welcome prompt confusing libvirt · 2d1f2e70
      Daniel P. Berrange 提交于
      after a libvirtd daemon restart with active guests
      
      * src/qemu_driver: Read and dicard pending monitor data
        before issuing new monitor commands.
      2d1f2e70
    • D
    • D
      Allow autostart of libvirtd to be disabled with LIBVIRT_AUTOSTART=0 · 89c5ce4d
      Daniel P. Berrange 提交于
      * src/remote_internal.c: Disable libvirtd autostart if the
        LIBVIRT_AUTOSTART=0 env variable is set
      * src/libvirt.c: Document environment variables can impact
        the virConnectOpen API
      89c5ce4d