This is a real post for an Admin API to get in. Everything discussed in previous posts should be a addressed. I'll start a discussion later on today about the ideas for the APIs to be added and the general near-future desing moves. I'm also keeping the last three example patches in so you can try that it works. Martin Kletzander (13): Move daemon-related parts of virNetServer to virNetDaemon tests: Adapt virnetservertest to daemon refactor Teach gendispatch how to handle admin dispatching files Add admin protocol Build client headers for admin protocol Add admin error domain Add libvirt-admin library Add XML files with admin API specification Add configuration options for permissions on daemon's admin socket Add support for admin API in libvirt daemon rpc: Add virNetServerGetNClients admin: Add virAdmHello function Example virt-admin .gitignore | 5 + Makefile.am | 7 +- cfg.mk | 9 +- configure.ac | 12 +- daemon/Makefile.am | 32 +- daemon/admin_server.c | 140 ++++ daemon/admin_server.h | 36 + daemon/libvirtd-config.c | 27 +- daemon/libvirtd-config.h | 13 +- daemon/libvirtd.aug | 13 + daemon/libvirtd.c | 205 ++++-- daemon/libvirtd.conf | 24 + daemon/libvirtd.h | 14 +- daemon/test_libvirtd.aug.in | 9 + docs/Makefile.am | 23 +- docs/apibuild.py | 10 +- docs/internals.html.in | 4 +- docs/internals/rpc.html.in | 7 + include/libvirt/Makefile.am | 4 +- include/libvirt/libvirt-admin.h | 63 ++ include/libvirt/virterror.h | 3 +- libvirt-admin.pc.in | 13 + libvirt.spec.in | 21 + po/POTFILES.in | 4 + src/Makefile.am | 75 ++- src/admin/admin_protocol.x | 91 +++ src/admin_protocol-structs | 15 + src/datatypes.c | 30 + src/datatypes.h | 37 + src/internal.h | 1 + src/libvirt-admin.c | 412 ++++++++++++ src/libvirt_admin.syms | 20 + src/libvirt_remote.syms | 31 +- src/locking/lock_daemon.c | 75 ++- src/locking/lock_daemon_config.c | 2 +- src/locking/lock_daemon_dispatch.c | 4 +- src/lxc/lxc_controller.c | 65 +- src/rpc/gendispatch.pl | 254 +++---- src/rpc/virnetdaemon.c | 749 +++++++++++++++++++++ src/rpc/virnetdaemon.h | 82 +++ src/rpc/virnetserver.c | 530 ++------------- src/rpc/virnetserver.h | 46 +- src/rpc/virnetserverprogram.h | 3 + src/util/virerror.c | 1 + tests/Makefile.am | 10 +- tests/confdata/libvirtd.conf | 6 + tests/confdata/libvirtd.out | 5 + .../{virnetserverdata => virnetdaemondata}/README | 0 .../virnetdaemondata/input-data-admin-nomdns.json | 126 ++++ .../input-data-anon-clients.json | 0 .../input-data-initial-nomdns.json} | 1 - .../input-data-initial.json | 0 .../virnetdaemondata/output-data-admin-nomdns.json | 128 ++++ .../virnetdaemondata/output-data-anon-clients.json | 66 ++ .../output-data-initial-nomdns.json | 66 ++ tests/virnetdaemondata/output-data-initial.json | 67 ++ tests/{virnetservertest.c => virnetdaemontest.c} | 70 +- tests/virnetserverdata/output-data-initial.json | 63 -- tools/virt-admin/Makefile.am | 69 ++ tools/virt-admin/virt-admin.c | 72 ++ tools/virt-admin/virt-admin.pod | 43 ++ 61 files changed, 3180 insertions(+), 833 deletions(-) create mode 100644 daemon/admin_server.c create mode 100644 daemon/admin_server.h create mode 100644 include/libvirt/libvirt-admin.h create mode 100644 libvirt-admin.pc.in create mode 100644 src/admin/admin_protocol.x create mode 100644 src/admin_protocol-structs create mode 100644 src/libvirt-admin.c create mode 100644 src/libvirt_admin.syms create mode 100644 src/rpc/virnetdaemon.c create mode 100644 src/rpc/virnetdaemon.h rename tests/{virnetserverdata => virnetdaemondata}/README (100%) create mode 100644 tests/virnetdaemondata/input-data-admin-nomdns.json rename tests/{virnetserverdata => virnetdaemondata}/input-data-anon-clients.json (100%) rename tests/{virnetserverdata/output-data-anon-clients.json => virnetdaemondata/input-data-initial-nomdns.json} (97%) rename tests/{virnetserverdata => virnetdaemondata}/input-data-initial.json (100%) create mode 100644 tests/virnetdaemondata/output-data-admin-nomdns.json create mode 100644 tests/virnetdaemondata/output-data-anon-clients.json create mode 100644 tests/virnetdaemondata/output-data-initial-nomdns.json create mode 100644 tests/virnetdaemondata/output-data-initial.json rename tests/{virnetservertest.c => virnetdaemontest.c} (84%) delete mode 100644 tests/virnetserverdata/output-data-initial.json create mode 100644 tools/virt-admin/Makefile.am create mode 100644 tools/virt-admin/virt-admin.c create mode 100644 tools/virt-admin/virt-admin.pod -- 2.4.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list