diff options
author | James Falcon <james.falcon@canonical.com> | 2022-01-26 19:40:06 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-26 19:40:06 -0600 |
commit | 223b23e2c428aff6c1e61f49d8e2edde77801a12 (patch) | |
tree | b9642e2a00c55202809fec16874f44cb635f2ed8 /tests/data | |
parent | 0d364a29d2fe233fa31bcd6d129b1ca61be60e20 (diff) | |
download | vyos-cloud-init-223b23e2c428aff6c1e61f49d8e2edde77801a12.tar.gz vyos-cloud-init-223b23e2c428aff6c1e61f49d8e2edde77801a12.zip |
Add json parsing of ip addr show (SC-723) (#1210)
When obtaining information from "ip addr", default to using
"ip --json addr" rather than using regex to parse "ip addr show"
as json is machine readable as less prone to error.
Deprecate but leave fallback to use "ip addr" for older iproute2
tooling which does not support --json param.
Fix regex parsing of "ip addr" to support peer addresses and
metrics.
Diffstat (limited to 'tests/data')
-rw-r--r-- | tests/data/netinfo/sample-ipaddrshow-json | 91 | ||||
-rw-r--r-- | tests/data/netinfo/sample-ipaddrshow-json-down | 57 | ||||
-rw-r--r-- | tests/data/netinfo/sample-ipaddrshow-output | 3 |
3 files changed, 149 insertions, 2 deletions
diff --git a/tests/data/netinfo/sample-ipaddrshow-json b/tests/data/netinfo/sample-ipaddrshow-json new file mode 100644 index 00000000..8f6a430c --- /dev/null +++ b/tests/data/netinfo/sample-ipaddrshow-json @@ -0,0 +1,91 @@ +[ + { + "ifindex": 1, + "ifname": "lo", + "flags": [ + "LOOPBACK", + "UP", + "LOWER_UP" + ], + "mtu": 65536, + "qdisc": "noqueue", + "operstate": "UNKNOWN", + "group": "default", + "txqlen": 1000, + "link_type": "loopback", + "address": "00:00:00:00:00:00", + "broadcast": "00:00:00:00:00:00", + "addr_info": [ + { + "family": "inet", + "local": "127.0.0.1", + "prefixlen": 8, + "scope": "host", + "label": "lo", + "valid_life_time": 4294967295, + "preferred_life_time": 4294967295 + }, + { + "family": "inet6", + "local": "::1", + "prefixlen": 128, + "scope": "host", + "valid_life_time": 4294967295, + "preferred_life_time": 4294967295 + } + ] + }, + { + "ifindex": 23, + "link_index": 24, + "ifname": "enp0s25", + "flags": [ + "BROADCAST", + "MULTICAST", + "UP", + "LOWER_UP" + ], + "mtu": 1500, + "qdisc": "noqueue", + "operstate": "UP", + "group": "default", + "txqlen": 1000, + "link_type": "ether", + "address": "50:7b:9d:2c:af:91", + "broadcast": "ff:ff:ff:ff:ff:ff", + "link_netnsid": 0, + "addr_info": [ + { + "family": "inet", + "local": "192.168.2.18", + "prefixlen": 24, + "metric": 100, + "broadcast": "192.168.2.255", + "scope": "global", + "dynamic": true, + "label": "enp0s25", + "valid_life_time": 2339, + "preferred_life_time": 2339 + }, + { + "family": "inet6", + "local": "fe80::7777:2222:1111:eeee", + "prefixlen": 64, + "scope": "global", + "dynamic": true, + "mngtmpaddr": true, + "noprefixroute": true, + "valid_life_time": 6823, + "preferred_life_time": 3223 + }, + { + "family": "inet6", + "local": "fe80::8107:2b92:867e:f8a6", + "prefixlen": 64, + "scope": "link", + "valid_life_time": 4294967295, + "preferred_life_time": 4294967295 + } + ] + } +] diff --git a/tests/data/netinfo/sample-ipaddrshow-json-down b/tests/data/netinfo/sample-ipaddrshow-json-down new file mode 100644 index 00000000..7ad5dde0 --- /dev/null +++ b/tests/data/netinfo/sample-ipaddrshow-json-down @@ -0,0 +1,57 @@ +[ + { + "ifindex": 1, + "ifname": "lo", + "flags": [ + "LOOPBACK", + "UP", + "LOWER_UP" + ], + "mtu": 65536, + "qdisc": "noqueue", + "operstate": "UNKNOWN", + "group": "default", + "txqlen": 1000, + "link_type": "loopback", + "address": "00:00:00:00:00:00", + "broadcast": "00:00:00:00:00:00", + "addr_info": [ + { + "family": "inet", + "local": "127.0.0.1", + "prefixlen": 8, + "scope": "host", + "label": "lo", + "valid_life_time": 4294967295, + "preferred_life_time": 4294967295 + }, + { + "family": "inet6", + "local": "::1", + "prefixlen": 128, + "scope": "host", + "valid_life_time": 4294967295, + "preferred_life_time": 4294967295 + } + ] + }, + { + "ifindex": 23, + "link_index": 24, + "ifname": "eth0", + "flags": [ + "BROADCAST", + "MULTICAST" + ], + "mtu": 1500, + "qdisc": "noqueue", + "operstate": "DOWN", + "group": "default", + "txqlen": 1000, + "link_type": "ether", + "address": "00:16:3e:de:51:a6", + "broadcast": "ff:ff:ff:ff:ff:ff", + "link_netnsid": 0, + "addr_info": [] + } +] diff --git a/tests/data/netinfo/sample-ipaddrshow-output b/tests/data/netinfo/sample-ipaddrshow-output index b2fa2672..2aa3f90c 100644 --- a/tests/data/netinfo/sample-ipaddrshow-output +++ b/tests/data/netinfo/sample-ipaddrshow-output @@ -4,10 +4,9 @@ inet6 ::1/128 scope host \ valid_lft forever preferred_lft forever 2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 50:7b:9d:2c:af:91 brd ff:ff:ff:ff:ff:ff - inet 192.168.2.18/24 brd 192.168.2.255 scope global dynamic enp0s25 + inet 192.168.2.18/24 metric 100 brd 192.168.2.255 scope global dynamic enp0s25 valid_lft 84174sec preferred_lft 84174sec inet6 fe80::7777:2222:1111:eeee/64 scope global valid_lft forever preferred_lft forever inet6 fe80::8107:2b92:867e:f8a6/64 scope link valid_lft forever preferred_lft forever - |