summaryrefslogtreecommitdiff
path: root/smoketest/scripts/cli
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2026-09-16 23:50:12 +0200
committerChristian Breunig <christian@breunig.cc>2026-09-16 23:50:12 +0200
commit9d9f3bf5aa29a7bdd7dd1abfa879eab1647b751a (patch)
tree035458f76181d98072f735b9c7c471ff8a19b6cf /smoketest/scripts/cli
parentf6102c545e8587acb747af3dca5633143a59c781 (diff)
downloadvyos-1x-9d9f3bf5aa29a7bdd7dd1abfa879eab1647b751a.tar.gz
vyos-1x-9d9f3bf5aa29a7bdd7dd1abfa879eab1647b751a.zip
smoketest: T9316: use get_vrf_pids() for the remaining VRF process probes
The other smoketests checking that a service runs inside a VRF matched the process name against the raw output of "ip vrf pids <name>", where it can also hit the PID column. Use get_vrf_pids() and match the name column exactly - it is the kernel comm (ip/ipvrf.c prints the "Name:" field of /proc/<pid>/status), so it is always a bare short name.
Diffstat (limited to 'smoketest/scripts/cli')
-rwxr-xr-xsmoketest/scripts/cli/test_service_dns_dynamic.py5
-rwxr-xr-xsmoketest/scripts/cli/test_service_https.py6
-rwxr-xr-xsmoketest/scripts/cli/test_service_ntp.py6
-rwxr-xr-xsmoketest/scripts/cli/test_service_ssh.py9
-rwxr-xr-xsmoketest/scripts/cli/test_service_tftp-server.py6
-rwxr-xr-xsmoketest/scripts/cli/test_system_sflow.py6
6 files changed, 20 insertions, 18 deletions
diff --git a/smoketest/scripts/cli/test_service_dns_dynamic.py b/smoketest/scripts/cli/test_service_dns_dynamic.py
index e599f18be..0afb22d52 100755
--- a/smoketest/scripts/cli/test_service_dns_dynamic.py
+++ b/smoketest/scripts/cli/test_service_dns_dynamic.py
@@ -23,6 +23,7 @@ from vyos.configsession import ConfigSessionError
from vyos.utils.file import read_file
from vyos.utils.process import cmdl
from vyos.utils.process import process_named_running
+from vyos.utils.network import get_vrf_pids
from vyos.xml_ref import default_value
DDCLIENT_SYSTEMD_UNIT = '/run/systemd/system/ddclient.service.d/override.conf'
@@ -371,8 +372,8 @@ class TestServiceDDNS(VyOSUnitTestSHIM.TestCase):
)
# Check for process in VRF
- proc = cmdl(['ip', 'vrf', 'pids', vrf_name])
- self.assertIn(DDCLIENT_PNAME, proc)
+ vrf_procs = [name for _, name in get_vrf_pids(vrf_name)]
+ self.assertIn(DDCLIENT_PNAME, vrf_procs)
# Cleanup VRF
self.cli_delete(['vrf', 'name', vrf_name])
diff --git a/smoketest/scripts/cli/test_service_https.py b/smoketest/scripts/cli/test_service_https.py
index 0f4330153..93a4dff3d 100755
--- a/smoketest/scripts/cli/test_service_https.py
+++ b/smoketest/scripts/cli/test_service_https.py
@@ -28,8 +28,8 @@ from base_vyostest_shim import ignore_warning
from vyos.utils.file import read_file
from vyos.utils.file import write_file
from vyos.utils.process import call
-from vyos.utils.process import cmdl
from vyos.utils.process import process_named_running
+from vyos.utils.network import get_vrf_pids
from vyos.pki import CERT_BEGIN
from vyos.pki import encode_certificate
from vyos.pki import load_certificate
@@ -248,8 +248,8 @@ class TestHTTPSService(VyOSUnitTestSHIM.TestCase):
self.cli_commit()
# Verify nginx is running inside the VRF
- tmp = cmdl(['ip', 'vrf', 'pids', vrf])
- self.assertIn(PROCESS_NAME, tmp)
+ vrf_procs = [name for _, name in get_vrf_pids(vrf)]
+ self.assertIn(PROCESS_NAME, vrf_procs)
self.cli_delete(['interfaces', 'dummy', interface])
self.cli_delete(['vrf', 'name', vrf])
diff --git a/smoketest/scripts/cli/test_service_ntp.py b/smoketest/scripts/cli/test_service_ntp.py
index 0b8094963..b0109ab51 100755
--- a/smoketest/scripts/cli/test_service_ntp.py
+++ b/smoketest/scripts/cli/test_service_ntp.py
@@ -20,8 +20,8 @@ from base_vyostest_shim import VyOSUnitTestSHIM
from vyos.configsession import ConfigSessionError
from vyos.utils.file import read_file
-from vyos.utils.process import cmdl
from vyos.utils.process import process_named_running
+from vyos.utils.network import get_vrf_pids
from vyos.xml_ref import default_value
PROCESS_NAME = 'chronyd'
@@ -278,8 +278,8 @@ class TestSystemNTP(VyOSUnitTestSHIM.TestCase):
self.cli_commit()
# Check for process in VRF
- tmp = cmdl(['ip', 'vrf', 'pids', vrf_name])
- self.assertIn(PROCESS_NAME, tmp)
+ vrf_procs = [name for _, name in get_vrf_pids(vrf_name)]
+ self.assertIn(PROCESS_NAME, vrf_procs)
self.cli_delete(['vrf', 'name', vrf_name])
diff --git a/smoketest/scripts/cli/test_service_ssh.py b/smoketest/scripts/cli/test_service_ssh.py
index 21d99bee6..120afb12a 100755
--- a/smoketest/scripts/cli/test_service_ssh.py
+++ b/smoketest/scripts/cli/test_service_ssh.py
@@ -29,6 +29,7 @@ from vyos.utils.process import is_systemd_service_running
from vyos.utils.process import process_named_running
from vyos.utils.file import read_file
from vyos.utils.file import write_file
+from vyos.utils.network import get_vrf_pids
from vyos.xml_ref import default_value
PROCESS_NAME = 'sshd'
@@ -253,8 +254,8 @@ class TestServiceSSH(VyOSUnitTestSHIM.TestCase):
self.cli_commit()
# Check for process in VRF
- tmp = cmdl(['ip', 'vrf', 'pids', vrf])
- self.assertIn(PROCESS_NAME, tmp)
+ vrf_procs = [name for _, name in get_vrf_pids(vrf)]
+ self.assertIn(PROCESS_NAME, vrf_procs)
def test_ssh_vrf_multi(self):
# Check if SSH service can be bound to multiple VRFs
@@ -276,8 +277,8 @@ class TestServiceSSH(VyOSUnitTestSHIM.TestCase):
# Check for process in VRF
for vrf in vrfs:
- tmp = cmdl(['ip', 'vrf', 'pids', vrf])
- self.assertIn(PROCESS_NAME, tmp)
+ vrf_procs = [name for _, name in get_vrf_pids(vrf)]
+ self.assertIn(PROCESS_NAME, vrf_procs)
def test_ssh_login(self):
# Perform SSH login and command execution with a predefined user. The
diff --git a/smoketest/scripts/cli/test_service_tftp-server.py b/smoketest/scripts/cli/test_service_tftp-server.py
index a6db25044..2c04f2122 100755
--- a/smoketest/scripts/cli/test_service_tftp-server.py
+++ b/smoketest/scripts/cli/test_service_tftp-server.py
@@ -20,9 +20,9 @@ from psutil import process_iter
from base_vyostest_shim import VyOSUnitTestSHIM
from vyos.configsession import ConfigSessionError
-from vyos.utils.process import cmdl
from vyos.utils.file import read_file
from vyos.utils.process import process_named_running
+from vyos.utils.network import get_vrf_pids
from vyos.template import is_ipv6
PROCESS_NAME = 'in.tftpd'
@@ -140,8 +140,8 @@ class TestServiceTFTPD(VyOSUnitTestSHIM.TestCase):
self.assertIn('--create --umask 000', config)
# Check for process in VRF
- tmp = cmdl(['ip', 'vrf', 'pids', vrf])
- self.assertIn(PROCESS_NAME, tmp)
+ vrf_procs = [name for _, name in get_vrf_pids(vrf)]
+ self.assertIn(PROCESS_NAME, vrf_procs)
# delete VRF
self.cli_delete(dummy_if_path + ['vrf'])
diff --git a/smoketest/scripts/cli/test_system_sflow.py b/smoketest/scripts/cli/test_system_sflow.py
index 2fb317af0..4822fc8dc 100755
--- a/smoketest/scripts/cli/test_system_sflow.py
+++ b/smoketest/scripts/cli/test_system_sflow.py
@@ -20,9 +20,9 @@ from base_vyostest_shim import VyOSUnitTestSHIM
from vyos.configsession import ConfigSessionError
from vyos.ifconfig import Section
-from vyos.utils.process import cmdl
from vyos.utils.process import process_named_running
from vyos.utils.file import read_file
+from vyos.utils.network import get_vrf_pids
PROCESS_NAME = 'hsflowd'
base_path = ['system', 'sflow']
@@ -148,8 +148,8 @@ class TestSystemFlowAccounting(VyOSUnitTestSHIM.TestCase):
self.assertIn(f'pcap {{ dev=eth0 }}', hsflowd)
# Check for process in VRF
- tmp = cmdl(['ip', 'vrf', 'pids', vrf])
- self.assertIn(PROCESS_NAME, tmp)
+ vrf_procs = [name for _, name in get_vrf_pids(vrf)]
+ self.assertIn(PROCESS_NAME, vrf_procs)
def test_sflow_egress(self):
interface = 'eth0'