1. 13 10月, 2012 2 次提交
  2. 12 10月, 2012 5 次提交
    • M
      selinux: Use raw contexts · 9674f2c6
      Martin Kletzander 提交于
      We are currently able to work only with non-translated SELinux
      contexts, but we are using functions that work with translated
      contexts throughout the code.  This patch swaps all SELinux context
      translation relative calls with their raw sisters to avoid parsing
      problems.
      
      The problems can be experienced with mcstrans for example.  The
      difference is that if you have translations enabled (yum install
      mcstrans; service mcstrans start), fgetfilecon_raw() will get you
      something like 'system_u:object_r:virt_image_t:s0', whereas
      fgetfilecon() will return 'system_u:object_r:virt_image_t:SystemLow'
      that we cannot parse.
      
      I was trying to confirm that the _raw variants were here since the dawn of
      time, but the only thing I see now is that it was imported together in
      the upstream repo [1] from svn, so before 2008.
      
      Thanks Laurent Bigonville for finding this out.
      
      [1] http://oss.tresys.com/git/selinux.git
      9674f2c6
    • J
      conf: Mark missing optional USB devices in domain XML · f95560b3
      Jiri Denemark 提交于
      When startupPolicy set for a USB devices allows such device to be
      missing, there was no way this could be detected from domain XML. With
      this patch, libvirt emits a new missing='yes' attribute for such devices
      when active domain XML is generated.
      f95560b3
    • J
      virsh: remove reference to migration in blockcopy · c0fab871
      Ján Tomko 提交于
      c0fab871
    • J
      virsh: block SIGINT while getting BlockJobInfo · 13fefaf3
      Ján Tomko 提交于
      SIGINT hasn't been blocked, which could lead to losing it somewhere in
      virDomainGetBlockJobInfo and not aborting the job.
      13fefaf3
    • J
      Various typos and misspellings · 149c87b4
      Ján Tomko 提交于
      149c87b4
  3. 11 10月, 2012 15 次提交
    • P
      qemu: Fix misleading comment for qemuDomainObjBeginJobWithDriver() · 36f7dbf4
      Peter Krempa 提交于
      The comment stated that you may call qemuDomainObjBeginJobWithDriver
      without passing qemud_driver to signal it's not locked.
      qemuDomainObjBeginJobWithDriver still accesses the qemud_driver
      structure and the lock singaling is done through a separate parameter.
      36f7dbf4
    • J
      qemu: Make save/restore with USB devices usable · bd1282d6
      Jiri Denemark 提交于
      Save/restore with passed through USB devices currently only works if the
      USB device can be found at the same USB address where it used to be
      before saving a domain. This makes sense in case a user explicitly
      configure the USB address in domain XML. However, if the device was
      found automatically by vendor/product identification, we should try to
      search for that device when restoring the domain and use any device we
      find as long as there is only one available. In other words, the USB
      device can now be removed and plugged again or the host can be rebooted
      between saving and restoring the domain.
      bd1282d6
    • J
      Add MIGRATABLE flag for virDomainGetXMLDesc · 28f8dfdc
      Jiri Denemark 提交于
      Using VIR_DOMAIN_XML_MIGRATABLE flag, one can request domain's XML
      configuration that is suitable for migration or save/restore. Such XML
      may contain extra run-time stuff internal to libvirt and some default
      configuration may be removed for better compatibility of the XML with
      older libvirt releases.
      
      This flag may serve as an easy way to get the XML that can be passed
      (after desired modifications) to APIs that accept custom XMLs, such as
      virDomainMigrate{,ToURI}2 or virDomainSaveFlags.
      28f8dfdc
    • J
      edc9269a
    • J
      qemu: Add option to treat missing USB devices as success · 059aff6b
      Jiri Denemark 提交于
      All USB device lookup functions emit an error when they cannot find the
      requested device. With this patch, their caller can choose if a missing
      device is an error or normal condition.
      059aff6b
    • J
      qemu: Introduce qemuFindHostdevUSBDevice · 7bcc7278
      Jiri Denemark 提交于
      The code which looks up a USB device specified by hostdev is duplicated
      in two places. This patch creates a dedicated function that can be
      called in both places.
      7bcc7278
    • J
      conf: Add support for startupPolicy for USB devices · e658daeb
      Jiri Denemark 提交于
      USB devices can disappear without OS being mad about it, which makes
      them ideal for startupPolicy. With this attribute, USB devices can be
      configured to be mandatory (the default), requisite (will disappear
      during migration if they cannot be found), or completely optional.
      e658daeb
    • J
      locking: Implement lock failure action in sanlock driver · 89364767
      Jiri Denemark 提交于
      While the changes to sanlock driver should be stable, the actual
      implementation of sanlock_helper is supposed to be replaced in the
      future. However, before we can implement a better sanlock_helper, we
      need an administrative interface to libvirtd so that the helper can just
      pass a "leases lost" event to the particular libvirt driver and
      everything else will be taken care of internally. This approach will
      also allow libvirt to pass such event to applications and use
      appropriate reasons when changing domain states.
      
      The temporary implementation handles all actions directly by calling
      appropriate libvirt APIs (which among other things means that it needs
      to know the credentials required to connect to libvirtd).
      89364767
    • J
      locking: Add support for lock failure action · 297c704a
      Jiri Denemark 提交于
      297c704a
    • J
      locking: Pass hypervisor driver name when acquiring locks · d236f3fc
      Jiri Denemark 提交于
      This is required in case a lock manager needs to contact libvirtd in
      case of an unexpected event.
      d236f3fc
    • J
      e55ff49c
    • J
      conf: Add on_lockfailure event configuration · 76f5bcab
      Jiri Denemark 提交于
      Using this new element, one can configure an action that should be
      performed when resource locks are lost.
      76f5bcab
    • J
      conf: Rename life cycle actions to event actions · d0ea530b
      Jiri Denemark 提交于
      While current on_{poweroff,reboot,crash} action configuration is about
      configuring life cycle actions, they can all be considered events and
      actions that need to be done on a particular event. Let's generalize the
      code by renaming life cycle actions to event actions so that it can be
      reused later for non-lifecycle events.
      d0ea530b
    • Z
      0ec6aebb
    • C
      storage: Report UUID/name consistently in driver errors · 3af8280b
      Cole Robinson 提交于
      Done with:
      
      sed -i -e "s/no pool with matching uuid/no storage pool with matching uuid/g" src/storage/storage_driver.c
      sed -i -e 's/"%s", _("no storage pool with matching uuid")/_("no storage pool with matching uuid %s"), obj->uuid/g' src/storage/storage_driver.c
      sed -i -e 's/"%s", _("storage pool is not active")/_("storage pool '%s' is not active"), pool->def->name/g' src/storage/storage_driver.c
      
      And a couple fixups before, during, and after, and a manual inspection
      pass to make sure nothing was wonky.
      3af8280b
  4. 10 10月, 2012 4 次提交
    • D
      Change qemuSetSchedularParameters to use AFFECT_CURRENT · 4da9b2c1
      Daniel P. Berrange 提交于
      When adding variants of parameter setting APIs which accepted
      flags, the existing APIs were all adapted internally to pass
      VIR_DOMAIN_AFFECT_CURRENT to the new API. The QEMU impl
      qemuSetSchedularParameters was an exception, which instead
      used VIR_DOMAIN_AFFECT_LIVE. Change this to match other
      compatibility scenarios, so that calling
      
         virDomainSetSchedularParameters(dom, params, nparams);
      
      Has the same semantics as
      
         virDomainSetSchedularParametersFlags(dom, params, nparams, 0);
      
      And
      
         virDomainSetSchedularParametersFlags(dom, params, nparams, VIR_DOMAIN_AFFECT_CURRENT);
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      4da9b2c1
    • M
      win32: Pretend that close-on-exec works · fcfa4bfb
      Matthias Bolte 提交于
      Currently virNetSocketNew fails because virSetCloseExec fails as there
      is no proper implementation for it on Windows at the moment. Workaround
      this by pretending that setting close-on-exec on the fd works. This can
      be done because libvirt currently lacks the ability to create child
      processes on Windows anyway. So there is no point in failing to set a
      flag that isn't useful at the moment anyway.
      fcfa4bfb
    • M
      esx: Fix dynamic dispatch for types with more than one level of inheritance · 69037428
      Matthias Bolte 提交于
      Traverse the whole inheritance hierarchy for dynamic dispatch as it is
      already done for the dynamic cast.
      
      Also make AnyType cast errors more verbose.
      
      Reported by Ata Bohra.
      69037428
    • D
      interface: add udevIfaceIsActive() to udev backend · ba96d277
      Doug Goldstein 提交于
      Add support to check if a specific interface is active by supporting the
      following API function in the udev based virInterface backend:
      * virConnectInterfaceIsActive()
      ba96d277
  5. 09 10月, 2012 14 次提交
    • D
      interface: always build all available backends · 43dbcb15
      Doug Goldstein 提交于
      Always build all available backends to avoid bit-rot. At run time we
      select the correct backend and load it by attempting netcf first and
      then udev.
      43dbcb15
    • D
      interface: fix netcf based backend naming · b871830a
      Doug Goldstein 提交于
      All other backends for virInterface or other HVs implementations of
      virInterface list their own names for the name instead of the generic
      'Interface' value. This does the same for the netcf based backend.
      Also, report any errors during registration.
      b871830a
    • D
      interface: add udev based backend for virInterface · 5a33366f
      Doug Goldstein 提交于
      Add a read-only udev based backend for virInterface. Useful for distros
      that do not have netcf support yet. Multiple libvirt based utilities use
      a HAL based fallback when virInterface is not available which is less
      than ideal. This implements:
      * virConnectNumOfInterfaces()
      * virConnectListInterfaces()
      * virConnectNumOfDefinedInterfaces()
      * virConnectListDefinedInterfaces()
      * virConnectListAllInterfaces()
      * virConnectInterfaceLookupByName()
      * virConnectInterfaceLookupByMACString()
      5a33366f
    • E
      hooks: let virCommand do the error reporting · 9c74414d
      Eric Blake 提交于
      The code was reporting raw exit status without decoding it into
      normal vs. signal exit.  virCommandRun already does this, but
      with a different error type, so all we have to do is recast
      the error to the correct type.
      Reported by li guang.
      
      * src/util/hooks.c (virHookCall): Simplify.
      9c74414d
    • M
      doc: update description about user/group in qemu.conf · 60dea2c6
      Marcelo Cerri 提交于
      As a side effect of changes in the functions virGetUserID and
      virGetGroupID, the user and group configurations for DAC in qemu.conf
      are now able to accept both names and IDs, supporting a leading plus
      sign to ensure that a numeric value will not be interpreted as a name.
      
      This patch updates the comments in qemu.conf, including a description of
      this new behavior.
      60dea2c6
    • M
      docs: Drop useless </p> in drvphyp.html.in · c5eed5dc
      Michal Privoznik 提交于
      c5eed5dc
    • M
      nodeinfo: Fully convert to new virReportError · 84a8917b
      Michal Privoznik 提交于
      With our latest s/[a-z]+ReportError/virReportError/ rewrite
      (47ab34e2) we forgot to update arm part of the code.
      84a8917b
    • J
      qemu: Fix QMP detection of QXL graphics · 844cdf22
      Jiri Denemark 提交于
      With the recent introduction of QMP capabilities probing, libvirt failed
      to detect support for QXL graphics in QEMU 1.2 and newer. In addition to
      fixing that, this patch also causes libvirt to detect QXL support for
      qemu-kvm-0.13.0, which doesn't advertise it in -help output but mentions
      it in device list. Since qemu-kvm-0.13.0 supported -spice, it looks like
      not having qxl in -help was a bug.
      844cdf22
    • E
      virsh: add qemu-monitor-command --pretty · 2a1aaa60
      Eric Blake 提交于
      I was using qemu-monitor-command during development, and found it quite
      hard to use.  Compare the results of this patch on ease of reading:
      
      $ virsh qemu-monitor-command          dom '{"execute":"query-version"}'
      {"return":{"qemu":{"micro":1,"minor":12,"major":0},"package":"(qemu-kvm-0.12.1.2)"},"id":"libvirt-7683"}
      
      $ virsh qemu-monitor-command --pretty dom '{"execute":"query-version"}'
      {
          "return": {
              "qemu": {
                  "micro": 1,
                  "minor": 12,
                  "major": 0
              },
              "package": "(qemu-kvm-0.12.1.2)"
          },
          "id": "libvirt-7674"
      }
      
      * tools/virsh-host.c (cmdQemuMonitorCommand): New option.
      * tools/virsh.pod (qemu-monitor-command): Document it.
      2a1aaa60
    • M
      security: update user and group parsing in security_dac.c · 7c035625
      Marcelo Cerri 提交于
      The functions virGetUserID and virGetGroupID are now able to parse
      user/group names and IDs in a similar way to coreutils' chown. So, user
      and group parsing in security_dac can be simplified.
      7c035625
    • M
      util: extend virGetUserID and virGetGroupID to support names and IDs · 0b237296
      Marcelo Cerri 提交于
      This patch updates virGetUserID and virGetGroupID to be able to parse a
      user or group name in a similar way to coreutils' chown. This means that
      a numeric value with a leading plus sign is always parsed as an ID,
      otherwise the functions try to parse the input first as a user or group
      name and if this fails they try to parse it as an ID.
      
      This patch includes Peter Krempa's changes to correctly handle errors
      returned by getpwnam_r and getgrnam_r.
      0b237296
    • M
      Call curl_global_init from virInitialize to avoid thread-safety issues · 458c4998
      Matthias Bolte 提交于
      curl_global_init is not thread-safe. curl_easy_init might call
      curl_global_init when it was no called before. But curl_easy_init
      can be called from different threads by the ESX driver. Therefore,
      call curl_global_init from virInitialize to stop curl_easy_init from
      calling it.
      
      Reported by Benjamin Wang.
      458c4998
    • M
      fix kvm_pv_eoi with kvmclock · 5d692cc7
      Martin Kletzander 提交于
      When both kvmclock and kvm_pv_eoi are configured (either disabled or
      enabled) libvirt will generate invalid CPU specification due to the
      fact that even though kvmclock causes the CPU to be specified, it
      doesn't set have_cpu flag to true (and the new kvm_pv_eoi as well).
      This patch fixes the issue and adds a test exactly for that to show
      that it is fixed correctly (and also to keep it that way in the future
      of course).
      5d692cc7
    • A
      Fix typo in HAVE_DBUS automake conditional · 53d5ad94
      Alexander Larsson 提交于
      The variable that is set in the script is with_dbus, not have_dbus.
      53d5ad94