mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-26 23:55:23 +00:00
247e3a7275
libvirt-dbus is a new binding that wraps libvirt API into D-Bus calls. Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
103 lines
2.9 KiB
XML
103 lines
2.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE html>
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<body>
|
|
<h1>D-Bus API bindings</h1>
|
|
|
|
<ul id="toc"></ul>
|
|
|
|
<h2><a name="description">Description</a></h2>
|
|
|
|
<p>
|
|
libvirt-dbus wraps libvirt API to provide a high-level object-oriented
|
|
API better suited for dbus-based applications.
|
|
</p>
|
|
|
|
<h2><a name="git">GIT source repository</a></h2>
|
|
<p>
|
|
The D-Bus bindings source code is maintained in a
|
|
<a href="https://git-scm.com/">git</a> repository available on
|
|
<a href="https://libvirt.org/git/">libvirt.org</a>:
|
|
</p>
|
|
|
|
<pre>
|
|
git clone https://libvirt.org/git/libvirt-dbus.git
|
|
</pre>
|
|
|
|
<p>
|
|
They can also be browsed online:
|
|
</p>
|
|
|
|
<pre>
|
|
<a href="https://libvirt.org/git/?p=libvirt-dbus.git">https://libvirt.org/git/?p=libvirt-dbus.git</a>
|
|
</pre>
|
|
|
|
<h2><a name="usage">Usage</a></h2>
|
|
|
|
<p>
|
|
libvirt-dbus exports libvirt API using D-Bus objects with methods and
|
|
properties described by interfaces. Currently only local connection
|
|
to libvirt is exported and the list of supported drivers depends
|
|
on the type of the bus connection (session or system).
|
|
</p>
|
|
|
|
<p>
|
|
The name of the libvirt-dbus service is <code>org.libvirt</code>.
|
|
libvirt-dbus distributes an interface XML descriptions which can be
|
|
usually found at <code>/usr/share/dbus-1/interfaces/</code>.
|
|
</p>
|
|
|
|
<p>
|
|
By default unprivileged user has access only to the session D-Bus
|
|
connection. In order to allow specific user "foo" to access the system
|
|
D-Bus connection you need to create a file
|
|
<code>/etc/dbus-1/system.d/org.libvirt.conf</code> that contains:
|
|
</p>
|
|
|
|
<pre>
|
|
<?xml version="1.0"?>
|
|
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
|
|
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
|
|
|
|
<busconfig>
|
|
|
|
<policy user="foo">
|
|
<allow send_destination="org.libvirt"/>
|
|
</policy>
|
|
|
|
</busconfig>
|
|
</pre>
|
|
|
|
<p>
|
|
To get a list of supported drivers for the specific bus connection
|
|
you can run these commands (not all drivers may be available on
|
|
the host):
|
|
</p>
|
|
|
|
<pre>
|
|
gdbus introspect --xml --session --dest org.libvirt --object-path /org/libvirt
|
|
gdbus introspect --xml --system --dest org.libvirt --object-path /org/libvirt
|
|
</pre>
|
|
|
|
<p>
|
|
Every object is introspectable so you can get a list of available
|
|
interfaces with methods, signals and properties running this command:
|
|
</p>
|
|
|
|
<pre>
|
|
gdbus introspect --xml --system --dest org.libvirt --object-path /org/libvirt/QEMU
|
|
</pre>
|
|
|
|
<p>
|
|
To get a list of domains for specific connection driver you can run
|
|
this command:
|
|
</p>
|
|
|
|
<pre>
|
|
gdbus call --system --dest org.libvirt --object-path /org/libvirt/QEMU \
|
|
--method org.libvirt.Connect.ListDomains 0
|
|
</pre>
|
|
|
|
</body>
|
|
</html>
|