Merge ~pieq/bugit/+git/qabro:fix-1910193-no-pci-bus into bugit:master

Proposed by Pierre Equoy
Status: Merged
Approved by: Pierre Equoy
Approved revision: 78c1933fe61dbf17b0d027e89f22e29ea99ade35
Merged at revision: 44b3acd84a216fba15eb076747034610f45ee309
Proposed branch: ~pieq/bugit/+git/qabro:fix-1910193-no-pci-bus
Merge into: bugit:master
Diff against target: 76 lines (+19/-12)
2 files modified
qabro/bug_assistant.py (+15/-10)
qabro/utils.py (+4/-2)
Reviewer Review Type Date Requested Status
Patrick Liu (community) Approve
Review via email: mp+395821@code.launchpad.net

Description of the change

As explained in lp:1910193, if the device does not have a PCI bus, calling lspci will fail and qabro will fail to launch.

This commit fixes that by checking the returncode from the lspci command.

I tested it on a regular amd64 PC with a proper PCI bus by building a test snap and it works (so it means no regression so far), but I haven't been able to test it on a no-PCI bus device...

To post a comment you must log in.
Revision history for this message
Patrick Liu (patliu) wrote :

+1 LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/qabro/bug_assistant.py b/qabro/bug_assistant.py
index 7af347c..16bc5d1 100644
--- a/qabro/bug_assistant.py
+++ b/qabro/bug_assistant.py
@@ -1,12 +1,11 @@
1import getpass1import getpass
2from glob import glob
3import os2import os
4import re3import re
5import subprocess4import subprocess
6import sys5import sys
7import tarfile6import tarfile
8from collections import Counter7from collections import Counter
98from glob import glob
10from launchpadlib.launchpad import Launchpad9from launchpadlib.launchpad import Launchpad
11from launchpadlib.uris import LPNET_WEB_ROOT, STAGING_WEB_ROOT, QASTAGING_WEB_ROOT10from launchpadlib.uris import LPNET_WEB_ROOT, STAGING_WEB_ROOT, QASTAGING_WEB_ROOT
1211
@@ -368,7 +367,7 @@ class AttachmentAssistant:
368 if os.path.isfile(udc):367 if os.path.isfile(udc):
369 with open(udc) as f:368 with open(udc) as f:
370 dcd = f.read()369 dcd = f.read()
371 manifest = re.search("^([^\s#]+)$", dcd, re.MULTILINE)[0]370 manifest = re.search(r"^([^\s#]+)$", dcd, re.MULTILINE)[0]
372 if manifest:371 if manifest:
373 standard_info["Manifest"] = manifest372 standard_info["Manifest"] = manifest
374373
@@ -389,12 +388,18 @@ class AttachmentAssistant:
389388
390 standard_info['CPU'] = AttachmentAssistant.get_cpu_info()389 standard_info['CPU'] = AttachmentAssistant.get_cpu_info()
391390
392 lspci_output = (subprocess.check_output(['lspci', '-nn'])391 command = ["lspci", "-nn"]
393 .decode(sys.stdout.encoding)392 process = subprocess.run(command,
394 .splitlines())393 stdout=subprocess.PIPE,
395 # '03' is the PCI class for display controllers394 stderr=subprocess.PIPE)
396 standard_info['GPU'] = '\n'.join([line for line in lspci_output395 if process.returncode == 0:
397 if '[03' in line])396 lspci_output = process.stdout.decode(sys.stdout.encoding).splitlines()
397 # '03' is the PCI class for display controllers
398 standard_info['GPU'] = '\n'.join([line for line in lspci_output
399 if '[03' in line])
400 else:
401 print("Error while running lspci:")
402 print(process.stderr)
398403
399 standard_info["kernel-version"] = (subprocess.check_output(["uname", "-r"])404 standard_info["kernel-version"] = (subprocess.check_output(["uname", "-r"])
400 .decode(sys.stdout.encoding)405 .decode(sys.stdout.encoding)
@@ -406,7 +411,7 @@ class AttachmentAssistant:
406 """Parse /proc/cpuinfo and return cpu model information."""411 """Parse /proc/cpuinfo and return cpu model information."""
407 cpus = []412 cpus = []
408 cpuinfo = {}413 cpuinfo = {}
409 parse_line = re.compile(r'(.*?)\s+:\s+(.*)').match414 parse_line = re.compile(r"(.*?)\s+:\s+(.*)").match
410 processor_line = re.compile(r'^(p|P)rocessor')415 processor_line = re.compile(r'^(p|P)rocessor')
411 with open('/proc/cpuinfo') as file:416 with open('/proc/cpuinfo') as file:
412 for line in file:417 for line in file:
diff --git a/qabro/utils.py b/qabro/utils.py
index 89845b3..8c3e4e8 100644
--- a/qabro/utils.py
+++ b/qabro/utils.py
@@ -1,7 +1,9 @@
1#!/usr/bin/env python31#!/usr/bin/env python3
2import socket, json, pprint
3
4import gi2import gi
3import json
4import pprint
5import socket
6
5gi.require_version('Snapd', '1')7gi.require_version('Snapd', '1')
6from gi.repository import Snapd8from gi.repository import Snapd
79

Subscribers

People subscribed via source and target branches

to all changes: