mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-11-09 15:00:07 +00:00
103 lines
2.9 KiB
HTML
103 lines
2.9 KiB
HTML
|
<?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>
|