1. 11 3月, 2016 5 次提交
  2. 08 3月, 2016 1 次提交
    • J
      Introduce job completed event · f2893001
      Jiri Denemark 提交于
      The VIR_DOMAIN_EVENT_ID_JOB_COMPLETED event will be triggered once a job
      (such as migration) finishes and it will contain statistics for the job
      as one would get by calling virDomainGetJobStats. Thanks to this event
      it is now possible to get statistics of a completed migration of a
      transient domain on the source host.
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      f2893001
  3. 03 3月, 2016 1 次提交
  4. 02 3月, 2016 1 次提交
    • J
      Libvirt: Add missing default value for config option max_queued_clients · b3a4b176
      Jason J. Herne 提交于
      Commit 1199edb1 added config option max_queued_clients and documented the
      default value as 1000 but never actually set that value. This patch sets the
      default value.
      
      This addresses an issue whereby the following error message is reported if too
      many migrations are started simultaneously:
      
      error: End of file while reading data: Ncat: Invalid argument.: Input/output error
      
      The problem is that too many ncat processes are spawned on the destination
      system. They all attempt to connect to the libvirt socket. Because the
      destination libvirtd cannot respond to the connect requests quickly enough we
      overrun the socket's pending connections queue.
      Signed-off-by: NJason J. Herne <jjherne@linux.vnet.ibm.com>
      Reviewed-by: NBoris Fiuczynski <fiuczy@linux.vnet.ibm.com>
      b3a4b176
  5. 01 3月, 2016 1 次提交
  6. 22 2月, 2016 1 次提交
    • M
      adminDaemonListServers: Don't leak @srv_names array · 702713af
      Michal Privoznik 提交于
      When getting a list of servers registered for a daemon, it's
      returned as a dynamically allocated array filled in with pointers
      to constant strings. Because the array is dynamic, it should be
      freed when no longer needed (but not the strings!). Even the
      function that creates the array suggests that.
      
      ==19446== 48 bytes in 3 blocks are definitely lost in loss record 821 of 1,034
      ==19446==    at 0x4C2C28E: realloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==19446==    by 0x54BAFC8: virReallocN (viralloc.c:245)
      ==19446==    by 0x54BB0BE: virExpandN (viralloc.c:294)
      ==19446==    by 0x54BB391: virInsertElementsN (viralloc.c:436)
      ==19446==    by 0x164E3D: virNetDaemonGetServerNames (virnetdaemon.c:217)
      ==19446==    by 0x15616F: adminDaemonListServers (admin_server.c:52)
      ==19446==    by 0x155B8C: adminDispatchConnectListServers (admin.c:151)
      ==19446==    by 0x155FD8: adminDispatchConnectListServersHelper (admin_dispatch.h:101)
      ==19446==    by 0x568E862: virNetServerProgramDispatchCall (virnetserverprogram.c:437)
      ==19446==    by 0x568E3C3: virNetServerProgramDispatch (virnetserverprogram.c:307)
      ==19446==    by 0x5687B5B: virNetServerProcessMsg (virnetserver.c:135)
      ==19446==    by 0x5687C1B: virNetServerHandleJob (virnetserver.c:156)
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      702713af
  7. 17 2月, 2016 3 次提交
  8. 03 2月, 2016 2 次提交
    • E
      util: Export remoteSerializeTypedParameters internally via util · 8cd1d546
      Erik Skultety 提交于
      Same as for deserializer, this method might get handy for admin one day.
      The major reason for this patch is to stay consistent with idea, i.e.
      when deserializer can be shared, why not serializer as well. The only
      problem to be solved was that the daemon side serializer uses a code
      snippet which handles sparse arrays returned by some APIs as well as
      removes any string parameters that can't be returned to older clients.
      This patch makes of the new virTypedParameterRemote datatype introduced
      by one of the pvious patches.
      8cd1d546
    • E
      util: Export remoteDeserializeTypedParameters internally via util · 0472cef6
      Erik Skultety 提交于
      Currently, the deserializer is hardcoded into remote_driver which makes
      it impossible for admin to use it. One way to achieve a shared implementation
      (besides moving the code to another module) would be pass @ret_params_val as a
      void pointer as opposed to the remote_typed_param pointer and add a new extra
      argument specifying which of those two protocols is being used and typecast
      the pointer at the function entry. An example from remote_protocol:
      
      struct remote_typed_param_value {
              int type;
              union {
                      int i;
                      u_int ui;
                      int64_t l;
                      uint64_t ul;
                      double d;
                      int b;
                      remote_nonnull_string s;
              } remote_typed_param_value_u;
      };
      typedef struct remote_typed_param_value remote_typed_param_value;
      
      struct remote_typed_param {
              remote_nonnull_string field;
              remote_typed_param_value value;
      };
      
      That would leave us with a bunch of if-then-elses that needed to be used across
      the method. This patch takes the other approach using the new datatype
      introduced in one of earlier commits.
      0472cef6
  9. 21 1月, 2016 1 次提交
  10. 11 1月, 2016 1 次提交
  11. 05 1月, 2016 1 次提交
    • L
      docs: update to properly reflect meaning of fields in log filter · 79e78725
      Laine Stump 提交于
      The documentation (and comment in libvirtd.conf) says that the text in
      a log filter is compared to the "source file name", and gives the
      example of "util/json", but this is not correct (at least not since
      commit 2835c1e7, possibly earlier). It is instead compared to the
      string given in the VIR_LOG_INIT() macro invocation at the top of each
      source file, which is always "similar to but not the same as" the
      source file name (in the example above, the proper name is
      "util.json", while the file name is "util/virjson.c"). This patch
      corrects the misstatement in both the documentation and in
      libvirtd.conf.
      79e78725
  12. 21 12月, 2015 1 次提交
    • E
      Revert "admin: Rename virAdmConnect to virAdmDaemon" · 3245e178
      Erik Skultety 提交于
      Commmit df8192aa introduced admin related rename and some minor
      (caused by automated approach, aka sed) and some more severe isues along with
      it. First reason to revert is the inconsistency with libvirt library.
      Although we deal with the daemon directly rather than with a specific
      hypervisor, we still do have a connection. That being said, contributors might
      get under the impression that AdmDaemonNew would spawn/start a new daemon
      (since it's admin API, why not...), or AdmDaemonClose would do the exact
      opposite or they might expect DaemonIsAlive report overall status of the daemon
      which definitely isn't the case.
      The second reason to revert this patch is renaming virt-admin client. The
      client tool does not necessarily have to reflect the names of the API's it's
      using in his internals. An example would be 's/vshAdmConnect/vshAdmDaemon'
      where noone can be certain of what the latter function really does. The former
      is quite expressive about some connection magic it performs, but the latter does
      not say anything, especially when vshAdmReconnect and vshAdmDisconnect were
      left untouched.
      3245e178
  13. 08 12月, 2015 1 次提交
    • D
      libvirtd: enable virtlockd/virtlogd socket activation on install · 5cce775e
      Daniel P. Berrange 提交于
      When someone does 'systemctl enable libvirtd.service' we should
      also enable virtlockd.socket/virtlogd.socket, so that they can
      be auto-activated if libvirtd tries to access the sockets.
      
      Without this, people have to manually enable the units themselves
      via 'systemctl enable virtdlogd.socket'.
      
      This also ensures that if distros uses  'systemctl preset' for
      enabling 'libvirtd.service', then the virtdlogd.socket gets
      enabled without having to wait for the distro to update their
      presets file.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      5cce775e
  14. 05 12月, 2015 1 次提交
  15. 01 12月, 2015 1 次提交
    • M
      admin: Rename virAdmConnect to virAdmDaemon · df8192aa
      Martin Kletzander 提交于
      virAdmConnect was named after virConnect, but after some discussions,
      most of the APIs called will be working with remote daemon and starting
      them virAdmDaemon will make more sense.  Only possibly controversal name
      is CloseCallback (de)registration, and connecting to the daemon (which
      will still be Open/Close), but even this makes sense if one thinks about
      the daemon being opened and closed, e.g. as file, etc.
      
      This way all the APIs working with the daemon will start with
      virAdmDaemon prefix, they will accept virAdmDaemonPtr as first parameter
      and that will better suit with other namings as well (virDomain*,
      virAdmServer*, etc.).
      
      Because in virt-admin, the connection name does not refer to a struct
      that would have a connect in its name, also adjust 'connname' in
      clients.  And because it is not used anywhere in the vsh code, move it
      from there into each client.
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      df8192aa
  16. 30 11月, 2015 1 次提交
    • E
      admin: Introduce virAdmConnectGetLibVersion · a474371f
      Erik Skultety 提交于
      Introduce a new API to get libvirt version. It is worth noting, that
      libvirt-admin and libvirt share the same version number. Unfortunately,
      our existing API isn't generic enough to be used with virAdmConnectPtr
      as well. Also this patch wires up this API to the virt-admin client
      as a generic cmdVersion command.
      a474371f
  17. 26 8月, 2015 1 次提交
  18. 20 8月, 2015 1 次提交
  19. 10 8月, 2015 1 次提交
    • M
      rpc: Remove keepalive_required option · a8743c39
      Martin Kletzander 提交于
      Since its introduction in 2011 (particularly in commit f4324e32),
      the option doesn't work.  It just effectively disables all incoming
      connections.  That's because the client private data that contain the
      'keepalive_supported' boolean, are initialized to zeroes so the bool is
      false and the only other place where the bool is used is when checking
      whether the client supports keepalive.  Thus, according to the server,
      no client supports keepalive.
      
      Removing this instead of fixing it is better because a) apparently
      nobody ever tried it since 2011 (4 years without one month) and b) we
      cannot know whether the client supports keepalive until we get a ping or
      pong keepalive packet.  And that won't happen until after we dispatched
      the ConnectOpen call.
      
      Another two reasons would be c) the keepalive_required was tracked on
      the server level, but keepalive_supported was in private data of the
      client as well as the check that was made in the remote layer, thus
      making all other instances of virNetServer miss this feature unless they
      all implemented it for themselves and d) we can always add it back in
      case there is a request and a use-case for it.
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      a8743c39
  20. 27 7月, 2015 1 次提交
    • M
      admin: Tiny cleanups · 7868f017
      Martin Kletzander 提交于
      First hunk changes the use of srcdir to top_srcdir so it complies with
      other rules in the Makefile.  Second one removes the need of
      remote_protocol.h in admin_protocol.h as it was suggested and worked in,
      but this one line was missed apparently.  Last one just removes the
      'remote' naming from admin protocol specification, just so it's cleaner.
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      7868f017
  21. 15 7月, 2015 1 次提交
  22. 28 6月, 2015 1 次提交
  23. 19 6月, 2015 1 次提交
    • M
      daemonSetupNetworking: Don't leak services · 058d18bd
      Michal Privoznik 提交于
      When setting up the daemon networking, new services are created. These
      services then have sockets to listen on. Once created, the service
      objects are added to corresponding server object. However, during that
      process, server increases reference counter of the service object. So,
      at the end of the function, we should decrease it again. This way the
      service objects will have only 1 reference, but that's okay since
      servers are the only objects having a reference.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      058d18bd
  24. 18 6月, 2015 2 次提交
    • P
      daemon: Add the admin service to the admin server only if it was allocated · d7d910d9
      Peter Krempa 提交于
      If the admin service is disabled it would not be allocated, but the NULL
      pointer still would be added to the admin server. Since
      virNetServerAddService would dereference it, the daemon would crash.
      
      Move the service registration into the block that allocates it.
      d7d910d9
    • M
      daemon: Don't just include admin RPC · 13e5ea8b
      Michal Privoznik 提交于
      So, it's a little paradox that we use the file twice. Firstly to build
      libvirt-admin.la (a client side of the Admin API), then once again to
      build the server side. Well, the problem is, this does not play nicely
      with the distclean since the file is generated. So while it's removed
      in the src/ the distclean running in daemon/ will not find the file
      and fail. The file is needed because it contains the RPC wrappers. So
      let's leave the client code as is and from the daemon/ just link the
      client library. The linker will find desired symbols and use them.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      13e5ea8b
  25. 17 6月, 2015 2 次提交
  26. 16 6月, 2015 5 次提交
  27. 11 6月, 2015 1 次提交