mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-03 03:25:20 +00:00
cmdNetworkList: Introduce --name, --uuid, --table
When reviewing some network patches, I've noticed we don't have those switches to the 'net-list' command. We should. They are merely copied over from 'list' command. Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
0258d9ab46
commit
c156856a2d
@ -644,6 +644,18 @@ static const vshCmdOptDef opts_network_list[] = {
|
||||
.type = VSH_OT_BOOL,
|
||||
.help = N_("list networks with autostart disabled")
|
||||
},
|
||||
{.name = "uuid",
|
||||
.type = VSH_OT_BOOL,
|
||||
.help = N_("list uuid's only")
|
||||
},
|
||||
{.name = "name",
|
||||
.type = VSH_OT_BOOL,
|
||||
.help = N_("list network names only")
|
||||
},
|
||||
{.name = "table",
|
||||
.type = VSH_OT_BOOL,
|
||||
.help = N_("list table (default)")
|
||||
},
|
||||
{.name = NULL}
|
||||
};
|
||||
|
||||
@ -655,6 +667,11 @@ cmdNetworkList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
|
||||
{
|
||||
vshNetworkListPtr list = NULL;
|
||||
size_t i;
|
||||
bool ret = false;
|
||||
bool optName = vshCommandOptBool(cmd, "name");
|
||||
bool optTable = vshCommandOptBool(cmd, "table");
|
||||
bool optUUID = vshCommandOptBool(cmd, "uuid");
|
||||
char uuid[VIR_UUID_STRING_BUFLEN];
|
||||
unsigned int flags = VIR_CONNECT_LIST_NETWORKS_ACTIVE;
|
||||
|
||||
if (vshCommandOptBool(cmd, "inactive"))
|
||||
@ -670,19 +687,32 @@ cmdNetworkList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
|
||||
FILTER("autostart", VIR_CONNECT_LIST_NETWORKS_AUTOSTART);
|
||||
FILTER("no-autostart", VIR_CONNECT_LIST_NETWORKS_NO_AUTOSTART);
|
||||
|
||||
if (optTable + optName + optUUID > 1) {
|
||||
vshError(ctl, "%s",
|
||||
_("Only one argument from --table, --name and --uuid "
|
||||
"may be specified."));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!optUUID && !optName)
|
||||
optTable = true;
|
||||
|
||||
if (!(list = vshNetworkListCollect(ctl, flags)))
|
||||
return false;
|
||||
|
||||
if (optTable) {
|
||||
vshPrintExtra(ctl, " %-20s %-10s %-13s %s\n", _("Name"), _("State"),
|
||||
_("Autostart"), _("Persistent"));
|
||||
vshPrintExtra(ctl,
|
||||
"----------------------------------------------------------\n");
|
||||
}
|
||||
|
||||
for (i = 0; i < list->nnets; i++) {
|
||||
virNetworkPtr network = list->nets[i];
|
||||
const char *autostartStr;
|
||||
int is_autostart = 0;
|
||||
|
||||
if (optTable) {
|
||||
if (virNetworkGetAutostart(network, &is_autostart) < 0)
|
||||
autostartStr = _("no autostart");
|
||||
else
|
||||
@ -693,10 +723,21 @@ cmdNetworkList(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
|
||||
virNetworkIsActive(network) ? _("active") : _("inactive"),
|
||||
autostartStr,
|
||||
virNetworkIsPersistent(network) ? _("yes") : _("no"));
|
||||
} else if (optUUID) {
|
||||
if (virNetworkGetUUIDString(network, uuid) < 0) {
|
||||
vshError(ctl, "%s", _("Failed to get network's UUID"));
|
||||
goto cleanup;
|
||||
}
|
||||
vshPrint(ctl, "%s\n", uuid);
|
||||
} else if (optName) {
|
||||
vshPrint(ctl, "%s\n", virNetworkGetName(network));
|
||||
}
|
||||
}
|
||||
|
||||
ret = true;
|
||||
cleanup:
|
||||
vshNetworkListFree(list);
|
||||
return true;
|
||||
return ret;
|
||||
}
|
||||
#undef FILTER
|
||||
|
||||
|
@ -2834,6 +2834,7 @@ events until a timeout or interrupt key.
|
||||
Returns basic information about the I<network> object.
|
||||
|
||||
=item B<net-list> [I<--inactive> | I<--all>]
|
||||
{ [I<--table>] | I<--name> | I<--uuid> }
|
||||
[I<--persistent>] [<--transient>]
|
||||
[I<--autostart>] [<--no-autostart>]
|
||||
|
||||
@ -2844,6 +2845,12 @@ by I<--persistent> to list the persistent ones, I<--transient> to list the
|
||||
transient ones, I<--autostart> to list the ones with autostart enabled, and
|
||||
I<--no-autostart> to list the ones with autostart disabled.
|
||||
|
||||
If I<--name> is specified, network names are printed instead of the table
|
||||
formatted one per line. If I<--uuid> is specified network's UUID's are printed
|
||||
instead of names. Flag I<--table> specifies that the legacy table-formatted
|
||||
output should be used. This is the default. All of these are mutually
|
||||
exclusive.
|
||||
|
||||
NOTE: When talking to older servers, this command is forced to use a series of
|
||||
API calls with an inherent race, where a pool might not be listed or might appear
|
||||
more than once if it changed state between calls while the list was being
|
||||
|
Loading…
Reference in New Issue
Block a user