提交 b663d432 编写于 作者: J John Ferlan

storage: Rework virStorageBackendFileSystemMountCmd

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: NJohn Ferlan <jferlan@redhat.com>
ACKed-by: NMichal Privoznik <mprivozn@redhat.com>
上级 515aa0c1
......@@ -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;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册