*** BLURB *** ... Just kidding :) Sooo... After very very VERY long time, here's a draft of an admin interface that is supposed to open up new possibilities to be done on a live daemon. The aim here is to create some first inches of that API in order to open up the possibility of new API function creation to more people. I already spent so much time explaining so much of that that I don't know what else to point at in here. Maybe the fact that last three patches are just an example on how this might work. Of course there won't be any functions like listClientIDs with the need of getting each client info by another API. There's going to be e.g. virAdmClientInfo and virAdmGetClients() will return the list of them, etc. Long story short, let's not repeat past mistakes ;) With all that said, feel free to hate, love, comment or just try out compiling this series and let me know how many things I've missed and screwed up (hopefully zero). Martin Kletzander (15): util: add virJSONValueCopy util: Add virabstracts file for keeping abstract classes datatypes: Use abstract connect class in virConnect Break virNetServer into virNetSubServers 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 virNetSubServerGetNClients admin: Add virAdmHello function Example virt-admin .gitignore | 5 + Makefile.am | 4 +- cfg.mk | 11 +- configure.ac | 19 +- daemon/Makefile.am | 33 +- daemon/admin_server.c | 119 +++++ daemon/admin_server.h | 36 ++ daemon/libvirtd-config.c | 5 +- daemon/libvirtd-config.h | 1 + daemon/libvirtd.aug | 1 + daemon/libvirtd.c | 138 ++++-- daemon/libvirtd.conf | 8 + daemon/libvirtd.h | 14 +- daemon/remote.c | 194 ++++----- daemon/test_libvirtd.aug.in | 1 + docs/Makefile.am | 23 +- docs/apibuild.py | 10 +- include/libvirt/Makefile.am | 6 +- include/libvirt/libvirt-admin.h | 63 +++ include/libvirt/virterror.h | 3 +- libvirt-admin.pc.in | 13 + libvirt.spec.in | 10 + po/POTFILES.in | 3 + src/Makefile.am | 134 +++++- src/admin/admin_protocol.x | 73 ++++ src/admin_protocol-structs | 17 + src/datatypes.c | 39 +- src/datatypes.h | 45 +- src/internal.h | 1 + src/libvirt-admin.c | 363 ++++++++++++++++ src/libvirt-host.c | 3 +- src/libvirt_admin.syms | 19 + src/libvirt_private.syms | 6 + src/libvirt_remote.syms | 17 +- src/locking/lock_daemon.c | 40 +- src/locking/lock_daemon_dispatch.c | 18 +- src/lxc/lxc_controller.c | 18 +- src/rpc/gendispatch.pl | 141 +++--- src/rpc/virnetserver.c | 859 +++++++++++++------------------------ src/rpc/virnetserver.h | 61 +-- src/rpc/virnetserverprogram.c | 12 +- src/rpc/virnetserverprogram.h | 9 +- src/rpc/virnetsubserver.c | 672 +++++++++++++++++++++++++++++ src/rpc/virnetsubserver.h | 78 ++++ src/util/virabstracts.c | 100 +++++ src/util/virabstracts.h | 57 +++ src/util/virerror.c | 95 ++-- src/util/virerror.h | 4 +- src/util/virjson.c | 65 ++- src/util/virjson.h | 4 +- tests/confdata/libvirtd.conf | 6 + tests/confdata/libvirtd.out | 5 + tests/jsontest.c | 111 +++++ tools/virt-admin/Makefile.am | 70 +++ tools/virt-admin/virt-admin.c | 68 +++ tools/virt-admin/virt-admin.pod | 43 ++ 56 files changed, 3092 insertions(+), 881 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/virnetsubserver.c create mode 100644 src/rpc/virnetsubserver.h create mode 100644 src/util/virabstracts.c create mode 100644 src/util/virabstracts.h 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.3.5 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list