cli: add NMC_RESULT_ERROR_NOT_FOUND and use as appropriate

This will allow callers to distinguish "no such connection" from
"connection failed to activate", etc.

https://bugzilla.redhat.com/show_bug.cgi?id=1022256
This commit is contained in:
Dan Winship
2013-11-21 09:19:18 -05:00
parent 472ee8104d
commit 461920bb96
4 changed files with 25 additions and 20 deletions

View File

@@ -536,7 +536,7 @@ do_connections_show (NmCli *nmc, int argc, char **argv)
printed = nmc_connection_detail (con, nmc);
} else {
g_string_printf (nmc->return_text, _("Error: %s - no such connection."), *argv);
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
return nmc->return_value;
}
@@ -1065,7 +1065,7 @@ do_connections_show_active (NmCli *nmc, int argc, char **argv)
printed = nmc_active_connection_detail (acon, nmc); /* separate connections by blank line */
} else {
g_string_printf (nmc->return_text, _("Error: '%s' is not an active connection."), *argv);
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
return nmc->return_value;
}
@@ -1536,12 +1536,12 @@ nmc_activate_connection (NmCli *nmc,
} else if (ifname) {
device = nm_client_get_device_by_iface (nmc->client, ifname);
if (!device) {
g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_CON_ACTIVATION,
g_set_error (error, NMCLI_ERROR, NMC_RESULT_ERROR_NOT_FOUND,
_("unknown device '%s'."), ifname);
return FALSE;
}
} else {
g_set_error_literal (error, NMCLI_ERROR, NMC_RESULT_ERROR_CON_ACTIVATION,
g_set_error_literal (error, NMCLI_ERROR, NMC_RESULT_ERROR_NOT_FOUND,
_("neither a valid connection nor device given"));
return FALSE;
}
@@ -1662,7 +1662,7 @@ do_connection_up (NmCli *nmc, int argc, char **argv)
if (!nmc_activate_connection (nmc, connection, ifname, ap, nsp, activate_connection_cb, &error)) {
g_string_printf (nmc->return_text, _("Error: %s."),
error ? error->message : _("unknown error"));
nmc->return_value = NMC_RESULT_ERROR_CON_ACTIVATION;
nmc->return_value = error ? error->code : NMC_RESULT_ERROR_CON_ACTIVATION;
g_clear_error (&error);
goto error;
}
@@ -1734,7 +1734,7 @@ do_connection_down (NmCli *nmc, int argc, char **argv)
nm_client_deactivate_connection (nmc->client, active);
} else {
g_string_printf (nmc->return_text, _("Error: '%s' is not an active connection."), *arg_ptr);
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto error;
}
@@ -7018,7 +7018,7 @@ do_connection_edit (NmCli *nmc, int argc, char **argv)
found_con = find_connection (nmc->system_connections, selector, con);
if (!found_con) {
g_string_printf (nmc->return_text, _("Error: Unknown connection '%s'."), con);
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto error;
}
@@ -7214,7 +7214,7 @@ do_connection_modify (NmCli *nmc, int argc, char **argv)
connection = find_connection (nmc->system_connections, selector, name);
if (!connection) {
g_string_printf (nmc->return_text, _("Error: Unknown connection '%s'."), name);
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto finish;
}
strv = g_strsplit (set_prop, ".", 2);
@@ -7397,7 +7397,7 @@ finish:
g_string_truncate (invalid_cons, invalid_cons->len-2); /* truncate trailing ", " */
g_string_printf (nmc->return_text, _("Error: cannot delete unknown connection(s): %s."),
invalid_cons->str);
nmc->return_value = NMC_RESULT_ERROR_USER_INPUT;
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
g_string_free (invalid_cons, TRUE);
}
return nmc->return_value;

View File

@@ -1124,7 +1124,7 @@ do_devices_show (NmCli *nmc, int argc, char **argv)
}
if (!device) {
g_string_printf (nmc->return_text, _("Error: Device '%s' not found."), ifname);
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto error;
}
show_device_info (device, nmc);
@@ -1279,7 +1279,7 @@ do_device_connect (NmCli *nmc, int argc, char **argv)
if (!device) {
g_string_printf (nmc->return_text, _("Error: Device '%s' not found."), ifname);
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto error;
}
@@ -1414,7 +1414,7 @@ do_device_disconnect (NmCli *nmc, int argc, char **argv)
if (!device) {
g_string_printf (nmc->return_text, _("Error: Device '%s' not found."), ifname);
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto error;
}
@@ -1557,7 +1557,7 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
}
if (!device) {
g_string_printf (nmc->return_text, _("Error: Device '%s' not found."), ifname);
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto error;
}
@@ -1581,7 +1581,7 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
if (!ap) {
g_string_printf (nmc->return_text, _("Error: Access point with bssid '%s' not found."),
bssid_user);
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto error;
}
/* Add headers (field names) */
@@ -1650,7 +1650,7 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
if (!ap) {
g_string_printf (nmc->return_text, _("Error: Access point with bssid '%s' not found."),
bssid_user);
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto error;
}
} else {
@@ -2014,7 +2014,7 @@ do_device_wifi_connect_network (NmCli *nmc, int argc, char **argv)
g_string_printf (nmc->return_text, _("Error: No network with SSID '%s' found."), param_user);
else
g_string_printf (nmc->return_text, _("Error: No access point with BSSID '%s' found."), param_user);
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto error;
}
@@ -2301,7 +2301,7 @@ do_device_wimax_list (NmCli *nmc, int argc, char **argv)
if (!device) {
g_string_printf (nmc->return_text, _("Error: Device '%s' not found."), ifname);
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto error;
}
@@ -2324,7 +2324,7 @@ do_device_wimax_list (NmCli *nmc, int argc, char **argv)
}
if (!nsp) {
g_string_printf (nmc->return_text, _("Error: NSP with name '%s' not found."), nsp_user);
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto error;
}
/* Add headers (field names) */
@@ -2375,7 +2375,7 @@ do_device_wimax_list (NmCli *nmc, int argc, char **argv)
}
if (!nsp) {
g_string_printf (nmc->return_text, _("Error: Access point with nsp '%s' not found."), nsp_user);
nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
nmc->return_value = NMC_RESULT_ERROR_NOT_FOUND;
goto error;
}
} else {

View File

@@ -55,7 +55,10 @@ typedef enum {
NMC_RESULT_ERROR_NM_NOT_RUNNING = 8,
/* nmcli and NetworkManager versions mismatch */
NMC_RESULT_ERROR_VERSIONS_MISMATCH = 9
NMC_RESULT_ERROR_VERSIONS_MISMATCH = 9,
/* Connection/Device/AP not found */
NMC_RESULT_ERROR_NOT_FOUND = 10
} NMCResultCode;
typedef enum {

View File

@@ -755,6 +755,8 @@ Connection deletion failed
NetworkManager is not running
.IP "9" 4
\fInmcli\fP and \fINetworkManager\fP versions mismatch
.IP "10" 4
Connection, device, or access point does not exist.
.SH EXAMPLES
.PP