def filter_remote_plans_by_key(plans, search_key): valid_plans_id = [] for plan in plans: is_need = serversmgr.filter_hosts(search_key, plan.name, plan.host.name) if is_need: valid_plans_id.append(plan.id) return plans.filter(id__in=valid_plans_id)
def getPlanList(request): paramsQD = request.GET perPage = paramsQD.get('rows', '10') # 设置每页条数 targPage = paramsQD.get('page', '1') # 返回第几页 search_key = request.GET.get('s_key', None) allPlans = ArchiveScheduleViews().get(request=request).data rowList = list() for planAttr in allPlans: next_run_date = None last_run_date = None if planAttr['last_run_date']: last_run_date = planAttr['last_run_date'].replace( 'T', ' ').split('.')[0] if planAttr['next_run_date']: next_run_date = planAttr['next_run_date'].replace( 'T', ' ').split('.')[0] one_info = { 'id': planAttr['id'], 'cell': [ planAttr['id'], planAttr['name'], planAttr['host']['name'], '启用' if planAttr['enabled'] else '禁用', '整机导出', last_run_date, next_run_date ] } backup_host_ip_str = get_host_ip_str( planAttr['host']['id']) if search_key else '' is_need = serversmgr.filter_hosts(search_key, one_info['cell'][1], one_info['cell'][2], backup_host_ip_str) if is_need: rowList.append(one_info) else: pass rowList.sort(key=lambda x: x['id']) paginator = Paginator(object_list=rowList, per_page=perPage) plansNum = paginator.count pagesNum = paginator.num_pages getPlans = paginator.page(targPage).object_list retInfo = { 'r': 0, 'a': 'list', 'page': targPage, 'total': pagesNum, 'records': plansNum, 'rows': getPlans } functions.sort_gird_rows(request, retInfo) jsonStr = json.dumps(retInfo, ensure_ascii=False) return HttpResponse(jsonStr)
def lists(request): paramsQD = request.GET perPage = paramsQD.get('rows', '10') # 设置每页条数 targPage = paramsQD.get('page', '1') # 返回第几页 search_key = request.GET.get('s_key', None) rsp = DeployTemplateCURD().get(request) if status.is_success(rsp.status_code): rowList = list() for row in rsp.data: # '序号', '模板名称', '创建时间', '状态', '描述' one_info = { 'id': row['id'], 'cell': [row['id'], row['name'], row['create_datetime'], row['desc']] } if search_key: is_need = serversmgr.filter_hosts(search_key, one_info['cell'][1], one_info['cell'][2], one_info['cell'][3]) else: is_need = True if is_need: rowList.append(one_info) paginator = Paginator(object_list=rowList, per_page=perPage) plansNum = paginator.count pagesNum = paginator.num_pages getPlans = paginator.page(targPage).object_list retInfo = { 'r': 0, 'a': 'list', 'page': targPage, 'total': pagesNum, 'records': plansNum, 'rows': getPlans } functions.sort_gird_rows(request, retInfo) jsonStr = json.dumps(retInfo, ensure_ascii=False) return HttpResponse(jsonStr) else: return HttpResponse( json.dumps({ 'r': 1, 'e': rsp.data if rsp.data else '内部错误64' }))
def list_host(request): paramsQD = request.GET perPage = paramsQD.get('rows', '10') # 设置每页条数 targPage = paramsQD.get('page', '1') # 返回第几页 search_key = request.GET.get('s_key', None) allPlans = VirtualHostSession().get(request).data rowList = list() for planAttr in allPlans: center = VirtualCenterConnection.objects.get(id=planAttr['connection']) one_info = { 'id': planAttr['id'], 'cell': [ planAttr['id'], planAttr['name'], '启用' if planAttr['enable'] else '禁用', center.address ] } is_need = serversmgr.filter_hosts(search_key, one_info['cell'][1], one_info['cell'][3]) if is_need: rowList.append(one_info) else: pass rowList.sort(key=lambda x: x['id']) paginator = Paginator(object_list=rowList, per_page=perPage) plansNum = paginator.count pagesNum = paginator.num_pages getPlans = paginator.page(targPage).object_list retInfo = { 'r': 0, 'a': 'list', 'page': targPage, 'total': pagesNum, 'records': plansNum, 'rows': getPlans } functions.sort_gird_rows(request, retInfo) jsonStr = json.dumps(retInfo, ensure_ascii=False) return HttpResponse(jsonStr)
def getPlanList(request): paramsQD = request.GET perPage = paramsQD.get('rows', '10') # 设置每页条数 targPage = paramsQD.get('page', '1') # 返回第几页 search_key = request.GET.get('s_key', None) bgroup = paramsQD.get('group', '') backup_source_type = int( request.GET.get('backup_source_type', BackupTaskSchedule.BACKUP_DISKS)) schedules = BackupTaskSchedule.objects.filter( deleted=False, backup_source_type=backup_source_type).select_related( 'host').order_by('id') if not request.user.is_superuser: schedules = schedules.filter(host__user=request.user) rowList = list() gss = GroupBackupTaskSchedule.objects.filter(user_id=request.user.id) gs_schedule_ids = set() for gs in gss: for sc in gs.schedules.all(): gs_schedule_ids.add(sc.id) for schedule in schedules: if bgroup == 'group': if schedule.id in gs_schedule_ids: # 如果计划在组计划里 就不显示 continue next_run_date = None last_run_date = None if schedule.last_run_date: last_run_date = schedule.last_run_date.strftime( xdatetime.FORMAT_WITH_USER_SECOND) if schedule.next_run_date: next_run_date = schedule.next_run_date.strftime( xdatetime.FORMAT_WITH_USER_SECOND) one_info = { 'id': schedule.id, 'cell': [ schedule.id, schedule.name, schedule.host.name, '启用' if schedule.enabled else '禁用', '整机备份', last_run_date, next_run_date ] } backup_host_ip_str = get_host_ip_str( schedule.host) if search_key else '' is_need = serversmgr.filter_hosts(search_key, one_info['cell'][1], one_info['cell'][2], backup_host_ip_str) if is_need: rowList.append(one_info) else: pass if bgroup == 'group': for schedule in gss: schedule_id = 'group_{}'.format(schedule.id) host_name = '{}台客户端'.format(schedule.schedules.count()) one_info = { 'id': schedule_id, 'cell': [ schedule_id, schedule.name, host_name, '启用' if schedule.enabled else '禁用', '整机备份', '-', '-' ] } is_need = serversmgr.filter_hosts(search_key, schedule.name) if is_need: rowList.append(one_info) paginator = Paginator(object_list=rowList, per_page=perPage) plansNum = paginator.count pagesNum = paginator.num_pages getPlans = paginator.page(targPage).object_list retInfo = { 'r': 0, 'a': 'list', 'page': targPage, 'total': pagesNum, 'records': plansNum, 'rows': getPlans } functions.sort_gird_rows(request, retInfo) jsonStr = json.dumps(retInfo, ensure_ascii=False) return HttpResponse(jsonStr)