1. 28 2月, 2013 1 次提交
    • E
      qemu: -numa doesn't (yet) support disjoint range · 25dc8ba0
      Eric Blake 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=896092 mentions that
      qemu 1.4 and earlier only accept a simple start-stop range for
      the cpu=... argument of -numa.  Libvirt would attempt to use
      -numa cpu=1,3 for a disjoint range, which did not work as intended.
      
      Upstream qemu will be adding a new syntax for disjoint cpu ranges
      in 1.5; but the design for that syntax is still under discussion
      at the time of this patch.  So for libvirt 1.0.3, it is safest to
      just reject attempts to build an invalid qemu command line; in the
      future, we can add a capability bit and translate to the final
      accepted design for selecting a disjoint cpu range in numa.
      
      * src/qemu/qemu_command.c (qemuBuildNumaArgStr): Reject disjoint
      ranges.
      25dc8ba0
  2. 27 2月, 2013 17 次提交
    • L
      Revert "Add support for <option> tag in network config" · db2536a6
      Laine Stump 提交于
      This reverts commit 383ebc46.
      
      We decided the xml for this feature needed more thought to make sure
      we are doing it the best way, in particular wrt option values that
      have multiple items.
      db2536a6
    • P
      util: Add docs for virXMLProp string · 923e4bf8
      Peter Krempa 提交于
      To avoid confusion about usage of this function explicitly document that
      this function returns copy of the attribute string.
      923e4bf8
    • P
      tests: Test XML entities in source path for RNG device · 2ab08e6c
      Peter Krempa 提交于
      Users may want to specify XML entities in paths to devices. Ensure they
      are parsed and used properly.
      2ab08e6c
    • P
      docs: Fix attribute name for virtio-rng backend · 4db199fc
      Peter Krempa 提交于
      4db199fc
    • J
      tests: fix leaks in storagevolxml2argvtest · ecc17eb4
      Ján Tomko 提交于
      Reported by John Ferlan.
      ecc17eb4
    • M
      libvirt.c: Make VIR_MIGRATE_NON_SHARED_{INC,DISK} mutually exclusive · c69331b5
      Michal Privoznik 提交于
      These two flags in fact are mutually exclusive. Requesting them both
      doesn't make any sense regardless of hypervisor driver. Hence, we have
      to make it within libvirt.c file instead of fixing it in each driver.
      c69331b5
    • P
      doc: document new storage volume/pool types · c47884a1
      Philipp Hahn 提交于
      Add qed for dirfs pool.
      Add ocfs2 for disk pool.
      Add lvm2 for disk and logical pool.
      Add cifs and glusterfs for netfs pool.
      
      Note: POOL_DISK_LVM2 can not be created by "parted mklabel", but is only
      returned from auto-detection on disk pools.
      Signed-off-by: NPhilipp Hahn <hahn@univention.de>
      c47884a1
    • E
      build: don't use gcrypt.h without gnutls support · 76f35269
      Eric Blake 提交于
      Eugene Marcotte reported that if gcrypt-devel (a prereq of
      gnutls-devel) is not present, then compilation fails due to
      an unconditional use of <gcrypt.h>.
      
      * src/libvirt.c (includes): Properly guard use of gcrypt.h.
      76f35269
    • E
      Revert "S390: domain_conf support for CCW" · d76f3e06
      Eric Blake 提交于
      This reverts commit 0bbbd42c.
      
      The design for this feature is not complete, and may change the
      name of the 'schid' attribute.  Revert requested by Viktor Mihajlovski.
      d76f3e06
    • E
      Revert "S390: Documentation for CCW address type" · 035b0db8
      Eric Blake 提交于
      This reverts commit 24aa7f8d.
      
      The implementation to match the documentation is not complete yet,
      and the final design might change the name of the 'schid' attribute.
      035b0db8
    • P
      schema: Restrict mode to octal · 141deb9f
      Philipp Hahn 提交于
      virStrToLong(..., 8, ...) already requires the mode to be octal.
      Change the relax-ng schema to check for octal as well.
      Signed-off-by: NPhilipp Hahn <hahn@univention.de>
      141deb9f
    • E
      tests: skip virstoragetest on RHEL 5 · 9194679e
      Eric Blake 提交于
      virstoragetest was failing on RHEL 5, but with no good error message:
      
      TEST: virstoragetest
                                              0   FAIL
      
      It turns out that qemu-img was so old, that it lacked support for
      -o backing_file.  It didn't help that the test was also using
      qemu-img from PATH, even after first probing for kvm-img.
      
      * tests/virstoragetest.c (testPrepImages): Consistently use
      discovered binary.  Skip instead of fail if qemu-img fails during
      setup.
      9194679e
    • D
      interface: udev backend coverity NULL deref · 01207bb7
      Doug Goldstein 提交于
      This fixes a potential NULL deref identified by John Ferlan
      <jferlan@redhat.com> if scandir() didn't return an expected value.
      01207bb7
    • D
      Remove some C99 variable decls in parallels driver · 464c92c0
      Daniel P. Berrange 提交于
      The parallels storage driver declared some loop variables
      inside the for(;;). This is not allowed by libvirt coding
      standards
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      464c92c0
    • D
      Fix crash changing CDROM media · 02b90972
      Daniel P. Berrange 提交于
      This change tried to fix a crash with changing CDROM media but
      failed to actually do so
      
        commit d0172d2b
        Author: Osier Yang <jyang@redhat.com>
        Date:   Tue Feb 19 20:27:45 2013 +0800
      
          qemu: Remove the shared disk entry if the operation is ejecting or updating
      
      It was still accessing disk->src, when the entire 'disk' object
      has been free'd already. Even if it weren't free'd, accessing
      the 'src' value of virDomainDiskDef is not allowed without
      first validating disk->type is file or block. Just remove the
      broken code entirely.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      02b90972
    • E
      tests: old automake lacks abs_builddir · b6176e52
      Eric Blake 提交于
      On RHEL 5, 'make check' included failures such as:
      
      TEST: virstoragetest
      unable to create directory /virstoragedata/sub
      unable to return to correct directory, refusing to clean up /virstoragedata
      
      It turns out that with automake 1.9.x, $(abs_builddir) is not
      automatically provided.  We have previously worked around this
      by using `pwd` before, but because we did not do it everywhere,
      we had a number of broken tests.
      
      This patch brings RHEL 5 from 8 failed tests down to 5 (the
      remaining failures may be due to bugs in the older libxml2 and
      RNG schema validation available in RHEL 5, so I'm not sure if
      they can be fixed in libvirt, but I'm still investigating).
      
      * tests/Makefile.am (AM_CFLAGS): Reliably set abs_builddir.
      (*_la_CFLAGS): Factor out common settings; delete when nothing
      remains to be added.
      b6176e52
    • E
      tests: consistent skip messages · eb41338e
      Eric Blake 提交于
      On RHEL 5, I noticed this test failure message:
      
      TEST: qemumonitorjsontest
      libvirt not compiled with yajl, skippingSKIP: qemumonitorjsontest
      
      * tests/virstoragetest.c (testPrepImages): Use simpler fputs.
      * tests/qemumonitorjsontest.c (mymain): Ensure trailing newline.
      eb41338e
  3. 26 2月, 2013 10 次提交
    • J
      libvirt: fix error message when connection can't be opened · 633d859b
      Ján Tomko 提交于
      VIR_ERR_NO_CONNECT already contains "no connection driver available".
      
      This patch changes:
      no connection driver available for No connection for URI hello
      to:
      no connection driver available for hello
      
      Bug: https://bugzilla.redhat.com/show_bug.cgi?id=851413
      633d859b
    • P
      qemu: do not set unpriv_sgio if neither supported nor requested · 45dc3f17
      Paolo Bonzini 提交于
      Currently we call virSetDeviceUnprivSGIO with val == 0 if a block device
      has an sgio attribute.  But for sgio='filtered', we know that a
      kernel with no unpriv_sgio support will always behave as the user
      wanted.  In this case, there is no need to call the function and
      report a (bogus) error.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      45dc3f17
    • E
      tests: uniformly report test failures · dce95297
      Eric Blake 提交于
      testutils.c likes to print summaries after a test completes,
      including if it failed.  But if the test outright exit()s,
      this summary is skipped.  Enforce that we return instead of exit.
      
      * cfg.mk (sc_prohibit_exit_in_tests): New syntax check.
      * tests/commandhelper.c (main): Fix offenders.
      * tests/qemumonitorjsontest.c (mymain): Likewise.
      * tests/seclabeltest.c (main): Likewise.
      * tests/securityselinuxlabeltest.c (mymain): Likewise.
      * tests/securityselinuxtest.c (mymain): Likewise.
      * tests/testutils.h (VIRT_TEST_MAIN_PRELOAD): Likewise.
      * tests/testutils.c (virtTestMain): Likewise.
      (virtTestCaptureProgramOutput): Use symbolic name.
      dce95297
    • E
      tests: don't test json when not compiled in · f20b0476
      Eric Blake 提交于
      Now that the segfault is solved, we can skip instead of fail
      the test when yajl is not present.
      
      * tests/qemumonitorjsontest.c (mymain): Skip if no yajl.
      f20b0476
    • E
      tests: avoid segfault if json monitor not present · 848a3b1d
      Eric Blake 提交于
      On a machine without yajl headers, I was seeing random segfaults
      from qemumonitorjsontest (about 90% of the runs on my particular
      machine).  The segfault was inside virClassIsDerivedFrom, which
      points to a case of a race leading to unreferencing a stale
      pointer to an object that had already been freed.  I also noticed
      that if I got the segfault, I was seeing messages such as:
      
      2013-02-22 16:12:37.504+0000: 19833: error : virNetSocketWriteWire:1361 : Cannot write data: Bad file descriptor
      
      which is also evidence of deferencing a stale pointer.  I traced it
      to a race where qemuMonitorTestIO could execute late, after the
      main thread had already called qemuMonitorTestFree and called
      virNetSocketClose(test->client) but not clearing it out to NULL.
      Sure enough, after test->client has been closed, fd is -1, which
      causes an attempt to write to the socket to fail, which in turn
      triggers the error code of qemuMonitorTestIO that tries to re-close
      test->client.
      
      * tests/qemumonitortestutils.c (qemuMonitorTestIO): Don't attempt
      to free client again if test already quit.
      848a3b1d
    • E
      qemu: minor monitor lock cleanups · 6abd5ea1
      Eric Blake 提交于
      If virCondInit fails (okay, so that's unlikely), then we end up
      attempting a virObjectUnlock() on the cleanup path, even though
      we don't hold a lock.  This is not guaranteed to be safe.  While
      at it, I noticed a couple places where we were referencing mon->fd
      outside locks.
      
      * src/qemu/qemu_monitor.c (qemuMonitorOpenInternal): Minimize lock
      duration.  mon->watch doesn't need clean up on error.
      (qemuMonitorGetBlockExtent, qemuMonitorBlockResize): Don't
      dereference fd outside of lock.
      6abd5ea1
    • E
      qemu: don't override earlier json error · 29424d1a
      Eric Blake 提交于
      I built without yajl support, and noticed a strange failure message
      in qemumonitorjsontest:
      
      2013-02-22 16:12:37.503+0000: 19812: error : virJSONValueToString:1119 : internal error No JSON parser implementation is available
      2013-02-22 16:12:37.503+0000: 19812: error : qemuMonitorJSONCommandWithFd:253 : out of memory
      
      While a later patch will fix the test to skip when json is not present,
      this patch avoids overriding the more useful error message from
      virJSONValueToString returning NULL.
      
      * src/qemu/qemu_monitor_json.c (qemuMonitorJSONCommandWithFd):
      Don't override message.
      (qemuMonitorJSONCheckError): Don't print NULL.
      * src/qemu/qemu_agent.c (qemuAgentCommand): Don't override message.
      (qemuAgentCheckError): Don't print NULL.
      (qemuAgentArbitraryCommand): Properly fail on OOM.
      29424d1a
    • P
      conf: Avoid leaking of RNG device definition · 34f1a618
      Peter Krempa 提交于
      34f1a618
    • P
      qemu: Refactor qemuDomainSetMemoryParameters · 19c6ad9a
      Peter Krempa 提交于
      The new TypedParam helper APIs allow to simplify this function
      significantly.
      
      This patch integrates the fix in 75e5bec9
      by correctly ordering the setting functions instead of reordering the
      parameters.
      19c6ad9a
    • D
      interface: Fix udev backend bridge device display · 65bb1b97
      Doug Goldstein 提交于
      The bridge device was showing the vnet devices created for the domains
      as connected to the bridge. libvirt should only show host devices when
      trying to get the interface definition rather than the domain devices as
      well.
      65bb1b97
  4. 25 2月, 2013 12 次提交
    • P
      storage: cast -1 for uid_t|gid_t · 5474870c
      Philipp Hahn 提交于
      uid_t and gid_t are opaque types, ranging from s32 to u32 to u64.
      
      Explicitly cast the magic -1 to the appropriate type.
      Signed-off-by: NPhilipp Hahn <hahn@univention.de>
      5474870c
    • P
      storage: Cast uid_t|gid_t to unsigned int · 81af880a
      Philipp Hahn 提交于
      uid_t and gid_t are opaque types, ranging from s32 to u32 to u64.
      
      Explicitly cast them to unsigned int for printing.
      Signed-off-by: NPhilipp Hahn <hahn@univention.de>
      81af880a
    • P
      util: Fix printf format for uid_t|gid_t · 7b4b59fa
      Philipp Hahn 提交于
      The uid_t|gid_t values are explicitly casted to "unsigned long", but the
      printf() still used "%d", which is for signed values.
      
      Change the format to "%u".
      Signed-off-by: NPhilipp Hahn <hahn@univention.de>
      7b4b59fa
    • P
      tests: Add tests for virtio-rng device handling · e8b70ab7
      Peter Krempa 提交于
      Adds XML parsing and qemu commandline tests for the VirtIO RNG device
      support.
      e8b70ab7
    • P
      qemu: Implement support for EGD backend for virtio-rng · 820019fc
      Peter Krempa 提交于
      This patch adds a new capability bit QEMU_CAPS_OBJECT_RNG_EGD and code
      to support the egd backend for the VirtIO RNG device.
      
      The device is added by 3 qemu command line options:
      -chardev socket,id=charrng0,host=1.2.3.4,port=1234 (communication
                                                          backend)
      -object rng-egd,chardev=charrng0,id=rng0 (RNG protocol client)
      -device virtio-rng-pci,rng=rng0,bus=pci.0,addr=0x4 (the RNG device)
      820019fc
    • P
      qemu: Implement support for default 'random' backend for virtio-rng · 234a5560
      Peter Krempa 提交于
      This patch implements support for the virtio-rng-pci device and the
      rng-random backend in qemu.
      
      Two capabilities bits are added to track support for those:
      
      QEMU_CAPS_DEVICE_VIRTIO_RNG - for the device support and
      QEMU_CAPS_OBJECT_RNG_RANDOM - for the backend support.
      
      qemu is invoked with these additional parameters if the device is
      enabled:
      
      -object rng-random,id=rng0,filename=/test/phile (to add the backend)
      -device virtio-rng-pci,rng=rng0,bus=pci.0,addr=0x4 (to add the device)
      234a5560
    • P
      conf: Add RNG device ABI compatibility check · 1d28aa05
      Peter Krempa 提交于
      1d28aa05
    • P
      conf: Add support for RNG device configuration in XML · e2a0dfcf
      Peter Krempa 提交于
      This patch adds basic configuration support for the RNG device
      supporting the virtio model with the "random" and "egd" backend types as
      described in the schema in the previous patch.
      e2a0dfcf
    • P
      doc: schema: Add basic documentation for the virtual RNG device support · fa16c80f
      Peter Krempa 提交于
      This patch documents XML elements used for (basic) support of virtual
      RNG devices.
      
      In the devices section in the domain XML users may specify:
      
      For the default 'random' backend:
        <devices>
          <rng model='virtio'>
            <backend model='random'>/dev/urandom</backend>
          </rng>
        </devices>
      
      For the slightly more advanced EGD backend:
        <devices>
          <rng model='virtio'>
            <backend model='egd' type='udp'>
              <!-- this is a definition of a character device -->
              <source mode='bind' service='1234'/>
              <source mode='connect' host='1.2.3.4' service='1234'/>
              <!-- or other valid character device configuration -->
            </backend>
          </rng>
        </devices>
      
      For the planned random daemon/pool:
        <devices>
          <rng model='virtio'>
            <backend model='pool' pool='poolname'>class</backend>
          </rng>
        </devices>
      
      to enable the RNG device for guests.
      fa16c80f
    • P
      conf: Add fake switch statement to warn for new device types · 5e3c3447
      Peter Krempa 提交于
      This patch adds a fake switch statement to force the compiler to warn
      after a new device type was added. This should remind the contributor to
      add the new device also to this iterator function.
      5e3c3447
    • G
      use client id for IPv6 DHCP host definition · 0b73a763
      Gene Czarcinski 提交于
      Originally, only a host name was used to associate a
      DHCPv6 request with a specific IPv6 address.  Further testing
      demonstrates that this is an unreliable method and, instead,
      a client-id or DUID needs to be used.  According to DHCPv6
      standards, this id can be a duid-LLT, duid-LL, or duid-UUID
      even though dnsmasq will accept almost any text string.
      
      Although validity checking of a specified string makes sure it is
      hexadecimal notation with bytes separated by colons, there is no
      rigorous check to make sure it meets the standard.
      
      Documentation and schemas have been updated.
      Signed-off-by: NGene Czarcinski <gene@czarc.net>
      Signed-off-by: NLaine Stump <laine@laine.org>
      0b73a763
    • G
      Trivial fix: in dhcp-host the name is optional · 8e3c1f2e
      Gene Czarcinski 提交于
      Although in IPv4 one must pick either mac or name, either
      can be omitted.  Similarly, for IPv6, the name
      can be optionally omitted.
      Signed-off-by: NGene Czarcinski <gene@czarc.net>
      Signed-off-by: NLaine Stump <laine@laine.org>
      8e3c1f2e