提交 7aeb16a8 编写于 作者: E Eric Blake

virsh: split out virsh-interface.c

Another relatively easy split, since helper functions were fixed
in the previous patch.

* tools/virsh-interface.h: New file.
* tools/Makefile.am (virsh_SOURCES): Build it.
* tools/virsh.c: Use new header.
* tools/virsh-interface.c: Likewise.
(vshCommandOptInterfaceBy): Check flags.
上级 4c10b3c7
...@@ -109,8 +109,8 @@ virsh_SOURCES = \ ...@@ -109,8 +109,8 @@ virsh_SOURCES = \
virsh-domain.c virsh-domain.h \ virsh-domain.c virsh-domain.h \
virsh-domain-monitor.c virsh-domain-monitor.h \ virsh-domain-monitor.c virsh-domain-monitor.h \
virsh-host.c virsh-host.h \ virsh-host.c virsh-host.h \
virsh-interface.c virsh-interface.h \
$(NULL) $(NULL)
# virsh-interface.c virsh-interface.h \
# virsh-network.c virsh-network.h \ # virsh-network.c virsh-network.h \
# virsh-nodedev.c virsh-nodedev.h \ # virsh-nodedev.c virsh-nodedev.h \
# virsh-nwfilter.c virsh-nwfilter.h \ # virsh-nwfilter.c virsh-nwfilter.h \
......
...@@ -23,18 +23,28 @@ ...@@ -23,18 +23,28 @@
* *
*/ */
/* default is lookup by Name and MAC */ #include <config.h>
#define vshCommandOptInterface(_ctl, _cmd, _name) \ #include "virsh-interface.h"
vshCommandOptInterfaceBy(_ctl, _cmd, NULL, _name, \
VSH_BYMAC|VSH_BYNAME)
static virInterfacePtr #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 "xml.h"
virInterfacePtr
vshCommandOptInterfaceBy(vshControl *ctl, const vshCmd *cmd, vshCommandOptInterfaceBy(vshControl *ctl, const vshCmd *cmd,
const char *optname, const char *optname,
const char **name, int flag) const char **name, unsigned int flags)
{ {
virInterfacePtr iface = NULL; virInterfacePtr iface = NULL;
const char *n = NULL; const char *n = NULL;
virCheckFlags(VSH_BYNAME | VSH_BYMAC, NULL);
if (!optname) if (!optname)
optname = "interface"; optname = "interface";
...@@ -51,13 +61,13 @@ vshCommandOptInterfaceBy(vshControl *ctl, const vshCmd *cmd, ...@@ -51,13 +61,13 @@ vshCommandOptInterfaceBy(vshControl *ctl, const vshCmd *cmd,
*name = n; *name = n;
/* try it by NAME */ /* try it by NAME */
if (flag & VSH_BYNAME) { if (flags & VSH_BYNAME) {
vshDebug(ctl, VSH_ERR_DEBUG, "%s: <%s> trying as interface NAME\n", vshDebug(ctl, VSH_ERR_DEBUG, "%s: <%s> trying as interface NAME\n",
cmd->def->name, optname); cmd->def->name, optname);
iface = virInterfaceLookupByName(ctl->conn, n); iface = virInterfaceLookupByName(ctl->conn, n);
} }
/* try it by MAC */ /* try it by MAC */
if (iface == NULL && (flag & VSH_BYMAC)) { if (!iface && (flags & VSH_BYMAC)) {
vshDebug(ctl, VSH_ERR_DEBUG, "%s: <%s> trying as interface MAC\n", vshDebug(ctl, VSH_ERR_DEBUG, "%s: <%s> trying as interface MAC\n",
cmd->def->name, optname); cmd->def->name, optname);
iface = virInterfaceLookupByMACString(ctl->conn, n); iface = virInterfaceLookupByMACString(ctl->conn, n);
...@@ -999,7 +1009,7 @@ cmdInterfaceUnbridge(vshControl *ctl, const vshCmd *cmd) ...@@ -999,7 +1009,7 @@ cmdInterfaceUnbridge(vshControl *ctl, const vshCmd *cmd)
return ret; return ret;
} }
static const vshCmdDef ifaceCmds[] = { const vshCmdDef ifaceCmds[] = {
{"iface-begin", cmdInterfaceBegin, opts_interface_begin, {"iface-begin", cmdInterfaceBegin, opts_interface_begin,
info_interface_begin, 0}, info_interface_begin, 0},
{"iface-bridge", cmdInterfaceBridge, opts_interface_bridge, {"iface-bridge", cmdInterfaceBridge, opts_interface_bridge,
......
/*
* virsh-interface.c: Commands to manage host interface
*
* 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_INTERFACE_H
# define VIRSH_INTERFACE_H
# include "virsh.h"
virInterfacePtr vshCommandOptInterfaceBy(vshControl *ctl, const vshCmd *cmd,
const char *optname,
const char **name, unsigned int flags);
/* default is lookup by Name and MAC */
# define vshCommandOptInterface(_ctl, _cmd, _name) \
vshCommandOptInterfaceBy(_ctl, _cmd, NULL, _name, \
VSH_BYMAC|VSH_BYNAME)
extern const vshCmdDef ifaceCmds[];
#endif /* VIRSH_INTERFACE_H */
...@@ -77,6 +77,7 @@ ...@@ -77,6 +77,7 @@
#include "virsh-domain.h" #include "virsh-domain.h"
#include "virsh-domain-monitor.h" #include "virsh-domain-monitor.h"
#include "virsh-host.h" #include "virsh-host.h"
#include "virsh-interface.h"
static char *progname; static char *progname;
...@@ -2815,7 +2816,6 @@ vshParseArgv(vshControl *ctl, int argc, char **argv) ...@@ -2815,7 +2816,6 @@ vshParseArgv(vshControl *ctl, int argc, char **argv)
return true; return true;
} }
#include "virsh-interface.c"
#include "virsh-network.c" #include "virsh-network.c"
#include "virsh-nodedev.c" #include "virsh-nodedev.c"
#include "virsh-nwfilter.c" #include "virsh-nwfilter.c"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册