Merge lp:~gocept/landscape-client/py3-monitor-activeprocessinfo into lp:~landscape/landscape-client/trunk

Proposed by Steffen Allner
Status: Merged
Approved by: Eric Snow
Approved revision: 988
Merged at revision: 988
Proposed branch: lp:~gocept/landscape-client/py3-monitor-activeprocessinfo
Merge into: lp:~landscape/landscape-client/trunk
Prerequisite: lp:~gocept/landscape-client/py3-manager-keystonetoken
Diff against target: 278 lines (+32/-32)
6 files modified
landscape/lib/process.py (+1/-1)
landscape/lib/tests/test_process.py (+4/-4)
landscape/monitor/activeprocessinfo.py (+1/-1)
landscape/monitor/tests/test_activeprocessinfo.py (+24/-24)
landscape/sysinfo/processes.py (+1/-1)
py3_ready_tests (+1/-1)
To merge this branch: bzr merge lp:~gocept/landscape-client/py3-monitor-activeprocessinfo
Reviewer Review Type Date Requested Status
Eric Snow (community) Approve
Michael Howitz (community) Approve
🤖 Landscape Builder test results Approve
Review via email: mp+321261@code.launchpad.net

Commit message

This is the Py3 port of landscape.lib.process.

It is strictly a bytes/unicode change to conform to the wire protocol.

Description of the change

This MP adapts the state of processes to be bytes in Python 3 as the message schema requires it.

It led to some changes outside the l.monitor module as side effect.

To post a comment you must log in.
Revision history for this message
🤖 Landscape Builder (landscape-builder) :
review: Abstain (executing tests)
Revision history for this message
🤖 Landscape Builder (landscape-builder) wrote :

Command: TRIAL_ARGS=-j4 make ci-check
Result: Success
Revno: 988
Branch: lp:~gocept/landscape-client/py3-monitor-activeprocessinfo
Jenkins: https://ci.lscape.net/job/latch-test-xenial/3811/

review: Approve (test results)
Revision history for this message
Michael Howitz (mh-gocept) wrote :

LGTM.

review: Approve
Revision history for this message
Eric Snow (ericsnowcurrently) wrote :

LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'landscape/lib/process.py'
2--- landscape/lib/process.py 2012-10-10 13:43:01 +0000
3+++ landscape/lib/process.py 2017-03-29 09:28:33 +0000
4@@ -78,7 +78,7 @@
5 # used for tracing stop.
6 if state == "T (tracing stop)":
7 state = state.lower()
8- process_info["state"] = state[0]
9+ process_info["state"] = state[0].encode("ascii")
10 elif parts[0] == "Uid":
11 value_parts = parts[1].split()
12 process_info["uid"] = int(value_parts[0])
13
14=== modified file 'landscape/lib/tests/test_process.py'
15--- landscape/lib/tests/test_process.py 2017-03-13 15:15:46 +0000
16+++ landscape/lib/tests/test_process.py 2017-03-29 09:28:33 +0000
17@@ -95,7 +95,7 @@
18 self._add_process_info(12, state="A (some state)")
19 process_info = ProcessInformation(self.proc_dir)
20 info = process_info.get_process_info(12)
21- self.assertEqual("A", info["state"])
22+ self.assertEqual(b"A", info["state"])
23
24 def test_get_process_info_state_preserves_case(self):
25 """
26@@ -105,7 +105,7 @@
27 self._add_process_info(12, state="a (some state)")
28 process_info = ProcessInformation(self.proc_dir)
29 info = process_info.get_process_info(12)
30- self.assertEqual("a", info["state"])
31+ self.assertEqual(b"a", info["state"])
32
33 def test_get_process_info_state_tracing_stop_lucid(self):
34 """
35@@ -119,8 +119,8 @@
36 process_info = ProcessInformation(self.proc_dir)
37 info1 = process_info.get_process_info(12)
38 info2 = process_info.get_process_info(12)
39- self.assertEqual("t", info1["state"])
40- self.assertEqual("t", info2["state"])
41+ self.assertEqual(b"t", info1["state"])
42+ self.assertEqual(b"t", info2["state"])
43
44
45 class CalculatePCPUTest(unittest.TestCase):
46
47=== modified file 'landscape/monitor/activeprocessinfo.py'
48--- landscape/monitor/activeprocessinfo.py 2017-01-23 12:13:14 +0000
49+++ landscape/monitor/activeprocessinfo.py 2017-03-29 09:28:33 +0000
50@@ -60,7 +60,7 @@
51 def _get_processes(self):
52 processes = {}
53 for process_info in self._process_info.get_all_process_info():
54- if process_info["state"] != "X":
55+ if process_info["state"] != b"X":
56 processes[process_info["pid"]] = process_info
57 return processes
58
59
60=== modified file 'landscape/monitor/tests/test_activeprocessinfo.py'
61--- landscape/monitor/tests/test_activeprocessinfo.py 2016-06-16 16:21:01 +0000
62+++ landscape/monitor/tests/test_activeprocessinfo.py 2017-03-29 09:28:33 +0000
63@@ -115,13 +115,13 @@
64 self.assertEqual(message["type"], "active-process-info")
65 self.assertTrue("kill-all-processes" in message)
66 self.assertTrue("add-processes" in message)
67- expected_process_0 = {"state": "R", "gid": 0, "pid": 1,
68+ expected_process_0 = {"state": b"R", "gid": 0, "pid": 1,
69 "vm-size": 11676, "name": "init", "uid": 0,
70 "start-time": 103, "percent-cpu": 0.0}
71- expected_process_1 = {"state": "T", "gid": 1000, "pid": 671,
72+ expected_process_1 = {"state": b"T", "gid": 1000, "pid": 671,
73 "vm-size": 11676, "name": "blargh", "uid": 1000,
74 "start-time": 111, "percent-cpu": 0.0}
75- expected_process_2 = {"state": "t", "gid": 1000, "pid": 672,
76+ expected_process_2 = {"state": b"t", "gid": 1000, "pid": 672,
77 "vm-size": 11676, "name": "blarpy", "uid": 1000,
78 "start-time": 112, "percent-cpu": 0.0}
79 processes = message["add-processes"]
80@@ -147,7 +147,7 @@
81 self.assertTrue("kill-all-processes" in message)
82 self.assertTrue("add-processes" in message)
83
84- expected_process = {"pid": 1, "state": "R", "name": "init",
85+ expected_process = {"pid": 1, "state": b"R", "name": "init",
86 "vm-size": 11676, "uid": 0, "gid": 0,
87 "start-time": 112, "percent-cpu": 0.0}
88 self.assertEqual(message["add-processes"], [expected_process])
89@@ -166,7 +166,7 @@
90 self.mstore.get_pending_messages(),
91 [{"type": "active-process-info",
92 "kill-all-processes": True,
93- "add-processes": [{"pid": 1, "state": "R", "name": "init",
94+ "add-processes": [{"pid": 1, "state": b"R", "name": "init",
95 "vm-size": 11676, "uid": 0, "gid": 0,
96 "start-time": 110, "percent-cpu": 0.0}]}])
97
98@@ -204,15 +204,15 @@
99 self.assertTrue("kill-all-processes" in message)
100 self.assertEqual(message["kill-all-processes"], True)
101 self.assertTrue("add-processes" in message)
102- expected_process_0 = {"state": "R", "gid": 0, "pid": 1,
103+ expected_process_0 = {"state": b"R", "gid": 0, "pid": 1,
104 "vm-size": 11676, "name": "init",
105 "uid": 0, "start-time": 101,
106 "percent-cpu": 0.0}
107- expected_process_1 = {"state": "T", "gid": 1000, "pid": 671,
108+ expected_process_1 = {"state": b"T", "gid": 1000, "pid": 671,
109 "vm-size": 11676, "name": "blargh",
110 "uid": 1000, "start-time": 102,
111 "percent-cpu": 0.0}
112- expected_process_2 = {"state": "t", "gid": 1000, "pid": 672,
113+ expected_process_2 = {"state": b"t", "gid": 1000, "pid": 672,
114 "vm-size": 11676, "name": "blarpy",
115 "uid": 1000, "start-time": 104,
116 "percent-cpu": 0.0}
117@@ -228,7 +228,7 @@
118
119 self.assertTrue("add-processes" in message)
120 self.assertEqual(len(message["add-processes"]), 1)
121- expected_process = {"state": "R", "gid": 0, "pid": 12753,
122+ expected_process = {"state": b"R", "gid": 0, "pid": 12753,
123 "vm-size": 11676, "name": "wubble",
124 "uid": 0, "start-time": 107,
125 "percent-cpu": 0.0}
126@@ -313,7 +313,7 @@
127 self.assertTrue("kill-processes" not in message)
128 self.assertTrue("add-processes" in message)
129 self.assertEqual(message["add-processes"][0]["pid"], 672)
130- self.assertEqual(message["add-processes"][0]["state"], u"R")
131+ self.assertEqual(message["add-processes"][0]["state"], b"R")
132
133 # Convert the process to a zombie and ensure it gets reported.
134 self.builder.remove_data(672)
135@@ -329,7 +329,7 @@
136
137 self.assertTrue("kill-all-processes" not in message)
138 self.assertTrue("update-processes" in message)
139- self.assertEqual(message["update-processes"][0]["state"], u"Z")
140+ self.assertEqual(message["update-processes"][0]["state"], b"Z")
141
142 def test_call_on_accepted(self):
143 """
144@@ -375,7 +375,7 @@
145 "name": u"blarpy",
146 "pid": 672,
147 "start-time": 112,
148- "state": "t",
149+ "state": b"t",
150 "uid": 1000,
151 "vm-size": 11676,
152 "percent-cpu": 0.0},
153@@ -383,7 +383,7 @@
154 "name": u"init",
155 "pid": 1,
156 "start-time": 103,
157- "state": "R",
158+ "state": b"R",
159 "uid": 0,
160 "vm-size": 11676,
161 "percent-cpu": 0.0},
162@@ -391,7 +391,7 @@
163 "name": u"blargh",
164 "pid": 671,
165 "start-time": 111,
166- "state": "T",
167+ "state": b"T",
168 "uid": 1000,
169 "vm-size": 11676,
170 "percent-cpu": 0.0}],
171@@ -449,7 +449,7 @@
172 "name": u"blarpy",
173 "pid": 672,
174 "start-time": 112,
175- "state": "t",
176+ "state": b"t",
177 "uid": 1000,
178 "vm-size": 11676,
179 "percent-cpu": 0.0}],
180@@ -492,7 +492,7 @@
181 "name": u"blarpy",
182 "pid": 672,
183 "start-time": 112,
184- "state": "t",
185+ "state": b"t",
186 "uid": 1000,
187 "vm-size": 11676,
188 "percent-cpu": 0.0}],
189@@ -575,26 +575,26 @@
190 messages = self.mstore.get_pending_messages()
191 self.assertEqual(len(messages), 2)
192 self.assertMessages(messages, [{"timestamp": 0,
193- "api": "3.2",
194+ "api": b"3.2",
195 "type": "active-process-info",
196 "kill-all-processes": True,
197 "add-processes": [{"start-time": 110,
198 "name": u"init",
199 "pid": 1,
200 "percent-cpu": 0.0,
201- "state": "R",
202+ "state": b"R",
203 "gid": 0,
204 "vm-size": 11676,
205 "uid": 0}]},
206 {"timestamp": 0,
207- "api": "3.2",
208+ "api": b"3.2",
209 "type": "active-process-info",
210 "update-processes": [
211 {"start-time": 110,
212 "name": u"init",
213 "pid": 1,
214 "percent-cpu": 0.0,
215- "state": "R",
216+ "state": b"R",
217 "gid": 0,
218 "vm-size": 20000,
219 "uid": 0}]}])
220@@ -636,7 +636,7 @@
221 self.assertEqual(message["type"], "active-process-info")
222 self.assertTrue("kill-all-processes" in message)
223 self.assertTrue("add-processes" in message)
224- expected_process_0 = {"state": "R", "gid": 0, "pid": 1,
225+ expected_process_0 = {"state": b"R", "gid": 0, "pid": 1,
226 "vm-size": 11676, "name": "NetworkManagerDaemon",
227 "uid": 0, "start-time": 103, "percent-cpu": 0.0}
228 processes = message["add-processes"]
229@@ -670,7 +670,7 @@
230 self.assertEqual(message["type"], "active-process-info")
231 self.assertTrue("kill-all-processes" in message)
232 self.assertTrue("add-processes" in message)
233- expected_process_0 = {"state": "R", "gid": 0, "pid": 1,
234+ expected_process_0 = {"state": b"R", "gid": 0, "pid": 1,
235 "vm-size": 11676, "name": "ProcessWithLong",
236 "uid": 0, "start-time": 103, "percent-cpu": 0.0}
237 processes = message["add-processes"]
238@@ -699,7 +699,7 @@
239 self.assertTrue("kill-all-processes" in message)
240 self.assertTrue("add-processes" in message)
241 processes = message["add-processes"]
242- expected_process_0 = {"state": "R", "gid": 0, "pid": 1,
243+ expected_process_0 = {"state": b"R", "gid": 0, "pid": 1,
244 "vm-size": 11676, "name": u"Process",
245 "uid": 0, "start-time": 300,
246 "percent-cpu": 4.00}
247@@ -730,7 +730,7 @@
248 self.assertTrue("kill-all-processes" in message)
249 self.assertTrue("add-processes" in message)
250 processes = message["add-processes"]
251- expected_process_0 = {"state": "R", "gid": 0, "pid": 1,
252+ expected_process_0 = {"state": b"R", "gid": 0, "pid": 1,
253 "vm-size": 11676, "name": u"Process",
254 "uid": 0, "start-time": 300,
255 "percent-cpu": 99.00}
256
257=== modified file 'landscape/sysinfo/processes.py'
258--- landscape/sysinfo/processes.py 2008-08-13 14:39:53 +0000
259+++ landscape/sysinfo/processes.py 2017-03-29 09:28:33 +0000
260@@ -17,7 +17,7 @@
261 info = ProcessInformation(proc_dir=self._proc_dir)
262 for process_info in info.get_all_process_info():
263 num_processes += 1
264- if process_info["state"] == "Z":
265+ if process_info["state"] == b"Z":
266 num_zombies += 1
267 if num_zombies:
268 if num_zombies == 1:
269
270=== modified file 'py3_ready_tests'
271--- py3_ready_tests 2017-03-29 09:28:33 +0000
272+++ py3_ready_tests 2017-03-29 09:28:33 +0000
273@@ -7,7 +7,7 @@
274 landscape.tests
275
276
277-
278+landscape.monitor.tests.test_activeprocessinfo
279
280
281

Subscribers

People subscribed via source and target branches

to all changes: