Пример #1
0
 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)})
Пример #3
0
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)