[libvirt] [PATCH 18/4] virsh: split out virsh-volume.c

Eric Blake eblake at redhat.com
Mon Aug 20 23:48:07 UTC 2012


Last of the file splits.

* tools/virsh-volume.h: New file.
* tools/Makefile.am (virsh_SOURCES): Build it.
* tools/virsh.c: Use new header.
* tools/virsh-volume.c: Likewise.
---
 tools/Makefile.am    |  3 +--
 tools/virsh-volume.c | 36 +++++++++++++++++++++++++-----------
 tools/virsh-volume.h | 43 +++++++++++++++++++++++++++++++++++++++++++
 tools/virsh.c        |  3 +--
 4 files changed, 70 insertions(+), 15 deletions(-)
 create mode 100644 tools/virsh-volume.h

diff --git a/tools/Makefile.am b/tools/Makefile.am
index 3cdebab..0d7822d 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -116,9 +116,8 @@ virsh_SOURCES =							\
 		virsh-pool.c virsh-pool.h			\
 		virsh-secret.c virsh-secret.h			\
 		virsh-snapshot.c virsh-snapshot.h		\
+		virsh-volume.c virsh-volume.h			\
 		$(NULL)
-#		virsh-volume.c virsh-volume.h			\
-#

 virsh_LDFLAGS = $(WARN_LDFLAGS) $(COVERAGE_LDFLAGS)
 virsh_LDADD =							\
diff --git a/tools/virsh-volume.c b/tools/virsh-volume.c
index d8ff920..74ac19d 100644
--- a/tools/virsh-volume.c
+++ b/tools/virsh-volume.c
@@ -23,20 +23,34 @@
  *
  */

-/* default is lookup by Name and UUID */
-#define vshCommandOptVol(_ctl, _cmd, _optname, _pooloptname, _name)   \
-    vshCommandOptVolBy(_ctl, _cmd, _optname, _pooloptname, _name,     \
-                           VSH_BYUUID|VSH_BYNAME)
+#include <config.h>
+#include "virsh-volume.h"

-static virStorageVolPtr
+#include <fcntl.h>
+
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+#include <libxml/xmlsave.h>
+
+#include "internal.h"
+#include "buf.h"
+#include "memory.h"
+#include "util.h"
+#include "virfile.h"
+#include "virsh-pool.h"
+#include "xml.h"
+
+virStorageVolPtr
 vshCommandOptVolBy(vshControl *ctl, const vshCmd *cmd,
                    const char *optname,
                    const char *pooloptname,
-                   const char **name, int flag)
+                   const char **name, unsigned int flags)
 {
     virStorageVolPtr vol = NULL;
     virStoragePoolPtr pool = NULL;
     const char *n = NULL, *p = NULL;
+    virCheckFlags(VSH_BYUUID | VSH_BYNAME, NULL);

     if (vshCommandOptString(cmd, optname, &n) <= 0)
         return NULL;
@@ -47,7 +61,7 @@ vshCommandOptVolBy(vshControl *ctl, const vshCmd *cmd,
     }

     if (p)
-        pool = vshCommandOptPoolBy(ctl, cmd, pooloptname, name, flag);
+        pool = vshCommandOptPoolBy(ctl, cmd, pooloptname, name, flags);

     vshDebug(ctl, VSH_ERR_DEBUG, "%s: found option <%s>: %s\n",
              cmd->def->name, optname, n);
@@ -56,19 +70,19 @@ vshCommandOptVolBy(vshControl *ctl, const vshCmd *cmd,
         *name = n;

     /* try it by name */
-    if (pool && (flag & VSH_BYNAME)) {
+    if (pool && (flags & VSH_BYNAME)) {
         vshDebug(ctl, VSH_ERR_DEBUG, "%s: <%s> trying as vol name\n",
                  cmd->def->name, optname);
         vol = virStorageVolLookupByName(pool, n);
     }
     /* try it by key */
-    if (vol == NULL && (flag & VSH_BYUUID)) {
+    if (!vol && (flags & VSH_BYUUID)) {
         vshDebug(ctl, VSH_ERR_DEBUG, "%s: <%s> trying as vol key\n",
                  cmd->def->name, optname);
         vol = virStorageVolLookupByKey(ctl->conn, n);
     }
     /* try it by path */
-    if (vol == NULL && (flag & VSH_BYUUID)) {
+    if (!vol && (flags & VSH_BYUUID)) {
         vshDebug(ctl, VSH_ERR_DEBUG, "%s: <%s> trying as vol path\n",
                  cmd->def->name, optname);
         vol = virStorageVolLookupByPath(ctl->conn, n);
@@ -1439,7 +1453,7 @@ cmdVolPath(vshControl *ctl, const vshCmd *cmd)
     return true;
 }

-static const vshCmdDef storageVolCmds[] = {
+const vshCmdDef storageVolCmds[] = {
     {"vol-clone", cmdVolClone, opts_vol_clone, info_vol_clone, 0},
     {"vol-create-as", cmdVolCreateAs, opts_vol_create_as,
      info_vol_create_as, 0},
diff --git a/tools/virsh-volume.h b/tools/virsh-volume.h
new file mode 100644
index 0000000..1b0371b
--- /dev/null
+++ b/tools/virsh-volume.h
@@ -0,0 +1,43 @@
+/*
+ * virsh-volume.h: Commands to manage storage volume
+ *
+ * Copyright (C) 2005, 2007-2012 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library;  If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ *  Daniel Veillard <veillard at redhat.com>
+ *  Karel Zak <kzak at redhat.com>
+ *  Daniel P. Berrange <berrange at redhat.com>
+ *
+ */
+
+#ifndef VIRSH_VOLUME_H
+# define VIRSH_VOLUME_H
+
+# include "virsh.h"
+
+virStorageVolPtr vshCommandOptVolBy(vshControl *ctl, const vshCmd *cmd,
+                                    const char *optname,
+                                    const char *pooloptname,
+                                    const char **name, unsigned int flags);
+
+/* default is lookup by Name and UUID */
+# define vshCommandOptVol(_ctl, _cmd, _optname, _pooloptname, _name)   \
+    vshCommandOptVolBy(_ctl, _cmd, _optname, _pooloptname, _name,     \
+                           VSH_BYUUID|VSH_BYNAME)
+
+extern const vshCmdDef storageVolCmds[];
+
+#endif /* VIRSH_VOLUME_H */
diff --git a/tools/virsh.c b/tools/virsh.c
index 8cbdd3e..7a5b92c 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -84,6 +84,7 @@
 #include "virsh-pool.h"
 #include "virsh-secret.h"
 #include "virsh-snapshot.h"
+#include "virsh-volume.h"

 static char *progname;

@@ -2818,8 +2819,6 @@ vshParseArgv(vshControl *ctl, int argc, char **argv)
     return true;
 }

-#include "virsh-volume.c"
-
 static const vshCmdDef virshCmds[] = {
     {"cd", cmdCd, opts_cd, info_cd, VSH_CMD_FLAG_NOCONNECT},
     {"echo", cmdEcho, opts_echo, info_echo, VSH_CMD_FLAG_NOCONNECT},
-- 
1.7.11.4




More information about the libvir-list mailing list