| OLD | NEW |
| 1 import os, pickle, datetime, itertools, operator | 1 import os, pickle, datetime, itertools, operator |
| 2 from django.db import models as dbmodels | 2 from django.db import models as dbmodels |
| 3 from autotest_lib.frontend.afe import rpc_utils, model_logic | 3 from autotest_lib.frontend.afe import rpc_utils, model_logic |
| 4 from autotest_lib.frontend.afe import models as afe_models, readonly_connection | 4 from autotest_lib.frontend.afe import models as afe_models, readonly_connection |
| 5 from autotest_lib.frontend.tko import models, tko_rpc_utils, graphing_utils | 5 from autotest_lib.frontend.tko import models, tko_rpc_utils, graphing_utils |
| 6 from autotest_lib.frontend.tko import preconfigs | 6 from autotest_lib.frontend.tko import preconfigs |
| 7 | 7 |
| 8 # table/spreadsheet view support | 8 # table/spreadsheet view support |
| 9 | 9 |
| 10 def get_test_views(**filter_data): | 10 def get_test_views(**filter_data): |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 | 166 |
| 167 all_iterations = iteration_attr.keys() + iteration_perf.keys() | 167 all_iterations = iteration_attr.keys() + iteration_perf.keys() |
| 168 max_iterations = max(all_iterations + [0]) | 168 max_iterations = max(all_iterations + [0]) |
| 169 | 169 |
| 170 # merge the iterations into a single list of attr & perf dicts | 170 # merge the iterations into a single list of attr & perf dicts |
| 171 return [{'attr': iteration_attr.get(index, {}), | 171 return [{'attr': iteration_attr.get(index, {}), |
| 172 'perf': iteration_perf.get(index, {})} | 172 'perf': iteration_perf.get(index, {})} |
| 173 for index in xrange(1, max_iterations + 1)] | 173 for index in xrange(1, max_iterations + 1)] |
| 174 | 174 |
| 175 | 175 |
| 176 def _job_keyvals_to_dict(keyvals): | |
| 177 return dict((keyval.key, keyval.value) for keyval in keyvals) | |
| 178 | |
| 179 | |
| 180 def get_detailed_test_views(**filter_data): | 176 def get_detailed_test_views(**filter_data): |
| 181 test_views = models.TestView.list_objects(filter_data) | 177 test_views = models.TestView.list_objects(filter_data) |
| 182 | |
| 183 tests_by_id = models.Test.objects.in_bulk([test_view['test_idx'] | 178 tests_by_id = models.Test.objects.in_bulk([test_view['test_idx'] |
| 184 for test_view in test_views]) | 179 for test_view in test_views]) |
| 185 tests = tests_by_id.values() | 180 tests = tests_by_id.values() |
| 186 models.Test.objects.populate_relationships(tests, models.TestAttribute, | 181 models.Test.objects.populate_relationships(tests, models.TestAttribute, |
| 187 'attributes') | 182 'attributes') |
| 188 models.Test.objects.populate_relationships(tests, models.IterationAttribute, | 183 models.Test.objects.populate_relationships(tests, models.IterationAttribute, |
| 189 'iteration_attributes') | 184 'iteration_attributes') |
| 190 models.Test.objects.populate_relationships(tests, models.IterationResult, | 185 models.Test.objects.populate_relationships(tests, models.IterationResult, |
| 191 'iteration_results') | 186 'iteration_results') |
| 192 models.Test.objects.populate_relationships(tests, models.TestLabel, | 187 models.Test.objects.populate_relationships(tests, models.TestLabel, |
| 193 'labels') | 188 'labels') |
| 194 | |
| 195 jobs_by_id = models.Job.objects.in_bulk([test_view['job_idx'] | |
| 196 for test_view in test_views]) | |
| 197 jobs = jobs_by_id.values() | |
| 198 models.Job.objects.populate_relationships(jobs, models.JobKeyval, | |
| 199 'keyvals') | |
| 200 | |
| 201 for test_view in test_views: | 189 for test_view in test_views: |
| 202 test = tests_by_id[test_view['test_idx']] | 190 test = tests_by_id[test_view['test_idx']] |
| 203 test_view['attributes'] = _attributes_to_dict(test.attributes) | 191 test_view['attributes'] = _attributes_to_dict(test.attributes) |
| 204 test_view['iterations'] = _format_iteration_keyvals(test) | 192 test_view['iterations'] = _format_iteration_keyvals(test) |
| 205 test_view['labels'] = [label.name for label in test.labels] | 193 test_view['labels'] = [label.name for label in test.labels] |
| 206 | |
| 207 job = jobs_by_id[test_view['job_idx']] | |
| 208 test_view['job_keyvals'] = _job_keyvals_to_dict(job.keyvals) | |
| 209 | |
| 210 return rpc_utils.prepare_for_serialization(test_views) | 194 return rpc_utils.prepare_for_serialization(test_views) |
| 211 | 195 |
| 212 # graphing view support | 196 # graphing view support |
| 213 | 197 |
| 214 def get_hosts_and_tests(): | 198 def get_hosts_and_tests(): |
| 215 """\ | 199 """\ |
| 216 Gets every host that has had a benchmark run on it. Additionally, also | 200 Gets every host that has had a benchmark run on it. Additionally, also |
| 217 gets a dictionary mapping the host names to the benchmarks. | 201 gets a dictionary mapping the host names to the benchmarks. |
| 218 """ | 202 """ |
| 219 | 203 |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 435 result['test_labels'] = get_test_labels(sort_by=['name']) | 419 result['test_labels'] = get_test_labels(sort_by=['name']) |
| 436 result['current_user'] = rpc_utils.prepare_for_serialization( | 420 result['current_user'] = rpc_utils.prepare_for_serialization( |
| 437 afe_models.User.current_user().get_object_dict()) | 421 afe_models.User.current_user().get_object_dict()) |
| 438 result['benchmark_key'] = benchmark_key | 422 result['benchmark_key'] = benchmark_key |
| 439 result['tko_perf_view'] = tko_perf_view | 423 result['tko_perf_view'] = tko_perf_view |
| 440 result['tko_test_view'] = model_fields | 424 result['tko_test_view'] = model_fields |
| 441 result['preconfigs'] = preconfigs.manager.all_preconfigs() | 425 result['preconfigs'] = preconfigs.manager.all_preconfigs() |
| 442 result['motd'] = rpc_utils.get_motd() | 426 result['motd'] = rpc_utils.get_motd() |
| 443 | 427 |
| 444 return result | 428 return result |
| OLD | NEW |