1. 01 11月, 2012 2 次提交
    • M
      net-update docs: s/domain/network/ · d1236faa
      Michal Privoznik 提交于
      A leftover from copy paste.
      d1236faa
    • E
      build: prefer mkostemp for multi-thread safety · 4dbd6e96
      Eric Blake 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=871756
      
      Commit cd1e8d1c assumed that systems new enough to have journald
      also have mkostemp; but this is not true for uclibc.
      
      For that matter, use of mkstemp[s] is unsafe in a multi-threaded
      program.  We should prefer mkostemp[s] in the first place.
      
      * bootstrap.conf (gnulib_modules): Add mkostemp, mkostemps; drop
      mkstemp and mkstemps.
      * cfg.mk (sc_prohibit_mkstemp): New syntax check.
      * tools/virsh.c (vshEditWriteToTempFile): Adjust caller.
      * src/qemu/qemu_driver.c (qemuDomainScreenshot)
      (qemudDomainMemoryPeek): Likewise.
      * src/secret/secret_driver.c (replaceFile): Likewise.
      * src/vbox/vbox_tmpl.c (vboxDomainScreenshot): Likewise.
      4dbd6e96
  2. 27 10月, 2012 3 次提交
    • L
      qemu: fix attach/detach of netdevs with matching mac addrs · def31e4c
      Laine Stump 提交于
      This resolves:
      
         https://bugzilla.redhat.com/show_bug.cgi?id=862515
      
      which describes inconsistencies in dealing with duplicate mac
      addresses on network devices in a domain.
      
      (at any rate, it resolves *almost* everything, and prints out an
      informative error message for the one problem that isn't solved, but
      has a workaround.)
      
      A synopsis of the problems:
      
      1) you can't do a persistent attach-interface of a device with a mac
      address that matches an existing device.
      
      2) you *can* do a live attach-interface of such a device.
      
      3) you *can* directly edit a domain and put in two devices with
      matching mac addresses.
      
      4) When running virsh detach-device (live or config), only MAC address
      is checked when matching the device to remove, so the first device
      with the desired mac address will be removed. This isn't always the
      one that's wanted.
      
      5) when running virsh detach-interface (live or config), the only two
      items that can be specified to match against are mac address and model
      type (virtio, etc) - if multiple netdevs match both of those
      attributes, it again just finds the first one added and assumes that
      is the only match.
      
      Since it is completely valid to have multiple network devices with the
      same MAC address (although it can cause problems in many cases, there
      *are* valid use cases), what is needed is:
      
      1) remove the restriction that prohibits doing a persistent add of a
      netdev with a duplicate mac address.
      
      2) enhance the backend of virDomainDetachDeviceFlags to check for
      something that *is* guaranteed unique (but still work with just mac
      address, as long as it yields only a single results.
      
      This patch does three things:
      
      1) removes the check for duplicate mac address during a persistent
      netdev attach.
      
      2) unifies the searching for both live and config detach of netdevices
      in the subordinate functions of qemuDomainModifyDeviceFlags() to use the
      new function virDomainNetFindIdx (which matches mac address and PCI
      address if available, checking for duplicates if only mac address was
      specified). This function returns -2 if multiple matches are found,
      allowing the callers to print out an appropriate message.
      
      Steps 1 & 2 are enough to fully fix the problem when using virsh
      attach-device and detach-device (which require an XML description of
      the device rather than a bunch of commandline args)
      
      3) modifies the virsh detach-interface command to check for multiple
      matches of mac address and show an error message suggesting use of the
      detach-device command in cases where there are multiple matching mac
      addresses.
      
      Later we should decide how we want to input a PCI address on the virsh
      commandline, and enhance detach-interface to take a --address option,
      eliminating the need to use detach-device
      
      * src/conf/domain_conf.c
      * src/conf/domain_conf.h
      * src/libvirt_private.syms
        * added new virDomainNetFindIdx function
        * removed now unused virDomainNetIndexByMac and
          virDomainNetRemoveByMac
      
      * src/qemu/qemu_driver.c
        * remove check for duplicate max from qemuDomainAttachDeviceConfig
        * use virDomainNetFindIdx/virDomainNetRemove instead
          of virDomainNetRemoveByMac in qemuDomainDetachDeviceConfig
        * use virDomainNetFindIdx instead of virDomainIndexByMac
          in qemuDomainUpdateDeviceConfig
      
      * src/qemu/qemu_hotplug.c
        * use virDomainNetFindIdx instead of a homespun loop in
          qemuDomainDetachNetDevice.
      
      * tools/virsh-domain.c: modified detach-interface command as described
          above
      def31e4c
    • E
      build: fix syntax-check tab violation · 07049e4c
      Eric Blake 提交于
      * tools/Makefile.am: Fix tab damage in previous patch.
      07049e4c
    • E
      build: check for pod errors · 2639949a
      Eric Blake 提交于
      Patch 61299a1c fixed a long-standing pod error in the man page.
      But we should be preventing these up front.
      See also https://bugzilla.redhat.com/show_bug.cgi?id=870273
      
      * tools/Makefile.am (virt-xml-validate.1, virt-pki-validate.1)
      (virt-host-validate.1, virt-sanlock-cleanup.8, virsh.1): Reject
      pod conversion errors.
      * daemon/Makefile.am ($(srcdir)/libvirtd.8.in): Likewise.
      2639949a
  3. 26 10月, 2012 3 次提交
    • J
      virsh: Fix POD syntax · 61299a1c
      Jiri Denemark 提交于
      The first two hunks fix "Unterminated I<...> sequence" error and the
      last one fixes "’=item’ outside of any ’=over’" error.
      61299a1c
    • J
      virsh: Remove --flags from nodesuspend · ab545815
      Jiri Denemark 提交于
      We always expose individual bits from flags as separate options rather
      than exposing a raw flags options. Since virNodeSuspendForDuration does
      not currently support any flags, the only way of using this --flags
      options that would not fail is "--flags 0", which is equivalent to
      omitting the option. Thus it is highly unlikely anyone would actually be
      using it and removing it should be safe.
      ab545815
    • E
      snapshot: improve snapshot-list error message · 3cdf4dd4
      Eric Blake 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=869100 mentioned some
      confusion about 'virsh snapshot-list' errors.  Clean up a
      misleading error message, and add some documentation.
      
      * tools/virsh-snapshot.c (cmdSnapshotList): Mention --current
      rather than --from when appropriate.
      * tools/virsh.pod (snapshot-list): Mention that the named starting
      point is NOT part of the list except under --tree.
      3cdf4dd4
  4. 24 10月, 2012 1 次提交
  5. 22 10月, 2012 2 次提交
  6. 15 10月, 2012 1 次提交
    • O
      node_memory: Add new parameter field to tune the new sysfs knob · f81f0f2f
      Osier Yang 提交于
      Upstream kernel introduced new sysfs knob "merge_across_nodes" to
      specify if pages from different numa nodes can be merged. When set
      to 0, only pages which physically reside in the memory area of
      same NUMA node can be merged. When set to 1, pages from all nodes
      can be merged.
      
      This patch supports the tuning by adding new param field
      "shm_merge_across_nodes".
      f81f0f2f
  7. 12 10月, 2012 3 次提交
  8. 11 10月, 2012 1 次提交
    • 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
  9. 09 10月, 2012 2 次提交
    • 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
      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
  10. 02 10月, 2012 1 次提交
  11. 21 9月, 2012 2 次提交
    • L
      virsh: new net-update command · fe787282
      Laine Stump 提交于
      This command uses the new virNetworkUpdate() API to modify an existing
      network definition, and optionally have those modifications take
      effect immediately without restarting the network.
      
      An example usage:
      
        virsh net-update mynet add-last ip-dhcp-host \
         "<host mac='00:11:22:33:44:55' ip='192.168.122.45'/>" \
         --live --config
      
      If you like, you can instead put the xml into a file, and call like
      this:
      
        virsh net-update mynet add ip-dhcp-host /tmp/myxml.xml
         --live --config
      
      virsh will autodetect whether the argument is itself an xml element,
      or if it's a file, by looking at the first character - the first
      character of an xml element is always "<", and the first character of
      a file is almost always *not* "<" (in the rare case that it is, the
      user could specify "./<filename...").
      
      A --parent-index option is also available (to give the index within a
      list of parent objects, e.g. the index of the parent <ip> element when
      updating ip-dhcp-host elements), but is optional and at least for now
      will probably be used rarely.
      
      --live, --config, and --current options - if you specify --live, only
      the live state of the network will be updated. If you also specify
      --config, then the persistent configuration will also be updated;
      these two commands can be given separately, or both together. If you
      don't specify either (you can optionally specify "--current" for the
      same effect), then the "current" config will be updated (i.e. if the
      network is active, then only its live config is affected, but if the
      network is inactive, only the persistent config is affected).
      fe787282
    • E
      maint: fix up copyright notice inconsistencies · 4ecb723b
      Eric Blake 提交于
      https://www.gnu.org/licenses/gpl-howto.html recommends that
      the 'If not, see <url>.' phrase be a separate sentence.
      
      * tests/securityselinuxhelper.c: Remove doubled line.
      * tests/securityselinuxtest.c: Likewise.
      * globally: s/;  If/.  If/
      4ecb723b
  12. 20 9月, 2012 1 次提交
  13. 19 9月, 2012 3 次提交
    • D
      build: define WITH_INTERFACE for the driver · b95ad92e
      Doug Goldstein 提交于
      Based exclusively on work by Eric Blake in a patch posted with the same
      subject. However some modifications related to comments and my plans to
      add another backend.
      
      Added WITH_INTERFACE as the only automake variable deciding whether to
      build the driver and using WITH_NETCF to identify that we're wanting to
      use the netcf library as the backend.
      
      * configure.ac: Added with_interface
      * src/interface/netcf_driver.c: Renamed..
      * src/interface/interface_backend_netcf.c: ..to this to match storage.
      * src/interface/netcf_driver.h: Renamed..
      * src/interface/interface_driver.h: ..to this.
      * daemon/Makefile.am: Respect WITH_INTERFACE and WITH_NETCF.
      * libvirt.spec.in: Add RPM support for --with-interface
      b95ad92e
    • D
      virsh: Rename QEmu to QEMU to match upstream · c88a4f2a
      Doug Goldstein 提交于
      Match upstream's naming of QEMU. There was a notice on the ML that said
      the preferred spelling was QEMU a while back.
      c88a4f2a
    • P
      virsh: Fix resource leaks when editing files. · 1035c51f
      Peter Krempa 提交于
      The cleanup path in virsh-edit helper was never reached when the edit
      was successful leaking the document in memory as well as the temporary
      file.
      1035c51f
  14. 18 9月, 2012 2 次提交
    • E
      blockjob: add virsh blockcommit · ed23b106
      Eric Blake 提交于
      The new command 'virsh blockcommit $dom $disk' requests the start
      of an asynchronous commit operation across the entire chain of
      $disk.  Further arguments can fine-tune which portion of the
      chain is committed.  Existing 'virsh blockjob' commands can then
      track the status, change the bandwidth, or abort the commit job.
      
      With a bit more on the command line, 'virsh blockcommit $dom $disk
      --wait --verbose' can be used for blocking behavior, with visual
      feedback on the overall status, and can be canceled with Ctrl-C.
      
      The overall design, including the wait loop logic, borrows heavily
      from the existing blockpull command.
      
      * tools/virsh-domain.c (cmdBlockCommit): New function.
      * tools/virsh.pod (blockcommit): Document it.
      ed23b106
    • H
      bitmap: new member variable and function renaming · 0831a5ba
      Hu Tao 提交于
      Add a new member variable map_len to store map len of bitmap.
      and rename size to max_bit accordingly.
      
      rename virBitmapAlloc to virBitmapNew.
      0831a5ba
  15. 17 9月, 2012 6 次提交
    • P
      virsh: Clarify behavior of domain list filtering. · 60b0284f
      Peter Krempa 提交于
      Some combinations of filtering flags produce no result. This patch tries
      to clarify this.
      60b0284f
    • O
      node_memory: Expose the APIs to virsh · 0e96fa54
      Osier Yang 提交于
      New command node-memory-tune to get/set the node memory parameters,
      only two parameters are allowed to set (pages_to_scan, and sleep_millisecs,
      see documents in this patch for more details).
      
      Example of node-memory-tune's output:
      
      Shared memory:
      	pages_to_scan   100
      	sleep_millisecs 20
      	pages_shared    0
      	pages_sharing   0
      	pages_unshared  0
      	pages_volatile  0
      	full_scans      0
      0e96fa54
    • O
      list: Use virConnectListAllSecrets in virsh · d15d092c
      Osier Yang 提交于
      This introduces four new options for secret-list, to filter the
      returned secrets by whether it's ephemeral or not, and/or by
      whether it's private or not.
      
      * tools/virsh-secret.c: (New helper vshSecretSorter,
        vshSecretListFree, and vshCollectSecretList; Use the new
        API for secret-list; error out if flags are specified,
        because there is no way to filter the results when using
        old APIs (no APIs to get the properties (ephemeral, private)
        of a secret yet).
      
      * tools/virsh.pod: Document the 4 new options.
      d15d092c
    • O
      list: Use virConnectListAllNWFilters in virsh · 9b096843
      Osier Yang 提交于
      tools/virsh-nwfilter.c:
        * vshNWFilterSorter to sort network filters by name
      
        * vshNWFilterListFree to free the network filter objects list.
      
        * vshNWFilterListCollect to collect the network filter objects, trying
          to use new API first, fall back to older APIs if it's not supported.
      9b096843
    • O
      list: Use virConnectListAllNodeDevices in virsh · aa20e975
      Osier Yang 提交于
      tools/virsh-nodedev.c:
        * vshNodeDeviceSorter to sort node devices by name
      
        * vshNodeDeviceListFree to free the node device objects list.
      
        * vshNodeDeviceListCollect to collect the node device objects, trying
          to use new API first, fall back to older APIs if it's not supported.
      
        * Change option --cap to accept multiple capability types.
      
      tools/virsh.pod
        * Update document for --cap
      aa20e975
    • O
      virsh: Don't motify the const string · f5fb059a
      Osier Yang 提交于
      This improve helper vshStringToArray to accept const string as
      argument instead. To not convert the const string when using
      vshStringToArray, and thus avoid motifying it.
      f5fb059a
  16. 13 9月, 2012 2 次提交
    • O
      virsh: Fix version numbers in comments · aa81db3f
      Osier Yang 提交于
      And redundant error resetting.
      
      Pushed under trivial rule.
      aa81db3f
    • E
      maint: fix missing spaces in message · 2387aa26
      Eric Blake 提交于
      I got an off-list report about a bad diagnostic:
      Target network card mac 52:54:00:49:07:ccdoes not match source 52:54:00:49:07:b8
      
      True to form, I've added a syntax check rule to prevent it
      from recurring, and found several other offenders.
      
      * cfg.mk (sc_require_whitespace_in_translation): New rule.
      * src/conf/domain_conf.c (virDomainNetDefCheckABIStability): Add
      space.
      * src/esx/esx_util.c (esxUtil_ParseUri): Likewise.
      * src/qemu/qemu_command.c (qemuCollectPCIAddress): Likewise.
      * src/qemu/qemu_driver.c (qemuDomainSetMetadata)
      (qemuDomainGetMetadata): Likewise.
      * src/qemu/qemu_hotplug.c (qemuDomainChangeNetBridge): Likewise.
      * src/rpc/virnettlscontext.c
      (virNetTLSContextCheckCertDNWhitelist): Likewise.
      * src/vmware/vmware_driver.c (vmwareDomainResume): Likewise.
      * src/vbox/vbox_tmpl.c (vboxDomainGetXMLDesc, vboxAttachDrives):
      Avoid false negatives.
      * tools/virsh-domain.c (info_save_image_dumpxml): Reword.
      Based on a report by Luwen Su.
      2387aa26
  17. 12 9月, 2012 1 次提交
    • O
      list: Use virConnectListAllInterfaces in virsh · 3c2e6472
      Osier Yang 提交于
      tools/virsh-interface.c:
        * vshInterfaceSorter to sort interfaces by name
      
        * vshInterfaceListFree to free the interface objects list.
      
        * vshInterfaceListCollect to collect the interface objects, trying
          to use new API first, fall back to older APIs if it's not supported.
      3c2e6472
  18. 11 9月, 2012 2 次提交
    • O
      virsh: Fix the typos · 3dcafffe
      Osier Yang 提交于
      * tools/virsh-network.c: s/MATCH/VSH_MATCH/
      3dcafffe
    • O
      list: Use virConnectListAllNetworks in virsh · 895913dd
      Osier Yang 提交于
      tools/virsh-network.c:
        * vshNetworkSorter to sort networks by name
      
        * vshNetworkListFree to free the network objects list.
      
        * vshNetworkListCollect to collect the network objects, trying
          to use new API first, fall back to older APIs if it's not supported.
      
        * New options --persistent, --transient, --autostart, --no-autostart,
          for net-list, and new field 'Persistent' for its output.
      
      tools/virsh.pod:
        * Add documents for the new options.
      895913dd
  19. 10 9月, 2012 1 次提交
    • O
      list: Use virStoragePoolListAllVolumes in virsh · 7e9548fc
      Osier Yang 提交于
      tools/virsh-volume.c:
        * vshStorageVolSorter to sort storage vols by name
      
        * vshStorageVolumeListFree to free the volume objects list
      
        * vshStorageVolumeListCollect to collect the volume objects, trying
          to use new API first, fall back to older APIs if it's not supported.
      7e9548fc
  20. 07 9月, 2012 1 次提交
    • P
      virsh: Update only changed scheduler tunables · 51907779
      Peter Krempa 提交于
      When setting the cpu tunables in virsh you are able to update only a
      subset of them. Virsh while doing the update updated all of the
      tunables, changed ones with new values and unchanged with old ones.
      This is unfortunate as it:
      a) might overwrite some other change by a race condition (unprobable)
      b) fails with range checking as some of the old values saved might be
         out of range
      
      This patch changes the update procedure so that only the changed value
      is updated on the host.
      
      This patch also fixes a very unprobable memory leak if the daemon would
      return a string tunable parameter, as the typed parameter array was not
      cleared.
      51907779