def run(self, request, **kwargs): task = models.PeriodicTask.objects.get(id=kwargs["pk"]) task_name = 'fastrunner.tasks.schedule_debug_suite' args = eval(task.args) kwargs = eval(task.kwargs) app.send_task(name=task_name, args=args, kwargs=kwargs) return Response(response.TASK_RUN_SUCCESS)
def run_all_auto_case(request): run_type = request.GET.get('run_type', 'deploy') project = request.GET.get('project') user = request.GET.get('user', 'CICD') task_ids: str = request.GET.get('task_ids') task_name = 'fastrunner.tasks.schedule_debug_suite' query = PeriodicTask.objects.filter(enabled=1, task=task_name) if project: query = query.filter(description=project) if task_ids: query = query.filter(id__in=task_ids.split(',')) task_args_kwargs = query.values('args', 'kwargs') for i in task_args_kwargs: args = eval(i.get('args')) kwargs = json.loads(i.get('kwargs')) kwargs['run_type'] = run_type kwargs['user'] = user kwargs['task_id'] = i.get('task_id') app.send_task(task_name, args=args, kwargs=kwargs) return JsonResponse({'success': True, "run_tasks": len(query)})
def run_all_auto_case(request): run_type = request.GET.get('run_type') project = request.GET.get('project') task_name = 'fastrunner.tasks.schedule_debug_suite' query = PeriodicTask.objects.filter( enabled=1, task=task_name) if project: query = query.filter(description=project) # 默认报告类型是部署type=4 report = models.Report.objects.filter(project_id=project, type=4).last() if report is None: models.Report.objects.filter(project_id=project).last() # 假设最后一条报告+1是刚刚执行的报告,有可能不准 report_url = f'{base_report_url}/{report.id + 1}/' task_args_kwargs = query.values('args', 'kwargs') for i in task_args_kwargs: args = eval(i.get('args')) kwargs = eval(i.get('kwargs')) kwargs['run_type'] = run_type app.send_task(task_name, args=args, kwargs=kwargs) return HttpResponse(report_url)