Commit graph

31 commits

Author SHA1 Message Date
Jiří Klimeš
dbf2d08559 cli: allow quitting on Ctrl-D while in readline()
Ctrl-D is mapped as a delete key in readline. When some input is on the line,
Ctrl-D behaves like 'Delete' key. When the line is empty, EOF is generated.
We quit on this EOF. It is the same behaviour many other interactive programs
exhibit, like bash, python, irb, etc.

Users can also quit unconditionally with Ctrl-\ that traditionally generates
SIGQUIT.
2014-06-24 10:52:15 +02:00
Jiří Klimeš
512fe08c7e cli: don't quit nmcli on Ctrl-C while in readline()
We rather cancel the input and show new prompt on readline. It is more
expected behaviour for interactive input when quitting.
2014-06-24 10:38:14 +02:00
Jiří Klimeš
e70d5579af cli: don't accept prefix 0 for routes 2014-06-11 10:07:02 +02:00
Jiří Klimeš
4e9fc8ad61 cli: don't accept default route entries, NM handles the default route itself 2014-06-11 09:58:44 +02:00
Jiří Klimeš
700f5ec0ef cli: allow missing next hop for routes (bgo #727615)
https://bugzilla.gnome.org/show_bug.cgi?id=727615
2014-06-11 09:58:39 +02:00
Jiří Klimeš
dae8391436 cli: switch to the new-style readline typedefs (bgo #731294)
The old Function, CPFunction, CPPFunction and VFunction typedefs are
considered deprecated starting from readline 4.2 (though were not marked
as such): http://lists.gnu.org/archive/html/bug-bash/2000-10/msg00078.html
Compatibility typedefs have been in place up to readline 6.2 but were
removed with the 6.3 release thus causing build to break.
http://lists.gnu.org/archive/html/bug-readline/2014-04/msg00018.html

https://bugzilla.gnome.org/show_bug.cgi?id=731294
2014-06-06 11:34:23 +02:00
Jiří Klimeš
b71af5b144 cli: make prompt argument a printf-like format string, remove history argument
for nmc_readline()
2014-06-04 09:47:37 +02:00
Jiří Klimeš
a3d89d65c4 cli: move readline related functions to common.h to be usable throughout nmcli
Renames
readline_x() to nmc_readline()
gen_func_basic() to nmc_rl_gen_func_basic()

The commit doesn't change functionality, only moves and renames the functions,
so that they can be used in other places too.
2014-06-04 09:47:37 +02:00
Jiří Klimeš
6f9601030a cli: add missing reason-to-string mappings for NMDeviceStateReason 2014-05-26 14:07:01 +02:00
Jiří Klimeš
645f0204f9 nmcli: improve setting connection.secondaries property
- check if the values being set are existing connections
- also allow specifying connections by names, translating them transparently
   to UUIDs.
- nmcli-specific section for 'describe' command added

(We use a global nm_cli variable in nmc_property_connection_set_secondaries())
2014-04-22 12:40:40 +02:00
Jiří Klimeš
08ed6c5be2 cli: sanitize team config before setting it into property
Replace '\r' and '\n' chareacter with a space in the configuration.
libteamdctl sends the config to team daemon using its usock interface that
separates parameters with '\n'.

Related: rh #1051517
2014-03-12 10:44:29 +01:00
Dan Winship
e9fe63cdaa trivial: annotate/adjust some code to appease Coverity 2014-01-16 14:23:45 -05:00
Jiří Klimeš
94bb83a370 cli: allow specifying 'group.name' syntax for '--fields'
and use it for 'nmcli device show'.

This allows filtering output not only for whole groups, but also for individual
fields in commands that print data in groups (sections).

Example:
$ nmcli -f general.device,general.driver,ipv4,ipv6.address device show eth0
GENERAL.DEVICE:                         eth0
GENERAL.DRIVER:                         e1000e
IP4.ADDRESS[1]:                         ip = 10.0.5.228/23, gw = 10.0.5.254
IP4.ADDRESS[2]:                         ip = 5.5.5.5/32, gw = 5.5.5.1
IP4.DNS[1]:                             192.168.122.1
IP4.DNS[2]:                             8.8.8.8
IP4.DOMAIN[1]:                          mycompany.com
2013-12-17 13:51:34 +01:00
Jiří Klimeš
a3c06afc12 cli: support file names for 'config' argument when creating team connections
nmcli con add type team config /home/cimrman/team-config.json

libteam (and in turn NetworkManager) configures team devices via plain config
data in JSON format. However, it is useful and more user-friendly for nmcli to
accept also a file name that contains the config data, and read it. Thus the
user is not forced to type whole (possibly long) config on the command line.
2013-11-22 14:09:10 +01:00
Jiří Klimeš
160d6f073e cli: add missing reason-to-string mappings for NMDeviceStateReason 2013-11-18 16:17:23 +01:00
Jiří Klimeš
05980f9045 cli: fix the error message for valid IPv6 prefix range to <1-128> 2013-09-19 14:06:36 +02:00
Pavel Šimerda
320a9d16a3 all: replace struct in_addr with guint32 2013-08-03 00:15:07 -05:00
Jiří Klimeš
66098fa607 cli: trivial update of NmcOutputField initializers
no actual change
2013-05-31 09:38:03 +02:00
Jiří Klimeš
1d1cfd77d3 cli: adapt the code for the new flags and printing facilities
The data are added to output_data at first, and then they are printed all at
once using print_data(), that takes care of proper alignment and display.

The static 'width' values defined in NmcOutputField columns are not used now,
but dynamically computed maximal widths override them.
2013-05-31 09:38:03 +02:00
Jiří Klimeš
d0b74b7d8d cli: 'connection add': allow numeric bonding modes 2013-05-16 10:44:17 +02:00
Jiří Klimeš
3901281077 cli: 'connection add' command for adding NM connections non-interactively
A few examples:
nmcli --ask connection add
nmcli connection add type ethernet
nmcli -p connection add type ethernet con-name "my ethernet connection 1"
nmcli connection add type ethernet ip4 192.168.100.5/24
nmcli connection add type ethernet ip4 192.168.100.100/24 gw4 192.168.100.1 ip4 1.2.3.4 ip6 abbe::cafe
nmcli connection add type ethernet ifname eth0
nmcli connection add type ethernet autoconnect no ifname eth0
nmcli connection add type wifi con-name Rakosnicek ssid Brcalnik
nmcli --ask connection add type wifi con-name My_WiFi
nmcli c a type infiniband con-name Infi1 transport-mode connected
nmcli c a type bluetooth addr 12:54:00:fd:db:26
nmcli c a type bluetooth addr 12:54:00:fd:db:26 bt-type dun-cdma
nmcli c a type gsm apn internet
nmcli c a type cdma
nmcli c a type bond
nmcli c a type bond ifname mybond0 mode active-backup
nmcli c a ifname maxipes-fik type vlan dev eth0 id 55
nmcli c a con-name VLAN1 type vlan dev eth0 id 44 ingress "2:4,3:55" egress "1:3" flags 6
nmcli c a type bridge ifname br0 stp on ip4 10.0.0.25
nmcli c a ifname eth0 type bridge-slave master 30fc816a-e7dd-4ae7-a86e-ab0c9cee51c2 hairpin no path-cost 333 priority 20
nmcli c a type bridge-slave master br2
2013-05-07 19:41:36 +02:00
Jiří Klimeš
5761a46da0 cli: add functions for creating NM address and route structures to common.c
nmc_parse_and_build_ip[4|6]_address() creating NMIP[4|6]Address
nmc_parse_and_build_ip[4|6]_route() creating NMIP[4|6]Route
2013-05-07 19:41:36 +02:00
Jiří Klimeš
113d358ce5 cli: make 'value' in NmcOutputField non const 2013-03-26 12:15:49 -04:00
Marc Ruiz
811c87f8ae typo: replace all misstyped 'seconadary' strings with 'secondary' 2012-11-04 23:08:02 +01:00
Jiří Klimeš
07fc3dcb90 api: add NM_DEVICE_STATE_REASON_SECONDARY_CONNECTION_FAILED reason and use that 2012-09-24 10:38:26 +02:00
Jiří Klimeš
004ea8166a cli: add NM_DEVICE_STATE_REASON_SSID_NOT_FOUND reason-to-string mapping 2012-09-21 10:04:28 +02:00
Mick Boldon
d8b2e8c64a cli: fix "etc." typo (bgo #681173)
https://bugzilla.gnome.org/show_bug.cgi?id=681173
2012-09-10 13:09:09 +02:00
Jiří Klimeš
c4bb7f26a8 cli: add NM_DEVICE_STATE_REASON_MODEM_MANAGER_UNAVAILABLE reason-to-string mapping 2012-08-30 14:14:27 +02:00
Jiří Klimeš
56d5a57728 cli: add NM_DEVICE_STATE_REASON_BR2684_FAILED reason-to-string mapping 2012-06-07 12:08:22 +02:00
Jiří Klimeš
191da673a8 cli: show progress in --pretty mode for 'nmcli con up'
We need to use a workaround for VPN connection state. There is a bug somewhere
causing that vpn-state-changed signal is not issued on active VPN connection.
Debugging showed that D-Bus PropertiesChanged and VpnStateChanged signals are
not processed properly. That's why libnm-glib's VPN connection object is not
updated. The issue may lie in libnm-glib or even in dbus-glib.
I wasn't able to get VpnStateChanged signal via dbus-glib
(dbus_g_proxy_add_signal() and dbus_g_proxy_connect_signal()), however received
the signal successfully using GDBus.

Until the issue is analyzed and fixed, we need to ask for VPN state of active
VPN connection every second in order to show progress and exit correctly.
2012-05-09 14:19:03 +02:00
Jiří Klimeš
7e4b14d5ae cli: move IP config printing code from devices.c to common.c
That allows sharing the code between devices and active connections.
2012-01-06 15:20:15 +01:00