diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2019-06-05 11:43:28 +0200 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2019-06-06 14:11:28 +0200 |
commit | 371810d18a47319cb249c1987bbac549ae88b8e6 (patch) | |
tree | f0f556561133e6a3c4239fde962ca78f7113ba3f /test | |
parent | 632037cf4a4a99317228c23754cd3343195af0a9 (diff) | |
download | systemd-371810d18a47319cb249c1987bbac549ae88b8e6.tar.gz |
networkd-tests.py: add helpers to common subprocess call patterns
For normal shell calls, python syntax is quite verbose. We don't need to punish
ourselves like that. In some places we would fork a shell to do argument splitting
for us. We know that our arguments can be safely split on whitespace, so let's do
that ourselves in all cases, without forking a shell.
We also expect command output to be valid text, so let's always set
universal_newlines=True.
This makes things shorter and easier to read. Development is also easier because
it's possible to paste many of the commands directly to/from a shell.
Diffstat (limited to 'test')
-rwxr-xr-x | test/test-network/systemd-networkd-tests.py | 459 |
1 files changed, 235 insertions, 224 deletions
diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py index 34143012e4..57f930a2ec 100755 --- a/test/test-network/systemd-networkd-tests.py +++ b/test/test-network/systemd-networkd-tests.py @@ -32,10 +32,23 @@ asan_options=None lsan_options=None ubsan_options=None +def check_output(*command, **kwargs): + # This replaces both check_output and check_call (output can be ignored) + command = command[0].split() + list(command[1:]) + return subprocess.check_output(command, universal_newlines=True, **kwargs).rstrip() + +def call(*command, **kwargs): + command = command[0].split() + list(command[1:]) + return subprocess.call(command, universal_newlines=True, **kwargs) + +def run(*command, **kwargs): + command = command[0].split() + list(command[1:]) + return subprocess.run(command, universal_newlines=True, **kwargs) + def is_module_available(module_name): - lsmod_output = subprocess.check_output('lsmod', universal_newlines=True) - module_re = re.compile(r'^{0}\b'.format(re.escape(module_name)), re.MULTILINE) - return module_re.search(lsmod_output) or not subprocess.call(["modprobe", module_name]) + lsmod_output = check_output('lsmod') + module_re = re.compile(rf'^{re.escape(module_name)}\b', re.MULTILINE) + return module_re.search(lsmod_output) or not call('modprobe', module_name) def expectedFailureIfModuleIsNotAvailable(module_name): def f(func): @@ -47,9 +60,9 @@ def expectedFailureIfModuleIsNotAvailable(module_name): def expectedFailureIfERSPANModuleIsNotAvailable(): def f(func): - rc = subprocess.call(['ip', 'link', 'add', 'dev', 'erspan99', 'type', 'erspan', 'seq', 'key', '30', 'local', '192.168.1.4', 'remote', '192.168.1.1', 'erspan_ver', '1', 'erspan', '123']) + rc = call('ip link add dev erspan99 type erspan seq key 30 local 192.168.1.4 remote 192.168.1.1 erspan_ver 1 erspan 123') if rc == 0: - subprocess.call(['ip', 'link', 'del', 'erspan99']) + call('ip link del erspan99') return func else: return unittest.expectedFailure(func) @@ -58,9 +71,9 @@ def expectedFailureIfERSPANModuleIsNotAvailable(): def expectedFailureIfRoutingPolicyPortRangeIsNotAvailable(): def f(func): - rc = subprocess.call(['ip', 'rule', 'add', 'from', '192.168.100.19', 'sport', '1123-1150', 'dport', '3224-3290', 'table', '7']) + rc = call('ip rule add from 192.168.100.19 sport 1123-1150 dport 3224-3290 table 7') if rc == 0: - subprocess.call(['ip', 'rule', 'del', 'from', '192.168.100.19', 'sport', '1123-1150', 'dport', '3224-3290', 'table', '7']) + call('ip rule del from 192.168.100.19 sport 1123-1150 dport 3224-3290 table 7') return func else: return unittest.expectedFailure(func) @@ -69,9 +82,9 @@ def expectedFailureIfRoutingPolicyPortRangeIsNotAvailable(): def expectedFailureIfRoutingPolicyIPProtoIsNotAvailable(): def f(func): - rc = subprocess.call(['ip', 'rule', 'add', 'not', 'from', '192.168.100.19', 'ipproto', 'tcp', 'table', '7']) + rc = call('ip rule add not from 192.168.100.19 ipproto tcp table 7') if rc == 0: - subprocess.call(['ip', 'rule', 'del', 'not', 'from', '192.168.100.19', 'ipproto', 'tcp', 'table', '7']) + call('ip rule del not from 192.168.100.19 ipproto tcp table 7') return func else: return unittest.expectedFailure(func) @@ -81,12 +94,12 @@ def expectedFailureIfRoutingPolicyIPProtoIsNotAvailable(): def expectedFailureIfEthtoolDoesNotSupportDriver(): def f(func): support = False - rc = subprocess.call(['ip', 'link', 'add', 'name', 'dummy99', 'type', 'dummy']) + rc = call('ip link add name dummy99 type dummy') if rc == 0: - ret = subprocess.run(['udevadm', 'info', '-w10s', '/sys/class/net/dummy99'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True) + ret = run('udevadm info -w10s /sys/class/net/dummy99', stdout=subprocess.PIPE, stderr=subprocess.STDOUT) if ret.returncode == 0 and 'E: ID_NET_DRIVER=dummy' in ret.stdout.rstrip(): support = True - subprocess.call(['ip', 'link', 'del', 'dummy99']) + call('ip link del dummy99') if support: return func @@ -102,8 +115,8 @@ def setUpModule(): shutil.rmtree(networkd_ci_path) copytree(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'conf'), networkd_ci_path) - subprocess.check_call('systemctl stop systemd-networkd.socket', shell=True) - subprocess.check_call('systemctl stop systemd-networkd.service', shell=True) + check_output('systemctl stop systemd-networkd.socket') + check_output('systemctl stop systemd-networkd.service') drop_in = [ '[Service]', @@ -134,20 +147,19 @@ def setUpModule(): with open('/run/systemd/system/systemd-networkd.service.d/00-override.conf', mode='w') as f: f.write('\n'.join(drop_in)) - subprocess.check_call('systemctl daemon-reload', shell=True) - output = subprocess.check_output(['systemctl', 'cat', 'systemd-networkd.service'], universal_newlines=True).rstrip() - print(output) + check_output('systemctl daemon-reload') + print(check_output('systemctl cat systemd-networkd.service')) def tearDownModule(): shutil.rmtree(networkd_ci_path) - subprocess.check_call('systemctl stop systemd-networkd.service', shell=True) + check_output('systemctl stop systemd-networkd.service') shutil.rmtree('/run/systemd/system/systemd-networkd.service.d') - subprocess.check_call('systemctl daemon-reload', shell=True) + check_output('systemctl daemon-reload') - subprocess.check_call('systemctl start systemd-networkd.socket', shell=True) - subprocess.check_call('systemctl start systemd-networkd.service', shell=True) + check_output('systemctl start systemd-networkd.socket') + check_output('systemctl start systemd-networkd.service') class Utilities(): def read_link_attr(self, link, dev, attribute): @@ -172,27 +184,27 @@ class Utilities(): def remove_links(self, links): for link in links: if self.link_exists(link): - subprocess.call(['ip', 'link', 'del', 'dev', link]) + call('ip link del dev', link) time.sleep(1) def remove_fou_ports(self, ports): for port in ports: - subprocess.call(['ip', 'fou', 'del', 'port', port]) + call('ip fou del port', port) def remove_routing_policy_rule_tables(self, tables): for table in tables: - subprocess.call(['ip', 'rule', 'del', 'table', table]) + call('ip rule del table', table) def remove_routes(self, routes): for route_type, addr in routes: - subprocess.call(['ip', 'route', 'del', route_type, addr]) + call('ip route del', route_type, addr) def l2tp_tunnel_remove(self, tunnel_ids): - output = subprocess.check_output(['ip', 'l2tp', 'show', 'tunnel'], universal_newlines=True).rstrip() + output = check_output('ip l2tp show tunnel') for tid in tunnel_ids: words='Tunnel ' + tid + ', encap' if words in output: - subprocess.call(['ip', 'l2tp', 'del', 'tunnel', 'tid', tid]) + call('ip l2tp del tunnel tid', tid) time.sleep(1) def read_ipv6_sysctl_attr(self, link, attribute): @@ -218,14 +230,14 @@ class Utilities(): shutil.rmtree(os.path.join(network_unit_file_path, unit + '.d')) def warn_about_firewalld(self): - rc = subprocess.call(['systemctl', '-q', 'is-active', 'firewalld.service']) + rc = call('systemctl -q is-active firewalld.service') if rc == 0: print('\nWARNING: firewalld.service is active. The test may fail.') def start_dnsmasq(self, additional_options='', ipv4_range='192.168.5.10,192.168.5.200', ipv6_range='2600::10,2600::20', lease_time='1h'): self.warn_about_firewalld() dnsmasq_command = f'dnsmasq -8 /var/run/networkd-ci/test-dnsmasq-log-file --log-queries=extra --log-dhcp --pid-file=/var/run/networkd-ci/test-test-dnsmasq.pid --conf-file=/dev/null --interface=veth-peer --enable-ra --dhcp-range={ipv6_range},{lease_time} --dhcp-range={ipv4_range},{lease_time} -R --dhcp-leasefile=/var/run/networkd-ci/lease --dhcp-option=26,1492 --dhcp-option=option:router,192.168.5.1 --dhcp-option=33,192.168.5.4,192.168.5.5 --port=0 ' + additional_options - subprocess.check_call(dnsmasq_command, shell=True) + check_output(dnsmasq_command) def stop_dnsmasq(self, pid_file): if os.path.exists(pid_file): @@ -259,11 +271,11 @@ class Utilities(): def start_networkd(self, sleep_sec=5, remove_state_files=True): if (remove_state_files and os.path.exists(os.path.join(networkd_runtime_directory, 'state'))): - subprocess.check_call('systemctl stop systemd-networkd', shell=True) + check_output('systemctl stop systemd-networkd') os.remove(os.path.join(networkd_runtime_directory, 'state')) - subprocess.check_call('systemctl start systemd-networkd', shell=True) + check_output('systemctl start systemd-networkd') else: - subprocess.check_call('systemctl restart systemd-networkd', shell=True) + check_output('systemctl restart systemd-networkd') if sleep_sec > 0: time.sleep(sleep_sec) @@ -272,15 +284,15 @@ class Utilities(): if bool_any: args += ['--any'] try: - subprocess.check_call(args, env=env) + check_output(*args, env=env) except subprocess.CalledProcessError: for link in links_with_operstate: - output = subprocess.check_output(networkctl_cmd + ['status', link.split(':')[0]], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', link.split(':')[0], env=env) print(output) raise def get_operstate(self, link, show_status=True, setup_state='configured'): - output = subprocess.check_output(networkctl_cmd + ['status', link], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', link, env=env) if show_status: print(output) for line in output.splitlines(): @@ -295,7 +307,7 @@ class Utilities(): for i in range(timeout_sec): if i > 0: time.sleep(1) - output = subprocess.check_output(['ip', ipv, 'address', 'show', 'dev', link, 'scope', scope], universal_newlines=True).rstrip() + output = check_output(f'ip {ipv} address show dev {link} scope {scope}') if re.search(address_regex, output): break else: @@ -329,23 +341,23 @@ class NetworkctlTests(unittest.TestCase, Utilities): self.wait_online(['test1:degraded']) - output = subprocess.check_output(networkctl_cmd + ['list'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'list', env=env) self.assertRegex(output, '1 lo ') self.assertRegex(output, 'test1') - output = subprocess.check_output(networkctl_cmd + ['list', 'test1'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'list', 'test1', env=env) self.assertNotRegex(output, '1 lo ') self.assertRegex(output, 'test1') - output = subprocess.check_output(networkctl_cmd + ['list', 'te*'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'list', 'te*', env=env) self.assertNotRegex(output, '1 lo ') self.assertRegex(output, 'test1') - output = subprocess.check_output(networkctl_cmd + ['status', 'te*'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'te*', env=env) self.assertNotRegex(output, '1: lo ') self.assertRegex(output, 'test1') - output = subprocess.check_output(networkctl_cmd + ['status', 'tes[a-z][0-9]'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'tes[a-z][0-9]', env=env) self.assertNotRegex(output, '1: lo ') self.assertRegex(output, 'test1') @@ -355,7 +367,7 @@ class NetworkctlTests(unittest.TestCase, Utilities): self.wait_online(['test1:degraded']) - output = subprocess.check_output(networkctl_cmd + ['status', 'test1'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'test1', env=env) self.assertRegex(output, 'MTU: 1600') @expectedFailureIfEthtoolDoesNotSupportDriver() @@ -366,13 +378,13 @@ class NetworkctlTests(unittest.TestCase, Utilities): self.wait_online(['test1:degraded', 'veth99:degraded', 'veth-peer:degraded']) - output = subprocess.check_output(networkctl_cmd + ['status', 'test1'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'test1', env=env) self.assertRegex(output, 'Driver: dummy') - output = subprocess.check_output(networkctl_cmd + ['status', 'veth99'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'veth99', env=env) self.assertRegex(output, 'Driver: veth') - output = subprocess.check_output(networkctl_cmd + ['status', 'veth-peer'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'veth-peer', env=env) self.assertRegex(output, 'Driver: veth') def test_delete_links(self): @@ -382,7 +394,7 @@ class NetworkctlTests(unittest.TestCase, Utilities): self.wait_online(['test1:degraded', 'veth99:degraded', 'veth-peer:degraded']) - subprocess.check_call(networkctl_cmd + ['delete', 'test1', 'veth99']) + check_output(*networkctl_cmd, 'delete', 'test1', 'veth99') self.assertFalse(self.link_exists('test1')) self.assertFalse(self.link_exists('veth99')) self.assertFalse(self.link_exists('veth-peer')) @@ -560,7 +572,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.wait_online(['dropin-test:off']) - output = subprocess.check_output(['ip', 'link', 'show', 'dropin-test'], universal_newlines=True).rstrip() + output = check_output('ip link show dropin-test') print(output) self.assertRegex(output, '00:50:56:c0:00:28') @@ -617,11 +629,11 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.wait_online(['test1:degraded', 'vlan99:routable']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'test1'], universal_newlines=True).rstrip() + output = check_output('ip -d link show test1') print(output) self.assertRegex(output, ' mtu 2000 ') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'vlan99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show vlan99') print(output) self.assertRegex(output, ' mtu 2000 ') self.assertRegex(output, 'REORDER_HDR') @@ -630,12 +642,12 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.assertRegex(output, 'MVRP') self.assertRegex(output, ' id 99 ') - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'test1'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev test1') print(output) self.assertRegex(output, 'inet 192.168.24.5/24 brd 192.168.24.255 scope global test1') self.assertRegex(output, 'inet 192.168.25.5/24 brd 192.168.25.255 scope global test1') - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'vlan99'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev vlan99') print(output) self.assertRegex(output, 'inet 192.168.23.5/24 brd 192.168.23.255 scope global vlan99') @@ -652,7 +664,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.wait_online(['macvtap99:degraded', 'test1:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'macvtap99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show macvtap99') print(output) self.assertRegex(output, 'macvtap mode ' + mode + ' ') @@ -669,11 +681,11 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.wait_online(['macvlan99:degraded', 'test1:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'test1'], universal_newlines=True).rstrip() + output = check_output('ip -d link show test1') print(output) self.assertRegex(output, ' mtu 2000 ') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'macvlan99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show macvlan99') print(output) self.assertRegex(output, ' mtu 2000 ') self.assertRegex(output, 'macvlan mode ' + mode + ' ') @@ -692,7 +704,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['ipvlan99:degraded', 'test1:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'ipvlan99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show ipvlan99') print(output) self.assertRegex(output, 'ipvlan *mode ' + mode.lower() + ' ' + flag) @@ -710,7 +722,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['ipvtap99:degraded', 'test1:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'ipvtap99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show ipvtap99') print(output) self.assertRegex(output, 'ipvtap *mode ' + mode.lower() + ' ' + flag) @@ -720,10 +732,10 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.wait_online(['veth99:degraded', 'veth-peer:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'veth99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show veth99') print(output) self.assertRegex(output, 'link/ether 12:34:56:78:9a:bc') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'veth-peer'], universal_newlines=True).rstrip() + output = check_output('ip -d link show veth-peer') print(output) self.assertRegex(output, 'link/ether 12:34:56:78:9a:bd') @@ -733,7 +745,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.wait_online(['tun99:off']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'tun99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show tun99') print(output) # Old ip command does not support IFF_ flags self.assertRegex(output, 'tun (?:type tun pi on vnet_hdr on multi_queue|addrgenmode) ') @@ -744,7 +756,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.wait_online(['tap99:off']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'tap99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show tap99') print(output) # Old ip command does not support IFF_ flags self.assertRegex(output, 'tun (?:type tap pi on vnet_hdr on multi_queue|addrgenmode) ') @@ -779,26 +791,26 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.wait_online(['wg99:carrier', 'wg98:routable']) if shutil.which('wg'): - subprocess.call('wg') + call('wg') - output = subprocess.check_output(['wg', 'show', 'wg99', 'listen-port'], universal_newlines=True).rstrip() + output = check_output('wg show wg99 listen-port') self.assertRegex(output, '51820') - output = subprocess.check_output(['wg', 'show', 'wg99', 'fwmark'], universal_newlines=True).rstrip() + output = check_output('wg show wg99 fwmark') self.assertRegex(output, '0x4d2') - output = subprocess.check_output(['wg', 'show', 'wg99', 'allowed-ips'], universal_newlines=True).rstrip() + output = check_output('wg show wg99 allowed-ips') self.assertRegex(output, 'RDf\+LSpeEre7YEIKaxg\+wbpsNV7du\+ktR99uBEtIiCA=\t192.168.26.0/24 fd31:bf08:57cb::/48') self.assertRegex(output, 'lsDtM3AbjxNlauRKzHEPfgS1Zp7cp/VX5Use/P4PQSc=\tfdbc:bae2:7871:e1fe:793:8636::/96 fdbc:bae2:7871:500:e1fe:793:8636:dad1/128') - output = subprocess.check_output(['wg', 'show', 'wg99', 'persistent-keepalive'], universal_newlines=True).rstrip() + output = check_output('wg show wg99 persistent-keepalive') self.assertRegex(output, 'RDf\+LSpeEre7YEIKaxg\+wbpsNV7du\+ktR99uBEtIiCA=\t20') - output = subprocess.check_output(['wg', 'show', 'wg99', 'endpoints'], universal_newlines=True).rstrip() + output = check_output('wg show wg99 endpoints') self.assertRegex(output, 'RDf\+LSpeEre7YEIKaxg\+wbpsNV7du\+ktR99uBEtIiCA=\t192.168.27.3:51820') - output = subprocess.check_output(['wg', 'show', 'wg99', 'private-key'], universal_newlines=True).rstrip() + output = check_output('wg show wg99 private-key') self.assertRegex(output, 'EEGlnEPYJV//kbvvIqxKkQwOiS\+UENyPncC4bF46ong=') - output = subprocess.check_output(['wg', 'show', 'wg99', 'preshared-keys'], universal_newlines=True).rstrip() + output = check_output('wg show wg99 preshared-keys') self.assertRegex(output, 'RDf\+LSpeEre7YEIKaxg\+wbpsNV7du\+ktR99uBEtIiCA= IIWIV17wutHv7t4cR6pOT91z6NSz/T8Arh0yaywhw3M=') self.assertRegex(output, 'lsDtM3AbjxNlauRKzHEPfgS1Zp7cp/VX5Use/P4PQSc= cPLOy1YUrEI0EMMIycPJmOo0aTu3RZnw8bL5meVD6m0=') - output = subprocess.check_output(['wg', 'show', 'wg98', 'private-key'], universal_newlines=True).rstrip() + output = check_output('wg show wg98 private-key') self.assertRegex(output, 'CJQUtcS9emY2fLYqDlpSZiE/QJyHkPWr\+WHtZLZ90FU=') def test_geneve(self): @@ -807,7 +819,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.wait_online(['geneve99:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'geneve99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show geneve99') print(output) self.assertRegex(output, '192.168.22.1') self.assertRegex(output, '6082') @@ -822,13 +834,13 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['ipiptun99:routable', 'ipiptun98:routable', 'ipiptun97:routable', 'dummy98:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'ipiptun99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show ipiptun99') print(output) self.assertRegex(output, 'ipip (?:ipip |)remote 192.169.224.239 local 192.168.223.238 dev dummy98') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'ipiptun98'], universal_newlines=True).rstrip() + output = check_output('ip -d link show ipiptun98') print(output) self.assertRegex(output, 'ipip (?:ipip |)remote 192.169.224.239 local any dev dummy98') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'ipiptun97'], universal_newlines=True).rstrip() + output = check_output('ip -d link show ipiptun97') print(output) self.assertRegex(output, 'ipip (?:ipip |)remote any local 192.168.223.238 dev dummy98') @@ -840,21 +852,21 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['gretun99:routable', 'gretun98:routable', 'gretun97:routable', 'dummy98:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'gretun99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show gretun99') print(output) self.assertRegex(output, 'gre remote 10.65.223.239 local 10.65.223.238 dev dummy98') self.assertRegex(output, 'ikey 1.2.3.103') self.assertRegex(output, 'okey 1.2.4.103') self.assertRegex(output, 'iseq') self.assertRegex(output, 'oseq') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'gretun98'], universal_newlines=True).rstrip() + output = check_output('ip -d link show gretun98') print(output) self.assertRegex(output, 'gre remote 10.65.223.239 local any dev dummy98') self.assertRegex(output, 'ikey 0.0.0.104') self.assertRegex(output, 'okey 0.0.0.104') self.assertNotRegex(output, 'iseq') self.assertNotRegex(output, 'oseq') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'gretun97'], universal_newlines=True).rstrip() + output = check_output('ip -d link show gretun97') print(output) self.assertRegex(output, 'gre remote any local 10.65.223.238 dev dummy98') self.assertRegex(output, 'ikey 0.0.0.105') @@ -876,13 +888,13 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.check_link_exists('ip6gretun98') self.check_link_exists('ip6gretun97') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'ip6gretun99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show ip6gretun99') print(output) self.assertRegex(output, 'ip6gre remote 2001:473:fece:cafe::5179 local 2a00:ffde:4567:edde::4987 dev dummy98') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'ip6gretun98'], universal_newlines=True).rstrip() + output = check_output('ip -d link show ip6gretun98') print(output) self.assertRegex(output, 'ip6gre remote 2001:473:fece:cafe::5179 local any dev dummy98') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'ip6gretun97'], universal_newlines=True).rstrip() + output = check_output('ip -d link show ip6gretun97') print(output) self.assertRegex(output, 'ip6gre remote any local 2a00:ffde:4567:edde::4987 dev dummy98') @@ -893,14 +905,14 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['gretap99:routable', 'gretap98:routable', 'dummy98:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'gretap99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show gretap99') print(output) self.assertRegex(output, 'gretap remote 10.65.223.239 local 10.65.223.238 dev dummy98') self.assertRegex(output, 'ikey 0.0.0.106') self.assertRegex(output, 'okey 0.0.0.106') self.assertRegex(output, 'iseq') self.assertRegex(output, 'oseq') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'gretap98'], universal_newlines=True).rstrip() + output = check_output('ip -d link show gretap98') print(output) self.assertRegex(output, 'gretap remote 10.65.223.239 local any dev dummy98') self.assertRegex(output, 'ikey 0.0.0.107') @@ -915,10 +927,10 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['ip6gretap99:routable', 'ip6gretap98:routable', 'dummy98:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'ip6gretap99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show ip6gretap99') print(output) self.assertRegex(output, 'ip6gretap remote 2001:473:fece:cafe::5179 local 2a00:ffde:4567:edde::4987 dev dummy98') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'ip6gretap98'], universal_newlines=True).rstrip() + output = check_output('ip -d link show ip6gretap98') print(output) self.assertRegex(output, 'ip6gretap remote 2001:473:fece:cafe::5179 local any dev dummy98') @@ -930,13 +942,13 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['vtitun99:routable', 'vtitun98:routable', 'vtitun97:routable', 'dummy98:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'vtitun99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show vtitun99') print(output) self.assertRegex(output, 'vti remote 10.65.223.239 local 10.65.223.238 dev dummy98') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'vtitun98'], universal_newlines=True).rstrip() + output = check_output('ip -d link show vtitun98') print(output) self.assertRegex(output, 'vti remote 10.65.223.239 local any dev dummy98') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'vtitun97'], universal_newlines=True).rstrip() + output = check_output('ip -d link show vtitun97') print(output) self.assertRegex(output, 'vti remote any local 10.65.223.238 dev dummy98') @@ -948,13 +960,13 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['vti6tun99:routable', 'vti6tun98:routable', 'vti6tun97:routable', 'dummy98:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'vti6tun99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show vti6tun99') print(output) self.assertRegex(output, 'vti6 remote 2001:473:fece:cafe::5179 local 2a00:ffde:4567:edde::4987 dev dummy98') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'vti6tun98'], universal_newlines=True).rstrip() + output = check_output('ip -d link show vti6tun98') print(output) self.assertRegex(output, 'vti6 remote 2001:473:fece:cafe::5179 local (?:any|::) dev dummy98') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'vti6tun97'], universal_newlines=True).rstrip() + output = check_output('ip -d link show vti6tun97') print(output) self.assertRegex(output, 'vti6 remote (?:any|::) local 2a00:ffde:4567:edde::4987 dev dummy98') @@ -966,13 +978,13 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['ip6tnl99:routable', 'ip6tnl98:routable', 'ip6tnl97:routable', 'dummy98:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'ip6tnl99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show ip6tnl99') print(output) self.assertRegex(output, 'ip6tnl ip6ip6 remote 2001:473:fece:cafe::5179 local 2a00:ffde:4567:edde::4987 dev dummy98') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'ip6tnl98'], universal_newlines=True).rstrip() + output = check_output('ip -d link show ip6tnl98') print(output) self.assertRegex(output, 'ip6tnl ip6ip6 remote 2001:473:fece:cafe::5179 local (?:any|::) dev dummy98') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'ip6tnl97'], universal_newlines=True).rstrip() + output = check_output('ip -d link show ip6tnl97') print(output) self.assertRegex(output, 'ip6tnl ip6ip6 remote (?:any|::) local 2a00:ffde:4567:edde::4987 dev dummy98') @@ -984,13 +996,13 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['sittun99:routable', 'sittun98:routable', 'sittun97:routable', 'dummy98:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'sittun99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show sittun99') print(output) self.assertRegex(output, "sit (?:ip6ip |)remote 10.65.223.239 local 10.65.223.238 dev dummy98") - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'sittun98'], universal_newlines=True).rstrip() + output = check_output('ip -d link show sittun98') print(output) self.assertRegex(output, "sit (?:ip6ip |)remote 10.65.223.239 local any dev dummy98") - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'sittun97'], universal_newlines=True).rstrip() + output = check_output('ip -d link show sittun97') print(output) self.assertRegex(output, "sit (?:ip6ip |)remote any local 10.65.223.238 dev dummy98") @@ -1000,7 +1012,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['isataptun99:routable', 'dummy98:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'isataptun99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show isataptun99') print(output) self.assertRegex(output, "isatap ") @@ -1010,7 +1022,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['sittun99:routable', 'dummy98:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'sittun99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show sittun99') print(output) self.assertRegex(output, '6rd-prefix 2602::/24') @@ -1022,14 +1034,14 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['erspan99:routable', 'erspan98:routable', 'dummy98:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'erspan99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show erspan99') print(output) self.assertRegex(output, 'erspan remote 172.16.1.100 local 172.16.1.200') self.assertRegex(output, 'ikey 0.0.0.101') self.assertRegex(output, 'okey 0.0.0.101') self.assertRegex(output, 'iseq') self.assertRegex(output, 'oseq') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'erspan98'], universal_newlines=True).rstrip() + output = check_output('ip -d link show erspan98') print(output) self.assertRegex(output, 'erspan remote 172.16.1.100 local any') self.assertRegex(output, '102') @@ -1057,21 +1069,21 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.wait_online(['ipiptun96:off', 'sittun96:off', 'gretun96:off', 'gretap96:off']) - output = subprocess.check_output(['ip', 'fou', 'show'], universal_newlines=True).rstrip() + output = check_output('ip fou show') print(output) self.assertRegex(output, 'port 55555 ipproto 4') self.assertRegex(output, 'port 55556 ipproto 47') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'ipiptun96'], universal_newlines=True).rstrip() + output = check_output('ip -d link show ipiptun96') print(output) self.assertRegex(output, 'encap fou encap-sport auto encap-dport 55555') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'sittun96'], universal_newlines=True).rstrip() + output = check_output('ip -d link show sittun96') print(output) self.assertRegex(output, 'encap fou encap-sport auto encap-dport 55555') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'gretun96'], universal_newlines=True).rstrip() + output = check_output('ip -d link show gretun96') print(output) self.assertRegex(output, 'encap fou encap-sport 1001 encap-dport 55556') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'gretap96'], universal_newlines=True).rstrip() + output = check_output('ip -d link show gretap96') print(output) self.assertRegex(output, 'encap fou encap-sport auto encap-dport 55556') @@ -1082,7 +1094,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.wait_online(['test1:degraded', 'vxlan99:degraded']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'vxlan99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show vxlan99') print(output) self.assertRegex(output, '999') self.assertRegex(output, '5555') @@ -1095,7 +1107,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.assertRegex(output, 'remcsumrx') self.assertRegex(output, 'gbp') - output = subprocess.check_output(['bridge', 'fdb', 'show', 'dev', 'vxlan99'], universal_newlines=True).rstrip() + output = check_output('bridge fdb show dev vxlan99') print(output) self.assertRegex(output, '00:11:22:33:44:55 dst 10.0.0.5 self permanent') self.assertRegex(output, '00:11:22:33:44:66 dst 10.0.0.6 self permanent') @@ -1108,13 +1120,13 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities): self.wait_online(['dummy98:degraded', 'macsec99:routable']) - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'macsec99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show macsec99') print(output) self.assertRegex(output, 'macsec99@dummy98') self.assertRegex(output, 'macsec sci [0-9a-f]*000b') self.assertRegex(output, 'encrypt on') - output = subprocess.check_output(['ip', 'macsec', 'show', 'macsec99'], universal_newlines=True).rstrip() + output = check_output('ip macsec show macsec99') print(output) self.assertRegex(output, 'encrypt on') self.assertRegex(output, 'TXSC: [0-9a-f]*000b on SA 1') @@ -1168,7 +1180,7 @@ class NetworkdL2TPTests(unittest.TestCase, Utilities): self.wait_online(['test1:routable', 'l2tp-ses1:off', 'l2tp-ses2:off']) - output = subprocess.check_output(['ip', 'l2tp', 'show', 'tunnel', 'tunnel_id', '10'], universal_newlines=True).rstrip() + output = check_output('ip l2tp show tunnel tunnel_id 10') print(output) self.assertRegex(output, "Tunnel 10, encap UDP") self.assertRegex(output, "From 192.168.30.100 to 192.168.30.101") @@ -1176,13 +1188,13 @@ class NetworkdL2TPTests(unittest.TestCase, Utilities): self.assertRegex(output, "UDP source / dest ports: 3000/4000") self.assertRegex(output, "UDP checksum: enabled") - output = subprocess.check_output(['ip', 'l2tp', 'show', 'session', 'tid', '10', 'session_id', '15'], universal_newlines=True).rstrip() + output = check_output('ip l2tp show session tid 10 session_id 15') print(output) self.assertRegex(output, "Session 15 in tunnel 10") self.assertRegex(output, "Peer session 16, tunnel 11") self.assertRegex(output, "interface name: l2tp-ses1") - output = subprocess.check_output(['ip', 'l2tp', 'show', 'session', 'tid', '10', 'session_id', '17'], universal_newlines=True).rstrip() + output = check_output('ip l2tp show session tid 10 session_id 17') print(output) self.assertRegex(output, "Session 17 in tunnel 10") self.assertRegex(output, "Peer session 18, tunnel 11") @@ -1195,19 +1207,19 @@ class NetworkdL2TPTests(unittest.TestCase, Utilities): self.wait_online(['test1:routable', 'l2tp-ses3:off', 'l2tp-ses4:off']) - output = subprocess.check_output(['ip', 'l2tp', 'show', 'tunnel', 'tunnel_id', '10'], universal_newlines=True).rstrip() + output = check_output('ip l2tp show tunnel tunnel_id 10') print(output) self.assertRegex(output, "Tunnel 10, encap IP") self.assertRegex(output, "From 192.168.30.100 to 192.168.30.101") self.assertRegex(output, "Peer tunnel 12") - output = subprocess.check_output(['ip', 'l2tp', 'show', 'session', 'tid', '10', 'session_id', '25'], universal_newlines=True).rstrip() + output = check_output('ip l2tp show session tid 10 session_id 25') print(output) self.assertRegex(output, "Session 25 in tunnel 10") self.assertRegex(output, "Peer session 26, tunnel 12") self.assertRegex(output, "interface name: l2tp-ses3") - output = subprocess.check_output(['ip', 'l2tp', 'show', 'session', 'tid', '10', 'session_id', '27'], universal_newlines=True).rstrip() + output = check_output('ip l2tp show session tid 10 session_id 27') print(output) self.assertRegex(output, "Session 27 in tunnel 10") self.assertRegex(output, "Peer session 28, tunnel 12") @@ -1265,7 +1277,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.wait_online(['dummy98:routable']) - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'dummy98'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev dummy98') print(output) self.assertRegex(output, 'inet 10.1.2.3/16 brd 10.1.255.255 scope global dummy98') self.assertRegex(output, 'inet 10.1.2.4/16 brd 10.1.255.255 scope global secondary dummy98') @@ -1275,19 +1287,19 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.assertNotRegex(output, '10.10.0.1/16') self.assertNotRegex(output, '10.10.0.2/16') - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'dummy98', 'label', '32'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev dummy98 label 32') self.assertRegex(output, 'inet 10.3.2.3/16 brd 10.3.255.255 scope global 32') - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'dummy98', 'label', '33'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev dummy98 label 33') self.assertRegex(output, 'inet 10.4.2.3 peer 10.4.2.4/16 scope global 33') - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'dummy98', 'label', '34'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev dummy98 label 34') self.assertRegex(output, 'inet 192.168.[0-9]*.1/24 brd 192.168.[0-9]*.255 scope global 34') - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'dummy98', 'label', '35'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev dummy98 label 35') self.assertRegex(output, 'inet 172.[0-9]*.0.1/16 brd 172.[0-9]*.255.255 scope global 35') - output = subprocess.check_output(['ip', '-6', 'address', 'show', 'dev', 'dummy98'], universal_newlines=True).rstrip() + output = check_output('ip -6 address show dev dummy98') print(output) self.assertRegex(output, 'inet6 2001:db8:0:f101::15/64 scope global') self.assertRegex(output, 'inet6 2001:db8:0:f101::16/64 scope global') @@ -1304,7 +1316,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.check_operstate('dummy98', 'routable', setup_state='configuring') - output = subprocess.check_output(['ip', 'address', 'show', 'dummy98'], universal_newlines=True).rstrip() + output = check_output('ip address show dummy98') print(output) self.assertRegex(output, 'inet 10.2.3.4/16 brd 10.2.255.255 scope link deprecated dummy98') self.assertRegex(output, 'inet6 2001:db8:0:f101::1/64 scope global') @@ -1315,7 +1327,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.check_link_exists('test1') - output = subprocess.check_output(networkctl_cmd + ['status', 'test1'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'test1') print(output) self.assertRegex(output, '192.168.0.15') self.assertRegex(output, '192.168.0.1') @@ -1328,7 +1340,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.check_link_exists('test1') - output = subprocess.check_output(['ip', 'rule'], universal_newlines=True).rstrip() + output = check_output('ip rule') print(output) self.assertRegex(output, '111') self.assertRegex(output, 'from 192.168.100.18') @@ -1348,11 +1360,11 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.check_link_exists('test1') self.check_link_exists('dummy98') - output = subprocess.check_output(['ip', 'rule', 'list', 'table', '7'], universal_newlines=True).rstrip() + output = check_output('ip rule list table 7') print(output) self.assertRegex(output, '111: from 192.168.100.18 tos (?:0x08|throughput) iif test1 oif test1 lookup 7') - output = subprocess.check_output(['ip', 'rule', 'list', 'table', '8'], universal_newlines=True).rstrip() + output = check_output('ip rule list table 8') print(output) self.assertRegex(output, '112: from 192.168.101.18 tos (?:0x08|throughput) iif dummy98 oif dummy98 lookup 8') @@ -1364,7 +1376,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.check_link_exists('test1') - output = subprocess.check_output(['ip', 'rule'], universal_newlines=True).rstrip() + output = check_output('ip rule') print(output) self.assertRegex(output, '111') self.assertRegex(output, 'from 192.168.100.18') @@ -1381,7 +1393,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.check_link_exists('test1') - output = subprocess.check_output(['ip', 'rule'], universal_newlines=True).rstrip() + output = check_output('ip rule') print(output) self.assertRegex(output, '111') self.assertRegex(output, 'not.*?from.*?192.168.100.18') @@ -1394,15 +1406,15 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.wait_online(['dummy98:routable']) - output = subprocess.check_output(['ip', '-6', 'route', 'show', 'dev', 'dummy98'], universal_newlines=True).rstrip() + output = check_output('ip -6 route show dev dummy98') print(output) self.assertRegex(output, '2001:1234:5:8fff:ff:ff:ff:ff proto static') self.assertRegex(output, '2001:1234:5:8f63::1 proto kernel') - output = subprocess.check_output(['ip', '-6', 'route', 'show', 'dev', 'dummy98', 'default'], universal_newlines=True).rstrip() + output = check_output('ip -6 route show dev dummy98 default') self.assertRegex(output, 'default via 2001:1234:5:8fff:ff:ff:ff:ff proto static metric 1024 pref medium') - output = subprocess.check_output(['ip', '-4', 'route', 'show', 'dev', 'dummy98'], universal_newlines=True).rstrip() + output = check_output('ip -4 route show dev dummy98') print(output) self.assertRegex(output, '149.10.124.48/28 proto kernel scope link src 149.10.124.58') self.assertRegex(output, '149.10.124.64 proto static scope link') @@ -1410,20 +1422,20 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.assertRegex(output, '192.168.1.1 proto static initcwnd 20') self.assertRegex(output, '192.168.1.2 proto static initrwnd 30') - output = subprocess.check_output(['ip', '-4', 'route', 'show', 'dev', 'dummy98', 'default'], universal_newlines=True).rstrip() + output = check_output('ip -4 route show dev dummy98 default') self.assertRegex(output, 'default via 149.10.125.65 proto static onlink') self.assertRegex(output, 'default via 149.10.124.64 proto static') self.assertRegex(output, 'default proto static') - output = subprocess.check_output(['ip', 'route', 'show', 'type', 'blackhole'], universal_newlines=True).rstrip() + output = check_output('ip route show type blackhole') print(output) self.assertRegex(output, 'blackhole 202.54.1.2 proto static') - output = subprocess.check_output(['ip', 'route', 'show', 'type', 'unreachable'], universal_newlines=True).rstrip() + output = check_output('ip route show type unreachable') print(output) self.assertRegex(output, 'unreachable 202.54.1.3 proto static') - output = subprocess.check_output(['ip', 'route', 'show', 'type', 'prohibit'], universal_newlines=True).rstrip() + output = check_output('ip route show type prohibit') print(output) self.assertRegex(output, 'prohibit 202.54.1.4 proto static') @@ -1437,7 +1449,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.check_link_exists('dummy98') self.check_link_exists('bond199') - output = subprocess.check_output(['ip', '-6', 'route', 'list', 'dev', 'bond199'], universal_newlines=True).rstrip() + output = check_output('ip -6 route list dev bond199') print(output) self.assertRegex(output, 'abcd::/16') self.assertRegex(output, 'src') @@ -1449,7 +1461,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.check_link_exists('dummy98') - output = subprocess.check_output(['ip', 'link', 'show', 'dummy98'], universal_newlines=True).rstrip() + output = check_output('ip link show dummy98') print(output) self.assertRegex(output, '00:01:02:aa:bb:cc') @@ -1459,7 +1471,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.check_link_exists('dummy98') - output = subprocess.check_output(networkctl_cmd + ['status', 'dummy98'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'dummy98') print(output) self.assertRegex(output, 'unmanaged') @@ -1469,7 +1481,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.check_link_exists('dummy98') - output = subprocess.check_output(['ip', 'addrlabel', 'list'], universal_newlines=True).rstrip() + output = check_output('ip addrlabel list') print(output) self.assertRegex(output, '2004:da8:1::/64') @@ -1479,7 +1491,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.check_link_exists('dummy98') - output = subprocess.check_output(['ip', 'neigh', 'list'], universal_newlines=True).rstrip() + output = check_output('ip neigh list') print(output) self.assertRegex(output, '192.168.10.1.*00:00:5e:00:02:65.*PERMANENT') self.assertRegex(output, '2004:da8:1::1.*00:00:5e:00:02:66.*PERMANENT') @@ -1493,12 +1505,12 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.check_link_exists('test1') self.check_link_exists('dummy98') - output = subprocess.check_output(['ip', 'address', 'show', 'dev', 'test1'], universal_newlines=True).rstrip() + output = check_output('ip address show dev test1') print(output) self.assertRegex(output, 'inet .* scope link') self.assertRegex(output, 'inet6 .* scope link') - output = subprocess.check_output(['ip', 'address', 'show', 'dev', 'dummy98'], universal_newlines=True).rstrip() + output = check_output('ip address show dev dummy98') print(output) self.assertNotRegex(output, 'inet6* .* scope link') @@ -1561,10 +1573,10 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['dummy98:routable']) - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dummy98'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dummy98') print(output) self.assertRegex(output, 'inet 10.2.3.4/16 brd 10.2.255.255 scope global dummy98') - output = subprocess.check_output(['ip', '-6', 'address', 'show', 'dummy98'], universal_newlines=True).rstrip() + output = check_output('ip -6 address show dummy98') print(output) self.assertEqual(output, '') self.check_operstate('dummy98', 'routable') @@ -1578,10 +1590,10 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['dummy98:routable']) - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dummy98'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dummy98') print(output) self.assertRegex(output, 'inet 10.2.3.4/16 brd 10.2.255.255 scope global dummy98') - output = subprocess.check_output(['ip', '-6', 'address', 'show', 'dummy98'], universal_newlines=True).rstrip() + output = check_output('ip -6 address show dummy98') print(output) self.assertRegex(output, 'inet6 .* scope link') self.check_operstate('dummy98', 'routable') @@ -1595,7 +1607,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.assertEqual(subprocess.call(['ip', 'link', 'add', 'dummy98', 'type', 'dummy']), 0) self.assertEqual(subprocess.call(['ip', 'link', 'set', 'dummy98', 'up']), 0) time.sleep(2) - output = subprocess.check_output(['ip', 'address', 'show', 'test1'], universal_newlines=True).rstrip() + output = check_output('ip address show test1') print(output) self.assertRegex(output, 'UP,LOWER_UP') self.assertRegex(output, 'inet 192.168.10.30/24 brd 192.168.10.255 scope global test1') @@ -1604,7 +1616,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.assertEqual(subprocess.call(['ip', 'link', 'add', 'dummy99', 'type', 'dummy']), 0) self.assertEqual(subprocess.call(['ip', 'link', 'set', 'dummy99', 'up']), 0) time.sleep(2) - output = subprocess.check_output(['ip', 'address', 'show', 'test1'], universal_newlines=True).rstrip() + output = check_output('ip address show test1') print(output) self.assertRegex(output, 'UP,LOWER_UP') self.assertRegex(output, 'inet 192.168.10.30/24 brd 192.168.10.255 scope global test1') @@ -1612,7 +1624,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.assertEqual(subprocess.call(['ip', 'link', 'del', 'dummy98']), 0) time.sleep(2) - output = subprocess.check_output(['ip', 'address', 'show', 'test1'], universal_newlines=True).rstrip() + output = check_output('ip address show test1') print(output) self.assertRegex(output, 'UP,LOWER_UP') self.assertRegex(output, 'inet 192.168.10.30/24 brd 192.168.10.255 scope global test1') @@ -1620,7 +1632,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.assertEqual(subprocess.call(['ip', 'link', 'del', 'dummy99']), 0) time.sleep(2) - output = subprocess.check_output(['ip', 'address', 'show', 'test1'], universal_newlines=True).rstrip() + output = check_output('ip address show test1') print(output) self.assertNotRegex(output, 'UP,LOWER_UP') self.assertRegex(output, 'DOWN') @@ -1630,7 +1642,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.assertEqual(subprocess.call(['ip', 'link', 'add', 'dummy98', 'type', 'dummy']), 0) self.assertEqual(subprocess.call(['ip', 'link', 'set', 'dummy98', 'up']), 0) time.sleep(2) - output = subprocess.check_output(['ip', 'address', 'show', 'test1'], universal_newlines=True).rstrip() + output = check_output('ip address show test1') print(output) self.assertRegex(output, 'UP,LOWER_UP') self.assertRegex(output, 'inet 192.168.10.30/24 brd 192.168.10.255 scope global test1') @@ -1641,7 +1653,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['dummy98:routable']) - output = subprocess.check_output(networkctl_cmd + ['status', 'dummy98'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'dummy98', env=env) print(output) self.assertRegex(output, 'Address: 192.168.42.100') self.assertRegex(output, 'DNS: 192.168.42.1') @@ -1680,7 +1692,7 @@ class NetworkdBondTests(unittest.TestCase, Utilities): self.check_link_exists('dummy98') self.check_link_exists('bond199') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'bond199'], universal_newlines=True).rstrip() + output = check_output('ip -d link show bond199') print(output) self.assertRegex(output, 'active_slave dummy98') @@ -1691,7 +1703,7 @@ class NetworkdBondTests(unittest.TestCase, Utilities): self.check_link_exists('test1') self.check_link_exists('bond199') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'bond199'], universal_newlines=True).rstrip() + output = check_output('ip -d link show bond199') print(output) self.assertRegex(output, 'primary test1') @@ -1704,15 +1716,15 @@ class NetworkdBondTests(unittest.TestCase, Utilities): self.check_link_exists('dummy98') self.check_link_exists('test1') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'dummy98'], universal_newlines=True).rstrip() + output = check_output('ip -d link show dummy98') print(output) self.assertRegex(output, 'SLAVE,UP,LOWER_UP') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'test1'], universal_newlines=True).rstrip() + output = check_output('ip -d link show test1') print(output) self.assertRegex(output, 'SLAVE,UP,LOWER_UP') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'bond99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show bond99') print(output) self.assertRegex(output, 'MASTER,UP,LOWER_UP') @@ -1744,7 +1756,7 @@ class NetworkdBondTests(unittest.TestCase, Utilities): for trial in range(30): if trial > 0: time.sleep(1) - output = subprocess.check_output(['ip', 'address', 'show', 'bond99'], universal_newlines=True).rstrip() + output = check_output('ip address show bond99') print(output) if self.get_operstate('bond99') == 'no-carrier': break @@ -1785,21 +1797,21 @@ class NetworkdBridgeTests(unittest.TestCase, Utilities): self.check_link_exists('test1') self.check_link_exists('bridge99') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'test1'], universal_newlines=True).rstrip() + output = check_output('ip -d link show test1') print(output) self.assertRegex(output, 'master') self.assertRegex(output, 'bridge') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'dummy98'], universal_newlines=True).rstrip() + output = check_output('ip -d link show dummy98') print(output) self.assertRegex(output, 'master') self.assertRegex(output, 'bridge') - output = subprocess.check_output(['ip', 'addr', 'show', 'bridge99'], universal_newlines=True).rstrip() + output = check_output('ip addr show bridge99') print(output) self.assertRegex(output, '192.168.0.15/24') - output = subprocess.check_output(['bridge', '-d', 'link', 'show', 'dummy98'], universal_newlines=True).rstrip() + output = check_output('bridge -d link show dummy98') print(output) self.assertEqual(self.read_bridge_port_attr('bridge99', 'dummy98', 'hairpin_mode'), '1') self.assertEqual(self.read_bridge_port_attr('bridge99', 'dummy98', 'path_cost'), '400') @@ -1818,16 +1830,16 @@ class NetworkdBridgeTests(unittest.TestCase, Utilities): self.check_operstate('dummy98', 'enslaved') self.check_operstate('bridge99', 'routable') - self.assertEqual(subprocess.call(['ip', 'address', 'add', '192.168.0.16/24', 'dev', 'bridge99']), 0) + check_output('ip address add 192.168.0.16/24 dev bridge99') time.sleep(1) - output = subprocess.check_output(['ip', 'addr', 'show', 'bridge99'], universal_newlines=True).rstrip() + output = check_output('ip addr show bridge99') print(output) self.assertRegex(output, '192.168.0.16/24') self.check_operstate('bridge99', 'routable') - self.assertEqual(subprocess.call(['ip', 'link', 'del', 'test1']), 0) + self.assertEqual(call('ip link del test1'), 0) time.sleep(3) self.check_operstate('bridge99', 'degraded-carrier') @@ -1837,7 +1849,7 @@ class NetworkdBridgeTests(unittest.TestCase, Utilities): self.check_operstate('bridge99', 'no-carrier') - output = subprocess.check_output(['ip', 'address', 'show', 'bridge99'], universal_newlines=True).rstrip() + output = check_output('ip address show bridge99') print(output) self.assertRegex(output, 'NO-CARRIER') self.assertNotRegex(output, '192.168.0.15/24') @@ -1847,8 +1859,7 @@ class NetworkdBridgeTests(unittest.TestCase, Utilities): self.copy_unit_to_networkd_unit_path('11-dummy.netdev', '12-dummy.netdev', '26-bridge.netdev', '26-bridge-slave-interface-1.network', '26-bridge-slave-interface-2.network', 'bridge99-ignore-carrier-loss.network') - - subprocess.call(['ip', 'rule', 'del', 'table', '100']) + call('ip rule del table 100') self.start_networkd() @@ -1856,26 +1867,26 @@ class NetworkdBridgeTests(unittest.TestCase, Utilities): self.check_link_exists('test1') self.check_link_exists('bridge99') - self.assertEqual(subprocess.call(['ip', 'address', 'add', '192.168.0.16/24', 'dev', 'bridge99']), 0) + check_output('ip address add 192.168.0.16/24 dev bridge99') time.sleep(1) - self.assertEqual(subprocess.call(['ip', 'link', 'del', 'test1']), 0) - self.assertEqual(subprocess.call(['ip', 'link', 'del', 'dummy98']), 0) + check_output('ip link del test1') + check_output('ip link del dummy98') time.sleep(3) - output = subprocess.check_output(['ip', 'address', 'show', 'bridge99'], universal_newlines=True).rstrip() + output = check_output('ip address show bridge99') print(output) self.assertRegex(output, 'NO-CARRIER') self.assertRegex(output, 'inet 192.168.0.15/24 brd 192.168.0.255 scope global bridge99') self.assertRegex(output, 'inet 192.168.0.16/24 scope global secondary bridge99') - subprocess.call(['ip', 'rule', 'del', 'table', '100']) + call('ip rule del table 100') def test_bridge_ignore_carrier_loss_frequent_loss_and_gain(self): self.copy_unit_to_networkd_unit_path('26-bridge.netdev', '26-bridge-slave-interface-1.network', 'bridge99-ignore-carrier-loss.network') - subprocess.call(['ip', 'rule', 'del', 'table', '100']) + call('ip rule del table 100') self.start_networkd() @@ -1904,15 +1915,15 @@ class NetworkdBridgeTests(unittest.TestCase, Utilities): else: self.assertTrue(False) - output = subprocess.check_output(['ip', 'address', 'show', 'bridge99'], universal_newlines=True).rstrip() + output = check_output('ip address show bridge99') print(output) self.assertRegex(output, 'inet 192.168.0.15/24 brd 192.168.0.255 scope global bridge99') - output = subprocess.check_output(['ip', 'rule', 'list', 'table', '100'], universal_newlines=True).rstrip() + output = check_output('ip rule list table 100') print(output) self.assertEqual(output, '0: from all to 8.8.8.8 lookup 100') - subprocess.call(['ip', 'rule', 'del', 'table', '100']) + call('ip rule del table 100') class NetworkdLLDPTests(unittest.TestCase, Utilities): links = ['veth99'] @@ -1934,7 +1945,7 @@ class NetworkdLLDPTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['veth99:degraded', 'veth-peer:degraded']) - output = subprocess.check_output(networkctl_cmd + ['lldp'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'lldp', env=env) print(output) self.assertRegex(output, 'veth-peer') self.assertRegex(output, 'veth99') @@ -1960,7 +1971,7 @@ class NetworkdRATests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['veth99:routable', 'veth-peer:degraded']) - output = subprocess.check_output(networkctl_cmd + ['status', 'veth99'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'veth99', env=env) print(output) self.assertRegex(output, '2002:da8:1:0') @@ -1987,7 +1998,7 @@ class NetworkdDHCPServerTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['veth99:routable', 'veth-peer:routable']) - output = subprocess.check_output(networkctl_cmd + ['status', 'veth99'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'veth99', env=env) print(output) self.assertRegex(output, '192.168.5.*') self.assertRegex(output, 'Gateway: 192.168.5.1') @@ -2000,7 +2011,7 @@ class NetworkdDHCPServerTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['veth99:routable', 'veth-peer:routable']) - output = subprocess.check_output(networkctl_cmd + ['status', 'veth99'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'veth99', env=env) print(output) self.assertRegex(output, 'Gateway: 192.168.5.*') self.assertRegex(output, '192.168.5.*') @@ -2053,13 +2064,13 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.start_dnsmasq() self.wait_online(['veth99:routable', 'veth-peer:routable']) - output = subprocess.check_output(networkctl_cmd + ['status', 'veth99'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'veth99', env=env) print(output) self.assertRegex(output, '2600::') self.assertNotRegex(output, '192.168.5') # Confirm that ipv6 token is not set in the kernel - output = subprocess.check_output(['ip', 'token', 'show', 'dev', 'veth99'], universal_newlines=True).rstrip() + output = check_output('ip token show dev veth99') print(output) self.assertRegex(output, 'token :: dev veth99') @@ -2071,7 +2082,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.start_dnsmasq() self.wait_online(['veth99:routable', 'veth-peer:routable']) - output = subprocess.check_output(networkctl_cmd + ['status', 'veth99'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'veth99', env=env) print(output) self.assertNotRegex(output, '2600::') self.assertRegex(output, '192.168.5') @@ -2088,7 +2099,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.wait_address('veth99', r'inet 192.168.5.[0-9]*/24 brd 192.168.5.255 scope global dynamic', ipv='-4') self.wait_address('veth99', r'inet6 2600::[0-9a-f]*/128 scope global (?:dynamic noprefixroute|noprefixroute dynamic)', ipv='-6') - output = subprocess.check_output(networkctl_cmd + ['status', 'veth99'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'veth99', env=env) print(output) self.assertRegex(output, '2600::') self.assertRegex(output, '192.168.5') @@ -2102,7 +2113,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.wait_online(['veth99:routable', 'veth-peer:routable']) print('## ip address show dev veth99') - output = subprocess.check_output(['ip', 'address', 'show', 'dev', 'veth99'], universal_newlines=True).rstrip() + output = check_output('ip address show dev veth99') print(output) self.assertRegex(output, '12:34:56:78:9a:bc') self.assertRegex(output, '192.168.5') @@ -2110,12 +2121,12 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): # issue #8726 print('## ip route show table main dev veth99') - output = subprocess.check_output(['ip', 'route', 'show', 'table', 'main', 'dev', 'veth99'], universal_newlines=True).rstrip() + output = check_output('ip route show table main dev veth99') print(output) self.assertNotRegex(output, 'proto dhcp') print('## ip route show table 211 dev veth99') - output = subprocess.check_output(['ip', 'route', 'show', 'table', '211', 'dev', 'veth99'], universal_newlines=True).rstrip() + output = check_output('ip route show table 211 dev veth99') print(output) self.assertRegex(output, 'default via 192.168.5.1 proto dhcp') self.assertRegex(output, '192.168.5.0/24 via 192.168.5.5 proto dhcp') @@ -2134,7 +2145,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.start_dnsmasq() self.wait_online(['veth99:routable', 'veth-peer:routable']) - output = subprocess.check_output(['ip', 'address', 'show', 'dev', 'veth99'], universal_newlines=True).rstrip() + output = check_output('ip address show dev veth99') print(output) self.assertRegex(output, '12:34:56:78:9a:bc') self.assertTrue(self.search_words_in_dnsmasq_log('14:rapid-commit', True)) @@ -2146,7 +2157,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.start_dnsmasq() self.wait_online(['veth99:routable', 'veth-peer:routable']) - output = subprocess.check_output(['ip', 'address', 'show', 'dev', 'veth99'], universal_newlines=True).rstrip() + output = check_output('ip address show dev veth99') print(output) self.assertRegex(output, '12:34:56:78:9a:bc') self.assertFalse(self.search_words_in_dnsmasq_log('14:rapid-commit', True)) @@ -2173,7 +2184,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.wait_address('veth99', r'inet 192.168.5.[0-9]*/24 brd 192.168.5.255 scope global dynamic', ipv='-4') self.wait_address('veth99', r'inet6 2600::[0-9a-f]*/128 scope global (?:dynamic noprefixroute|noprefixroute dynamic)', ipv='-6') - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'veth99'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev veth99') print(output) self.assertRegex(output, '192.168.5.* dynamic') @@ -2184,7 +2195,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.start_dnsmasq() self.wait_online(['veth99:routable', 'veth-peer:routable']) - output = subprocess.check_output(['ip', 'route', 'show', 'table', '12'], universal_newlines=True).rstrip() + output = check_output('ip route show table 12') print(output) self.assertRegex(output, 'veth99 proto dhcp') self.assertRegex(output, '192.168.5.1') @@ -2196,7 +2207,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.start_dnsmasq() self.wait_online(['veth99:routable', 'veth-peer:routable']) - output = subprocess.check_output(['ip', 'route', 'show', 'dev', 'veth99'], universal_newlines=True).rstrip() + output = check_output('ip route show dev veth99') print(output) self.assertRegex(output, 'metric 24') @@ -2207,7 +2218,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.start_dnsmasq() self.wait_online(['veth99:routable', 'veth-peer:routable']) - output = subprocess.check_output(networkctl_cmd + ['status', 'veth99'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'veth99', env=env) print(output) self.assertRegex(output, '192.168.5.*') @@ -2217,7 +2228,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): # Sleep for 120 sec as the dnsmasq minimum lease time can only be set to 120 time.sleep(125) - output = subprocess.check_output(networkctl_cmd + ['status', 'veth99'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'veth99', env=env) print(output) self.assertRegex(output, '192.168.5.*') @@ -2232,7 +2243,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.wait_address('veth99', r'inet 192.168.5.[0-9]*/24 brd 192.168.5.255 scope global dynamic', ipv='-4') self.wait_address('veth99', r'inet6 2600::[0-9a-f]*/128 scope global (?:dynamic noprefixroute|noprefixroute dynamic)', ipv='-6') - output = subprocess.check_output(['ip', 'address', 'show', 'dev', 'veth99', 'scope', 'global'], universal_newlines=True).rstrip() + output = check_output('ip address show dev veth99 scope global') print(output) self.assertRegex(output, '192.168.5') self.assertRegex(output, '2600::') @@ -2252,12 +2263,12 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.start_networkd(5) self.wait_online(['veth99:routable', 'veth-peer:routable']) - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'veth99', 'scope', 'global'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev veth99 scope global') print(output) self.assertRegex(output, '192.168.5') self.assertRegex(output, 'valid_lft forever preferred_lft forever') - output = subprocess.check_output(['ip', '-6', 'address', 'show', 'dev', 'veth99', 'scope', 'global'], universal_newlines=True).rstrip() + output = check_output('ip -6 address show dev veth99 scope global') print(output) self.assertRegex(output, '2600::') self.assertRegex(output, 'valid_lft forever preferred_lft forever') @@ -2276,12 +2287,12 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.wait_address('veth99', r'inet6 2600::[0-9a-f]*/128 scope global (?:dynamic noprefixroute|noprefixroute dynamic)', ipv='-6') print('## ip -d link show dev vrf99') - output = subprocess.check_output(['ip', '-d', 'link', 'show', 'dev', 'vrf99'], universal_newlines=True).rstrip() + output = check_output('ip -d link show dev vrf99') print(output) self.assertRegex(output, 'vrf table 42') print('## ip address show vrf vrf99') - output = subprocess.check_output(['ip', 'address', 'show', 'vrf', 'vrf99'], universal_newlines=True).rstrip() + output = check_output('ip address show vrf vrf99') print(output) self.assertRegex(output, 'inet 169.254.[0-9]*.[0-9]*/16 brd 169.254.255.255 scope link veth99') self.assertRegex(output, 'inet 192.168.5.[0-9]*/24 brd 192.168.5.255 scope global dynamic veth99') @@ -2289,7 +2300,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.assertRegex(output, 'inet6 .* scope link') print('## ip address show dev veth99') - output = subprocess.check_output(['ip', 'address', 'show', 'dev', 'veth99'], universal_newlines=True).rstrip() + output = check_output('ip address show dev veth99') print(output) self.assertRegex(output, 'inet 169.254.[0-9]*.[0-9]*/16 brd 169.254.255.255 scope link veth99') self.assertRegex(output, 'inet 192.168.5.[0-9]*/24 brd 192.168.5.255 scope global dynamic veth99') @@ -2297,7 +2308,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.assertRegex(output, 'inet6 .* scope link') print('## ip route show vrf vrf99') - output = subprocess.check_output(['ip', 'route', 'show', 'vrf', 'vrf99'], universal_newlines=True).rstrip() + output = check_output('ip route show vrf vrf99') print(output) self.assertRegex(output, 'default via 192.168.5.1 dev veth99 proto dhcp src 192.168.5.') self.assertRegex(output, 'default dev veth99 proto static scope link') @@ -2307,7 +2318,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.assertRegex(output, '192.168.5.1 dev veth99 proto dhcp scope link src 192.168.5') print('## ip route show table main dev veth99') - output = subprocess.check_output(['ip', 'route', 'show', 'table', 'main', 'dev', 'veth99'], universal_newlines=True).rstrip() + output = check_output('ip route show table main dev veth99') print(output) self.assertEqual(output, '') @@ -2322,14 +2333,14 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.start_dnsmasq() self.wait_online(['veth99:routable', 'veth-peer:routable']) - output = subprocess.check_output(networkctl_cmd + ['status', 'veth99'], universal_newlines=True, env=env).rstrip() + output = check_output(*networkctl_cmd, 'status', 'veth99', env=env) print(output) self.assertRegex(output, '192.168.5') - output = subprocess.check_output(['ip', 'route', 'list', 'dev', 'veth99', '10.0.0.0/8'], universal_newlines=True).rstrip() + output = check_output('ip route list dev veth99 10.0.0.0/8') print(output) self.assertRegex(output, 'onlink') - output = subprocess.check_output(['ip', 'route', 'list', 'dev', 'veth99', '192.168.100.0/24'], universal_newlines=True).rstrip() + output = check_output('ip route list dev veth99 192.168.100.0/24') print(output) self.assertRegex(output, 'onlink') @@ -2341,31 +2352,31 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.start_dnsmasq(lease_time='2m') self.wait_online(['veth99:routable', 'veth-peer:routable']) - output = subprocess.check_output(['ip', 'address', 'show', 'dev', 'veth99'], universal_newlines=True).rstrip() + output = check_output('ip address show dev veth99') print(output) - output = subprocess.check_output(['ip', '-6', 'address', 'show', 'dev', 'veth99', 'scope', 'global', 'dynamic'], universal_newlines=True).rstrip() + output = check_output('ip -6 address show dev veth99 scope global dynamic') self.assertNotRegex(output, 'inet6 2600::[0-9a-f]*/128 scope global dynamic') - output = subprocess.check_output(['ip', '-6', 'address', 'show', 'dev', 'veth99', 'scope', 'link'], universal_newlines=True).rstrip() + output = check_output('ip -6 address show dev veth99 scope link') self.assertRegex(output, 'inet6 .* scope link') - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'veth99', 'scope', 'global', 'dynamic'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev veth99 scope global dynamic') self.assertRegex(output, 'inet 192.168.5.[0-9]*/24 brd 192.168.5.255 scope global dynamic veth99') - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'veth99', 'scope', 'link'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev veth99 scope link') self.assertNotRegex(output, 'inet .* scope link') print('Wait for the dynamic address to be expired') time.sleep(130) - output = subprocess.check_output(['ip', 'address', 'show', 'dev', 'veth99'], universal_newlines=True).rstrip() + output = check_output('ip address show dev veth99') print(output) - output = subprocess.check_output(['ip', '-6', 'address', 'show', 'dev', 'veth99', 'scope', 'global', 'dynamic'], universal_newlines=True).rstrip() + output = check_output('ip -6 address show dev veth99 scope global dynamic') self.assertNotRegex(output, 'inet6 2600::[0-9a-f]*/128 scope global dynamic') - output = subprocess.check_output(['ip', '-6', 'address', 'show', 'dev', 'veth99', 'scope', 'link'], universal_newlines=True).rstrip() + output = check_output('ip -6 address show dev veth99 scope link') self.assertRegex(output, 'inet6 .* scope link') - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'veth99', 'scope', 'global', 'dynamic'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev veth99 scope global dynamic') self.assertRegex(output, 'inet 192.168.5.[0-9]*/24 brd 192.168.5.255 scope global dynamic veth99') - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'veth99', 'scope', 'link'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev veth99 scope link') self.assertNotRegex(output, 'inet .* scope link') self.search_words_in_dnsmasq_log('DHCPOFFER', show_all=True) @@ -2376,16 +2387,16 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.start_networkd(0) self.wait_online(['veth99:degraded', 'veth-peer:routable']) - output = subprocess.check_output(['ip', 'address', 'show', 'dev', 'veth99'], universal_newlines=True).rstrip() + output = check_output('ip address show dev veth99') print(output) - output = subprocess.check_output(['ip', '-6', 'address', 'show', 'dev', 'veth99', 'scope', 'global', 'dynamic'], universal_newlines=True).rstrip() + output = check_output('ip -6 address show dev veth99 scope global dynamic') self.assertNotRegex(output, 'inet6 2600::[0-9a-f]*/128 scope global dynamic') - output = subprocess.check_output(['ip', '-6', 'address', 'show', 'dev', 'veth99', 'scope', 'link'], universal_newlines=True).rstrip() + output = check_output('ip -6 address show dev veth99 scope link') self.assertRegex(output, 'inet6 .* scope link') - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'veth99', 'scope', 'global', 'dynamic'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev veth99 scope global dynamic') self.assertNotRegex(output, 'inet 192.168.5.[0-9]*/24 brd 192.168.5.255 scope global dynamic veth99') - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'veth99', 'scope', 'link'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev veth99 scope link') self.assertRegex(output, 'inet .* scope link') def test_dhcp_client_route_remove_on_renew(self): @@ -2398,7 +2409,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): # test for issue #12490 - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'veth99', 'scope', 'global', 'dynamic'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev veth99 scope global dynamic') print(output) self.assertRegex(output, 'inet 192.168.5.1[0-9]*/24 brd 192.168.5.255 scope global dynamic veth99') address1=None @@ -2407,7 +2418,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): address1 = line.split()[1].split('/')[0] break - output = subprocess.check_output(['ip', '-4', 'route', 'show', 'dev', 'veth99'], universal_newlines=True).rstrip() + output = check_output('ip -4 route show dev veth99') print(output) self.assertRegex(output, f'default via 192.168.5.1 proto dhcp src {address1} metric 1024') self.assertRegex(output, f'192.168.5.1 proto dhcp scope link src {address1} metric 1024') @@ -2418,7 +2429,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): print('Wait for the dynamic address to be expired') time.sleep(130) - output = subprocess.check_output(['ip', '-4', 'address', 'show', 'dev', 'veth99', 'scope', 'global', 'dynamic'], universal_newlines=True).rstrip() + output = check_output('ip -4 address show dev veth99 scope global dynamic') print(output) self.assertRegex(output, 'inet 192.168.5.2[0-9]*/24 brd 192.168.5.255 scope global dynamic veth99') address2=None @@ -2429,7 +2440,7 @@ class NetworkdDHCPClientTests(unittest.TestCase, Utilities): self.assertNotEqual(address1, address2) - output = subprocess.check_output(['ip', '-4', 'route', 'show', 'dev', 'veth99'], universal_newlines=True).rstrip() + output = check_output('ip -4 route show dev veth99') print(output) self.assertNotRegex(output, f'default via 192.168.5.1 proto dhcp src {address1} metric 1024') self.assertNotRegex(output, f'192.168.5.1 proto dhcp scope link src {address1} metric 1024') |