diff options
author | Jiří Klimeš <jklimes@redhat.com> | 2013-12-13 14:19:43 +0100 |
---|---|---|
committer | Jiří Klimeš <jklimes@redhat.com> | 2013-12-20 11:37:54 +0100 |
commit | f889440b96c254fb9bdd7aea82f628acfad792ee (patch) | |
tree | cde8ebaf497fa3586dd7a80202851e9f520a2e8e | |
parent | f4f20ca0bc0ec94c2aee25279b5d2d7ff81079e9 (diff) | |
download | NetworkManager-f889440b96c254fb9bdd7aea82f628acfad792ee.tar.gz |
cli: more compact format for device info (nmcli device show) (rh #998003)
https://bugzilla.redhat.com/show_bug.cgi?id=998003
-rw-r--r-- | cli/src/devices.c | 74 |
1 files changed, 41 insertions, 33 deletions
diff --git a/cli/src/devices.c b/cli/src/devices.c index f21e063644..42576a3fbc 100644 --- a/cli/src/devices.c +++ b/cli/src/devices.c @@ -99,11 +99,13 @@ static NmcOutputField nmc_fields_dev_show_general[] = { {"NM-MANAGED", N_("NM-MANAGED"), 15}, /* 13 */ {"AUTOCONNECT", N_("AUTOCONNECT"), 15}, /* 14 */ {"FIRMWARE-MISSING", N_("FIRMWARE-MISSING"), 18}, /* 15 */ - {"CONNECTION", N_("CONNECTION"), 51}, /* 16 */ + {"CONNECTION", N_("CONNECTION"), 20}, /* 16 */ + {"CON-UUID", N_("CON-UUID"), 38}, /* 17 */ + {"CON-PATH", N_("CON-PATH"), 51}, /* 18 */ {NULL, NULL, 0} }; -#define NMC_FIELDS_DEV_SHOW_GENERAL_ALL "NAME,DEVICE,TYPE,VENDOR,PRODUCT,DRIVER,DRIVER-VERSION,FIRMWARE-VERSION,HWADDR,STATE,REASON,UDI,IP-IFACE,"\ - "NM-MANAGED,AUTOCONNECT,FIRMWARE-MISSING,CONNECTION" +#define NMC_FIELDS_DEV_SHOW_GENERAL_ALL "NAME,DEVICE,TYPE,VENDOR,PRODUCT,DRIVER,DRIVER-VERSION,FIRMWARE-VERSION,HWADDR,STATE,REASON,"\ + "UDI,IP-IFACE,NM-MANAGED,AUTOCONNECT,FIRMWARE-MISSING,CONNECTION,CON-UUID,CON-PATH" #define NMC_FIELDS_DEV_SHOW_GENERAL_COMMON "NAME,DEVICE,TYPE,VENDOR,PRODUCT,DRIVER,HWADDR,STATE" /* Available fields for 'device show' - CONNECTIONS part */ @@ -247,11 +249,15 @@ static NmcOutputField nmc_fields_dev_show_sections[] = { {NULL, NULL, 0, NULL } }; #if WITH_WIMAX -#define NMC_FIELDS_DEV_SHOW_SECTIONS_ALL "GENERAL,CAPABILITIES,BOND,VLAN,CONNECTIONS,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6" -#define NMC_FIELDS_DEV_SHOW_SECTIONS_COMMON "GENERAL,CAPABILITIES,BOND,VLAN,CONNECTIONS,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6" +#define NMC_FIELDS_DEV_SHOW_SECTIONS_ALL "GENERAL,CAPABILITIES,BOND,VLAN,CONNECTIONS,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,"\ + "WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6" +#define NMC_FIELDS_DEV_SHOW_SECTIONS_COMMON "GENERAL.DEVICE,GENERAL.TYPE,GENERAL.HWADDR,GENERAL.STATE,GENERAL.CONNECTION,GENERAL.CON-PATH,"\ + "WIRED-PROPERTIES,IP4,IP6" #else -#define NMC_FIELDS_DEV_SHOW_SECTIONS_ALL "GENERAL,CAPABILITIES,BOND,VLAN,CONNECTIONS,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,IP4,DHCP4,IP6,DHCP6" -#define NMC_FIELDS_DEV_SHOW_SECTIONS_COMMON "GENERAL,CAPABILITIES,BOND,VLAN,CONNECTIONS,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,IP4,DHCP4,IP6,DHCP6" +#define NMC_FIELDS_DEV_SHOW_SECTIONS_ALL "GENERAL,CAPABILITIES,BOND,VLAN,CONNECTIONS,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,"\ + "IP4,DHCP4,IP6,DHCP6" +#define NMC_FIELDS_DEV_SHOW_SECTIONS_COMMON "GENERAL.DEVICE,GENERAL.TYPE,GENERAL.HWADDR,GENERAL.STATE,GENERAL.CONNECTION,GENERAL.CON-PATH,"\ + "WIRED-PROPERTIES,IP4,IP6" #endif @@ -564,6 +570,30 @@ construct_header_name (const char *base, const char *spec) return header_name; } +static const char * +get_active_connection_id (NMDevice *device) +{ + const GPtrArray *avail_cons; + NMActiveConnection *ac; + const char *ac_uuid; + int i; + + ac = nm_device_get_active_connection (device); + if (!ac) + return NULL; + ac_uuid = nm_active_connection_get_uuid (ac); + + avail_cons = nm_device_get_available_connections (device); + for (i = 0; avail_cons && (i < avail_cons->len); i++) { + NMRemoteConnection *candidate = g_ptr_array_index (avail_cons, i); + const char *test_uuid = nm_connection_get_uuid (NM_CONNECTION (candidate)); + + if (g_strcmp0 (ac_uuid, test_uuid) == 0) + return nm_connection_get_id (NM_CONNECTION (candidate)); + } + return NULL; +} + static void show_device_info (NMDevice *device, NmCli *nmc) { @@ -659,6 +689,7 @@ show_device_info (NMDevice *device, NmCli *nmc) state_str = g_strdup_printf ("%d (%s)", state, nmc_device_state_to_string (state)); reason_str = g_strdup_printf ("%d (%s)", reason, nmc_device_reason_to_string (reason)); + acon = nm_device_get_active_connection (device); arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_SECTION_PREFIX); set_val_strc (arr, 0, nmc_fields_dev_show_sections[0].name); /* "GENERAL"*/ @@ -677,8 +708,9 @@ show_device_info (NMDevice *device, NmCli *nmc) set_val_strc (arr, 13, nm_device_get_managed (device) ? _("yes") : _("no")); set_val_strc (arr, 14, nm_device_get_autoconnect (device) ? _("yes") : _("no")); set_val_strc (arr, 15, nm_device_get_firmware_missing (device) ? _("yes") : _("no")); - set_val_strc (arr, 16, ((acon = nm_device_get_active_connection (device)) ? - nm_object_get_path (NM_OBJECT (acon)) : _("not connected"))); + set_val_strc (arr, 16, get_active_connection_id (device)); + set_val_strc (arr, 17, acon ? nm_active_connection_get_uuid (acon) : NULL); + set_val_strc (arr, 18, acon ? nm_object_get_path (NM_OBJECT (acon)) : NULL); g_ptr_array_add (nmc->output_data, arr); print_data (nmc); /* Print all data */ @@ -1012,30 +1044,6 @@ show_device_info (NMDevice *device, NmCli *nmc) g_ptr_array_free (fields_in_section, TRUE); } -static const char * -get_active_connection_id (NMDevice *device) -{ - const GPtrArray *avail_cons; - NMActiveConnection *ac; - const char *ac_uuid; - int i; - - ac = nm_device_get_active_connection (device); - if (!ac) - return NULL; - ac_uuid = nm_active_connection_get_uuid (ac); - - avail_cons = nm_device_get_available_connections (device); - for (i = 0; avail_cons && (i < avail_cons->len); i++) { - NMRemoteConnection *candidate = g_ptr_array_index (avail_cons, i); - const char *test_uuid = nm_connection_get_uuid (NM_CONNECTION (candidate)); - - if (g_strcmp0 (ac_uuid, test_uuid) == 0) - return nm_connection_get_id (NM_CONNECTION (candidate)); - } - return NULL; -} - static void fill_output_device_status (NMDevice *device, NmCli *nmc) { |