mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-03 03:25:20 +00:00
virsh: split out virsh-volume.c
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. (vshCommandOptVolBy): Fix flag usage.
This commit is contained in:
parent
c0dbd5f352
commit
f95f1ba4c0
@ -116,9 +116,8 @@ virsh_SOURCES = \
|
|||||||
virsh-pool.c virsh-pool.h \
|
virsh-pool.c virsh-pool.h \
|
||||||
virsh-secret.c virsh-secret.h \
|
virsh-secret.c virsh-secret.h \
|
||||||
virsh-snapshot.c virsh-snapshot.h \
|
virsh-snapshot.c virsh-snapshot.h \
|
||||||
|
virsh-volume.c virsh-volume.h \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
# virsh-volume.c virsh-volume.h \
|
|
||||||
#
|
|
||||||
|
|
||||||
virsh_LDFLAGS = $(WARN_LDFLAGS) $(COVERAGE_LDFLAGS)
|
virsh_LDFLAGS = $(WARN_LDFLAGS) $(COVERAGE_LDFLAGS)
|
||||||
virsh_LDADD = \
|
virsh_LDADD = \
|
||||||
|
@ -23,20 +23,34 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* default is lookup by Name and UUID */
|
#include <config.h>
|
||||||
#define vshCommandOptVol(_ctl, _cmd, _optname, _pooloptname, _name) \
|
#include "virsh-volume.h"
|
||||||
vshCommandOptVolBy(_ctl, _cmd, _optname, _pooloptname, _name, \
|
|
||||||
VSH_BYUUID|VSH_BYNAME)
|
|
||||||
|
|
||||||
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,
|
vshCommandOptVolBy(vshControl *ctl, const vshCmd *cmd,
|
||||||
const char *optname,
|
const char *optname,
|
||||||
const char *pooloptname,
|
const char *pooloptname,
|
||||||
const char **name, int flag)
|
const char **name, unsigned int flags)
|
||||||
{
|
{
|
||||||
virStorageVolPtr vol = NULL;
|
virStorageVolPtr vol = NULL;
|
||||||
virStoragePoolPtr pool = NULL;
|
virStoragePoolPtr pool = NULL;
|
||||||
const char *n = NULL, *p = NULL;
|
const char *n = NULL, *p = NULL;
|
||||||
|
virCheckFlags(VSH_BYUUID | VSH_BYNAME, NULL);
|
||||||
|
|
||||||
if (vshCommandOptString(cmd, optname, &n) <= 0)
|
if (vshCommandOptString(cmd, optname, &n) <= 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -47,7 +61,7 @@ vshCommandOptVolBy(vshControl *ctl, const vshCmd *cmd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (p)
|
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",
|
vshDebug(ctl, VSH_ERR_DEBUG, "%s: found option <%s>: %s\n",
|
||||||
cmd->def->name, optname, n);
|
cmd->def->name, optname, n);
|
||||||
@ -56,19 +70,19 @@ vshCommandOptVolBy(vshControl *ctl, const vshCmd *cmd,
|
|||||||
*name = n;
|
*name = n;
|
||||||
|
|
||||||
/* try it by name */
|
/* 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",
|
vshDebug(ctl, VSH_ERR_DEBUG, "%s: <%s> trying as vol name\n",
|
||||||
cmd->def->name, optname);
|
cmd->def->name, optname);
|
||||||
vol = virStorageVolLookupByName(pool, n);
|
vol = virStorageVolLookupByName(pool, n);
|
||||||
}
|
}
|
||||||
/* try it by key */
|
/* 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",
|
vshDebug(ctl, VSH_ERR_DEBUG, "%s: <%s> trying as vol key\n",
|
||||||
cmd->def->name, optname);
|
cmd->def->name, optname);
|
||||||
vol = virStorageVolLookupByKey(ctl->conn, n);
|
vol = virStorageVolLookupByKey(ctl->conn, n);
|
||||||
}
|
}
|
||||||
/* try it by path */
|
/* 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",
|
vshDebug(ctl, VSH_ERR_DEBUG, "%s: <%s> trying as vol path\n",
|
||||||
cmd->def->name, optname);
|
cmd->def->name, optname);
|
||||||
vol = virStorageVolLookupByPath(ctl->conn, n);
|
vol = virStorageVolLookupByPath(ctl->conn, n);
|
||||||
@ -1439,7 +1453,7 @@ cmdVolPath(vshControl *ctl, const vshCmd *cmd)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const vshCmdDef storageVolCmds[] = {
|
const vshCmdDef storageVolCmds[] = {
|
||||||
{"vol-clone", cmdVolClone, opts_vol_clone, info_vol_clone, 0},
|
{"vol-clone", cmdVolClone, opts_vol_clone, info_vol_clone, 0},
|
||||||
{"vol-create-as", cmdVolCreateAs, opts_vol_create_as,
|
{"vol-create-as", cmdVolCreateAs, opts_vol_create_as,
|
||||||
info_vol_create_as, 0},
|
info_vol_create_as, 0},
|
||||||
|
43
tools/virsh-volume.h
Normal file
43
tools/virsh-volume.h
Normal file
@ -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@redhat.com>
|
||||||
|
* Karel Zak <kzak@redhat.com>
|
||||||
|
* Daniel P. Berrange <berrange@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 */
|
@ -84,6 +84,7 @@
|
|||||||
#include "virsh-pool.h"
|
#include "virsh-pool.h"
|
||||||
#include "virsh-secret.h"
|
#include "virsh-secret.h"
|
||||||
#include "virsh-snapshot.h"
|
#include "virsh-snapshot.h"
|
||||||
|
#include "virsh-volume.h"
|
||||||
|
|
||||||
static char *progname;
|
static char *progname;
|
||||||
|
|
||||||
@ -2818,8 +2819,6 @@ vshParseArgv(vshControl *ctl, int argc, char **argv)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "virsh-volume.c"
|
|
||||||
|
|
||||||
static const vshCmdDef virshCmds[] = {
|
static const vshCmdDef virshCmds[] = {
|
||||||
{"cd", cmdCd, opts_cd, info_cd, VSH_CMD_FLAG_NOCONNECT},
|
{"cd", cmdCd, opts_cd, info_cd, VSH_CMD_FLAG_NOCONNECT},
|
||||||
{"echo", cmdEcho, opts_echo, info_echo, VSH_CMD_FLAG_NOCONNECT},
|
{"echo", cmdEcho, opts_echo, info_echo, VSH_CMD_FLAG_NOCONNECT},
|
||||||
|
Loading…
Reference in New Issue
Block a user