1. 29 12月, 2011 1 次提交
  2. 20 12月, 2011 1 次提交
    • A
      python: plug memory leak on libvirt_virConnectOpenAuth · 78496224
      Alex Jia 提交于
      * Detected by valgrind. Leak introduced in commit 5ab109f8.
      
      * python/libvirt-override.c: avoid memory leak on libvirt_virConnectOpenAuth.
      
      * How to reproduce?
      
        % valgrind -v --leak-check=full virt-clone --print-xml
        Note: it can hit the issue although options are incomplete.
      
      * Actual valgrind result:
      
      ==1801== 12 bytes in 1 blocks are definitely lost in loss record 25 of 3,270
      ==1801==    at 0x4A05FDE: malloc (vg_replace_malloc.c:236)
      ==1801==    by 0xCF1F60E: libvirt_virConnectOpenAuth (libvirt-override.c:1507)
      ==1801==    by 0x3AFEEDE7F3: PyEval_EvalFrameEx (ceval.c:3794)
      ==1801==    by 0x3AFEEDF99E: PyEval_EvalFrameEx (ceval.c:3880)
      ==1801==    by 0x3AFEEDF99E: PyEval_EvalFrameEx (ceval.c:3880)
      ==1801==    by 0x3AFEEDF99E: PyEval_EvalFrameEx (ceval.c:3880)
      ==1801==    by 0x3AFEEDF99E: PyEval_EvalFrameEx (ceval.c:3880)
      ==1801==    by 0x3AFEEE0466: PyEval_EvalCodeEx (ceval.c:3044)
      ==1801==    by 0x3AFEEE0541: PyEval_EvalCode (ceval.c:545)
      ==1801==    by 0x3AFEEFB88B: run_mod (pythonrun.c:1351)
      ==1801==    by 0x3AFEEFB95F: PyRun_FileExFlags (pythonrun.c:1337)
      ==1801==    by 0x3AFEEFCE4B: PyRun_SimpleFileExFlags (pythonrun.c:941)
      Signed-off-by: NAlex Jia <ajia@redhat.com>
      78496224
  3. 15 12月, 2011 1 次提交
    • O
      python: Expose blockPeek and memoryPeek in Python binding · d758e0cb
      Osier Yang 提交于
      A simple example to show how to use it:
      
      \#! /usr/bin/python
      
      import os
      import sys
      import libvirt
      
      disk = "/var/lib/libvirt/images/test.img"
      
      conn = libvirt.open(None)
      dom = conn.lookupByName('test')
      
      mem_contents = dom.memoryPeek(0, 32, libvirt.VIR_MEMORY_VIRTUAL);
      sys.stdout.write(mem_contents)
      
      % python test.py | hexdump
      0000000 1660 0209 0000 0000 0000 0000 0000 0000
      0000010 0000 0000 0000 0000 d3a0 01d0 0000 0000
      0000020
      d758e0cb
  4. 14 12月, 2011 1 次提交
  5. 05 12月, 2011 2 次提交
  6. 01 12月, 2011 1 次提交
  7. 25 10月, 2011 1 次提交
    • M
      startupPolicy: Emit event on disk source dropping · baf2ff7e
      Michal Privoznik 提交于
      If a disk source gets dropped because it is not accessible,
      mgmt application might want to be informed about this. Therefore
      we need to emit an event. The event presented in this patch
      is however a bit superset of what written above. The reason is simple:
      an intention to be easily expanded, e.g. on 'user ejected disk
      in guest' events. Therefore, callback gets source string and disk alias
      (which should be unique among a domain) and reason (an integer);
      baf2ff7e
  8. 11 10月, 2011 1 次提交
    • E
      snapshot: new virDomainSnapshotListChildrenNames API · f2013c9d
      Eric Blake 提交于
      The previous API addition allowed traversal up the hierarchy;
      this one makes it easier to traverse down the hierarchy.
      
      In the python bindings, virDomainSnapshotNumChildren can be
      generated, but virDomainSnapshotListChildrenNames had to copy
      from the hand-written example of virDomainSnapshotListNames.
      
      * include/libvirt/libvirt.h.in (virDomainSnapshotNumChildren)
      (virDomainSnapshotListChildrenNames): New prototypes.
      (VIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS): New flag alias.
      * src/libvirt.c (virDomainSnapshotNumChildren)
      (virDomainSnapshotListChildrenNames): New functions.
      * src/libvirt_public.syms: Export them.
      * src/driver.h (virDrvDomainSnapshotNumChildren)
      (virDrvDomainSnapshotListChildrenNames): New callbacks.
      * python/generator.py (skip_impl, nameFixup): Update lists.
      * python/libvirt-override-api.xml: Likewise.
      * python/libvirt-override.c
      (libvirt_virDomainSnapshotListChildrenNames): New wrapper function.
      f2013c9d
  9. 06 9月, 2011 1 次提交
  10. 02 9月, 2011 1 次提交
  11. 03 8月, 2011 1 次提交
  12. 28 7月, 2011 5 次提交
  13. 27 7月, 2011 1 次提交
  14. 26 7月, 2011 1 次提交
  15. 25 7月, 2011 4 次提交
  16. 22 7月, 2011 2 次提交
    • A
      Asynchronous event for BlockJob completion · d489b046
      Adam Litke 提交于
      When an operation started by virDomainBlockPull completes (either with
      success or with failure), raise an event to indicate the final status.
      This API allow users to avoid polling on virDomainGetBlockJobInfo if
      they would prefer to use an event mechanism.
      
      * daemon/remote.c: Dispatch events to client
      * include/libvirt/libvirt.h.in: Define event ID and callback signature
      * src/conf/domain_event.c, src/conf/domain_event.h,
        src/libvirt_private.syms: Extend API to handle the new event
      * src/qemu/qemu_driver.c: Connect to the QEMU monitor event
        for block_stream completion and emit a libvirt block pull event
      * src/remote/remote_driver.c: Receive and dispatch events to application
      * src/remote/remote_protocol.x: Wire protocol definition for the event
      * src/remote_protocol-structs: structure definitions for protocol verification
      * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h,
        src/qemu/qemu_monitor_json.c: Watch for BLOCK_STREAM_COMPLETED event
        from QEMU monitor
      d489b046
    • A
      Enable virDomainBlockPull in the python API · f50750b2
      Adam Litke 提交于
      virDomainGetBlockJobInfo requires manual override since it returns a
      custom type.
      
      * python/generator.py: reenable bindings for this entry point
      * python/libvirt-override-api.xml python/libvirt-override.c:
        manual overrides
      f50750b2
  17. 14 7月, 2011 1 次提交
    • E
      python: prefer unsigned flags · 07d5d073
      Eric Blake 提交于
      * python/libvirt-override.c (libvirt_virConnectOpenAuth)
      (libvirt_virDomainSnapshotListNames)
      (libvirt_virDomainRevertToSnapshot): Change flags type.
      07d5d073
  18. 07 7月, 2011 1 次提交
  19. 24 6月, 2011 2 次提交
  20. 21 6月, 2011 5 次提交
  21. 17 6月, 2011 1 次提交
  22. 15 6月, 2011 2 次提交
    • A
      Asynchronous event for BlockPull completion · 12cd77a0
      Adam Litke 提交于
      When an operation started by virDomainBlockPullAll completes (either with
      success or with failure), raise an event to indicate the final status.  This
      allows an API user to avoid polling on virDomainBlockPullInfo if they would
      prefer to use the event mechanism.
      
      * daemon/remote.c: Dispatch events to client
      * include/libvirt/libvirt.h.in: Define event ID and callback signature
      * src/conf/domain_event.c, src/conf/domain_event.h,
        src/libvirt_private.syms: Extend API to handle the new event
      * src/qemu/qemu_driver.c: Connect to the QEMU monitor event
        for block_stream completion and emit a libvirt block pull event
      * src/remote/remote_driver.c: Receive and dispatch events to application
      * src/remote/remote_protocol.x: Wire protocol definition for the event
      * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h,
        src/qemu/qemu_monitor_json.c: Watch for BLOCK_STREAM_COMPLETED event
        from QEMU monitor
      Signed-off-by: NAdam Litke <agl@us.ibm.com>
      12cd77a0
    • A
      Enable virDomainBlockPull in the python API. · d74b86f5
      Adam Litke 提交于
      virDomainBlockPullAll and virDomainBlockPullAbort are handled automatically.
      virDomainBlockPull and virDomainBlockPullInfo require manual overrides since
      they return a custom type.
      
      * python/generator.py: reenable bindings for this entry point
      * python/libvirt-override-api.xml python/libvirt-override.c:
        manual overrides
      Signed-off-by: NAdam Litke <agl@us.ibm.com>
      Acked-by: NDaniel P. Berrange <berrange@redhat.com>
      d74b86f5
  23. 08 6月, 2011 1 次提交
    • E
      python: avoid unlikely sign extension bug · f73198df
      Eric Blake 提交于
      Detected by Coverity.  cpumap was allocated with a value of
      (unsigned short)*(int), which is an int computation, and then
      promotes to size_t.  On a 64-bit platform, this fails if bit
      32 of the product is set (because of sign extension giving
      a HUGE value to malloc), even though a naive programmer would
      assume that since the first value is unsigned, the product
      is also unsigned and at most 4GB would be allocated.
      
      Won't bite in practice (the product should never be that large),
      but worth using the right types to begin with, so that we are
      now computing (unsigned short)*(size_t).
      
      * python/libvirt-override.c (libvirt_virDomainGetVcpus): Use
      correct type.
      f73198df
  24. 29 5月, 2011 2 次提交
    • 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
      libvirt.h: avoid regression, and document preferred name · a9b3a78f
      Eric Blake 提交于
      Commit 824dcaff was a regression (thankfully unreleased) for any
      client code that used 'struct _virSchedParameter' directly rather
      than the preferred virSchedParameter typedef.  Adding a #define
      avoids even that API change, while rearranging the file makes it
      clear what the old vs. new API is.
      
      * include/libvirt/libvirt.h.in: Rearrange older names to the
      bottom and improve documentation on preferred names.
      (virDomainGetSchedulerParameters, virDomainSetSchedulerParameters)
      (virDomainSetSchedulerParametersFlags)
      (virDomainSetBlkioParameters, virDomainGetBlkioParameters)
      (virDomainSetMemoryParameters, virDomainGetMemoryParameters):
      Use newer type names.
      * python/libvirt-override.c: Adjust code generation to cope.
      Suggested by Daniel P. Berrange.
      a9b3a78f