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@xxxxxxxxxx> + * Karel Zak <kzak@xxxxxxxxxx> + * Daniel P. Berrange <berrange@xxxxxxxxxx> + * + */ + +#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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list