Exemple #1
0
 def get(self, request):
     tasks = PeriodicTask.objects.all()
     search_keywords = request.GET.get("keywords", "")
     if search_keywords:
         if re.search('^true$|^t$|^tr$|^tru$|^rue$|^ue$',
                      str(search_keywords), re.IGNORECASE):
             search_keywords = True
         elif re.search('^f$|^fa$|^fal$|^fals$|^false$|^alse$|^lse$|^se$',
                        str(search_keywords), re.IGNORECASE):
             search_keywords = False
         try:
             tasks = tasks.filter(
                 Q(name__icontains=search_keywords)
                 | Q(task__icontains=search_keywords)
                 | Q(kwargs__icontains=search_keywords)
                 | Q(enabled=search_keywords)
                 | Q(interval__every=int(search_keywords))
                 | Q(interval__period__icontains=search_keywords))
         except ValidationError:
             tasks = tasks.filter(
                 Q(name__icontains=search_keywords)
                 | Q(task__icontains=search_keywords)
                 | Q(kwargs__icontains=search_keywords)
                 | Q(interval__period__icontains=search_keywords))
         except ValueError:
             tasks = tasks.filter(
                 Q(name__icontains=search_keywords)
                 | Q(task__icontains=search_keywords)
                 | Q(kwargs__icontains=search_keywords)
                 | Q(interval__period__icontains=search_keywords))
     tasks = paginator_processing(request=request, query_set=tasks)
     return render(request, 'tasks/job_index.html', {'tasks': tasks})
Exemple #2
0
def save_my_task_from(request, form, template_name):
    data = dict()
    if request.method == 'POST':
        if form.is_valid():
            is_send_email = request.POST.get('is_send_email', '')
            max_reties = request.POST.get('max_retries', '')
            form.instance.kwargs = json.dumps({
                'is_send_email': is_send_email,
                'max_reties': max_reties,
            })
            form.instance.queue = extend_celery.get('monitor').get('queue')
            form.instance.exchange = extend_celery.get('monitor').get(
                'exchange')
            form.instance.routing_key = extend_celery.get('monitor').get(
                'routing_key')
            form.save()
            data['form_is_valid'] = True
            tasks = PeriodicTask.objects.all()
            # 进行分页处理
            tasks = paginator_processing(request=request, query_set=tasks)
            data['html_task_list'] = render_to_string(
                'tasks/job_partial_list.html', {"tasks": tasks})
        else:
            data['form_is_valid'] = False
    max_reties = json.loads(form.instance.kwargs).get('max_reties', '')
    is_send_email = json.loads(form.instance.kwargs).get('is_send_email', '')
    context = {
        'form': form,
        'max_reties': max_reties,
        'is_send_email': is_send_email
    }
    data['html_form'] = render_to_string(template_name,
                                         context,
                                         request=request)
    return JsonResponse(data)
Exemple #3
0
 def get(self, request):
     clients = Client.objects.order_by('-id')
     # 关键词搜索功能
     search_keywords = request.GET.get("keywords", "")
     if search_keywords:
         if re.search('^true$|^t$|^tr$|^tru$|^rue$|^ue$',
                      str(search_keywords), re.IGNORECASE):
             search_keywords = True
         elif re.search('^f$|^fa$|^fal$|^fals$|^false$|^alse$|^lse$|^se$',
                        str(search_keywords), re.IGNORECASE):
             search_keywords = False
         try:
             clients = clients.filter(
                 Q(name__icontains=search_keywords)
                 | Q(ip__icontains=search_keywords)
                 | Q(port=int(search_keywords)) | Q(id=int(search_keywords))
                 | Q(auth=search_keywords))
         except ValueError:
             clients = clients.filter(
                 Q(name__icontains=search_keywords)
                 | Q(ip__icontains=search_keywords))
         except ValidationError:
             clients = clients.filter(
                 Q(name__icontains=search_keywords)
                 | Q(ip__icontains=search_keywords)
                 | Q(port=int(search_keywords))
                 | Q(id=int(search_keywords)))
     clients = paginator_processing(request=request, query_set=clients)
     return render(request, "deploy/client_index.html",
                   {"clients": clients})
Exemple #4
0
 def get(self, request):
     databases = DatabaseClient.objects.all().order_by('client_type')
     # 关键词搜索功能
     search_keywords = request.GET.get("keywords", "")
     if search_keywords:
         try:
             if search_keywords == "mysql":
                 search_keywords = 1
             if search_keywords == "mongodb":
                 search_keywords = 2
             if search_keywords == "redis":
                 search_keywords = 3
             databases = databases.filter(
                 Q(client_name__icontains=search_keywords)
                 | Q(ip__icontains=search_keywords)
                 | Q(port=int(search_keywords))
                 | Q(user_name__icontains=search_keywords)
                 | Q(client_type=int(search_keywords)))
         except ValueError:
             databases = databases.filter(
                 Q(client_name__icontains=search_keywords)
                 | Q(ip__icontains=search_keywords)
                 | Q(user_name__icontains=search_keywords))
     # 进行分页处理
     databases = paginator_processing(request=request, query_set=databases)
     return render(request, "monitor/database_index.html",
                   {"databases": databases})
Exemple #5
0
 def post(self, request, interval_id):
     interval = get_object_or_404(IntervalSchedule, pk=interval_id)
     data = dict()
     interval.delete()
     data['form_is_valid'] = True
     intervals = IntervalSchedule.objects.all()
     intervals = paginator_processing(request=request, query_set=intervals)
     data['html_task_list'] = render_to_string(
         'tasks/interval_partial_list.html', {'intervals': intervals})
     return JsonResponse(data)
Exemple #6
0
 def post(self, request, crontab_id):
     crontab = get_object_or_404(CrontabSchedule, pk=crontab_id)
     data = dict()
     crontab.delete()
     data['form_is_valid'] = True
     crontabs = CrontabSchedule.objects.all()
     crontabs = paginator_processing(request=request, query_set=crontabs)
     data['html_task_list'] = render_to_string(
         'tasks/crontab_partial_list.html', {'crontabs': crontabs})
     return JsonResponse(data)
Exemple #7
0
 def post(self, request, result_id):
     data = dict()
     result = get_object_or_404(TaskResult, pk=result_id)
     result.delete()
     data['form_is_valid'] = True
     results = TaskResult.objects.all()
     results = paginator_processing(request=request, query_set=results)
     data['html_task_list'] = render_to_string(
         'tasks/results_partial_list.html', {'results': results})
     return JsonResponse(data)
Exemple #8
0
 def post(self, request, task_id):
     task = get_object_or_404(PeriodicTask, pk=task_id)
     data = dict()
     task.delete()
     data['form_is_valid'] = True
     tasks = PeriodicTask.objects.all()
     tasks = paginator_processing(request=request, query_set=tasks)
     data['html_task_list'] = render_to_string(
         'tasks/job_partial_list.html', {"tasks": tasks})
     return JsonResponse(data)
Exemple #9
0
 def post(self, request, database_id):
     database = get_object_or_404(DatabaseClient, pk=database_id)
     data = dict()
     database.delete()
     data['form_is_valid'] = True
     databases = DatabaseClient.objects.all()
     # 进行分页处理
     databases = paginator_processing(request=request, query_set=databases)
     data['html_monitor_list'] = render_to_string(
         'monitor/database_partial_list.html', {"databases": databases})
     return JsonResponse(data)
Exemple #10
0
 def post(self, request, server_id):
     server = get_object_or_404(Server, pk=server_id)
     data = dict()
     server.delete()
     data['form_is_valid'] = True
     servers = Server.objects.all()
     # 进行分页处理
     servers = paginator_processing(request=request, query_set=servers)
     data['html_monitor_list'] = render_to_string(
         'monitor/server_delete.html', {"servers": servers})
     return JsonResponse(data)
Exemple #11
0
 def post(self, request, client_id):
     client = get_object_or_404(Client, pk=client_id)
     data = dict()
     client.delete()
     Deploy.objects.filter(client=client).delete()
     data['form_is_valid'] = True
     clients = Client.objects.all()
     # 进行分页处理
     clients = paginator_processing(request=request, query_set=clients)
     data['html_client_list'] = render_to_string(
         'deploy/client_partial_list.html', {'clients': clients})
     return JsonResponse(data)
Exemple #12
0
 def get(self, request):
     results = TaskResult.objects.all()
     search_keywords = request.GET.get("keywords", "")
     if search_keywords:
         results = results.filter(
             Q(task_id__icontains=search_keywords)
             | Q(task_name__icontains=search_keywords)
             | Q(task_kwargs__icontains=search_keywords)
             | Q(result__icontains=search_keywords)
             | Q(status__icontains=search_keywords))
     results = paginator_processing(request=request, query_set=results)
     return render(request, 'tasks/results_index.html',
                   {'results': results})
Exemple #13
0
 def get(self, request):
     intervals = IntervalSchedule.objects.all()
     search_keywords = request.GET.get("keywords", "")
     if search_keywords:
         try:
             intervals = intervals.filter(
                 Q(every=int(search_keywords)) | Q(id=int(search_keywords))
                 | Q(period__icontains=search_keywords))
         except ValueError:
             intervals = intervals.filter(
                 Q(period__icontains=search_keywords))
     intervals = paginator_processing(request=request, query_set=intervals)
     return render(request, 'tasks/interval_index.html',
                   {'intervals': intervals})
Exemple #14
0
def save_server_form(request, form, template_name):
    data = dict()
    if request.method == 'POST':
        if form.is_valid():
            form.save()
            data['form_is_valid'] = True
            servers = Server.objects.all()
            # 进行分页处理
            servers = paginator_processing(request=request, query_set=servers)
            data['html_monitor_list'] = render_to_string(
                'monitor/server_partial_list.html', {"servers": servers})
        else:
            data['form_is_valid'] = False
    context = {'form': form}
    data['html_form'] = render_to_string(template_name,
                                         context,
                                         request=request)
    return JsonResponse(data)
Exemple #15
0
def save_client_form(request, form, template_name):
    data = dict()
    if request.method == 'POST':
        if form.is_valid():
            form.save()
            data['form_is_valid'] = True
            clients = Client.objects.all().order_by('-id')
            # 进行分页处理
            clients = paginator_processing(request=request, query_set=clients)
            data['html_client_list'] = render_to_string(
                'deploy/client_partial_list.html', {'clients': clients})
        else:
            data['form_is_valid'] = False
    context = {'form': form}
    data['html_form'] = render_to_string(template_name,
                                         context,
                                         request=request)
    return JsonResponse(data)
Exemple #16
0
def save_job_form(request, form, client_set, project_set, template_name):
    data = dict()
    if request.method == 'POST':
        if form.is_valid():
            client = request.POST.get('client', '')
            project = request.POST.get('project', '')
            spider = request.POST.get('spider', '')
            form.instance.kwargs = json.dumps(
                {
                    "client": client,
                    "project": project,
                    "spider": spider
                },
                indent=2,
                ensure_ascii=False)
            form.instance.queue = extend_celery.get('deploy').get('queue')
            form.instance.exchange = extend_celery.get('deploy').get(
                'exchange')
            form.instance.routing_key = extend_celery.get('deploy').get(
                'routing_key')
            form.save()
            data['form_is_valid'] = True
            tasks = PeriodicTask.objects.all()
            # 进行分页处理
            tasks = paginator_processing(request=request, query_set=tasks)
            data['html_task_list'] = render_to_string(
                'tasks/job_partial_list.html', {"tasks": tasks})
        else:
            data['form_is_valid'] = False
    client = json.loads(form.instance.kwargs).get('client', '')
    project = json.loads(form.instance.kwargs).get('project', '')
    spider = json.loads(form.instance.kwargs).get('spider', '')
    context = {
        'form': form,
        'client_set': client_set,
        'project_set': project_set,
        'client': client,
        'project': project,
        'spider': spider
    }
    data['html_form'] = render_to_string(template_name,
                                         context,
                                         request=request)
    return JsonResponse(data)
Exemple #17
0
 def get(self, request):
     servers = Server.objects.all()
     # 关键词搜索功能
     search_keywords = request.GET.get("keywords", "")
     if search_keywords:
         try:
             servers = servers.filter(
                 Q(name__icontains=search_keywords)
                 | Q(ip__icontains=search_keywords)
                 | Q(port=int(search_keywords))
                 | Q(ssh_user__icontains=search_keywords))
         except ValueError:
             servers = servers.filter(
                 Q(name__icontains=search_keywords)
                 | Q(ip__icontains=search_keywords)
                 | Q(ssh_user__icontains=search_keywords))
     servers = paginator_processing(request=request, query_set=servers)
     return render(request, "monitor/server_index.html",
                   {"servers": servers})
Exemple #18
0
def save_crontab_form(request, form, template_name):
    data = dict()
    if request.method == 'POST':
        if form.is_valid():
            form.save()
            data['form_is_valid'] = True
            crontabs = CrontabSchedule.objects.all()
            # 进行分页处理
            crontabs = paginator_processing(request=request,
                                            query_set=crontabs)
            data['html_task_list'] = render_to_string(
                'tasks/crontab_partial_list.html', {"crontabs": crontabs})
        else:
            data['form_is_valid'] = False
    context = {'form': form}
    data['html_form'] = render_to_string(template_name,
                                         context,
                                         request=request)
    return JsonResponse(data)
Exemple #19
0
def save_database_form(request, form, template_name):
    data = dict()
    if request.method == 'POST':
        if form.is_valid():
            # form.instance.password = base64_encode(request.POST.get('password', '').encode())
            form.save()
            data['form_is_valid'] = True
            databases = DatabaseClient.objects.all()
            # 进行分页处理
            databases = paginator_processing(request=request,
                                             query_set=databases)

            data['html_monitor_list'] = render_to_string(
                'monitor/database_partial_list.html', {"databases": databases})
        else:
            data['form_is_valid'] = False
    context = {'form': form}
    data['html_form'] = render_to_string(template_name,
                                         context,
                                         request=request)
    return JsonResponse(data)
Exemple #20
0
 def get(self, request):
     crontabs = CrontabSchedule.objects.all()
     search_keywords = request.GET.get("keywords", "")
     if search_keywords:
         try:
             crontabs = crontabs.filter(
                 Q(id=int(search_keywords))
                 | Q(minute__icontains=search_keywords)
                 | Q(hour__icontains=search_keywords)
                 | Q(day_of_week__icontains=search_keywords)
                 | Q(day_of_month__icontains=search_keywords)
                 | Q(month_of_year__icontains=search_keywords))
         except ValueError:
             crontabs = crontabs.filter(
                 Q(minute__icontains=search_keywords)
                 | Q(hour__icontains=search_keywords)
                 | Q(day_of_week__icontains=search_keywords)
                 | Q(day_of_month__icontains=search_keywords)
                 | Q(month_of_year__icontains=search_keywords))
     crontabs = paginator_processing(request=request, query_set=crontabs)
     return render(request, 'tasks/crontab_index.html',
                   {'crontabs': crontabs})
Exemple #21
0
 def get(self, request, project_name):
     clients = Client.objects.order_by('-id')
     project = Project.objects.get(name=project_name)
     # 关键词搜索功能
     search_keywords = request.GET.get("keywords", "")
     try:
         clients = clients.filter(
             Q(id=int(search_keywords)) | Q(name__icontains=search_keywords)
             | Q(ip__icontains=search_keywords)
             | Q(port=int(search_keywords))
             | Q(deploy__desc__icontains=search_keywords)).distinct()
     except ValueError:
         clients = clients.filter(
             Q(name__icontains=search_keywords)
             | Q(ip__icontains=search_keywords)
             | Q(deploy__desc__icontains=search_keywords)).distinct()
     for client in clients:
         try:
             deploy = Deploy.objects.get(client_id=client.id,
                                         project_id=project.id)
             deploy.deployed_at = deploy.deployed_at.strftime(
                 DATE_TIME_FORMAT)
             if deploy.desc:
                 client.deploy_desc = deploy.desc
             else:
                 client.deploy_desc = ''
             if deploy.deployed_at:
                 client.deployed_at = deploy.deployed_at
             else:
                 client.deployed_at = ''
         except Deploy.DoesNotExist:
             pass
     clients = paginator_processing(request=request, query_set=clients)
     return render(request, 'deploy/project_deploy.html', {
         "project_name": project_name,
         "clients": clients,
     })