Merge ~golpaw1/dpcs:systemcheck into dpcs:master

Proposed by Paweł Goliński
Status: Superseded
Proposed branch: ~golpaw1/dpcs:systemcheck
Merge into: dpcs:master
Diff against target: 50 lines (+38/-0)
2 files modified
systemcheck/readme.md (+2/-0)
systemcheck/systemcheck.py (+36/-0)
Reviewer Review Type Date Requested Status
Marek Bardoński static Approve
Review via email: mp+288202@code.launchpad.net

This proposal has been superseded by a proposal from 2016-03-05.

Description of the change

Implemented ticket #7. (System and package fetch script)

To post a comment you must log in.
Revision history for this message
Marek Bardoński (bdfhjk) wrote :

I would add a small comment to the regexp. Overall look smart! Good job! :)

Let's wait for a team leader's review before merging.

review: Approve (static)
~golpaw1/dpcs:systemcheck updated
bc00883... by Paweł Goliński

Add comment to regex grabbing dpkg output

Unmerged commits

bc00883... by Paweł Goliński

Add comment to regex grabbing dpkg output

68bbf1f... by Paweł Goliński

Ticket #7 - System check module

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/systemcheck/readme.md b/systemcheck/readme.md
0new file mode 1006440new file mode 100644
index 0000000..72d8079
--- /dev/null
+++ b/systemcheck/readme.md
@@ -0,0 +1,2 @@
1Small Python2 script that returns system data (kernel, architecture,
2installed packages) in JSON.
diff --git a/systemcheck/systemcheck.py b/systemcheck/systemcheck.py
0new file mode 1007553new file mode 100755
index 0000000..b7e4d8c
--- /dev/null
+++ b/systemcheck/systemcheck.py
@@ -0,0 +1,36 @@
1#!/usr/bin/python
2
3import platform
4import os
5import re
6import json
7
8if __name__ == "__main__":
9 uname = platform.uname()
10 platform_dict = {
11 "system_name": uname[1],
12 "kernel": uname[2],
13 "architecture": uname[4]
14 }
15 package_list = []
16 # get installed packages from dpkg
17 packages_raw_info = \
18 os.popen(
19 "dpkg-query -W -f='${binary:Package}\t${Version}\t${Status}\n' | grep \"install ok installed\""
20 ).read()
21 packages_raw_info = packages_raw_info.split("\n")
22 for line in packages_raw_info:
23 if line:
24 # regex catches {binary:Package} and {Version} from dpkg output
25 package_re = re.compile(r"(.+)\t(.+)\t.*")
26 package_info = package_re.match(line)
27 package_dict = {
28 "name": package_info.group(1),
29 "version": package_info.group(2)
30 }
31 package_list.append(package_dict)
32 data = {}
33 data["platform"] = platform_dict
34 data["packages"] = package_list
35 json_data = json.dumps(data)
36 print json_data

Subscribers

People subscribed via source and target branches