1. 10 9月, 2015 3 次提交
  2. 09 9月, 2015 3 次提交
  3. 08 9月, 2015 6 次提交
  4. 07 9月, 2015 4 次提交
  5. 05 9月, 2015 8 次提交
  6. 04 9月, 2015 9 次提交
    • J
      examples: Add example polkit ACL rules · 29b51674
      Jiri Denemark 提交于
      Creating ACL rules is not exactly easy and existing examples are pretty
      simple. This patch adds a somewhat complex example which defines several
      roles. Admins can do everything, operators can do basic operations
      on any domain and several groups of users who act as operators but only
      on a limited set of domains.
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      29b51674
    • J
      qemu: Need to check for machine.os when using ADDRESS_TYPE_CCW · a39ab909
      John Ferlan 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1258361
      
      When attaching a disk, controller, or rng using an address type ccw
      or s390, we need to ensure the support is provided by both the machine.os
      and the emulator capabilities (corollary to unconditional setting when
      address was not provided for the correct machine.os and emulator.
      
      For an inactive guest, an addition followed by a start would cause the
      startup to fail after qemu_command builds the command line and attempts
      to start the guest. For an active guest, libvirtd would crash.
      a39ab909
    • J
      qemu: Introduce qemuDomainMachineIsS390CCW · d334c917
      John Ferlan 提交于
      Rather than have different usages of STR function in order to determine
      whether the domain is s390-ccw or s390-ccw-virtio, make a single API
      which will check the machine.os prefix. Then use the function.
      d334c917
    • E
      vsh: Make vshInitDebug static · 682775fb
      Erik Skultety 提交于
      There's no reason why debug initialization could not be made completely
      hidden, just like readline initialization is. The point of the global
      initializer vshInit is to make initialization of smaller features transparent
      to the user/caller.
      682775fb
    • E
      virsh: Do not make interactive mode default · a02de849
      Erik Skultety 提交于
      Currently, we set interactive mode as default possibly reverting the
      setting after we parse the command line arguments. There's nothing
      particulary wrong with that, but a call to vshReadlineInit is performed
      always in the global initializer just because the default mode is interactive.
      Rather than moving vshReadlineInit call somewhere else (because another client
      might want to implement interactive mode only), we could make the decision
      if we're about to run in interactive mode once the command line is parsed.
      a02de849
    • E
      vsh: Introduce vshInitReload · f59d51f5
      Erik Skultety 提交于
      Commit a0b6a36f separated vshInitDebug from the original vshInit
      (before virsh got split and vshInit became virshInit - commit 834c5720)
      in order to be able to debug command line parsing.
      After the parsing is finished, debugging is reinitialized to work properly.
      There might as well be other features that require re-initialization as
      the command line could specify parameters that override our defaults which
      had been set prior to calling vshArgvParse.
      f59d51f5
    • E
      vsh: adjust vshInit signature and remove redundant error label · 57b8a388
      Erik Skultety 提交于
      As part of the effort to stay consistent, change the vshInit signature
      from returning int to returning bool. Moreover, remove the
      unnecessary error label as there is no cleanup that would make use of
      it.
      57b8a388
    • J
      libxl: don't overwrite error from virNetSocketNewConnectTCP() · 6ce939c2
      Jim Fehlig 提交于
      Remove redundant error reporting in libxlDomainMigrationPerform().
      virNetSocketNewConnectTCP() is perfectly capable of reporting
      sensible errors.
      6ce939c2
    • P
      domain-conf: escape string for socket attribute · e92e5ba1
      Pavel Hrdina 提交于
      Commit d091518b tried to escape all strings in produced XML, but missed
      this one.
      Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
      e92e5ba1
  7. 03 9月, 2015 4 次提交
    • L
      util: don't use netlink to save/set mac for macvtap+passthrough+802.1Qbh · 46cf0cef
      Laine Stump 提交于
      Before libvirt sets the MAC address of the physdev (the physical
      ethernet device) linked to a macvtap passthrough device, it always
      saves the previous MAC address to restore when the guest is finished
      (following a "leave nothing behind" policy). For a long time it
      accomplished the save/restore with a combination of
      ioctl(SIOCGIFHWADDR) and ioctl(SIOCSIFHWADDR), but in commit cbfe38c
      (first in libvirt 1.2.15) this was changed to use netlink RTM_GETLINK
      and RTM_SETLINK commands sent to the Physical Function (PF) of any
      device that was detected to be a Virtual Function (VF).
      
      We later found out that this caused problems with any devices using
      the Cisco enic driver (e.g. vmfex cards) because the enic driver
      hasn't implemented the function that is called to gather the
      information in the IFLA_VFINFO_LIST attribute of RTM_GETLINK
      (ndo_get_vf_config() for those keeping score), so we would never get
      back a useful response.
      
      In an ideal world, all drivers would implement all functions, but it
      turns out that in this case we can work around this omission without
      any bad side effects - since all macvtap passthrough <interface>
      definitions pointing to a physdev that uses the enic driver *must*
      have a <virtualport type='802.1Qbh'>, and since no other type of
      ethernet devices use 802.1Qbh, libvirt can change its behavior in this
      case to use the old-style.  ioctl(SIOC[GS]IFHWADDR).  That's what this
      patch does.
      
      Resolves:  https://bugzilla.redhat.com/show_bug.cgi?id=1257004
      46cf0cef
    • L
      util: make virNetDev(Replace|Restore)MacAddress public functions · 3ce08fab
      Laine Stump 提交于
      These functions were made static as a part of commit cbfe38c since
      they were no longer called from outside virnetdev.c. We once again
      need to call them from another file, so this patch makes them once
      again public.
      3ce08fab
    • M
      remoteClientCloseFunc: Don't mangle connection object refcount · e6893007
      Michal Privoznik 提交于
      Well, in 8ad126e6 we tried to fix a memory corruption problem.
      However, the fix was not as good as it could be. I mean, the
      commit has one line more than it should. I've noticed this output
      just recently:
      
        # ./run valgrind --leak-check=full --show-reachable=yes ./tools/virsh domblklist gentoo
        ==17019== Memcheck, a memory error detector
        ==17019== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
        ==17019== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
        ==17019== Command: /home/zippy/work/libvirt/libvirt.git/tools/.libs/virsh domblklist gentoo
        ==17019==
        Target     Source
        ------------------------------------------------
        fda        /var/lib/libvirt/images/fd.img
        vda        /var/lib/libvirt/images/gentoo.qcow2
        hdc        /home/zippy/tmp/install-amd64-minimal-20150402.iso
      
        ==17019== Thread 2:
        ==17019== Invalid read of size 4
        ==17019==    at 0x4EFF5B4: virObjectUnref (virobject.c:258)
        ==17019==    by 0x5038CFF: remoteClientCloseFunc (remote_driver.c:552)
        ==17019==    by 0x5069D57: virNetClientCloseLocked (virnetclient.c:685)
        ==17019==    by 0x506C848: virNetClientIncomingEvent (virnetclient.c:1852)
        ==17019==    by 0x5082136: virNetSocketEventHandle (virnetsocket.c:1913)
        ==17019==    by 0x4ECD64E: virEventPollDispatchHandles (vireventpoll.c:509)
        ==17019==    by 0x4ECDE02: virEventPollRunOnce (vireventpoll.c:658)
        ==17019==    by 0x4ECBF00: virEventRunDefaultImpl (virevent.c:308)
        ==17019==    by 0x130386: vshEventLoop (vsh.c:1864)
        ==17019==    by 0x4F1EB07: virThreadHelper (virthread.c:206)
        ==17019==    by 0xA8462D3: start_thread (in /lib64/libpthread-2.20.so)
        ==17019==    by 0xAB441FC: clone (in /lib64/libc-2.20.so)
        ==17019==  Address 0x139023f4 is 4 bytes inside a block of size 240 free'd
        ==17019==    at 0x4C2B1F0: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
        ==17019==    by 0x4EA8949: virFree (viralloc.c:582)
        ==17019==    by 0x4EFF6D0: virObjectUnref (virobject.c:273)
        ==17019==    by 0x4FE74D6: virConnectClose (libvirt.c:1390)
        ==17019==    by 0x13342A: virshDeinit (virsh.c:406)
        ==17019==    by 0x134A37: main (virsh.c:950)
      
      The problem is, when registering remoteClientCloseFunc(), it's
      conn->closeCallback which is ref'd. But in the function itself
      it's conn->closeCallback->conn what is unref'd. This is causing
      imbalance in reference counting. Moreover, there's no need for
      the remote driver to increase/decrease conn refcount since it's
      not used anywhere. It's just merely passed to client registered
      callback. And for that purpose it's correctly ref'd in
      virConnectRegisterCloseCallback() and then unref'd in
      virConnectUnregisterCloseCallback().
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      e6893007
    • M
      vshInit: Don't leak @histsize_env · 4fdd873f
      Michal Privoznik 提交于
      Caller is responsible for freeing the result of virStringJoin()
      when no longer needed:
      
      ==10701== 1 bytes in 1 blocks are definitely lost in loss record 1 of 806
      ==10701==    at 0x4C29F80: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==10701==    by 0xAADB679: strdup (in /lib64/libc-2.20.so)
      ==10701==    by 0x4F18655: virStrdup (virstring.c:726)
      ==10701==    by 0x4F175AF: virStringJoin (virstring.c:165)
      ==10701==    by 0x131D4D: vshReadlineInit (vsh.c:2572)
      ==10701==    by 0x1322DF: vshInit (vsh.c:2736)
      ==10701==    by 0x1347C1: main (virsh.c:907)
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      4fdd873f
  8. 02 9月, 2015 3 次提交
    • J
      storage: Handle failure from refreshVol · db9277a3
      John Ferlan 提交于
      Commit id '155ca616' added the 'refreshVol' API. In an NFS root-squash
      environment it was possible that if the just created volume from XML wasn't
      properly created with the right uid/gid and/or mode, then the followup
      refreshVol will fail to open the volume in order to get the allocation/
      capacity values. This would leave the volume still on the server and
      cause a libvirtd crash because 'voldef' would be in the pool list, but
      the cleanup code would free it.
      db9277a3
    • J
      storage: Correct the 'mode' check · 691dd388
      John Ferlan 提交于
      Commit id '7c2d65dd' changed the default value of mode to be -1 if not
      supplied in the XML, which should cause creation of the volume using the
      default mode of VIR_STORAGE_DEFAULT_VOL_PERM_MODE; however, the check
      made was whether mode was '0' or not to use default or provided value.
      
      This patch fixes the issue to check if the 'mode' was provided in the XML
      and use that value.
      691dd388
    • J
      virfile: Introduce virFileUnlink · 35847860
      John Ferlan 提交于
      In an NFS root-squashed environment the 'vol-delete' command will fail to
      'unlink' the target volume since it was created under a different uid:gid.
      
      This code continues the concepts introduced in virFileOpenForked and
      virDirCreate[NoFork] with respect to running the unlink command under
      the uid/gid of the child. Unlike the other two, don't retry on EACCES
      (that's why we're here doing this now).
      35847860