1. 14 5月, 2011 12 次提交
  2. 13 5月, 2011 17 次提交
    • C
      remote: Use virDomainEventState helpers · 4e6e6672
      Cole Robinson 提交于
      One functionality change here is that we no longer force enable the event
      timeout for every queued event, only enable it for the first event after
      the queue has been flushed. This is how other drivers have already done it,
      and I haven't encountered problems in practice.
      
      v3:
          Adjust for new virDomainEventStateNew argument
      4e6e6672
    • C
      libxl: Convert to virDomainEventState · 7405aebe
      Cole Robinson 提交于
      7405aebe
    • C
      test: Use virDomainEventState helpers · 4d7297f8
      Cole Robinson 提交于
      v3:
          Adjust for new virDomainEventStateNew argument
      4d7297f8
    • C
      lxc: Use virDomainEventState helpers · 1ded8942
      Cole Robinson 提交于
      v3:
          Adjust for new virDomainEventStateNew argument
      1ded8942
    • C
      qemu: Use virDomainEventState helpers · 42a3687f
      Cole Robinson 提交于
      v2:
          Drop libvirt_private.syms changes
      
      v3:
          Adjust for new virDomainEventStateNew argument
      42a3687f
    • C
      domain_event: Add common domain event queue/flush helpers · 227d67ca
      Cole Robinson 提交于
      The same code for queueing, flushing, and deregistering events exists
      in multiple drivers, which will soon use these common functions.
      
      v2:
          Adjust libvirt_private.syms
          isDispatching bool fixes
          NONNULL tagging
      
      v3:
          Add requireTimer parameter to virDomainEventStateNew
      227d67ca
    • C
      domain_event: Add virDomainEventState structure · aaf2b70b
      Cole Robinson 提交于
      This structure will be used to unify lots of duplicated event handling code
      across the state drivers.
      
      v2:
          Check for state == NULL in StateFree
          Add NONNULL tagging
          Use bool for isDispatching
      Signed-off-by: NCole Robinson <crobinso@redhat.com>
      aaf2b70b
    • C
      xml: Use virXMLParse* helpers everywhere · b9e51e56
      Cole Robinson 提交于
      virt-aa-helper isn't even compile tested since I don't have the setup for
      it.
      
      v2:
          virt-aa-helper fixes from Eric
      b9e51e56
    • C
      domain: Require <init> for container guests · 34639a3f
      Cole Robinson 提交于
      Use capabilities to allow a driver to register a default <init> if none
      is specified in the XML. Openvz was already open-coding this to be /sbin/init
      
      LXC currently falls over if no init is specified, so an explicit error is
      an improvement IMO.
      
      (Side note: I don't think we can set a default value for LXC. If we use
      /sbin/init but the user doesn't specify a separate root FS for their guest,
      the container will rerun the host's init which can be traumatic :). For
      virt-install I'm thinking of defaulting to /sbin/init if a root FS has
      been specified, otherwise require the user to manually specify <init>)
      34639a3f
    • C
      xml: Make sure virXpathNodeSet always sets an error · 0571c3af
      Cole Robinson 提交于
      And update callers to actually respect the error
      0571c3af
    • M
      vbox: Implement the driver methods · 11d54887
      Michal Privoznik 提交于
      * src/vbox/vbox_tmpl.c: New vboxDomainScreenshot() function
      11d54887
    • M
      qemu: Implement the driver methods · 9936aecf
      Michal Privoznik 提交于
      * src/qemu/qemu_driver.c: new qemuDomainScreenshot() function
      * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h,
        src/qemu/qemu_monitor_json.c, src/qemu/qemu_monitor_json.h,
        src/qemu/qemu_monitor_text.c, src/qemu/qemu_monitor_text.h:
        Monitor command
      9936aecf
    • M
      virFDStream: Add option for delete file after it's opening · 6a1f5f56
      Michal Privoznik 提交于
      This is needed if we want to transfer a temporary file. If the
      transfer is done with iohelper, we might run into a race condition,
      where we unlink() file before iohelper is executed.
      
      * src/fdstream.c, src/fdstream.h,
        src/util/iohelper.c: Add new option
      * src/lxc/lxc_driver.c, src/qemu/qemu_driver.c,
        src/storage/storage_driver.c, src/uml/uml_driver.c,
        src/xen/xen_driver.c: Expand existing function calls
      6a1f5f56
    • M
      screenshot: Implementing the remote protocol · 2c6efac9
      Michal Privoznik 提交于
      * src/remote/remote_protocol.x: Wire protocol definition
      * daemon/remote.c: Daemon part
      * src/remote/remote_driver.c: Client part
      * src/remote_protocol-structs: Add structures
      2c6efac9
    • M
      screenshot: Implementing the public API · 1f9f1214
      Michal Privoznik 提交于
      * src/libvirt.c: new function virDomainScreenshot
      1f9f1214
    • M
      screenshot: Defining the internal API · 3c386643
      Michal Privoznik 提交于
      * src/driver.h: Stub code for new API
      * src/esx/esx_driver.c, src/libxl/libxl_driver.c,
        src/lxc/lxc_driver.c, src/openvz/openvz_driver.c,
        src/phyp/phyp_driver.c, src/qemu/qemu_driver.c,
        rc/remote/remote_driver.c, rc/test/test_driver.c,
        src/uml/uml_driver.c, src/vbox/vbox_tmpl.c,
        src/vmware/vmware_driver.c, src/xen/xen_driver.c,
        src/xen/xen_driver.h, src/xen/xen_hypervisor.c,
        src/xen/xen_inotify.c, src/xen/xend_internal.c,
        src/xen/xm_internal.c, src/xen/xs_internal.c,
        src/xenapi/xenapi_driver.c: Add dummy entries in driver
        table for new APIs
      3c386643
    • M
      screenshot: Defining the public API · 6a1fcd9f
      Michal Privoznik 提交于
      Add public API for taking screenshots of current domain console.
      
      * include/libvirt/libvirt.h.in: add virDomainScreenshot
      * src/libvirt_public.syms: Export new symbol
      6a1fcd9f
  3. 12 5月, 2011 9 次提交
    • M
      remote generator: Add skipgen/autogen flags to .x files · 2a5251e2
      Matthias Bolte 提交于
      Make procedure parsing more robust, by allowing arbitrary
      amounts of whitespaces.
      
      Also make some error messages more verbose.
      2a5251e2
    • E
      nwfilter: drop unused flag argument · 88d03d4f
      Eric Blake 提交于
      The public API and RPC over-the-wire format have no flags argument,
      so neither should the internal callback API.  This simplifies the
      RPC generator.
      
      * src/driver.h (virDrvNWFilterDefineXML): Drop argument that does
      not match public API.
      * src/nwfilter/nwfilter_driver.c (nwfilterDefine): Likewise.
      * src/libvirt.c (virNWFilterDefineXML): Likewise.
      * daemon/remote_generator.pl: Drop special case.
      88d03d4f
    • 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
    • E
      build: wrap macro body in one-shot do-while loop · 5c129f74
      Eric Blake 提交于
      * src/libvirt.c (VIR_DOMAIN_DEBUG_1): Convert to single statement.
      Suggested by Jiri Denemark.
      5c129f74
    • E
      build: drop need for VIR_DOMAIN_DEBUG0() · 5bc168ed
      Eric Blake 提交于
      This one's tricker than the VIR_DEBUG0() removal, but the end
      result is still C99 compliant, and reasonable with enough comments.
      
      * src/libvirt.c (VIR_ARG10, VIR_HAS_COMMA)
      (VIR_DOMAIN_DEBUG_EXPAND, VIR_DOMAIN_DEBUG_PASTE): New macros.
      (VIR_DOMAIN_DEBUG): Rewrite to handle one argument, moving
      multi-argument guts to...
      (VIR_DOMAIN_DEBUG_1): New macro.
      (VIR_DOMAIN_DEBUG0): Rename to VIR_DOMAIN_DEBUG_0.
      5bc168ed
    • E
      build: avoid gcc preprocessor extensions · bc6bfeaa
      Eric Blake 提交于
      Use of ',##__VA_ARGS__' is a gcc extension not guaranteed by
      C99; thankfully, we can avoid it by lumping the format argument
      into the var-args set.
      
      * src/util/logging.h (VIR_DEBUG_INT, VIR_INFO_INT, VIR_WARN_INT)
      (VIR_ERROR_INT, VIR_DEBUG, VIR_INFO, VIR_WARN, VIR_ERROR): Stick
      to C99 var-arg macro syntax.
      * examples/domain-events/events-c/event-test.c (VIR_DEBUG):
      Simplify.
      bc6bfeaa
    • 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
    • E
      node_device: avoid null dereference on error · 98cd17bd
      Eric Blake 提交于
      If we plow on after udev_device_get_syspath fails, we will hit a NULL
      dereference.  Clang found one due to strdup later in udevSetParent,
      but in fact we hit a NULL dereference sooner because of the use of
      STREQ within virNodeDeviceFindBySysfsPath.
      
      * src/conf/node_device_conf.h (virNodeDeviceFindBySysfsPath): Mark
      path argument non-null.
      * src/node_device/node_device_udev.c (udevSetParent): Avoid null
      dereference.
      98cd17bd
    • E
      build: remove some dead assignments · 4c6ae9ae
      Eric Blake 提交于
      No syntactic effect; this merely silences some clang warnings.
      
      * src/libxl/libxl_driver.c (libxlDomainSetVcpusFlags): Drop
      redundant ret=0 statement.
      * src/qemu/qemu_monitor_text.c (qemuMonitorTextDriveDel):
      Likewise.
      4c6ae9ae
  4. 11 5月, 2011 2 次提交
    • D
      Allow destroying QEMU VM even if a job is active · cbf9f2f2
      Daniel P. Berrange 提交于
      Introduce a virProcessKill function that can be safely called
      even when the job mutex is held. This allows virDomainDestroy
      to kill any VM even if it is asleep in a monitor job. The PID
      will die and the thread asleep on the monitor will then wake
      up releasing the job mutex.
      
      * src/qemu/qemu_driver.c: Kill process before using qemuProcessStop
        to ensure job is released
      * src/qemu/qemu_process.c: Add virProcessKill for killing off
        QEMU processes
      cbf9f2f2
    • D
      Add support for YAJL version 2 API/ABI · 9f5d3a91
      Daniel P. Berrange 提交于
      Version 2.0.0 or yajl changed API. It is fairly trivial for us to
      cope with both APIs in libvirt, so adapt.
      
      * configure.ac: Probe for yajl2 API
      * src/util/json.c: Conditional support for yajl2 API
      9f5d3a91