Skip to content

Commit fa991eb

Browse files
authored
Merge pull request #137 from VallariAg/add-flavor
models/runs.py: Add flavor to runs output
2 parents d183740 + 515591c commit fa991eb

File tree

3 files changed

+56
-1
lines changed

3 files changed

+56
-1
lines changed

paddles/controllers/runs.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,14 @@ def get_lookup_controller(self):
134134
return MachineTypeController
135135

136136

137+
class FlavorsController(RunFilterIndexController):
138+
def get_subquery(self, query):
139+
return query.values(Job.flavor)
140+
141+
def get_lookup_controller(self):
142+
return FlavorController
143+
144+
137145
class SuitesController(RunFilterIndexController):
138146
def get_subquery(self, query):
139147
return query.values(Run.suite)
@@ -196,6 +204,8 @@ def get_lookup_controller(self, field):
196204
return SuitesController()
197205
if field == 'user':
198206
return UsersController()
207+
if field == 'flavor':
208+
return FlavorsController()
199209

200210

201211
class DateController(RunFilterController):
@@ -224,6 +234,8 @@ def get_lookup_controller(self, field):
224234
return SuitesController()
225235
if field == 'user':
226236
return UsersController()
237+
if field == 'flavor':
238+
return FlavorsController()
227239

228240

229241
class MachineTypeController(RunFilterController):
@@ -243,6 +255,8 @@ def get_lookup_controller(self, field):
243255
return SuitesController()
244256
if field == 'user':
245257
return UsersController()
258+
if field == 'flavor':
259+
return FlavorsController()
246260

247261

248262
class StatusController(RunFilterController):
@@ -262,6 +276,8 @@ def get_lookup_controller(self, field):
262276
return SuitesController()
263277
if field == 'user':
264278
return UsersController()
279+
if field == 'flavor':
280+
return FlavorsController()
265281

266282

267283
class SuiteController(RunFilterController):
@@ -281,6 +297,8 @@ def get_lookup_controller(self, field):
281297
return StatusesController()
282298
if field == 'user':
283299
return UsersController()
300+
if field == 'flavor':
301+
return FlavorsController()
284302

285303

286304
class UserController(RunFilterController):
@@ -300,6 +318,29 @@ def get_lookup_controller(self, field):
300318
return StatusesController()
301319
if field == 'suite':
302320
return SuitesController()
321+
if field == 'flavor':
322+
return FlavorsController()
323+
324+
325+
class FlavorController(RunFilterController):
326+
def get_subquery(self, query):
327+
return query.join(Job).filter(Job.flavor == self.value).group_by(Run)
328+
329+
def get_lookup_controller(self, field):
330+
if field == 'branch':
331+
return BranchesController()
332+
if field == 'date':
333+
return DatesController()
334+
if field == 'machine_type':
335+
return MachineTypesController()
336+
if field == 'sha1':
337+
return Sha1sController()
338+
if field == 'status':
339+
return StatusesController()
340+
if field == 'suite':
341+
return SuitesController()
342+
if field == 'user':
343+
return UsersController()
303344

304345

305346
class DateRangeController(object):
@@ -354,6 +395,8 @@ def get_lookup_controller(self, field):
354395
return SuitesController()
355396
if field == 'user':
356397
return UsersController()
398+
if field == 'flavor':
399+
return FlavorsController()
357400

358401

359402

@@ -401,6 +444,8 @@ def _create_run(cls, name):
401444

402445
user = UsersController()
403446

447+
flavors = FlavorsController()
448+
404449
@expose('json')
405450
def _lookup(self, name, *remainder):
406451
return RunController(name), remainder

paddles/models/runs.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ def __json__(self):
168168
machine_type=self.machine_type,
169169
sha1=results['sha1'],
170170
priority=self.priority,
171+
flavor=results['flavor'],
171172
)
172173

173174
@classmethod
@@ -227,6 +228,7 @@ def get_results(self):
227228
unknown = jobs_status.count(None) + jobs_status.count('unknown')
228229
total = len(jobs_status)
229230
sha1 = next(self.jobs.values(Job.sha1), ['none'])[0]
231+
flavor = next(self.jobs.values(Job.flavor), ['none'])[0]
230232
return {
231233
'queued': queued,
232234
'pass': passing,
@@ -237,6 +239,7 @@ def get_results(self):
237239
'unknown': unknown,
238240
'total': total,
239241
'sha1': sha1,
242+
'flavor': flavor,
240243
}
241244

242245
def set_status(self, results=None):

paddles/tests/models/test_runs.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ def test_run_results(self):
228228
run_name = 'teuthology-2014-03-27_00:00:00-x-x-x-x-x'
229229
new_run = Run(run_name)
230230
stats_in = {'pass': 9, 'fail': 1, 'dead': 6, 'running': 5, 'sha1': None,
231-
'waiting': 1, 'unknown': 1, 'queued': 1}
231+
'waiting': 1, 'unknown': 1, 'queued': 1, 'flavor': None}
232232
statuses = stats_in.keys()
233233
stats_in['total'] = sum(_ for _ in stats_in.values() if _)
234234
stats_out = {}
@@ -248,3 +248,10 @@ def test_run_priority(self):
248248
new_run = Run(run_name)
249249
Job(dict(job_id=1, id=1, status='queued', priority=99), new_run)
250250
assert new_run.priority == 99
251+
252+
def test_run_flavor(self):
253+
run_name = "run_flavor"
254+
new_run = Run(run_name)
255+
Job(dict(job_id=1, id=1, status='queued', flavor="blah"), new_run)
256+
run_result = new_run.get_results()
257+
assert run_result.get('flavor') == "blah"

0 commit comments

Comments
 (0)