[libvirt] [RFCv2 PoCv1 PATCH 00/15] Just Admin API

Martin Kletzander mkletzan at redhat.com
Thu Apr 16 14:46:10 UTC 2015


*** 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




More information about the libvir-list mailing list