From b560946c19dfdf1ab04ad01baf4cf9624e6399cc Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Fri, 13 Dec 2013 10:31:50 +0100 Subject: [PATCH] storage: Add gluster pool filter and fix virsh pool listing Recent addition of the gluster pool type omitted fixing the virsh and virConnectListAllStoragePool filters. A typecast of the converting function in virsh showed that also the sheepdog pool was omitted in the command parser. This patch adds gluster pool filtering support and fixes virsh to properly convert all supported storage pool types. The added typecast should avoid doing such mistakes in the future. --- include/libvirt/libvirt.h.in | 1 + src/conf/storage_conf.c | 4 +++- tools/virsh-pool.c | 10 ++++++++-- tools/virsh.pod | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in index 6f79c49359..aa042b4729 100644 --- a/include/libvirt/libvirt.h.in +++ b/include/libvirt/libvirt.h.in @@ -3056,6 +3056,7 @@ typedef enum { VIR_CONNECT_LIST_STORAGE_POOLS_MPATH = 1 << 13, VIR_CONNECT_LIST_STORAGE_POOLS_RBD = 1 << 14, VIR_CONNECT_LIST_STORAGE_POOLS_SHEEPDOG = 1 << 15, + VIR_CONNECT_LIST_STORAGE_POOLS_GLUSTER = 1 << 16, } virConnectListAllStoragePoolsFlags; int virConnectListAllStoragePools(virConnectPtr conn, diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index 22e38c13ee..ed492cfde2 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -2217,7 +2217,9 @@ virStoragePoolMatch(virStoragePoolObjPtr poolobj, (MATCH(VIR_CONNECT_LIST_STORAGE_POOLS_RBD) && (poolobj->def->type == VIR_STORAGE_POOL_RBD)) || (MATCH(VIR_CONNECT_LIST_STORAGE_POOLS_SHEEPDOG) && - (poolobj->def->type == VIR_STORAGE_POOL_SHEEPDOG)))) + (poolobj->def->type == VIR_STORAGE_POOL_SHEEPDOG)) || + (MATCH(VIR_CONNECT_LIST_STORAGE_POOLS_GLUSTER) && + (poolobj->def->type == VIR_STORAGE_POOL_GLUSTER)))) return false; } diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c index 18fe242a3f..ac645eabc4 100644 --- a/tools/virsh-pool.c +++ b/tools/virsh-pool.c @@ -1006,7 +1006,7 @@ cmdPoolList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED) return false; } - switch (poolType) { + switch ((enum virStoragePoolType) poolType) { case VIR_STORAGE_POOL_DIR: flags |= VIR_CONNECT_LIST_STORAGE_POOLS_DIR; break; @@ -1034,7 +1034,13 @@ cmdPoolList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED) case VIR_STORAGE_POOL_RBD: flags |= VIR_CONNECT_LIST_STORAGE_POOLS_RBD; break; - default: + case VIR_STORAGE_POOL_SHEEPDOG: + flags |= VIR_CONNECT_LIST_STORAGE_POOLS_SHEEPDOG; + break; + case VIR_STORAGE_POOL_GLUSTER: + flags |= VIR_CONNECT_LIST_STORAGE_POOLS_GLUSTER; + break; + case VIR_STORAGE_POOL_LAST: break; } } diff --git a/tools/virsh.pod b/tools/virsh.pod index 59213c69df..3534b5402b 100644 --- a/tools/virsh.pod +++ b/tools/virsh.pod @@ -2589,7 +2589,7 @@ with autostarting disabled. You may also want to list pools with specified types using I, the pool types must be separated by comma, e.g. --type dir,disk. The valid pool types include 'dir', 'fs', 'netfs', 'logical', 'disk', 'iscsi', 'scsi', -'mpath', 'rbd', and 'sheepdog'. +'mpath', 'rbd', 'sheepdog' and 'gluster'. The I<--details> option instructs virsh to additionally display pool persistence and capacity related information where available. -- 2.39.5