diff --git a/tools/Makefile.am b/tools/Makefile.am index 1a6b97b13f..5f4e529dd4 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -113,8 +113,8 @@ virsh_SOURCES = \ virsh-network.c virsh-network.h \ virsh-nodedev.c virsh-nodedev.h \ virsh-nwfilter.c virsh-nwfilter.h \ + virsh-pool.c virsh-pool.h \ $(NULL) -# virsh-pool.c virsh-pool.h \ # virsh-secret.c virsh-secret.h \ # virsh-snapshot.c virsh-snapshot.h \ # virsh-volume.c virsh-volume.h \ diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c index e015547cf8..d9cba4ef9e 100644 --- a/tools/virsh-pool.c +++ b/tools/virsh-pool.c @@ -23,17 +23,27 @@ * */ -/* default is lookup by Name and UUID */ -#define vshCommandOptPool(_ctl, _cmd, _optname, _name) \ - vshCommandOptPoolBy(_ctl, _cmd, _optname, _name, \ - VSH_BYUUID|VSH_BYNAME) +#include +#include "virsh-pool.h" -static virStoragePoolPtr +#include +#include +#include +#include + +#include "internal.h" +#include "buf.h" +#include "memory.h" +#include "util.h" +#include "xml.h" + +virStoragePoolPtr vshCommandOptPoolBy(vshControl *ctl, const vshCmd *cmd, const char *optname, - const char **name, int flag) + const char **name, unsigned int flags) { virStoragePoolPtr pool = NULL; const char *n = NULL; + virCheckFlags(VSH_BYUUID | VSH_BYNAME, NULL); if (vshCommandOptString(cmd, optname, &n) <= 0) return NULL; @@ -45,13 +55,13 @@ vshCommandOptPoolBy(vshControl *ctl, const vshCmd *cmd, const char *optname, *name = n; /* try it by UUID */ - if ((flag & VSH_BYUUID) && strlen(n) == VIR_UUID_STRING_BUFLEN-1) { + if ((flags & VSH_BYUUID) && strlen(n) == VIR_UUID_STRING_BUFLEN-1) { vshDebug(ctl, VSH_ERR_DEBUG, "%s: <%s> trying as pool UUID\n", cmd->def->name, optname); pool = virStoragePoolLookupByUUIDString(ctl->conn, n); } /* try it by NAME */ - if (pool == NULL && (flag & VSH_BYNAME)) { + if (!pool && (flags & VSH_BYNAME)) { vshDebug(ctl, VSH_ERR_DEBUG, "%s: <%s> trying as pool NAME\n", cmd->def->name, optname); pool = virStoragePoolLookupByName(ctl->conn, n); @@ -1414,7 +1424,7 @@ cmdPoolEdit(vshControl *ctl, const vshCmd *cmd) return ret; } -static const vshCmdDef storagePoolCmds[] = { +const vshCmdDef storagePoolCmds[] = { {"find-storage-pool-sources-as", cmdPoolDiscoverSourcesAs, opts_find_storage_pool_sources_as, info_find_storage_pool_sources_as, 0}, {"find-storage-pool-sources", cmdPoolDiscoverSources, diff --git a/tools/virsh-pool.h b/tools/virsh-pool.h new file mode 100644 index 0000000000..17b54d52ff --- /dev/null +++ b/tools/virsh-pool.h @@ -0,0 +1,42 @@ +/* + * virsh-pool.h: Commands to manage storage pool + * + * 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 + * . + * + * Daniel Veillard + * Karel Zak + * Daniel P. Berrange + * + */ + +#ifndef VIRSH_POOL_H +# define VIRSH_POOL_H + +# include "virsh.h" + +virStoragePoolPtr +vshCommandOptPoolBy(vshControl *ctl, const vshCmd *cmd, const char *optname, + const char **name, unsigned int flags); + +/* default is lookup by Name and UUID */ +# define vshCommandOptPool(_ctl, _cmd, _optname, _name) \ + vshCommandOptPoolBy(_ctl, _cmd, _optname, _name, \ + VSH_BYUUID|VSH_BYNAME) + +extern const vshCmdDef storagePoolCmds[]; + +#endif /* VIRSH_POOL_H */ diff --git a/tools/virsh.c b/tools/virsh.c index ab88fcb9e7..96b31f0b6b 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -81,6 +81,7 @@ #include "virsh-network.h" #include "virsh-nodedev.h" #include "virsh-nwfilter.h" +#include "virsh-pool.h" static char *progname; @@ -2815,7 +2816,6 @@ vshParseArgv(vshControl *ctl, int argc, char **argv) return true; } -#include "virsh-pool.c" #include "virsh-secret.c" #include "virsh-snapshot.c" #include "virsh-volume.c"