Merge ~sylvain-pineau/checkbox-support:run_lsblk_from_udev_parser_entry_point into checkbox-support:master

Proposed by Sylvain Pineau
Status: Merged
Approved by: Sylvain Pineau
Approved revision: 64c5c5bfecf1915a85d8b440dfc8fb4f932003d2
Merged at revision: ce76dc78019c33cfdecc3faf847e9225bcca2f5b
Proposed branch: ~sylvain-pineau/checkbox-support:run_lsblk_from_udev_parser_entry_point
Merge into: checkbox-support:master
Diff against target: 38 lines (+8/-1)
2 files modified
checkbox_support/parsers/tests/test_udevadm.py (+1/-1)
checkbox_support/parsers/udevadm.py (+7/-0)
Reviewer Review Type Date Requested Status
Sylvain Pineau (community) Approve
Review via email: mp+309665@code.launchpad.net

Description of the change

This patch ensures that we're calling lsblk to properly categorize disk devices as such even with the following invocation:

udevadm info --export-db | plainbox dev parse udevadm

Note: The above command is used by the new json report.

To post a comment you must log in.
Revision history for this message
Sylvain Pineau (sylvain-pineau) wrote :

self-approved

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/checkbox_support/parsers/tests/test_udevadm.py b/checkbox_support/parsers/tests/test_udevadm.py
2index 69a4ac3..752feeb 100644
3--- a/checkbox_support/parsers/tests/test_udevadm.py
4+++ b/checkbox_support/parsers/tests/test_udevadm.py
5@@ -89,7 +89,7 @@ class TestUdevadmParser(TestCase, UdevadmDataMixIn):
6 for i,j in enumerate(devices):
7 print(i, j.category, [getattr(j, a) for a in attributes])
8 """
9- lsblk=None
10+ lsblk = ''
11 if with_lsblk:
12 lsblk = self.get_lsblk(name)
13 return parse_udevadm_output(
14diff --git a/checkbox_support/parsers/udevadm.py b/checkbox_support/parsers/udevadm.py
15index 18e5b8e..db81070 100644
16--- a/checkbox_support/parsers/udevadm.py
17+++ b/checkbox_support/parsers/udevadm.py
18@@ -22,6 +22,7 @@ from __future__ import print_function
19 from __future__ import unicode_literals
20
21 from collections import OrderedDict
22+from subprocess import check_output, CalledProcessError
23 import re
24 import string
25
26@@ -1046,6 +1047,12 @@ def parse_udevadm_output(output, lsblk=None, bits=None):
27 :returns: :class:`UdevadmParser` object that corresponds to the
28 parsed input
29 """
30+ if lsblk is None:
31+ try:
32+ lsblk = check_output(
33+ ['lsblk', '-i', '-n', '-P', '-o', 'KNAME,TYPE,MOUNTPOINT'])
34+ except CalledProcessError as exc:
35+ lsblk = ''
36 udev = UdevadmParser(output, lsblk, bits)
37 result = UdevResult()
38 udev.run(result)

Subscribers

People subscribed via source and target branches