libvirt/src/conf
Eric Blake 318ea3cb77 storage: initial support for linking with libgfapi
We support gluster volumes in domain XML, so we also ought to
support them as a storage pool.  Besides, a future patch will
want to take advantage of libgfapi to handle the case of a
gluster device holding qcow2 rather than raw storage, and for
that to work, we need a storage backend that can read gluster
storage volume contents.  This sets up the framework.

Note that the new pool is named 'gluster' to match a
<disk type='network'><source protocol='gluster'> image source
already supported in a <domain>; it does NOT match the
<pool type='netfs'><source><target type='glusterfs'>,
since that uses a FUSE mount to a local file name rather than
a network name.

This and subsequent patches have been tested against glusterfs
3.4.1 (available on Fedora 19); there are likely bugs in older
versions that may prevent decent use of gfapi, so this patch
enforces the minimum version tested.  A future patch may lower
the minimum.  On the other hand, I hit at least two bugs in
3.4.1 that will be fixed in 3.5/3.4.2, where it might be worth
raising the minimum: glfs_readdir is nicer to use than
glfs_readdir_r [1], and glfs_fini should only return failure on
an actual failure [2].

[1] http://lists.gnu.org/archive/html/gluster-devel/2013-10/msg00085.html
[2] http://lists.gnu.org/archive/html/gluster-devel/2013-10/msg00086.html

* configure.ac (WITH_STORAGE_GLUSTER): New conditional.
* m4/virt-gluster.m4: new file.
* libvirt.spec.in (BuildRequires): Support gluster in spec file.
* src/conf/storage_conf.h (VIR_STORAGE_POOL_GLUSTER): New pool
type.
* src/conf/storage_conf.c (poolTypeInfo): Treat similar to
sheepdog and rbd.
(virStoragePoolDefFormat): Don't output target for gluster.
* src/storage/storage_backend_gluster.h: New file.
* src/storage/storage_backend_gluster.c: Likewise.
* po/POTFILES.in: Add new file.
* src/storage/storage_backend.c (backends): Register new type.
* src/Makefile.am (STORAGE_DRIVER_GLUSTER_SOURCES): Build new files.
* src/storage/storage_backend.h (_virStorageBackend): Documet
assumption.

Signed-off-by: Eric Blake <eblake@redhat.com>
2013-11-25 11:02:52 -07:00
..
capabilities.c maint: fix comma style issues: conf 2013-11-20 09:14:54 -07:00
capabilities.h maint: avoid further typedef accidents 2013-10-30 17:02:12 -06:00
cpu_conf.c conf: fix incorrect error log in virCPUDefIsEqual 2013-11-07 12:01:29 +01:00
cpu_conf.h maint: avoid 'const fooPtr' in cpu files 2013-10-14 13:11:20 -06:00
device_conf.c virutil: Move string related functions to virstring.c 2013-05-02 16:56:55 +02:00
device_conf.h Rename util.{c,h} to virutil.{c,h} 2012-12-21 11:19:49 +00:00
domain_audit.c Convert 'int i' to 'size_t i' in src/conf/ files 2013-07-10 17:40:13 +01:00
domain_audit.h Include pid namespace inode in LXC audit messages 2013-03-07 19:43:53 +00:00
domain_conf.c maint: fix comma style issues: conf 2013-11-20 09:14:54 -07:00
domain_conf.h conf: Rename virDomainDiskHostDefFree to virDomainDiskHostDefClear 2013-11-12 10:38:34 +01:00
domain_event.c virDomainEventCallbackListFree: Don't leak @list->callbacks 2013-11-14 17:44:20 +01:00
domain_event.h Add VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED event 2013-07-18 15:28:45 +02:00
domain_nwfilter.c Convert 'int i' to 'size_t i' in src/conf/ files 2013-07-10 17:40:13 +01:00
domain_nwfilter.h maint: fix up copyright notice inconsistencies 2012-09-20 16:30:55 -06:00
interface_conf.c maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
interface_conf.h Get rid of shadowed booleans 2013-10-22 15:50:47 +01:00
netdev_bandwidth_conf.c Adapt to VIR_ALLOC and virAsprintf in src/conf/* 2013-07-10 11:07:31 +02:00
netdev_bandwidth_conf.h Rename xml.{c,h} to virxml.{c,h} 2012-12-21 11:19:50 +00:00
netdev_vlan_conf.c maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
netdev_vlan_conf.h maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
netdev_vport_profile_conf.c Move virNetDevVPort enum impl into virnetdevvportprofile.c 2013-10-11 11:45:54 +01:00
netdev_vport_profile_conf.h Rename xml.{c,h} to virxml.{c,h} 2012-12-21 11:19:50 +00:00
network_conf.c maint: fix comma style issues: conf 2013-11-20 09:14:54 -07:00
network_conf.h maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
node_device_conf.c maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
node_device_conf.h util: use size_t instead of unsigned int for num_virtual_functions 2013-11-08 14:31:11 +02:00
nwfilter_conf.c maint: fix comma style issues: nwfilter 2013-11-20 09:14:54 -07:00
nwfilter_conf.h maint: avoid 'const fooPtr' in nwfilter files 2013-10-14 13:13:18 -06:00
nwfilter_ipaddrmap.c Adapt to VIR_ALLOC and virAsprintf in src/conf/* 2013-07-10 11:07:31 +02:00
nwfilter_ipaddrmap.h maint: fix up copyright notice inconsistencies 2012-09-20 16:30:55 -06:00
nwfilter_params.c maint: avoid 'const fooPtr' in nwfilter files 2013-10-14 13:13:18 -06:00
nwfilter_params.h maint: avoid 'const fooPtr' in nwfilter files 2013-10-14 13:13:18 -06:00
secret_conf.c maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
secret_conf.h maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
snapshot_conf.c maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
snapshot_conf.h maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
storage_conf.c storage: initial support for linking with libgfapi 2013-11-25 11:02:52 -07:00
storage_conf.h storage: initial support for linking with libgfapi 2013-11-25 11:02:52 -07:00
storage_encryption_conf.c Convert 'int i' to 'size_t i' in src/conf/ files 2013-07-10 17:40:13 +01:00
storage_encryption_conf.h Rename util.{c,h} to virutil.{c,h} 2012-12-21 11:19:49 +00:00
virchrdev.c Adapt to VIR_ALLOC and virAsprintf in src/conf/* 2013-07-10 11:07:31 +02:00
virchrdev.h conf: Add unix socket support to virChrdevOpen 2013-01-04 18:07:11 -07:00