@@ -324,3 +324,45 @@ def render(self, ts_url, only_html_body=True):
324
324
return template .render (
325
325
report = self , styles = report_css_styles , analysis = lnt .server .reporting .analysis ,
326
326
ts_url = ts_url , only_html_body = only_html_body )
327
+
328
+ def __json__ (self ):
329
+ ret = {}
330
+ # Input values.
331
+ ret ['num_prior_days_to_include' ] = self .num_prior_days_to_include
332
+ ret ['year' ] = self .year
333
+ ret ['month' ] = self .month
334
+ ret ['day' ] = self .day
335
+ ret ['day_start_offset' ] = self .day_start_offset .seconds
336
+ ret ['filter_machine_regex_str' ] = self .filter_machine_regex_str
337
+
338
+ # Computed values.
339
+ ret ['error' ] = self .error
340
+ ret ['next_day' ] = self .next_day
341
+ ret ['prior_days' ] = self .prior_days
342
+ ret ['machine_runs' ] = {}
343
+ for (machine_id , day_index ) in self .machine_runs .keys ():
344
+ if machine_id not in ret ['machine_runs' ]:
345
+ ret ['machine_runs' ][machine_id ] = {}
346
+ assert day_index not in ret ['machine_runs' ][machine_id ]
347
+ ret ['machine_runs' ][machine_id ][day_index ] = self .machine_runs [(machine_id , day_index )][0 ]
348
+
349
+ ret ['reporting_machines' ] = dict ((m .id , m ) for m in self .reporting_machines )
350
+ ret ['reporting_tests' ] = dict ((t .id , t ) for t in self .reporting_tests )
351
+
352
+ ret ['nr_tests_table' ] = {}
353
+ for (machine , nr_tests_seen ) in self .nr_tests_table :
354
+ assert machine .id not in ret ['nr_tests_table' ]
355
+ ret ['nr_tests_table' ][machine .id ] = nr_tests_seen
356
+
357
+ ret ['result_table' ] = {}
358
+ for (field , field_results ) in self .result_table :
359
+ assert field .name not in ret ['result_table' ]
360
+ ret ['result_table' ][field .name ] = {}
361
+ for (test , visible_results ) in field_results :
362
+ assert test .id not in ret ['result_table' ][field .name ]
363
+ ret ['result_table' ][field .name ][test .id ] = {}
364
+ for (machine , day_results ) in visible_results :
365
+ assert machine .id not in ret ['result_table' ][field .name ][test .id ]
366
+ ret ['result_table' ][field .name ][test .id ][machine .id ] = day_results .__json__ ()
367
+
368
+ return ret
0 commit comments