*** NOT FOR UPSTREAM MERGE ***
This is pure RFC, that's why it contains just code without any documentation,
RNG schemas, tests, ..., with sparse commit messages. I just want to make sure
I'm on the right track this time.
BTW: The ACL issue on the command is still not resolved and honestly, I've no
solution. Long story short, with this API I'm introducing users with RO
connection can execute arbitrary files on the host. Isn't that just nice?
So, what you should see after these patches are applied? Something like this:
virsh # domcapabilities /usr/bin/qemu-system-x86_64 kvm
<emulatorCapabilities>
<path>/usr/bin/qemu-system-x86_64</path>
<domain>kvm</domain>
<machine>pc-i440fx-2.1</machine>
<arch>x86_64</arch>
<vcpu>255</vcpu>
<devices>
<disk supported='yes'>
<enum name='diskDevice'>
<value>disk</value>
<value>cdrom</value>
<value>floppy</value>
<value>lun</value>
</enum>
<enum name='bus'>
<value>ide</value>
<value>fdc</value>
<value>scsi</value>
<value>virtio</value>
<value>xen</value>
<value>usb</value>
<value>sd</value>
</enum>
</disk>
<hostdev supported='yes'>
<enum name='mode'/>
<enum name='startupPolicy'>
<value>default</value>
<value>mandatory</value>
<value>requisite</value>
<value>optional</value>
</enum>
<enum name='subsysType'>
<value>usb</value>
<value>pci</value>
<value>scsi</value>
</enum>
<enum name='capsType'/>
<enum name='pciBackend'>
<value>default</value>
<value>kvm</value>
<value>vfio</value>
</enum>
</hostdev>
</devices>
</emulatorCapabilities>
Michal Privoznik (4):
Introduce domain_capabilities
Introduce virConnectGetDomainCapabilities
virsh: expose virConnectGetDomainCapabilities
qemu: Implement virConnectGetDomainCapabilities
include/libvirt/libvirt.h.in | 7 ++
src/Makefile.am | 1 +
src/conf/domain_capabilities.c | 217 +++++++++++++++++++++++++++++++++++++++++
src/conf/domain_capabilities.h | 89 +++++++++++++++++
src/driver.h | 9 ++
src/libvirt.c | 52 ++++++++++
src/libvirt_private.syms | 6 ++
src/libvirt_public.syms | 1 +
src/qemu/qemu_capabilities.c | 82 ++++++++++++++++
src/qemu/qemu_capabilities.h | 4 +
src/qemu/qemu_driver.c | 102 +++++++++++++++++++
src/remote/remote_driver.c | 1 +
src/remote/remote_protocol.x | 20 +++-
src/remote_protocol-structs | 11 +++
tools/virsh-host.c | 84 ++++++++++++++++
15 files changed, 685 insertions(+), 1 deletion(-)
create mode 100644 src/conf/domain_capabilities.c
create mode 100644 src/conf/domain_capabilities.h
--
1.8.5.5