[libvirt] [PATCH v2 00/11] Add admin protocol support for virtlogd/virtlockd

Daniel P. Berrange posted 11 patches 6 years, 2 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20180123132347.21944-1-berrange@redhat.com
.gitignore                                         |   1 +
cfg.mk                                             |  10 +-
daemon/Makefile.am                                 |  33 +---
daemon/libvirtd.c                                  |  10 +-
daemon/libvirtd.h                                  |  10 --
daemon/remote.c                                    |   6 +-
daemon/remote.h                                    |   6 +-
po/POTFILES.in                                     |   6 +-
src/Makefile.am                                    |  33 +++-
{daemon => src/admin}/admin_server.c               |   4 +-
{daemon => src/admin}/admin_server.h               |   6 +-
.../admin.c => src/admin/admin_server_dispatch.c   |  48 ++++--
.../admin.h => src/admin/admin_server_dispatch.h   |  18 +-
src/libvirt-admin.c                                |  23 ++-
src/libvirt_private.syms                           |   1 +
src/libvirt_remote.syms                            |   2 +-
src/locking/lock_daemon.c                          | 186 +++++++++++++++-----
src/locking/lock_daemon_config.c                   |   3 +
src/locking/lock_daemon_config.h                   |   1 +
src/locking/test_virtlockd.aug.in                  |   4 +
src/locking/virtlockd-admin.socket.in              |  10 ++
src/locking/virtlockd.aug                          |   1 +
src/locking/virtlockd.conf                         |   6 +
src/locking/virtlockd.service.in                   |   1 +
src/logging/log_daemon.c                           | 188 ++++++++++++++++-----
src/logging/log_daemon_config.c                    |   3 +
src/logging/log_daemon_config.h                    |   1 +
src/logging/test_virtlogd.aug.in                   |   4 +
src/logging/virtlogd-admin.socket.in               |  10 ++
src/logging/virtlogd.aug                           |   1 +
src/logging/virtlogd.service.in                    |   1 +
src/rpc/virnetdaemon.c                             | 164 ++++++++++--------
src/rpc/virnetdaemon.h                             |  20 ++-
src/rpc/virnetserver.c                             |   6 +-
src/rpc/virnetserver.h                             |   7 +-
src/rpc/virnetserverclient.c                       |  14 +-
src/rpc/virnetserverclient.h                       |  23 ++-
src/rpc/virnetserverprogram.h                      |   3 -
src/util/virutil.c                                 |  45 +++++
src/util/virutil.h                                 |   1 +
tests/virnetdaemontest.c                           |  37 +++-
41 files changed, 670 insertions(+), 287 deletions(-)
rename {daemon => src/admin}/admin_server.c (99%)
rename {daemon => src/admin}/admin_server.h (96%)
rename daemon/admin.c => src/admin/admin_server_dispatch.c (92%)
rename daemon/admin.h => src/admin/admin_server_dispatch.h (59%)
create mode 100644 src/locking/virtlockd-admin.socket.in
create mode 100644 src/logging/virtlogd-admin.socket.in
[libvirt] [PATCH v2 00/11] Add admin protocol support for virtlogd/virtlockd
Posted by Daniel P. Berrange 6 years, 2 months ago
The initial admin protocol support was only integrated into libvirtd.
This series extracts that code so that it is reusable with all the
daemons we have (and more than we'll get).

In v2:

 - Fixed completely broken post-exec restart support for admin servers
 - Misc fixes from v1 review

Daniel P. Berrange (11):
  admin: move admins server impl/dispatch into src/admin directory
  libvirtd: rename virNetServerClient callback impls to match type names
  admin: add support for post-exec restart callbacks
  util: add virGetUNIXSocketPath helper
  rpc: clarify "void *" values passed to client callbacks
  rpc: pass virNetServer to post-exec restart callback in typesafe
    manner
  rpc: annotate various parameters as being required to be non-NULL
  rpc: add method for checking if a named server exists
  rpc: refactor virNetServer setup for post-exec restarts
  logd: add support for admin protocol in virtlogd
  lockd: add support for admin protocol in virtlockd

 .gitignore                                         |   1 +
 cfg.mk                                             |  10 +-
 daemon/Makefile.am                                 |  33 +---
 daemon/libvirtd.c                                  |  10 +-
 daemon/libvirtd.h                                  |  10 --
 daemon/remote.c                                    |   6 +-
 daemon/remote.h                                    |   6 +-
 po/POTFILES.in                                     |   6 +-
 src/Makefile.am                                    |  33 +++-
 {daemon => src/admin}/admin_server.c               |   4 +-
 {daemon => src/admin}/admin_server.h               |   6 +-
 .../admin.c => src/admin/admin_server_dispatch.c   |  48 ++++--
 .../admin.h => src/admin/admin_server_dispatch.h   |  18 +-
 src/libvirt-admin.c                                |  23 ++-
 src/libvirt_private.syms                           |   1 +
 src/libvirt_remote.syms                            |   2 +-
 src/locking/lock_daemon.c                          | 186 +++++++++++++++-----
 src/locking/lock_daemon_config.c                   |   3 +
 src/locking/lock_daemon_config.h                   |   1 +
 src/locking/test_virtlockd.aug.in                  |   4 +
 src/locking/virtlockd-admin.socket.in              |  10 ++
 src/locking/virtlockd.aug                          |   1 +
 src/locking/virtlockd.conf                         |   6 +
 src/locking/virtlockd.service.in                   |   1 +
 src/logging/log_daemon.c                           | 188 ++++++++++++++++-----
 src/logging/log_daemon_config.c                    |   3 +
 src/logging/log_daemon_config.h                    |   1 +
 src/logging/test_virtlogd.aug.in                   |   4 +
 src/logging/virtlogd-admin.socket.in               |  10 ++
 src/logging/virtlogd.aug                           |   1 +
 src/logging/virtlogd.service.in                    |   1 +
 src/rpc/virnetdaemon.c                             | 164 ++++++++++--------
 src/rpc/virnetdaemon.h                             |  20 ++-
 src/rpc/virnetserver.c                             |   6 +-
 src/rpc/virnetserver.h                             |   7 +-
 src/rpc/virnetserverclient.c                       |  14 +-
 src/rpc/virnetserverclient.h                       |  23 ++-
 src/rpc/virnetserverprogram.h                      |   3 -
 src/util/virutil.c                                 |  45 +++++
 src/util/virutil.h                                 |   1 +
 tests/virnetdaemontest.c                           |  37 +++-
 41 files changed, 670 insertions(+), 287 deletions(-)
 rename {daemon => src/admin}/admin_server.c (99%)
 rename {daemon => src/admin}/admin_server.h (96%)
 rename daemon/admin.c => src/admin/admin_server_dispatch.c (92%)
 rename daemon/admin.h => src/admin/admin_server_dispatch.h (59%)
 create mode 100644 src/locking/virtlockd-admin.socket.in
 create mode 100644 src/logging/virtlogd-admin.socket.in

-- 
2.14.3

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2 00/11] Add admin protocol support for virtlogd/virtlockd
Posted by Michal Privoznik 6 years, 1 month ago
On 01/23/2018 02:23 PM, Daniel P. Berrange wrote:
> The initial admin protocol support was only integrated into libvirtd.
> This series extracts that code so that it is reusable with all the
> daemons we have (and more than we'll get).
> 
> In v2:
> 
>  - Fixed completely broken post-exec restart support for admin servers
>  - Misc fixes from v1 review
> 
> Daniel P. Berrange (11):
>   admin: move admins server impl/dispatch into src/admin directory
>   libvirtd: rename virNetServerClient callback impls to match type names
>   admin: add support for post-exec restart callbacks
>   util: add virGetUNIXSocketPath helper
>   rpc: clarify "void *" values passed to client callbacks
>   rpc: pass virNetServer to post-exec restart callback in typesafe
>     manner
>   rpc: annotate various parameters as being required to be non-NULL
>   rpc: add method for checking if a named server exists
>   rpc: refactor virNetServer setup for post-exec restarts
>   logd: add support for admin protocol in virtlogd
>   lockd: add support for admin protocol in virtlockd
> 
>  .gitignore                                         |   1 +
>  cfg.mk                                             |  10 +-
>  daemon/Makefile.am                                 |  33 +---
>  daemon/libvirtd.c                                  |  10 +-
>  daemon/libvirtd.h                                  |  10 --
>  daemon/remote.c                                    |   6 +-
>  daemon/remote.h                                    |   6 +-
>  po/POTFILES.in                                     |   6 +-
>  src/Makefile.am                                    |  33 +++-
>  {daemon => src/admin}/admin_server.c               |   4 +-
>  {daemon => src/admin}/admin_server.h               |   6 +-
>  .../admin.c => src/admin/admin_server_dispatch.c   |  48 ++++--
>  .../admin.h => src/admin/admin_server_dispatch.h   |  18 +-
>  src/libvirt-admin.c                                |  23 ++-
>  src/libvirt_private.syms                           |   1 +
>  src/libvirt_remote.syms                            |   2 +-
>  src/locking/lock_daemon.c                          | 186 +++++++++++++++-----
>  src/locking/lock_daemon_config.c                   |   3 +
>  src/locking/lock_daemon_config.h                   |   1 +
>  src/locking/test_virtlockd.aug.in                  |   4 +
>  src/locking/virtlockd-admin.socket.in              |  10 ++
>  src/locking/virtlockd.aug                          |   1 +
>  src/locking/virtlockd.conf                         |   6 +
>  src/locking/virtlockd.service.in                   |   1 +
>  src/logging/log_daemon.c                           | 188 ++++++++++++++++-----
>  src/logging/log_daemon_config.c                    |   3 +
>  src/logging/log_daemon_config.h                    |   1 +
>  src/logging/test_virtlogd.aug.in                   |   4 +
>  src/logging/virtlogd-admin.socket.in               |  10 ++
>  src/logging/virtlogd.aug                           |   1 +
>  src/logging/virtlogd.service.in                    |   1 +
>  src/rpc/virnetdaemon.c                             | 164 ++++++++++--------
>  src/rpc/virnetdaemon.h                             |  20 ++-
>  src/rpc/virnetserver.c                             |   6 +-
>  src/rpc/virnetserver.h                             |   7 +-
>  src/rpc/virnetserverclient.c                       |  14 +-
>  src/rpc/virnetserverclient.h                       |  23 ++-
>  src/rpc/virnetserverprogram.h                      |   3 -
>  src/util/virutil.c                                 |  45 +++++
>  src/util/virutil.h                                 |   1 +
>  tests/virnetdaemontest.c                           |  37 +++-
>  41 files changed, 670 insertions(+), 287 deletions(-)
>  rename {daemon => src/admin}/admin_server.c (99%)
>  rename {daemon => src/admin}/admin_server.h (96%)
>  rename daemon/admin.c => src/admin/admin_server_dispatch.c (92%)
>  rename daemon/admin.h => src/admin/admin_server_dispatch.h (59%)
>  create mode 100644 src/locking/virtlockd-admin.socket.in
>  create mode 100644 src/logging/virtlogd-admin.socket.in
> 

ACK if you fix those two alignments in 10/11 and 11/11.

Michal

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2 00/11] Add admin protocol support for virtlogd/virtlockd
Posted by Peter Krempa 6 years, 1 month ago
On Tue, Jan 23, 2018 at 13:23:36 +0000, Daniel Berrange wrote:
> The initial admin protocol support was only integrated into libvirtd.
> This series extracts that code so that it is reusable with all the
> daemons we have (and more than we'll get).
> 
> In v2:
> 
>  - Fixed completely broken post-exec restart support for admin servers
>  - Misc fixes from v1 review
> 
> Daniel P. Berrange (11):
>   admin: move admins server impl/dispatch into src/admin directory
>   libvirtd: rename virNetServerClient callback impls to match type names
>   admin: add support for post-exec restart callbacks
>   util: add virGetUNIXSocketPath helper
>   rpc: clarify "void *" values passed to client callbacks
>   rpc: pass virNetServer to post-exec restart callback in typesafe
>     manner
>   rpc: annotate various parameters as being required to be non-NULL
>   rpc: add method for checking if a named server exists
>   rpc: refactor virNetServer setup for post-exec restarts
>   logd: add support for admin protocol in virtlogd
>   lockd: add support for admin protocol in virtlockd

This series (probably) breaks build on my gentoo box:

  CC       util/libvirt_setuid_rpc_client_la-viralloc.lo
  CC       util/libvirt_setuid_rpc_client_la-virarch.lo
In file included from ./rpc/virnetmessage.h:24:0,
                 from ./rpc/virnetserverprogram.h:27,
                 from ./rpc/virnetdaemon.h:33,
                 from admin/admin_server.h:27,
                 from admin/admin_server.c:26:
./rpc/virnetprotocol.h:9:21: fatal error: rpc/rpc.h: No such file or directory
 #include <rpc/rpc.h>
                     ^
compilation terminated.
make[3]: *** [Makefile:9269: admin/libvirt_driver_admin_la-admin_server.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
In file included from admin/admin_protocol.c:7:0:
admin/admin_protocol.h:9:21: fatal error: rpc/rpc.h: No such file or directory
 #include <rpc/rpc.h>
                     ^
compilation terminated.
make[3]: *** [Makefile:9262: admin/libvirt_driver_admin_la-admin_protocol.lo] Error 1
In file included from ./rpc/virnetmessage.h:24:0,
                 from ./rpc/virnetserverprogram.h:27,
                 from admin/admin_server_dispatch.h:26,
                 from admin/admin_server_dispatch.c:28:
./rpc/virnetprotocol.h:9:21: fatal error: rpc/rpc.h: No such file or directory
 #include <rpc/rpc.h>
                     ^
compilation terminated.
make[3]: *** [Makefile:9276: admin/libvirt_driver_admin_la-admin_server_dispatch.lo] Error 1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2 00/11] Add admin protocol support for virtlogd/virtlockd
Posted by Daniel P. Berrangé 6 years, 1 month ago
On Wed, Jan 31, 2018 at 06:01:10PM +0100, Peter Krempa wrote:
> On Tue, Jan 23, 2018 at 13:23:36 +0000, Daniel Berrange wrote:
> > The initial admin protocol support was only integrated into libvirtd.
> > This series extracts that code so that it is reusable with all the
> > daemons we have (and more than we'll get).
> > 
> > In v2:
> > 
> >  - Fixed completely broken post-exec restart support for admin servers
> >  - Misc fixes from v1 review
> > 
> > Daniel P. Berrange (11):
> >   admin: move admins server impl/dispatch into src/admin directory
> >   libvirtd: rename virNetServerClient callback impls to match type names
> >   admin: add support for post-exec restart callbacks
> >   util: add virGetUNIXSocketPath helper
> >   rpc: clarify "void *" values passed to client callbacks
> >   rpc: pass virNetServer to post-exec restart callback in typesafe
> >     manner
> >   rpc: annotate various parameters as being required to be non-NULL
> >   rpc: add method for checking if a named server exists
> >   rpc: refactor virNetServer setup for post-exec restarts
> >   logd: add support for admin protocol in virtlogd
> >   lockd: add support for admin protocol in virtlockd
> 
> This series (probably) breaks build on my gentoo box:
> 
>   CC       util/libvirt_setuid_rpc_client_la-viralloc.lo
>   CC       util/libvirt_setuid_rpc_client_la-virarch.lo
> In file included from ./rpc/virnetmessage.h:24:0,
>                  from ./rpc/virnetserverprogram.h:27,
>                  from ./rpc/virnetdaemon.h:33,
>                  from admin/admin_server.h:27,
>                  from admin/admin_server.c:26:
> ./rpc/virnetprotocol.h:9:21: fatal error: rpc/rpc.h: No such file or directory
>  #include <rpc/rpc.h>
>                      ^
> compilation terminated.
> make[3]: *** [Makefile:9269: admin/libvirt_driver_admin_la-admin_server.lo] Error 1
> make[3]: *** Waiting for unfinished jobs....
> In file included from admin/admin_protocol.c:7:0:
> admin/admin_protocol.h:9:21: fatal error: rpc/rpc.h: No such file or directory
>  #include <rpc/rpc.h>
>                      ^
> compilation terminated.
> make[3]: *** [Makefile:9262: admin/libvirt_driver_admin_la-admin_protocol.lo] Error 1
> In file included from ./rpc/virnetmessage.h:24:0,
>                  from ./rpc/virnetserverprogram.h:27,
>                  from admin/admin_server_dispatch.h:26,
>                  from admin/admin_server_dispatch.c:28:
> ./rpc/virnetprotocol.h:9:21: fatal error: rpc/rpc.h: No such file or directory
>  #include <rpc/rpc.h>
>                      ^
> compilation terminated.
> make[3]: *** [Makefile:9276: admin/libvirt_driver_admin_la-admin_server_dispatch.lo] Error 1


Can you tell me if this fixes it:

diff --git a/src/Makefile.am b/src/Makefile.am
index a9182d29af..79adc9ba51 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -2335,6 +2335,7 @@ libvirt_driver_admin_la_SOURCES = \
                $(NULL)
 libvirt_driver_admin_la_CFLAGS = \
                $(AM_CFLAGS) \
+               $(XDR_CFLAGS) \
                -I$(top_srcdir)/src/util \
                -I$(top_srcdir)/src/admin \
                $(NULL)

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2 00/11] Add admin protocol support for virtlogd/virtlockd
Posted by Daniel P. Berrangé 6 years, 1 month ago
On Wed, Jan 31, 2018 at 05:15:51PM +0000, Daniel P. Berrangé wrote:
> On Wed, Jan 31, 2018 at 06:01:10PM +0100, Peter Krempa wrote:
> > On Tue, Jan 23, 2018 at 13:23:36 +0000, Daniel Berrange wrote:
> > > The initial admin protocol support was only integrated into libvirtd.
> > > This series extracts that code so that it is reusable with all the
> > > daemons we have (and more than we'll get).
> > > 
> > > In v2:
> > > 
> > >  - Fixed completely broken post-exec restart support for admin servers
> > >  - Misc fixes from v1 review
> > > 
> > > Daniel P. Berrange (11):
> > >   admin: move admins server impl/dispatch into src/admin directory
> > >   libvirtd: rename virNetServerClient callback impls to match type names
> > >   admin: add support for post-exec restart callbacks
> > >   util: add virGetUNIXSocketPath helper
> > >   rpc: clarify "void *" values passed to client callbacks
> > >   rpc: pass virNetServer to post-exec restart callback in typesafe
> > >     manner
> > >   rpc: annotate various parameters as being required to be non-NULL
> > >   rpc: add method for checking if a named server exists
> > >   rpc: refactor virNetServer setup for post-exec restarts
> > >   logd: add support for admin protocol in virtlogd
> > >   lockd: add support for admin protocol in virtlockd
> > 
> > This series (probably) breaks build on my gentoo box:
> > 
> >   CC       util/libvirt_setuid_rpc_client_la-viralloc.lo
> >   CC       util/libvirt_setuid_rpc_client_la-virarch.lo
> > In file included from ./rpc/virnetmessage.h:24:0,
> >                  from ./rpc/virnetserverprogram.h:27,
> >                  from ./rpc/virnetdaemon.h:33,
> >                  from admin/admin_server.h:27,
> >                  from admin/admin_server.c:26:
> > ./rpc/virnetprotocol.h:9:21: fatal error: rpc/rpc.h: No such file or directory
> >  #include <rpc/rpc.h>
> >                      ^
> > compilation terminated.
> > make[3]: *** [Makefile:9269: admin/libvirt_driver_admin_la-admin_server.lo] Error 1
> > make[3]: *** Waiting for unfinished jobs....
> > In file included from admin/admin_protocol.c:7:0:
> > admin/admin_protocol.h:9:21: fatal error: rpc/rpc.h: No such file or directory
> >  #include <rpc/rpc.h>
> >                      ^
> > compilation terminated.
> > make[3]: *** [Makefile:9262: admin/libvirt_driver_admin_la-admin_protocol.lo] Error 1
> > In file included from ./rpc/virnetmessage.h:24:0,
> >                  from ./rpc/virnetserverprogram.h:27,
> >                  from admin/admin_server_dispatch.h:26,
> >                  from admin/admin_server_dispatch.c:28:
> > ./rpc/virnetprotocol.h:9:21: fatal error: rpc/rpc.h: No such file or directory
> >  #include <rpc/rpc.h>
> >                      ^
> > compilation terminated.
> > make[3]: *** [Makefile:9276: admin/libvirt_driver_admin_la-admin_server_dispatch.lo] Error 1
> 
> 
> Can you tell me if this fixes it:
> 
> diff --git a/src/Makefile.am b/src/Makefile.am
> index a9182d29af..79adc9ba51 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -2335,6 +2335,7 @@ libvirt_driver_admin_la_SOURCES = \
>                 $(NULL)
>  libvirt_driver_admin_la_CFLAGS = \
>                 $(AM_CFLAGS) \
> +               $(XDR_CFLAGS) \
>                 -I$(top_srcdir)/src/util \
>                 -I$(top_srcdir)/src/admin \
>                 $(NULL)

I found this reproducable on Fedora rawhide too, so was able to validate
this fix, and pushed it under build breaker rule

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list