1. 02 5月, 2016 4 次提交
    • M
      virStream{Recv,Send}All: Increase client buffer · 809d02ca
      Michal Privoznik 提交于
      These are wrappers over virStreamRecv and virStreamSend so that
      users have to care about nothing but writing data into / reading
      data from a sink (typically a file). Note, that these wrappers
      are used exclusively on client side as the daemon has slightly
      different approach. Anyway, the wrappers allocate this buffer and
      use it for intermediate data storage until the data is passed to
      stream to send, or to the client application. So far, we are
      using 64KB buffer. This is enough, but suboptimal because server
      can send messages up to VIR_NET_MESSAGE_LEGACY_PAYLOAD_MAX bytes
      big (262120B, roughly 256KB). So if we make the buffer this big,
      a single message containing the data is sent instead of four,
      which is current situation. This means lower overhead, because
      each message contains a header which needs to be processed, each
      message is processed roughly same amount of time regardless of
      its size, less bytes need to be sent through the wire, and so on.
      Note that since server will never sent us a stream message bigger
      than VIR_NET_MESSAGE_LEGACY_PAYLOAD_MAX there's no point in
      sizing up the client buffer past this threshold.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      809d02ca
    • M
      virnetclientstream: Process stream messages later · 18944b7a
      Michal Privoznik 提交于
      There are two functions on the client that handle incoming stream
      data.  The first one virNetClientStreamQueuePacket() is a low
      level function that just processes the incoming stream data from
      the socket and stores it into an internal structure. This happens
      in the client event loop therefore the shorter the callbacks are,
      the better. The second function virNetClientStreamRecvPacket()
      then handles copying data from internal structure into a client
      provided buffer.
      Change introduced in this commit makes just that: new queue for
      incoming stream packets is introduced. Then instead of copying
      data into intermediate internal buffer and then copying them into
      user buffer, incoming stream messages are queue into the queue
      and data is copied just once - in the upper layer function
      virNetClientStreamRecvPacket(). In the end, there's just one
      copying of data and therefore shorter event loop callback. This
      should boost the performance which has proven to be the case in
      my testing.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      18944b7a
    • M
      Revert "rpc: Fix slow volume download (virsh vol-download)" · 435ee578
      Michal Privoznik 提交于
      This reverts commit d9c9e138.
      
      Unfortunately, things are going to be handled differently so this
      commit must go.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      435ee578
    • M
      tools: Fix connect command · 0c56d943
      Martin Kletzander 提交于
      The man page says: "(Re)-Connect to the hypervisor. When the shell is
      first started, this is automatically run with the URI parameter
      requested by the "-c" option on the command line."  However, if you run:
      
        virsh -c 'test://default' 'connect; uri'
      
      the output will not be 'test://default'.  That's because the 'connect'
      command does not care about any virsh-only related settings and if it is
      run without parameters, it connects with @uri == NULL.  Not only that
      doesn't comply to what the man page describes, but it also doesn't make
      sense.  It also means you aren't able to reconnect to whatever you are
      connected currently.
      
      So let's fix that in both virsh and virt-admin add a test case for it.
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      0c56d943
  2. 01 5月, 2016 2 次提交
  3. 30 4月, 2016 4 次提交
    • Y
      Fix minor typos in messages · 50fc4b4b
      Yuri Chornoivan 提交于
      Signed-off-by: NYuri Chornoivan <yurchor@ukr.net>
      50fc4b4b
    • L
      Revert "qemu domain allow to set ip address, peer address and route" · 9b643ae8
      Laine Stump 提交于
      This reverts commit 6e244c65, which
      added support to qemu for the "peer" attribute in domain interface <ip>
      elements.
      
      It's being removed temporarily for the release of libvirt 1.3.4
      because the feature doesn't work, and there are concerns that it may
      need to be modified in an externally visible manner which could create
      backward compatibility problems.
      
       Conflicts:
         tests/qemuxml2argvmock.c - a mock of virNetDevSetOnline() was added
         which may be assumed by other tests added since the original commit,
         so it isn't being reverted.
      9b643ae8
    • L
      Revert "lxc domain allow to set peer address" · 70aa318b
      Laine Stump 提交于
      This reverts commit afee47d0, which
      added support to lxc for the "peer" attribute in domain interface <ip>
      elements.
      
      It's being removed temporarily for the release of libvirt 1.3.4
      because the feature doesn't work, and there are concerns that it may
      need to be modified in an externally visible manner which could create
      backward compatibility problems.
      70aa318b
    • L
      Revert "libvirt domain xml allow to set peer address" · 1d14b13f
      Laine Stump 提交于
      This reverts commit 690969af, which
      added the domain config parts to support a "peer" attribute in domain
      interface <ip> elements.
      
      It's being removed temporarily for the release of libvirt 1.3.4
      because the feature doesn't work, and there are concerns that it may
      need to be modified in an externally visible manner which could create
      backward compatibility problems.
      1d14b13f
  4. 29 4月, 2016 3 次提交
    • B
      rpc: Don't leak fd via CreateXMLWithFiles · 5ba48584
      Ben Gray 提交于
      FD passing APIs like CreateXMLWithFiles or OpenGraphicsFD will leak
      file descriptors. The user passes in an fd, which is dup()'d in
      virNetClientProgramCall. The new fd is what is transfered to the
      server virNetClientIOWriteMessage.
      
      Once all the fds have been written though, the parent msg->fds list
      is immediately free'd, so the individual fds are never closed.
      
      This closes each FD as its send to the server, so all fds have been
      closed by the time msg->fds is free'd.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1159766
      5ba48584
    • M
      vz: fix disk enumeration · cdbbb93a
      Mikhail Feoktistov 提交于
      If we want to delete all disks for container or vm
      we should make a loop from 0 to NumberOfDisks and always
      use zero index in PrlVmCfg_GetHardDisk to get disk handle.
      When we delete first disk after that numbers of other disks
      will be changed, start from 0 to NumberOfDisks-1.
      That's why we should always use zero index.
      cdbbb93a
    • N
      virsh: Fix support for 64 migration options · 4d28d093
      Nikolay Shirokovskiy 提交于
      Add ULL suffix to all related operands of << or shift will give
      all zeros instead of correct mask.
      Signed-off-by: NNikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
      4d28d093
  5. 28 4月, 2016 3 次提交
  6. 27 4月, 2016 3 次提交
  7. 26 4月, 2016 21 次提交
    • C
      conf: Drop restrictions on rng backend path · 67f2b727
      Cole Robinson 提交于
      Currently we only allow /dev/random and /dev/hwrng as host input
      for <rng><backend model='random'/> device. This was added after
      various upstream discussions in commit 4932ef45
      
      However this restriction has generated quite a few complaints over
      the years, so a new discussion was initiated:
      
      http://www.redhat.com/archives/libvir-list/2016-April/msg00987.html
      
      Several people suggested removing the restriction, and nobody really
      spoke up to defend it. So this patch drops the path restriction
      entirely
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1074464
      67f2b727
    • C
      remote: Don't reject remote polkit if client lacks support · 84371303
      Cole Robinson 提交于
      If you compile a client --without-polkit, and connect to a URI that needs
      polkit auth, the connection will fail with:
      
      $ ./tools/virsh --connect qemu+ssh://crobinso@machine/system
      error: failed to connect to the hypervisor
      error: authentication failed: unsupported authentication type 2
      
      This is because the client side portion of the polkit handling is
      compiled out. However, nothing polkit specific is actually required
      of the client.
      
      Fix that error by unconditionally compiling the basic polkit client
      handling.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=635529
      84371303
    • A
      spec: Use proper indentation · a528ae7f
      Andrea Bolognani 提交于
      Commit 1d440008 added some code that was not indented properly
      and broke syntax-check. Fix it.
      a528ae7f
    • C
      spec: If installing default network, restart libvirtd · 1d440008
      Cole Robinson 提交于
      If libvirt-daemon-config-network is installed while libvirtd is already
      running, the daemon doesn't notice the network. Users then have to
      manually restart libvirtd (or reboot) to pick up the network.
      
      Instead let's trigger a daemon restart when the package is first installed.
      Then the default network is available immediately if libvirtd was already
      running.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=867546
      1d440008
    • C
      schema: Allow space character in disk vendor/product · 600a666c
      Cole Robinson 提交于
      The hex range already tried to allow for it, but it wasn't using
      the correct XML hex syntax. Fix it, and test it
      600a666c
    • A
      maint: Ignore all intermediate and generated man pages · 10ef8c66
      Andrea Bolognani 提交于
      Since commit 9b77ce63 we create a .in file while building all
      man pages, including those in the tools/ directory; update the
      ignore patterns to take this change into account.
      
      The new ignore patterns are generic enough that we can get rid of
      a few existing ones as well.
      10ef8c66
    • A
      apibuild: Fix method call · cb447371
      Andrea Bolognani 提交于
      cb447371
    • A
      apibuild: Introduce app class · 4a98ebb0
      Andrea Bolognani 提交于
      All top-level functions have been moved to this class.
      
      On top of that, the app.warning() method has been defined,
      so that calls to it - already present in rebuild() - can
      actually succeed.
      4a98ebb0
    • A
      apibuild: Add index.warning() method · ccaceab7
      Andrea Bolognani 提交于
      This method is used in eg. index.merge(), but is not defined
      anywhere. The implementation has been copied from docBuilder.
      ccaceab7
    • A
      docs: Pass relative paths to apibuild.py · 22a592a4
      Andrea Bolognani 提交于
      Since commit d195cffa, both $(srcdir) and $(abs_builddir)
      are passed to the apibuild.py script; however, since the
      former is a relative path and the latter an absolute one, the
      script might not be able to detect whether they point to the
      same location.
      
      Pass both as relative paths to avoid the issue.
      22a592a4
    • J
      secret: Change virSecretDef variable names · 662bf30c
      John Ferlan 提交于
      Change 'ephemeral' to 'isephemeral' and 'private' to 'isprivate' since
      both are bools.
      662bf30c
    • J
      secret: Introduce virSecretObjGetValue and virSecretObjGetValueSize · 43d3e3c1
      John Ferlan 提交于
      Introduce the final accessor's to _virSecretObject data and move the
      structure from virsecretobj.h to virsecretobj.c
      
      The virSecretObjSetValue logic will handle setting both the secret
      value and the value_size. Some slight adjustments to the error path
      over what was in secretSetValue were made.
      
      Additionally, a slight logic change in secretGetValue where we'll
      check for the internalFlags and error out before checking for
      and erroring out for a NULL secret->value. That way, it won't be
      obvious to anyone that the secret value wasn't set rather they'll
      just know they cannot get the secret value since it's private.
      43d3e3c1
    • J
      secret: Introduce virSecretObj{Get|Set}Def · 9e1e5621
      John Ferlan 提交于
      Introduce fetch and set accessor to the secretObj->def field for usage
      by the driver to avoid the driver needing to know the format of virSecretObj
      9e1e5621
    • J
      secret: Introduce virSecretObjSave{Config|Data} · ac9ffd60
      John Ferlan 提交于
      Move and rename the secretRewriteFile, secretSaveDef, and secretSaveValue
      from secret_driver to virsecretobj
      
      Need to make some slight adjustments since the secretSave* functions
      called secretEnsureDirectory, but otherwise mostly just a move of code.
      ac9ffd60
    • J
      secret: Introduce virSecretObjDelete{Config|Data} · d467ac07
      John Ferlan 提交于
      Move and rename secretDeleteSaved from secret_driver into virsecretobj and
      split it up into two parts since there is error path code that looks to
      just delete the secret data file
      d467ac07
    • J
      secret: Move and rename secretLoadAllConfigs · 85ec94f8
      John Ferlan 提交于
      Move to secret_conf.c and rename to virSecretLoadAllConfigs. Also includes
      moving/renaming the supporting virSecretLoad, virSecretLoadValue, and
      virSecretLoadValidateUUID.
      85ec94f8
    • J
      secret: Use the hashed virSecretObjList · 993f9128
      John Ferlan 提交于
      This patch replaces most of the guts of secret_driver.c with recently
      added secret_conf.c APIs in order manage secret lists and objects
      using the hashed virSecretObjList* lookup API's.
      993f9128
    • J
      secret: Introduce virSecretObjListGetUUIDs · bb1fba62
      John Ferlan 提交于
      Add function to return counted listed of uuids to from the hashed secrets
      object list. This will replace the guts of secretConnectListSecrets.
      bb1fba62
    • J
      secret: Introduce virSecretObjListExport · d12c6721
      John Ferlan 提交于
      Add function to return a "match" filtered list of secret objects. This
      function replaces the guts of secretConnectListAllSecrets.
      
      Need to also move and make global virSecretUsageIDForDef since it'll
      be used by both secret_driver.c and secret_conf.c
      d12c6721
    • J
      secret: Introduce virSecretObjListNumOfSecrets · 5249d076
      John Ferlan 提交于
      Add function to count the hashed secret obj list with filters. This
      will replace the guts of secret_driver's secretConnectNumOfSecrets.
      5249d076
    • J
      secret: Introduce virSecretObjListAdd* and virSecretObjListRemove · d4287b98
      John Ferlan 提交于
      Add the functions to add/remove elements from the hashed secret obj list.
      These will replace secret_driver functions secretAssignDef and secretObjRemove.
      
      The virSecretObjListAddLocked will perform the necessary lookups and
      decide whether to replace an existing hash entry or create a new one.
      This includes setting up the configPath and base64Path as well as being
      able to support the caller's need to restore from a previous definition
      in case something goes wrong in the caller.
      d4287b98