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})
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)
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})
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})
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)
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)
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)
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)
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)
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)
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)
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})
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})
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)
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)
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)
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})
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)
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)
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})
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, })