[libvirt] Remotable Libvirt

Daniel P. Berrange berrange at redhat.com
Fri May 26 08:19:09 UTC 2017

On Thu, May 25, 2017 at 10:26:47AM -0700, Peter wrote:
> As far as I know libvirt doesn't currently have a remoteable API. It does
> have a daemon that communicates with clients via a XDR RPC.
> (https://libvirt.org/internals/rpc.html) However from what I'm hearing the
> RPC is considered an internal implementation and shouldn't be used by
> external applications. Is that still the case? Is there any chance of
> getting talking the daemon directly using the XDR standard for a subset of
> methods blessed as part of the externally supported API?

That's correct - the XDR protocol is a private implementation detail
between the libvirtd daemon and libvirt client library. The /only/
supported way of using libvirt is via the client library API, or one
of the many language bindings written on top of it. A number of the
libvirt virtualization drivers are implemented entirely in the client
library and don't involve libvirtd at all.

> An alternative is to implement a standards based remotable API, using
> something like dbus or REST, that can be used by external applications.
> I imagine that this would be at a bit of a higher level than the current RPC
> and contain at least some of the logic around the actions it performs rather
> than being a direct passthrough to the daemon.
> Of course that is a pretty big undertaking and would, in my opinion, only be
> worth it if there is broader interest in the community and use cases beyond
> what cockpit would like to.

I imagine any DBus API would be a pretty straightforward 1-1 mapping from
the C api to DBus methods & signals. For a REST API I think you would quite
possibly want to build something higher level which will involve more design

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

More information about the libvir-list mailing list