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