diff --git a/sonic_platform_base/sonic_pcie/pcie_common.py b/sonic_platform_base/sonic_pcie/pcie_common.py index 58590ea8c..127c614cd 100644 --- a/sonic_platform_base/sonic_pcie/pcie_common.py +++ b/sonic_platform_base/sonic_pcie/pcie_common.py @@ -39,14 +39,14 @@ def get_pcie_device(self): pciList = [] p1 = "^(\w+):(\w+)\.(\w)\s(.*)\s*\(*.*\)*" p2 = "^.*:.*:.*:(\w+)\s*\(*.*\)*" - command1 = "sudo lspci" - command2 = "sudo lspci -n" + command1 = ["sudo", "lspci"] + command2 = ["sudo", "lspci", "-n"] # run command 1 - proc1 = subprocess.Popen(command1, shell=True, universal_newlines=True, stdout=subprocess.PIPE) + proc1 = subprocess.Popen(command1, universal_newlines=True, stdout=subprocess.PIPE) output1 = proc1.stdout.readlines() (out, err) = proc1.communicate() # run command 2 - proc2 = subprocess.Popen(command2, shell=True, universal_newlines=True, stdout=subprocess.PIPE) + proc2 = subprocess.Popen(command2, universal_newlines=True, stdout=subprocess.PIPE) output2 = proc2.stdout.readlines() (out, err) = proc2.communicate() diff --git a/tests/pcie_common_test.py b/tests/pcie_common_test.py index a9cac55bd..9334584b9 100644 --- a/tests/pcie_common_test.py +++ b/tests/pcie_common_test.py @@ -131,9 +131,9 @@ class TestPcieCommon: def test_get_pcie_devices(self, subprocess_popen_mock): def subprocess_popen_side_effect(*args, **kwargs): - if args[0] == 'sudo lspci': + if args[0] == ['sudo', 'lspci']: output = lspci_output.splitlines() - elif args[0] == 'sudo lspci -n': + elif args[0] == ['sudo', 'lspci', '-n']: output = lspci_ID_output.splitlines() popen_mock = mock.Mock()