def get_results(request): results = TestResult.objects.extra( select={ "http_net": "http_errors_perc || '/' || net_errors_perc", "duration": "to_char(dt_finish - dt_start, 'HH24:MI:SS')", "dt_finish": "to_char(dt_finish at time zone 'MSK', 'YYYY-MM-DD HH24:MI:SS')", "comment": "comments" }) results = results.values("id", "test_name", "target", "version", "rps", "q99", "q90", "q50", "graph_url", "generator", "dt_finish", "session_id", "scenario_path", "group", "test_status", "ticket_id", "user", "duration", "http_net", "comment") results = user_filter(request, results) sort_param = request_get_value(request, "sort") if sort_param: order = request_get_value(request, "order") if not order: order = "asc" if order == "asc": results = results.order_by(sort_param) else: results = results.order_by("-%s" % sort_param) query = """SELECT tmp.id, STRING_AGG(tmp.name, ' ') gen_type_list FROM ( SELECT trgt.testresult_id id, gt.name FROM salts_testresult_generator_types trgt JOIN salts_generatortype gt ON trgt.generatortype_id = gt.id GROUP BY testresult_id, name ORDER BY testresult_id, name ) tmp GROUP BY id """ gen_types_results = TestResult.objects.raw(query) gen_types = {} for r in gen_types_results: gen_types[r.id] = r.gen_type_list results = list(results) for r in results: if r["id"] in gen_types: r["gen_type_list"] = gen_types[r["id"]] else: r["gen_type_list"] = "" r["generator"] = "%s / %s" % (r["generator"], r["gen_type_list"]) r['edit_url'] = edit_page_url(request, r['user']) offset = request_get_value(request, "offset") limit = request_get_value(request, "limit") response_dict = {} response_dict["total"] = len(results) if offset and limit: offset = int(offset) limit = int(limit) results = results[offset:offset + limit] response_dict["rows"] = results response = HttpResponse(json.dumps(response_dict), content_type="application/json") add_version(response) return response
def get(self, request): response = None if request_get_value(request, 'a'): response = self.get_test_status(request) else: context = generate_context(request) response = render_to_response('run_test.html', context) add_version(response) return response
def get_tank_status(request): log.info("get_tank_status: request.GET: %s" % request.GET) tank_id = request.GET.get('tank_id') if tank_id: tanks = Tank.objects.filter(id=tank_id) else: tanks = Tank.objects.all() results = [] for t in tanks: shooting = t.shooting_set.exclude( start__isnull=True).order_by('-start').first() if not shooting: continue username = '' if shooting.user: if shooting.user.username == 'ltbot': username = shooting.alt_name # временно, для консольных # тестов, чтобы обойти # аутентификацию else: username = shooting.user.username scenario_path = shooting.scenario.scenario_path values = {'id': t.id, 'host': t.host, 'username': username, 'gitlab_url': '%s%s' % (LT_GITLAB, shooting.scenario.scenario_path), 'scenario_name': \ ini_manager.get_scenario_name(scenario_path), 'status': shooting.status, 'countdown': remainedtime(shooting), 'shooting_id': shooting.id, 'ticket_id': shooting.ticket_id} port = tank_manager.read_from_lock(t.id, 'web_console_port') if port: values['webconsole'] = "%s:%s" % (t.host, port) if shooting.ticket_id: values['ticket_url'] = '%s%s' % (LT_JIRA, shooting.ticket_id) if shooting.status in ['F', 'I']: tr = TestResult.objects.filter(session_id=shooting.session_id) if tr: values['test_result'] = tr[0].id results.append(values) sort_param = request_get_value(request, 'sort') if sort_param: order = request_get_value(request, 'order') if not order: order = 'asc' reverse = order == 'desc' results = sorted(results, key=itemgetter('id'), reverse=reverse) response_dict = {} response_dict['total'] = len(results) response_dict['rows'] = results response = HttpResponse(json.dumps(response_dict), content_type='application/json') add_version(response) return response
def salts_logout(request): context = {} context['info'] = u"Вы успешно вышли" response = views.logout(request, template_name="registration/login.html", extra_context=context) response = views.login(request, template_name="registration/login.html", extra_context=context) add_version(response) return response
def show_trends_page(request): context = generate_context(request) response = render_to_response("graph_trends.html", context) add_version(response) return response
def tank_monitoring(request): context = generate_context(request) response = render_to_response('tank_monitoring.html', context) add_version(response) return response
def show_results_page(request): context = generate_context(request) response = render_to_response('testresult_list.html', context) add_version(response) return response