Skip to content

Commit fee868d

Browse files
dirkmuellerphilpep
authored andcommitted
Test /etc/os-release first
On systems lsb_release could be patched to return a "compatible" distribution, not the native one. so prefer the modern /etc/os-release over lsb_release.
1 parent ca5bf83 commit fee868d

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

testinfra/modules/systeminfo.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -50,21 +50,6 @@ def sysinfo(self):
5050
def _get_linux_sysinfo(self):
5151
sysinfo = {}
5252

53-
# LSB
54-
lsb = self.run("lsb_release -a")
55-
if lsb.rc == 0:
56-
for line in lsb.stdout.splitlines():
57-
key, value = line.split(":", 1)
58-
key = key.strip().lower()
59-
value = value.strip().lower()
60-
if key == "distributor id":
61-
sysinfo["distribution"] = value
62-
elif key == "release":
63-
sysinfo["release"] = value
64-
elif key == "codename":
65-
sysinfo["codename"] = value
66-
return sysinfo
67-
6853
# https://www.freedesktop.org/software/systemd/man/os-release.html
6954
os_release = self.run("cat /etc/os-release")
7055
if os_release.rc == 0:
@@ -100,6 +85,21 @@ def _get_linux_sysinfo(self):
10085
sysinfo["release"] = alpine_release.stdout.strip()
10186
return sysinfo
10287

88+
# LSB
89+
lsb = self.run("lsb_release -a")
90+
if lsb.rc == 0:
91+
for line in lsb.stdout.splitlines():
92+
key, value = line.split(":", 1)
93+
key = key.strip().lower()
94+
value = value.strip().lower()
95+
if key == "distributor id":
96+
sysinfo["distribution"] = value
97+
elif key == "release":
98+
sysinfo["release"] = value
99+
elif key == "codename":
100+
sysinfo["codename"] = value
101+
return sysinfo
102+
103103
return sysinfo
104104

105105
def _get_darwin_sysinfo(self):

0 commit comments

Comments
 (0)