diff options
author | Jiří Klimeš <jklimes@redhat.com> | 2015-04-14 14:35:14 +0200 |
---|---|---|
committer | Jiří Klimeš <jklimes@redhat.com> | 2015-04-20 10:29:42 +0200 |
commit | 70f375b532ca1b828cbe39f715e3a982fadd8af7 (patch) | |
tree | bf6ef170c22c4b0642f0ddf24747bf41a2b8e09e | |
parent | dd0dde169f534e15b77ed292b5437db0cc27cc98 (diff) | |
download | NetworkManager-70f375b532ca1b828cbe39f715e3a982fadd8af7.tar.gz |
cli: better indicate when a Wi-Fi plugin might not be available (rh #1168573)
* print an error message indicating NM Wi-Fi plugin may be missing, for
nmcli device wifi ifname <dev-name>
nmcli device wifi connect ifname <dev-name>
* add NM-TYPE to 'nmcli device show' command displaying internal NM device type
(like NMDeviceWifi, NMDeviceGeneric, ...)
https://bugzilla.redhat.com/show_bug.cgi?id=1168573
(cherry picked from commit 823df334eda48a8e2cec897d6123f7b2158c12ff)
-rw-r--r-- | clients/cli/devices.c | 102 |
1 files changed, 58 insertions, 44 deletions
diff --git a/clients/cli/devices.c b/clients/cli/devices.c index 3528f1167e..9b3ea14681 100644 --- a/clients/cli/devices.c +++ b/clients/cli/devices.c @@ -57,29 +57,30 @@ static NmcOutputField nmc_fields_dev_show_general[] = { {"NAME", N_("NAME"), 10}, /* 0 */ {"DEVICE", N_("DEVICE"), 10}, /* 1 */ {"TYPE", N_("TYPE"), 17}, /* 2 */ - {"VENDOR", N_("VENDOR"), 20}, /* 3 */ - {"PRODUCT", N_("PRODUCT"), 50}, /* 4 */ - {"DRIVER", N_("DRIVER"), 9}, /* 5 */ - {"DRIVER-VERSION", N_("DRIVER-VERSION"), 18}, /* 6 */ - {"FIRMWARE-VERSION", N_("FIRMWARE-VERSION"), 18}, /* 7 */ - {"HWADDR", N_("HWADDR"), 19}, /* 8 */ - {"MTU", N_("MTU"), 10}, /* 9 */ - {"STATE", N_("STATE"), 14}, /* 10 */ - {"REASON", N_("REASON"), 25}, /* 11 */ - {"UDI", N_("UDI"), 64}, /* 12 */ - {"IP-IFACE", N_("IP-IFACE"), 10}, /* 13 */ - {"IS-SOFTWARE", N_("IS-SOFTWARE"), 15}, /* 14 */ - {"NM-MANAGED", N_("NM-MANAGED"), 15}, /* 15 */ - {"AUTOCONNECT", N_("AUTOCONNECT"), 15}, /* 16 */ - {"FIRMWARE-MISSING", N_("FIRMWARE-MISSING"), 18}, /* 17 */ - {"PHYS-PORT-ID", N_("PHYS-PORT-ID"), 18}, /* 18 */ - {"CONNECTION", N_("CONNECTION"), 20}, /* 19 */ - {"CON-UUID", N_("CON-UUID"), 38}, /* 20 */ - {"CON-PATH", N_("CON-PATH"), 51}, /* 21 */ + {"NM-TYPE", N_("NM-TYPE"), 17}, /* 3 */ + {"VENDOR", N_("VENDOR"), 20}, /* 4 */ + {"PRODUCT", N_("PRODUCT"), 50}, /* 5 */ + {"DRIVER", N_("DRIVER"), 9}, /* 6 */ + {"DRIVER-VERSION", N_("DRIVER-VERSION"), 18}, /* 7 */ + {"FIRMWARE-VERSION", N_("FIRMWARE-VERSION"), 18}, /* 8 */ + {"HWADDR", N_("HWADDR"), 19}, /* 9 */ + {"MTU", N_("MTU"), 10}, /* 10 */ + {"STATE", N_("STATE"), 14}, /* 11 */ + {"REASON", N_("REASON"), 25}, /* 12 */ + {"UDI", N_("UDI"), 64}, /* 13 */ + {"IP-IFACE", N_("IP-IFACE"), 10}, /* 14 */ + {"IS-SOFTWARE", N_("IS-SOFTWARE"), 15}, /* 15 */ + {"NM-MANAGED", N_("NM-MANAGED"), 15}, /* 16 */ + {"AUTOCONNECT", N_("AUTOCONNECT"), 15}, /* 17 */ + {"FIRMWARE-MISSING", N_("FIRMWARE-MISSING"), 18}, /* 18 */ + {"PHYS-PORT-ID", N_("PHYS-PORT-ID"), 18}, /* 19 */ + {"CONNECTION", N_("CONNECTION"), 20}, /* 20 */ + {"CON-UUID", N_("CON-UUID"), 38}, /* 21 */ + {"CON-PATH", N_("CON-PATH"), 51}, /* 22 */ {NULL, NULL, 0} }; -#define NMC_FIELDS_DEV_SHOW_GENERAL_ALL "NAME,DEVICE,TYPE,VENDOR,PRODUCT,DRIVER,DRIVER-VERSION,FIRMWARE-VERSION,HWADDR,MTU,STATE,REASON,"\ - "UDI,IP-IFACE,IS-SOFTWARE,NM-MANAGED,AUTOCONNECT,FIRMWARE-MISSING,PHYS-PORT-ID,"\ +#define NMC_FIELDS_DEV_SHOW_GENERAL_ALL "NAME,DEVICE,TYPE,NM-TYPE,VENDOR,PRODUCT,DRIVER,DRIVER-VERSION,FIRMWARE-VERSION,HWADDR,MTU,"\ + "STATE,REASON,UDI,IP-IFACE,IS-SOFTWARE,NM-MANAGED,AUTOCONNECT,FIRMWARE-MISSING,PHYS-PORT-ID,"\ "CONNECTION,CON-UUID,CON-PATH" #define NMC_FIELDS_DEV_SHOW_GENERAL_COMMON "NAME,DEVICE,TYPE,VENDOR,PRODUCT,DRIVER,HWADDR,STATE" @@ -836,25 +837,26 @@ show_device_info (NMDevice *device, NmCli *nmc) set_val_strc (arr, 0, nmc_fields_dev_show_sections[0].name); /* "GENERAL"*/ set_val_strc (arr, 1, nm_device_get_iface (device)); set_val_strc (arr, 2, nm_device_get_type_description (device)); - set_val_strc (arr, 3, nm_device_get_vendor (device)); - set_val_strc (arr, 4, nm_device_get_product (device)); - set_val_strc (arr, 5, nm_device_get_driver (device) ? nm_device_get_driver (device) : _("(unknown)")); - set_val_strc (arr, 6, nm_device_get_driver_version (device)); - set_val_strc (arr, 7, nm_device_get_firmware_version (device)); - set_val_strc (arr, 8, hwaddr ? hwaddr : _("(unknown)")); - set_val_str (arr, 9, mtu_str); - set_val_str (arr, 10, state_str); - set_val_str (arr, 11, reason_str); - set_val_strc (arr, 12, nm_device_get_udi (device)); - set_val_strc (arr, 13, nm_device_get_ip_iface (device)); - set_val_strc (arr, 14, nm_device_is_software (device) ? _("yes") : _("no")); - set_val_strc (arr, 15, nm_device_get_managed (device) ? _("yes") : _("no")); - set_val_strc (arr, 16, nm_device_get_autoconnect (device) ? _("yes") : _("no")); - set_val_strc (arr, 17, nm_device_get_firmware_missing (device) ? _("yes") : _("no")); - set_val_strc (arr, 18, nm_device_get_physical_port_id (device)); - set_val_strc (arr, 19, get_active_connection_id (device)); - set_val_strc (arr, 20, acon ? nm_active_connection_get_uuid (acon) : NULL); - set_val_strc (arr, 21, acon ? nm_object_get_path (NM_OBJECT (acon)) : NULL); + set_val_strc (arr, 3, G_OBJECT_TYPE_NAME (device)); + set_val_strc (arr, 4, nm_device_get_vendor (device)); + set_val_strc (arr, 5, nm_device_get_product (device)); + set_val_strc (arr, 6, nm_device_get_driver (device) ? nm_device_get_driver (device) : _("(unknown)")); + set_val_strc (arr, 7, nm_device_get_driver_version (device)); + set_val_strc (arr, 8, nm_device_get_firmware_version (device)); + set_val_strc (arr, 9, hwaddr ? hwaddr : _("(unknown)")); + set_val_str (arr, 10, mtu_str); + set_val_str (arr, 11, state_str); + set_val_str (arr, 12, reason_str); + set_val_strc (arr, 13, nm_device_get_udi (device)); + set_val_strc (arr, 14, nm_device_get_ip_iface (device)); + set_val_strc (arr, 15, nm_device_is_software (device) ? _("yes") : _("no")); + set_val_strc (arr, 16, nm_device_get_managed (device) ? _("yes") : _("no")); + set_val_strc (arr, 17, nm_device_get_autoconnect (device) ? _("yes") : _("no")); + set_val_strc (arr, 18, nm_device_get_firmware_missing (device) ? _("yes") : _("no")); + set_val_strc (arr, 19, nm_device_get_physical_port_id (device)); + set_val_strc (arr, 20, get_active_connection_id (device)); + set_val_strc (arr, 21, acon ? nm_active_connection_get_uuid (acon) : NULL); + set_val_strc (arr, 22, acon ? nm_object_get_path (NM_OBJECT (acon)) : NULL); g_ptr_array_add (nmc->output_data, arr); print_data (nmc); /* Print all data */ @@ -2014,7 +2016,13 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv) show_access_point_info (device, nmc); } } else { - g_string_printf (nmc->return_text, _("Error: Device '%s' is not a Wi-Fi device."), ifname); + const char *err_msg; + if ( nm_device_get_device_type (device) == NM_DEVICE_TYPE_GENERIC + && g_strcmp0 (nm_device_get_type_description (device), "wifi") == 0) + err_msg = _("Error: Device '%s' was not recognized as a Wi-Fi device, check NetworkManager Wi-Fi plugin."); + else + err_msg = _("Error: Device '%s' is not a Wi-Fi device."); + g_string_printf (nmc->return_text, err_msg, ifname); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; goto error; } @@ -2494,9 +2502,15 @@ do_device_wifi_rescan (NmCli *nmc, int argc, char **argv) device = find_wifi_device_by_iface (devices, ifname, &devices_idx); if (!device) { - if (ifname) - g_string_printf (nmc->return_text, _("Error: Device '%s' is not a Wi-Fi device."), ifname); - else + if (ifname) { + const char *err_msg; + if ( nm_device_get_device_type (device) == NM_DEVICE_TYPE_GENERIC + && g_strcmp0 (nm_device_get_type_description (device), "wifi") == 0) + err_msg = _("Error: Device '%s' was not recognized as a Wi-Fi device, check NetworkManager Wi-Fi plugin."); + else + err_msg = _("Error: Device '%s' is not a Wi-Fi device."); + g_string_printf (nmc->return_text, err_msg, ifname); + } else g_string_printf (nmc->return_text, _("Error: No Wi-Fi device found.")); nmc->return_value = NMC_RESULT_ERROR_UNKNOWN; goto error; |