The native gluster pool source list data differs from the data used for
attaching gluster volumes as netfs pools. Currently the only difference
was the format. Since native pools don't use it and later there will be
more differences add a more deterministic way to switch between the
types instead.
---
src/storage/storage_backend_fs.c | 2 +-
src/storage/storage_backend_gluster.c | 2 +-
src/storage/storage_util.c | 13 +++++++++----
src/storage/storage_util.h | 2 +-
4 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c
index 1fc127a8c..bf1d7de43 100644
--- a/src/storage/storage_backend_fs.c
+++ b/src/storage/storage_backend_fs.c
@@ -186,7 +186,7 @@ virStorageBackendFileSystemNetFindPoolSources(virConnectPtr conn
ATTRIBUTE_UNUSE
retNFS = virStorageBackendFileSystemNetFindNFSPoolSources(&state);
retGluster = virStorageBackendFindGlusterPoolSources(state.host,
-
VIR_STORAGE_POOL_NETFS_GLUSTERFS,
+ VIR_STORAGE_POOL_NETFS,
&state.list, false);
if (retGluster < 0)
diff --git a/src/storage/storage_backend_gluster.c
b/src/storage/storage_backend_gluster.c
index 52c9ee372..30a41369a 100644
--- a/src/storage/storage_backend_gluster.c
+++ b/src/storage/storage_backend_gluster.c
@@ -513,7 +513,7 @@ virStorageBackendGlusterFindPoolSources(virConnectPtr conn
ATTRIBUTE_UNUSED,
}
if ((rc = virStorageBackendFindGlusterPoolSources(source->hosts[0].name,
- 0, /* currently ignored */
+ VIR_STORAGE_POOL_GLUSTER,
&list, true)) < 0)
goto cleanup;
diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c
index 0ceaab6b9..715361923 100644
--- a/src/storage/storage_util.c
+++ b/src/storage/storage_util.c
@@ -2839,17 +2839,21 @@ virStorageBackendDeleteLocal(virConnectPtr conn ATTRIBUTE_UNUSED,
/**
* virStorageBackendFindGlusterPoolSources:
* @host: host to detect volumes on
- * @pooltype: src->format is set to this value
+ * @pooltype: type of the pool
* @list: list of storage pool sources to be filled
* @report: report error if the 'gluster' cli tool is missing
*
* Looks up gluster volumes on @host and fills them to @list.
*
+ * @pooltype allows to influence the specific differences between netfs and
+ * native gluster pools. Users should pass only VIR_STORAGE_POOL_NETFS or
+ * VIR_STORAGE_POOL_GLUSTER.
+ *
* Returns number of volumes on the host on success, or -1 on error.
*/
int
virStorageBackendFindGlusterPoolSources(const char *host,
- int pooltype,
+ virStoragePoolType pooltype,
virStoragePoolSourceListPtr list,
bool report)
{
@@ -2911,14 +2915,15 @@ virStorageBackendFindGlusterPoolSources(const char *host,
goto cleanup;
}
+ if (pooltype == VIR_STORAGE_POOL_NETFS)
+ src->format = VIR_STORAGE_POOL_NETFS_GLUSTERFS;
+
if (VIR_ALLOC_N(src->hosts, 1) < 0)
goto cleanup;
src->nhost = 1;
if (VIR_STRDUP(src->hosts[0].name, host) < 0)
goto cleanup;
-
- src->format = pooltype;
}
ret = nnodes;
diff --git a/src/storage/storage_util.h b/src/storage/storage_util.h
index fa3b6522c..1ba259c1e 100644
--- a/src/storage/storage_util.h
+++ b/src/storage/storage_util.h
@@ -94,7 +94,7 @@ int virStorageBackendRefreshLocal(virConnectPtr conn,
virStoragePoolObjPtr pool);
int virStorageBackendFindGlusterPoolSources(const char *host,
- int pooltype,
+ virStoragePoolType pooltype,
virStoragePoolSourceListPtr list,
bool report);
--
2.12.2