cli: abort on extra arguments

Instead of straight-out rejecting extra parameters for various nmcli
sub-commands (such as "nmcli dev status", "nmcli dev wifi rescan" or
"nmcli dev wifi connect", etc.), we just print a warning and go ahead.

This is unhelpful. In case the user makes a typo, we'll do the wrong
thing and possibly even drown the warning in the output.

While at that, let's make the error message consistent. One less string
to translate.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/217
This commit is contained in:
Lubomir Rintel 2019-07-30 12:23:03 +02:00
parent ce08b44471
commit 577769b983
4 changed files with 28 additions and 40 deletions

View file

@ -2933,7 +2933,8 @@ do_connection_up (NmCli *nmc, int argc, char **argv)
pwds = *argv;
}
else if (!nmc->complete) {
g_printerr (_("Unknown parameter: %s\n"), *argv);
g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv);
return NMC_RESULT_ERROR_USER_INPUT;
}
next_arg (nmc, &argc, &argv, NULL);
@ -8901,7 +8902,7 @@ do_connection_import (NmCli *nmc, int argc, char **argv)
else
g_printerr (_("Warning: 'file' already specified, ignoring extra one.\n"));
} else {
g_string_printf (nmc->return_text, _("Unknown parameter: %s"), *argv);
g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv);
return NMC_RESULT_ERROR_USER_INPUT;
}

View file

@ -1681,9 +1681,9 @@ do_devices_status (NmCli *nmc, int argc, char **argv)
if (nmc->complete)
return nmc->return_value;
while (argc > 0) {
g_printerr (_("Unknown parameter: %s\n"), *argv);
next_arg (nmc, &argc, &argv, NULL);
if (argc) {
g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv);
return NMC_RESULT_ERROR_USER_INPUT;
}
if (!nmc->required_fields || strcasecmp (nmc->required_fields, "common") == 0)
@ -3027,8 +3027,10 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
if (nmc->complete)
return nmc->return_value;
if (argc)
g_printerr (_("Unknown parameter: %s\n"), *argv);
if (argc) {
g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv);
return NMC_RESULT_ERROR_USER_INPUT;
}
if (rescan == NULL || strcmp (rescan, "auto") == 0) {
rescan_cutoff = NM_MAX (nm_utils_get_timestamp_msec () - 30 * NM_UTILS_MSEC_PER_SECOND, 0);
@ -3291,7 +3293,9 @@ do_device_wifi_connect_network (NmCli *nmc, int argc, char **argv)
goto finish;
}
} else if (!nmc->complete) {
g_printerr (_("Unknown parameter: %s\n"), *argv);
g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv);
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
goto finish;
}
next_arg (nmc, &argc, &argv, NULL);
@ -3784,7 +3788,7 @@ do_device_wifi_hotspot (NmCli *nmc, int argc, char **argv)
} else if (nmc_arg_is_option (*argv, "show-password")) {
show_password = TRUE;
} else {
g_string_printf (nmc->return_text, _("Error: Unknown parameter %s."), *argv);
g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv);
return NMC_RESULT_ERROR_USER_INPUT;
}
@ -3966,8 +3970,11 @@ do_device_wifi_rescan (NmCli *nmc, int argc, char **argv)
goto finish;
}
g_ptr_array_add (ssids, *argv);
} else if (!nmc->complete)
g_printerr (_("Unknown parameter: %s\n"), *argv);
} else if (!nmc->complete) {
g_string_printf (nmc->return_text, _("Error: invalid extra argument '%s'."), *argv);
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
goto finish;
}
next_arg (nmc, &argc, &argv, NULL);
}

View file

@ -892,9 +892,9 @@ GENERAL.ZONE: --
GENERAL.MASTER-PATH: --
<<<
size: 1459
size: 1409
location: clients/tests/test-client.py:951:test_003()/31
cmd: $NMCLI -f ALL dev s eth0
cmd: $NMCLI -f ALL dev status
lang: C
returncode: 0
stdout: 1272 bytes
@ -907,14 +907,9 @@ wlan1 wifi unavailable unknown unknown /org/freedesk
wlan1 wifi unavailable unknown unknown /org/freedesktop/NetworkManager/Devices/5 -- -- --
<<<
stderr: 24 bytes
>>>
Unknown parameter: eth0
<<<
size: 1474
size: 1424
location: clients/tests/test-client.py:951:test_003()/32
cmd: $NMCLI -f ALL dev s eth0
cmd: $NMCLI -f ALL dev status
lang: pl_PL.UTF-8
returncode: 0
stdout: 1277 bytes
@ -926,11 +921,6 @@ wlan0 wifi niedostępne nieznane nieznane /org/freedes
wlan1 wifi niedostępne nieznane nieznane /org/freedesktop/NetworkManager/Devices/4 -- -- --
wlan1 wifi niedostępne nieznane nieznane /org/freedesktop/NetworkManager/Devices/5 -- -- --
<<<
stderr: 24 bytes
>>>
Nieznany parametr: eth0
<<<
size: 3494
location: clients/tests/test-client.py:954:test_003()/33
@ -1782,9 +1772,9 @@ GENERAL.ZONE: --
GENERAL.MASTER-PATH: --
<<<
size: 1459
size: 1409
location: clients/tests/test-client.py:951:test_003()/54
cmd: $NMCLI -f ALL dev s eth0
cmd: $NMCLI -f ALL dev status
lang: C
returncode: 0
stdout: 1272 bytes
@ -1797,14 +1787,9 @@ wlan1 wifi unavailable unknown unknown /org/freedesk
wlan1 wifi unavailable unknown unknown /org/freedesktop/NetworkManager/Devices/5 -- -- --
<<<
stderr: 24 bytes
>>>
Unknown parameter: eth0
<<<
size: 1474
size: 1424
location: clients/tests/test-client.py:951:test_003()/55
cmd: $NMCLI -f ALL dev s eth0
cmd: $NMCLI -f ALL dev status
lang: pl_PL.UTF-8
returncode: 0
stdout: 1277 bytes
@ -1816,11 +1801,6 @@ wlan0 wifi niedostępne nieznane nieznane /org/freedes
wlan1 wifi niedostępne nieznane nieznane /org/freedesktop/NetworkManager/Devices/4 -- -- --
wlan1 wifi niedostępne nieznane nieznane /org/freedesktop/NetworkManager/Devices/5 -- -- --
<<<
stderr: 24 bytes
>>>
Nieznany parametr: eth0
<<<
size: 3494
location: clients/tests/test-client.py:954:test_003()/56

View file

@ -947,7 +947,7 @@ class TestNmcli(NmTestBase):
self.call_nmcli_l(['con', 's', 'ethernet'],
replace_stdout = replace_stdout)
self.call_nmcli_l(['-f', 'ALL', 'dev', 's', 'eth0'],
self.call_nmcli_l(['-f', 'ALL', 'dev', 'status'],
replace_stdout = replace_stdout)
self.call_nmcli_l(['-f', 'ALL', 'dev', 'show', 'eth0'],