[libvirt] [PATCH 6/8] storage: Rework virStorageBackendFileSystemMountCmd

John Ferlan jferlan at redhat.com
Tue Dec 4 16:47:15 UTC 2018


Let's create helpers for each style of command line created. This
primarily is easier on the eyes rather than the large multi line
if-then-else-else clause used, but may also be useful if in the
future any particular pool needs to add to the command line based
on pool xml format.

Signed-off-by: John Ferlan <jferlan at redhat.com>
---
 src/storage/storage_util.c | 84 +++++++++++++++++++++++++-------------
 1 file changed, 55 insertions(+), 29 deletions(-)

diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c
index c9f6096687..789f270f2a 100644
--- a/src/storage/storage_util.c
+++ b/src/storage/storage_util.c
@@ -4261,6 +4261,56 @@ virStorageBackendFileSystemGetPoolSource(virStoragePoolObjPtr pool)
 }
 
 
+static void
+virStorageBackendFileSystemMountNFSArgs(virCommandPtr cmd,
+                                        const char *src,
+                                        virStoragePoolDefPtr def)
+{
+    virCommandAddArgList(cmd, src, def->target.path, NULL);
+}
+
+
+static void
+virStorageBackendFileSystemMountGlusterArgs(virCommandPtr cmd,
+                                            const char *src,
+                                            virStoragePoolDefPtr def)
+{
+    const char *fmt;
+
+    fmt = virStoragePoolFormatFileSystemNetTypeToString(def->source.format);
+    virCommandAddArgList(cmd, "-t", fmt, src, "-o", "direct-io-mode=1",
+                         def->target.path, NULL);
+}
+
+
+static void
+virStorageBackendFileSystemMountCIFSArgs(virCommandPtr cmd,
+                                         const char *src,
+                                         virStoragePoolDefPtr def)
+{
+    const char *fmt;
+
+    fmt = virStoragePoolFormatFileSystemNetTypeToString(def->source.format);
+    virCommandAddArgList(cmd, "-t", fmt, src, def->target.path,
+                         "-o", "guest", NULL);
+}
+
+
+static void
+virStorageBackendFileSystemMountDefaultArgs(virCommandPtr cmd,
+                                            const char *src,
+                                            virStoragePoolDefPtr def)
+{
+    const char *fmt;
+
+    if (def->type == VIR_STORAGE_POOL_FS)
+        fmt = virStoragePoolFormatFileSystemTypeToString(def->source.format);
+    else
+        fmt = virStoragePoolFormatFileSystemNetTypeToString(def->source.format);
+    virCommandAddArgList(cmd, "-t", fmt, src, def->target.path, NULL);
+}
+
+
 virCommandPtr
 virStorageBackendFileSystemMountCmd(virStoragePoolDefPtr def,
                                     const char *src)
@@ -4276,38 +4326,14 @@ virStorageBackendFileSystemMountCmd(virStoragePoolDefPtr def,
                    def->source.format == VIR_STORAGE_POOL_NETFS_CIFS);
     virCommandPtr cmd = NULL;
 
+    cmd = virCommandNew(MOUNT);
     if (netauto)
-        cmd = virCommandNewArgList(MOUNT,
-                                   src,
-                                   def->target.path,
-                                   NULL);
+        virStorageBackendFileSystemMountNFSArgs(cmd, src, def);
     else if (glusterfs)
-        cmd = virCommandNewArgList(MOUNT,
-                                   "-t",
-                                   virStoragePoolFormatFileSystemNetTypeToString(def->source.format),
-                                   src,
-                                   "-o",
-                                   "direct-io-mode=1",
-                                   def->target.path,
-                                   NULL);
+        virStorageBackendFileSystemMountGlusterArgs(cmd, src, def);
     else if (cifsfs)
-        cmd = virCommandNewArgList(MOUNT,
-                                   "-t",
-                                   virStoragePoolFormatFileSystemNetTypeToString(def->source.format),
-                                   src,
-                                   def->target.path,
-                                   "-o",
-                                   "guest",
-                                   NULL);
+        virStorageBackendFileSystemMountCIFSArgs(cmd, src, def);
     else
-        cmd = virCommandNewArgList(MOUNT,
-                                   "-t",
-                                   (def->type == VIR_STORAGE_POOL_FS ?
-                                    virStoragePoolFormatFileSystemTypeToString(def->source.format) :
-                                    virStoragePoolFormatFileSystemNetTypeToString(def->source.format)),
-                                   src,
-                                   def->target.path,
-                                   NULL);
-
+        virStorageBackendFileSystemMountDefaultArgs(cmd, src, def);
     return cmd;
 }
-- 
2.17.2




More information about the libvir-list mailing list