summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2019-07-30 12:23:03 +0200
committerLubomir Rintel <lkundrak@v3.sk>2019-07-30 18:40:31 +0200
commit577769b98384f7f93480a90031a407a51347aab5 (patch)
treea9d8c30aa54ce0122c0e2c8ecc758e89ea64d854
parentce08b444710995519865503b0c12073216813ba0 (diff)
downloadNetworkManager-577769b98384f7f93480a90031a407a51347aab5.tar.gz
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
-rw-r--r--clients/cli/connections.c5
-rw-r--r--clients/cli/devices.c25
-rw-r--r--clients/tests/test-client.check-on-disk/test_003.expected36
-rwxr-xr-xclients/tests/test-client.py2
4 files changed, 28 insertions, 40 deletions
diff --git a/clients/cli/connections.c b/clients/cli/connections.c
index 9a622b0b4f..806e3504c1 100644
--- a/clients/cli/connections.c
+++ b/clients/cli/connections.c
@@ -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;
}
diff --git a/clients/cli/devices.c b/clients/cli/devices.c
index c00d3191a9..b37b40e08a 100644
--- a/clients/cli/devices.c
+++ b/clients/cli/devices.c
@@ -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);
}
diff --git a/clients/tests/test-client.check-on-disk/test_003.expected b/clients/tests/test-client.check-on-disk/test_003.expected
index 20980164e9..c8cb4903b5 100644
--- a/clients/tests/test-client.check-on-disk/test_003.expected
+++ b/clients/tests/test-client.check-on-disk/test_003.expected
@@ -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
@@ -927,11 +922,6 @@ wlan1 wifi niedostępne nieznane nieznane /org/freedes
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
cmd: $NMCLI -f ALL dev show eth0
@@ -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
@@ -1817,11 +1802,6 @@ wlan1 wifi niedostępne nieznane nieznane /org/freedes
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
cmd: $NMCLI -f ALL dev show eth0
diff --git a/clients/tests/test-client.py b/clients/tests/test-client.py
index ff5a3604dd..307a1182f3 100755
--- a/clients/tests/test-client.py
+++ b/clients/tests/test-client.py
@@ -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'],