Support Debian
This commit is contained in:
parent
5a9997058d
commit
08d16574fc
2 changed files with 34 additions and 3 deletions
27
check_kernel
27
check_kernel
|
@ -14,13 +14,20 @@ def proc_version():
|
|||
|
||||
|
||||
def running_kernel_version():
|
||||
m = re.findall('(?<=Debian )\S+', proc_version())
|
||||
if m:
|
||||
# Note: it's the _second_ match
|
||||
version = clean_kernel_version(m[1])
|
||||
return version
|
||||
|
||||
m = re.search('(?<=Linux version )\S+', proc_version())
|
||||
if m:
|
||||
version = clean_kernel_version(m.group(0))
|
||||
else:
|
||||
version = None
|
||||
return version
|
||||
|
||||
return version
|
||||
|
||||
def is_debian():
|
||||
return posixpath.exists('/etc/debian_version')
|
||||
|
||||
|
||||
def is_fedora():
|
||||
|
@ -28,10 +35,24 @@ def is_fedora():
|
|||
|
||||
|
||||
def installed_kernel_versions():
|
||||
if is_debian():
|
||||
return installed_kernel_versions_debian()
|
||||
if is_fedora():
|
||||
return installed_kernel_versions_fedora()
|
||||
|
||||
|
||||
def installed_kernel_versions_debian():
|
||||
dpkg_out = subprocess.check_output(
|
||||
['dpkg-query', '--show', '--showformat', '${Package} ${Version}\n', 'linux-image*'])
|
||||
dpkg_out = dpkg_out.strip()
|
||||
|
||||
versions = dpkg_out.split('\n')
|
||||
versions = [v for v in versions if re.search('^linux-image-\d', v)]
|
||||
versions = [clean_kernel_version(v.split(' ')[1]) for v in versions]
|
||||
|
||||
return versions
|
||||
|
||||
|
||||
def installed_kernel_versions_fedora():
|
||||
rpm_out = subprocess.check_output(
|
||||
['rpm', '--queryformat=%{VERSION}-%{RELEASE}\n', '-q', 'kernel'])
|
||||
|
|
|
@ -16,6 +16,11 @@ import check_kernel
|
|||
|
||||
|
||||
class CleanKernelVersionTestCase(unittest.TestCase):
|
||||
def testDebian(self):
|
||||
versions = [('3.16.7-ckt9-3~deb8u2', '3.16.7-ckt9-3~deb8u2')]
|
||||
for dirty, clean in versions:
|
||||
self.assertEqual(clean_kernel_version(dirty), LooseVersion(clean))
|
||||
|
||||
def testFedora(self):
|
||||
versions = [('4.0.4-301.fc22.x86_64', '4.0.4-301'),
|
||||
('4.0.0-1.fc22', '4.0.0-1')]
|
||||
|
@ -29,6 +34,11 @@ class RunningKernelVersionTestCase(unittest.TestCase):
|
|||
self.assertEqual(check_kernel.running_kernel_version(),
|
||||
LooseVersion('4.0.3-301'))
|
||||
|
||||
def testDebian(self):
|
||||
with unittest.mock.patch.object(check_kernel, 'proc_version', return_value='Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24)'):
|
||||
self.assertEqual(check_kernel.running_kernel_version(),
|
||||
LooseVersion('3.16.7-ckt9-3~deb8u1'))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue