1. 25 10月, 2011 13 次提交
    • E
      build: use gnulib fdatasync · 9cf70dad
      Eric Blake 提交于
      Commit 1726a736 hacked around MacOS' lack of fdatasync, since
      gnulib did not have it at the time.  But now that we use newer
      gnulib, we can avoid the hack.
      
      * bootstrap.conf (gnulib_modules): Add fdatasync.
      * configure.ac (AC_CHECK_FUNCS_ONCE): Drop our own check.
      9cf70dad
    • D
      Add REMOTE_PROC_DOMAIN_EVENT_DISK_CHANGE to remote_protocol-structs · 806d4d81
      Daniel P. Berrange 提交于
      * src/remote_protocol-structs: Add new event
      806d4d81
    • S
      nwfilter: extend schema to support new targets · 552fe4cc
      Stefan Berger 提交于
      Extend the nwfilter schema to support the continue and return targets.
      552fe4cc
    • M
      util: Add virFileAccessibleAs to private symbols · a877575a
      Michal Privoznik 提交于
      Commit 458b7099 introduced this
      function. However it was not added into libvirt_private.syms so
      the compilation may not succeed on some hosts.
      a877575a
    • 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
    • M
      qemu: implement startupPolicy · 12ba4322
      Michal Privoznik 提交于
      This patch implements on_missing feature in qemu driver.
      Upon qemu startup process an accessibility of CDROMs
      and floppy disks is checked. The source might get dropped
      if unavailable and on_missing is set accordingly.
      No event is emit thought. Look for follow up patch.
      12ba4322
    • M
      qemu: Move device alias assigning before command line construction · b8fbe5d5
      Michal Privoznik 提交于
      This patch is rather cosmetic as it only moves device alias
      assignation from command line construction just before that.
      However, it is needed in connotation of previous and next patch.
      b8fbe5d5
    • M
      util: Create virFileAccessibleAs function · 458b7099
      Michal Privoznik 提交于
      This function checks if a given path is accessible under
      given uid and gid.
      458b7099
    • M
      conf: Introduce optional startupPolicy attribute for cdrom and floppy · e5a84d74
      Michal Privoznik 提交于
      This attribute says what to do with cdrom (or floppy) if
      the source is missing. It accepts:
      - mandatory - fail if missing for any reason (the default)
      - requisite - fail if missing on boot up, drop if missing on
                    migrate/restore/revert
      - optional  - drop if missing at any start attempt.
      
      However, this patch introduces only XML part of this new
      functionality.
      e5a84d74
    • E
      storage: make previous leak less likely to regress · b1836a25
      Eric Blake 提交于
      Splitting into two functions allows the user to call the right
      function, rather than having to remember that a *Free function is
      an exception to the rule.
      
      * src/conf/storage_conf.h (virStoragePoolSourceClear): New function.
      * src/libvirt_private.syms (storage_conf.h): Export it.
      * src/conf/storage_conf.c (virStoragePoolSourceFree): Split...
      (virStoragePoolSourceClear): ...into new function.
      (virStoragePoolDefFree, virStoragePoolDefParseSourceString):
      Update callers.
      * src/test/test_driver.c (testStorageFindPoolSources): Likewise.
      * src/storage/storage_backend_fs.c
      (virStorageBackendFileSystemNetFindPoolSourcesFunc)
      (virStorageBackendFileSystemNetFindPoolSources): Likewise.
      * src/storage/storage_backend_iscsi.c
      (virStorageBackendISCSIFindPoolSources): Likewise.
      * src/storage/storage_backend_logical.c
      (virStorageBackendLogicalFindPoolSources): Likewise.
      b1836a25
    • E
      storage: plug iscsi memory leak · 79052a76
      Eric Blake 提交于
      Detected by Coverity.  virStoragePoolSourceFree does not free the
      actual passed-in pointer.  A bigger patch would be to rename it
      virStoragePoolSourceClear to match behavior, or even split it into
      two functions depending on needed behavior; but this is the minimal
      fix to the one location out of eight that leaked memory.
      
      * src/storage/storage_backend_iscsi.c
      (virStorageBackendISCSIFindPoolSources): Free memory.
      79052a76
    • E
      waitpid: improve safety · 69d044c0
      Eric Blake 提交于
      Based on a report by Coverity.  waitpid() can leak resources if it
      fails with EINTR, so it should never be used without checking return
      status.  But we already have a helper function that does that, so
      use it in more places.
      
      * src/lxc/lxc_container.c (lxcContainerAvailable): Use safer
      virWaitPid.
      * daemon/libvirtd.c (daemonForkIntoBackground): Likewise.
      * tests/testutils.c (virtTestCaptureProgramOutput, virtTestMain):
      Likewise.
      * src/libvirt.c (virConnectAuthGainPolkit): Simplify with virCommand.
      69d044c0
    • E
      qemu: avoid leaking uninit data from hotplug to dumpxml · 2c27dfae
      Eric Blake 提交于
      Detected by Coverity.  Both text and JSON monitors set only the
      bus and unit fields, which means driveAddr.controller spends
      life as garbage on the stack, and is then memcpy()'d into the
      in-memory representation which the user can see via dumpxml.
      
      * src/qemu/qemu_hotplug.c (qemuDomainAttachSCSIDisk): Only copy
      defined fields.
      2c27dfae
  2. 24 10月, 2011 1 次提交
    • R
      virsh: Fix vol-info's 'Type' output · 9981fc58
      Ryota Ozaki 提交于
      We have a new vol type "dir" in addition to "file" and "block", but
      virsh doesn't know it. Fix it.
      
      Additionally, the patch lets virsh output "unknown" if not matched
      any of them.
      9981fc58
  3. 21 10月, 2011 14 次提交
    • R
      docs: Document filesystem type='block' for LXC · 390645b3
      Ryota Ozaki 提交于
      Commit 77791dc0 allows LXC to use a host block device as a guest
      filesystem, but it isn't documented yet.
      390645b3
    • D
      support continue/return targets in nwfilter · a61e9ff6
      David L Stevens 提交于
      	This patch adds support for "continue" and "return" actions
      in filter rules.
      Signed-off-by: NDavid L Stevens <dlstevens@us.ibm.com>
      a61e9ff6
    • E
      snapshot: simplify indentation of network xml · e36da1bd
      Eric Blake 提交于
      More simplifications possible due to auto-indent.  Also,
      <bandwidth> within <actual> was only using 6 instead of 8 spaces.
      
      * src/util/network.h (virVirtualPortProfileFormat)
      (virBandwidthDefFormat): Alter signature.
      * src/util/network.c (virVirtualPortProfileFormat)
      (virBandwidthDefFormat): Alter indentation.
      (virBandwidthChildDefFormat): Tweak to make use easier.
      * src/conf/network_conf.c (virPortGroupDefFormat)
      (virNetworkDefFormat): Adjust callers.
      * src/conf/domain_conf.c (virDomainNetDefFormat): Likewise.
      (virDomainActualNetDefFormat): Likewise, and fix bandwidth
      indentation.
      e36da1bd
    • E
      snapshot: simplify indentation of cpu features · 4eedfd07
      Eric Blake 提交于
      Auto-indent makes life a bit easier; this patch also drops unused
      arguments and replaces a misspelled flag name with two entry points
      instead, so that callers don't have to worry about how much spacing
      is present when embedding cpu elements.
      
      * src/conf/cpu_conf.h (virCPUFormatFlags): Delete.
      (virCPUDefFormat): Drop unused argument.
      (virCPUDefFormatBuf): Alter signature.
      (virCPUDefFormatBufFull): New prototype.
      * src/conf/cpu_conf.c (virCPUDefFormatBuf): Split...
      (virCPUDefFormatBufFull): ...into new function.
      (virCPUDefFormat): Adjust caller.
      * src/conf/domain_conf.c (virDomainDefFormatInternal): Likewise.
      * src/conf/capabilities.c (virCapabilitiesFormatXML): Likewise.
      * src/cpu/cpu.c (cpuBaselineXML): Likewise.
      * tests/cputest.c (cpuTestCompareXML): Likewise.
      4eedfd07
    • E
      snapshot: simplify indentation of sysinfo · 9a220665
      Eric Blake 提交于
      The improvements to virBuffer, along with a paradigm shift to pass
      the original buffer through rather than creating a second buffer,
      allow us to shave off quite a few lines of code.
      
      * src/util/sysinfo.h (virSysinfoFormat): Alter signature.
      * src/util/sysinfo.c (virSysinfoFormat, virSysinfoBIOSFormat)
      (virSysinfoSystemFormat, virSysinfoProcessorFormat)
      (virSysinfoMemoryFormat): Change indentation parameter.
      * src/conf/domain_conf.c (virDomainSysinfoDefFormat): Adjust
      caller.
      * src/qemu/qemu_driver.c (qemuGetSysinfo): Likewise.
      9a220665
    • E
      snapshot: test domainsnapshot indentation · 27b3b303
      Eric Blake 提交于
      Add a test for the simple parts of my indentation changes, and
      fix the fallout.
      
      * tests/domainsnapshotxml2xmltest.c: New test.
      * tests/Makefile.am (domainsnapshotxml2xmltest_SOURCES): Build it.
      * src/conf/domain_conf.c (virDomainSnapshotDefFormat): Avoid NULL
      deref, match documented order.
      * src/conf/domain_conf.h (virDomainSnapshotDefFormat): Add const.
      * tests/domainsnapshotxml2xmlout/all_parameters.xml: Tweak output.
      * tests/domainsnapshotxml2xmlout/disk_snapshot.xml: Likewise.
      * tests/domainsnapshotxml2xmlout/full_domain.xml: Likewise.
      * .gitignore: Exempt new binary.
      27b3b303
    • E
      snapshot: indent domain xml when nesting · 9cba3927
      Eric Blake 提交于
      <domainsnapshot> is the first public instance of <domain> being
      used as a sub-element, although we have two other private uses
      (runtime state, and migration cookie).  Although indentation has
      no effect on XML parsing, using it makes the output more consistent.
      
      This uses virBuffer auto-indentation to obtain the effect, for all
      but the portions of <domain> that are not generated a line at a
      time into the same virBuffer.  Further patches will clean up the
      remaining problems.
      
      * src/conf/domain_conf.h (virDomainDefFormatInternal): New prototype.
      * src/conf/domain_conf.c (virDomainDefFormatInternal): Export.
      (virDomainObjFormat, virDomainSnapshotDefFormat): Update callers.
      * src/libvirt_private.syms (domain_conf.h): Add new export.
      * src/qemu/qemu_migration.c (qemuMigrationCookieXMLFormat): Use
      new function.
      (qemuMigrationCookieXMLFormatStr): Update caller.
      9cba3927
    • E
      virbuf: add auto-indentation support · fd9c052e
      Eric Blake 提交于
      Rather than having to adjust all callers in a chain to deal with
      indentation, it is nicer to have virBuffer do auto-indentation.
      
      * src/util/buf.h (_virBuffer): Increase size.
      (virBufferAdjustIndent, virBufferGetIndent): New prototypes.
      * src/libvirt_private.syms (buf.h): Export new functions.
      * src/util/buf.c (virBufferAdjustIndent, virBufferGetIndent): New
      functions.
      (virBufferSetError, virBufferAdd, virBufferAddChar)
      (virBufferVasprintf, virBufferStrcat, virBufferURIEncodeString):
      Implement auto-indentation.
      * tests/virbuftest.c (testBufAutoIndent): Test it.
      (testBufInfiniteLoop): Don't rely on internals.
      Idea by Daniel P. Berrange.
      fd9c052e
    • E
      virbuf: more detailed error reporting · 818a9665
      Eric Blake 提交于
      The next patch wants to add some sanity checking, which would
      be a different error than ENOMEM.  Many existing callers blindly
      report OOM failure if virBuf reports an error, and this will be
      wrong in the (unlikely) case that they actually had a usage error
      instead; but since the most common error really is ENOMEM, I'm
      not going to fix all callers.  Meanwhile, new discriminating
      callers can react differently depending on what failure happened.
      
      * src/util/buf.c (virBufferSetError): Add parameter.
      (virBufferGrow, virBufferVasprintf, virBufferEscapeString)
      (virBufferEscapeSexpr, virBufferEscapeShell): Adjust callers.
      818a9665
    • E
      virbuf: improve testsuite reporting · ef696300
      Eric Blake 提交于
      I had some temporary test failures while working on virbuf
      improvements in later patches, with output that looked like:
      
      Expected [<]
      Actual [  <]
      
      which is pretty hard to figure out.  Adding an Offset designation
      made it much easier to find which particular '<' was at the
      wrong indentation, to fix the right part of the code.
      
      * tests/testutils.c (virtTestDifference): Make it easier to
      diagnose test failures.
      ef696300
    • E
      virbuf: fix const-correctness · 5c09b81b
      Eric Blake 提交于
      Although the compiler wasn't complaining (since it was the pointer,
      rather than what was being pointed to, that was actually const), it
      looks quite suspicious to call a function with an argument labeled
      const when the nature of the pointer (virBufferPtr) is hidden behind
      a typedef.  Dropping const makes the function declarations easier
      to read.
      
      * src/util/buf.h: Drop const from all functions that modify buffer
      argument.
      * src/util/buf.c (virBufferSetError, virBufferAdd)
      (virBufferContentAndReset, virBufferFreeAndReset)
      (virBufferAsprintf, virBufferVasprintf, virBufferEscapeString)
      (virBufferEscapeSexpr, virBufferEscape): Fix fallout.
      5c09b81b
    • L
      docs: fix incorrect info about routed networks · 52e3b3d1
      Laine Stump 提交于
      In a recent expansion of the documentation on network forward modes, I
      incorrectly stated that incoming sessions to guests on routed networks
      were blocked. This is true for guests on NATed networks, but not
      routed. This patch corrects that error, and adds a pointer to the
      nwfilter page for those who do want to restrict incoming sessions to
      hosts on routed networks.
      52e3b3d1
    • T
      qemu: allow json in domxml-to-native · 755a09b5
      tangchen 提交于
      There is a little difference between the output of domxml-to-native and the actual commandline.
      No matter qemu is in control or readline mode, domxml-to-native always converts it to readline mode.
      
      That is because the parameter "monitor_json" for qemuBuildCommandLine() is always set to false
      in qemuDomainXMLToNative().
      Signed-off-by: Ntangchen <tangchen@cn.fujitsu.com>
      755a09b5
    • E
      docs: document managed=yes of hostdev passthrough · 10d3272e
      Eric Blake 提交于
      Clarify some of the effects of managed passthrough <hostdev> devices;
      with recent changes (commit d0935478), a nodedev-reattach is only needed
      to pair up to an explicit nodedev-dettach (but beware that older
      virt-manager has a bug where it uses explicit nodedev-dettach under the
      hood when using the gui to hotplug a hostdev device).
      
      * docs/formatdomain.html.in: Mention reattach.
      * tools/virsh.pod (nodedev): Mention managed mode.
      10d3272e
  4. 20 10月, 2011 4 次提交
  5. 19 10月, 2011 8 次提交
    • P
      qemu: Test name-space handling · aa84f966
      Philipp Hahn 提交于
      Add test cases for parsing the qemu-name-space.
      This is based on qemuxml2argv{test,data/}, but can not reside in
      qemuxml2argv{test,data/} because ...
      
      1. qemuxmlns-qemu-ns-domain.xml is not schema-valid and breaks
      domainschematest. The test is still important to detect xmlns:qemu
      bindings to a name-space other than
      http://libvirt.org/schemas/domain/qemu/1.0
      
      2. they break qemuxml2xml, because the xmlns:qemu binding is moved to
      the top-level <domain> element when converting from argv to xml.
      Signed-off-by: NPhilipp Hahn <hahn@univention.de>
      aa84f966
    • P
      qemu: Fix name-space handling · d1249910
      Philipp Hahn 提交于
      The XML parser for the qemu specific extensions expects the qemu name-space
      to be bound to the 'qemu' prefix. This is too strict, since the name of the
      name-space-prefix is only meant as an internal lookup key. Only the associated
      URI is relevant.
      <domain>...
        <qemu:commandline xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0">
        ...</qemu:commandline>
      </domain>
      
      <domain xmlns:ns0="http://libvirt.org/schemas/domain/qemu/1.0">...
        <ns0:commandline>
        ...</ns0:commandline>
      </domain>
      
      <domain xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0">
        <qemu:commandline xmlns:qemu="urn:foo">
        ...</qemu:commandline>
      </domain>
      
      Remove the test for checking the name-space binding on the top-level <domain>
      element. Registering the name-space with XPath is enough.
      Signed-off-by: NPhilipp Hahn <hahn@univention.de>
      d1249910
    • X
      compile: fix undefined reference to gnutls_x509_crt_get_dn with gcc-4.6.1 · 8f3d1669
      Xu He Jie 提交于
      When I compile libvirt with gcc-4.6.1 in ubuntu 11.10, got error as below:
      
        CCLD   libvirtd
      /usr/bin/ld: ../src/.libs/libvirt_driver_qemu.a(libvirt_driver_qemu_la-qemu_migration.o): undefined reference to symbol 'gnutls_x509_crt_get_dn@@GNUTLS_1_4'
      /usr/bin/ld: note: 'gnutls_x509_crt_get_dn@@GNUTLS_1_4' is defined in DSO /usr/lib/x86_64-linux-gnu/libgnutls.so so try adding it to the linker command line
      /usr/lib/x86_64-linux-gnu/libgnutls.so: could not read symbols: Invalid operation
      collect2: ld returned 1 exit status
      make[3]: *** [libvirtd] Error 1
      
      It can compile with gcc-4.5.2 in ubuntu 11.04, but it can not compile with gcc-4.6.1 in ubuntu 11.10.
      
      I didn't find reason. Does Anyone know the reason or the different between gcc-4.5.2 and gcc-4.6.1?
      
      I still provide a patch for this. Just make it is working now.
      Signed-off-by: Nsoulxu <soulxu@soulxu-ThinkPad-T410.(none)>
      8f3d1669
    • D
      Replace virBufferAdd with virBufferAddLit for const string · c005e523
      Daniel P. Berrange 提交于
      The statement
      
              virBufferAdd(buf, "''", 2);
      
      triggers a syntax-check warning
      
      * src/util/buf.c: Replace virBufferAdd with virBufferAddLit
      c005e523
    • P
      documentation: trivial spelling fix · 58d26a8e
      Philipp Hahn 提交于
      Signed-off-by: NPhilipp Hahn <hahn@univention.de>
      58d26a8e
    • D
      Allow for URI aliases when connecting to libvirt · 777ffbd0
      Daniel P. Berrange 提交于
      This adds support for a libvirt client configuration file
      either /etc/libvirt/libvirt.conf for privileged clients,
      or $HOME/.libvirt/libvirt.conf for unprivileged clients.
      
      It allows one parameter
      
       uri_aliases = [
         "hail=qemu+ssh://root@hail.cloud.example.com/system",
         "sleet=qemu+ssh://root@sleet.cloud.example.com/system",
       ]
      
      Any call to virConnectOpen with a non-NULL URI will first
      attempt to match against the uri_aliases list. An application
      can disable this by using VIR_CONNECT_NO_ALIASES
      
      * docs/uri.html.in: Document URI aliases
      * include/libvirt/libvirt.h.in: Add VIR_CONNECT_NO_ALIASES
      * libvirt.spec.in, mingw32-libvirt.spec.in: Add /etc/libvirt/libvirt.conf
      * src/Makefile.am: Install default config file
      * src/libvirt.c: Add support for URI aliases
      * src/remote/remote_driver.c: Don't try to handle URIs
        with no scheme and which clearly are not paths
      * src/util/conf.c: Don't raise error on virConfFree(NULL)
      * src/xen/xen_driver.c: Don't raise error on URIs
        with no scheme
      777ffbd0
    • D
      Add support for autodestroy of guests to the LXC and UML drivers · 02e92dc4
      Daniel P. Berrange 提交于
      We recently added support for VIR_DOMAIN_START_AUTODESTROY and
      an impl to the QEMU driver. It is very desirable to support in
      other drivers, so this adds it to LXC and UML
      
      * src/lxc/lxc_conf.h, src/lxc/lxc_driver.c,
        src/uml/uml_conf.h, src/uml/uml_driver.c: Wire up autodestroy
        functions
      02e92dc4
    • G
      Use virBufferEscapeShell in cmdEcho · 07862822
      Guido Günther 提交于
      07862822