[libvirt] [RFC PATCH 0/7] Adding 'config' driver

Adam Walters adam at pandorasboxen.com
Sat Dec 21 04:03:53 UTC 2013


This patchset adds a driver named 'config' that allows access to configuration data, such as secret and storage definitions. This is a pre-requisite for my next patchset which resolves the race condition on libvirtd startup and the circular dependencies between QEMU and the storage driver.

The basic rationale behind this idea is that there exist circumstances under which a driver may need to access things such as secrets during a time at which there is no active connection to a hypervisor. Without a connection, the data can't be accessed currently. I felt that this was a much simpler solution to the problem that building new APIs that do not require a connection to operate.

This driver is technically what one may call a hypervisor driver, but it does not implement any domain operations. It simply exists to handle requests by drivers for access to informatino that would otherwise require a connection. The URI used for this driver is 'config:///' and has been tested working on 4 different machines of mine, running three different distributions of Linux (Archlinux, Gentoo, and CentOS). Being a very simple driver, I would expect it to work pretty much anywhere.

I would love to hear any comments and suggestions you may have about this driver. At the very least this plus my next patchset resolves the startup race condition on my machine. If a more robust setup (likely a new internal API) is in the works, this driver could act as a band-aid to allow access to this type of data in the interim if a better resolution is a ways off.

Adam Walters (7):
  config: Adding source for the config driver
  config: Adding header for the config driver
  virterror: Adding a new VIR_FROM_ define
  libvirtd: Add config driver hooks
  po: Add config_driver.c to POTFILES.in
  configure: Add config driver to configure script
  Makefile: Add config driver to src/Makefile.am

 configure.ac                |  10 ++
 daemon/libvirtd.c           |  21 ++--
 include/libvirt/virterror.h |   2 +
 po/POTFILES.in              |   1 +
 src/Makefile.am             |  25 +++++
 src/config/config_driver.c  | 237 ++++++++++++++++++++++++++++++++++++++++++++
 src/config/config_driver.h  |  44 ++++++++
 src/util/virerror.c         |   2 +
 8 files changed, 336 insertions(+), 6 deletions(-)
 create mode 100644 src/config/config_driver.c
 create mode 100644 src/config/config_driver.h

-- 
1.8.5.2




More information about the libvir-list mailing list