def get(self, request, *args, **kwargs): """ 应用组应用列表、状态展示 --- parameters: - name: team_name description: 团队名 required: true type: string paramType: path - name: page description: 页数(默认第一页) required: false type: string paramType: query - name: page_size description: 每页展示个数(默认10个) required: false type: string paramType: query - name: group_id description: 应用组id required: true type: string paramType: query """ try: code = 200 page = request.GET.get("page", 1) page_size = request.GET.get("page_size", 10) group_id = request.GET.get("group_id", None) tenant_actions = list(self.user.actions.tenant_actions) service_actions = list(self.user.actions.service_actions) if group_id != "-1": if group_id is None or not group_id.isdigit(): code = 400 result = general_message( code, "group_id is missing or not digit!", "group_id缺失或非数字") return Response(result, status=code) team_id = self.team.tenant_id group_count = group_repo.get_group_count_by_team_id_and_group_id( team_id=team_id, group_id=group_id) if group_count == 0: code = 202 result = general_message(code, "group is not yours!", "当前组已删除或您无权限查看!", bean={}) return Response(result, status=200) group_service_list = service_repo.get_group_service_by_group_id( group_id=group_id, region_name=self.response_region, team_id=self.team.tenant_id, team_name=self.team_name, enterprise_id=self.team.enterprise_id) paginator = Paginator(group_service_list, page_size) try: group_service_list = paginator.page(page).object_list except PageNotAnInteger: group_service_list = paginator.page(1).object_list except EmptyPage: group_service_list = paginator.page( paginator.num_pages).object_list result = general_message(code, "query success", "应用组查询成功", list=group_service_list, total=paginator.count) else: no_group_service_list = service_repo.get_no_group_service_status_by_group_id( team_name=self.team_name, team_id=self.team.tenant_id, region_name=self.response_region, enterprise_id=self.team.enterprise_id) paginator = Paginator(no_group_service_list, page_size) try: no_group_service_list = paginator.page(page).object_list except PageNotAnInteger: no_group_service_list = paginator.page(1).object_list except EmptyPage: no_group_service_list = paginator.page( paginator.num_pages).object_list result = general_message(code, "query success", "应用组查询成功", list=no_group_service_list, total=paginator.count) result["data"]["bean"] = { "tenant_actions": tenant_actions, "service_actions": service_actions } return Response(result, status=code) except GroupNotExistError as e: logger.exception(e) result = general_message(400, "query success", "该应用组不存在") return Response(result, status=400) except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result, status=500)
def get(self, request, *args, **kwargs): """ 应用组件列表、状态展示 --- parameters: - name: team_name description: 团队名 required: true type: string paramType: path - name: page description: 页数(默认第一页) required: false type: string paramType: query - name: page_size description: 每页展示个数(默认10个) required: false type: string paramType: query - name: group_id description: 应用id required: true type: string paramType: query """ try: code = 200 page = request.GET.get("page", 1) page_size = request.GET.get("page_size", 10) group_id = request.GET.get("group_id", None) if group_id is None or not group_id.isdigit(): code = 400 result = general_message(code, "group_id is missing or not digit!", "group_id缺失或非数字") return Response(result, status=code) query = request.GET.get("query", "") if group_id == "-1": # query service which not belong to any app no_group_service_list = service_repo.get_no_group_service_status_by_group_id( team_name=self.team_name, team_id=self.team.tenant_id, region_name=self.response_region, enterprise_id=self.team.enterprise_id) if page_size == "-1" or page_size == "" or page_size == "0": page_size = len(no_group_service_list) if len(no_group_service_list) > 0 else 10 paginator = Paginator(no_group_service_list, page_size) try: no_group_service_list = paginator.page(page).object_list except PageNotAnInteger: no_group_service_list = paginator.page(1).object_list except EmptyPage: no_group_service_list = paginator.page(paginator.num_pages).object_list result = general_message(code, "query success", "应用查询成功", list=no_group_service_list, total=paginator.count) return Response(result, status=code) team_id = self.team.tenant_id group_count = group_repo.get_group_count_by_team_id_and_group_id(team_id=team_id, group_id=group_id) if group_count == 0: result = general_message(202, "group is not yours!", "当前组已删除或您无权限查看!", bean={}) return Response(result, status=200) group_service_list = service_repo.get_group_service_by_group_id( group_id=group_id, region_name=self.response_region, team_id=self.team.tenant_id, team_name=self.team_name, enterprise_id=self.team.enterprise_id, query=query) if page_size == "-1" or page_size == "" or page_size == "0": page_size = len(group_service_list) if len(group_service_list) > 0 else 10 paginator = Paginator(group_service_list, page_size) try: group_service_list = paginator.page(page).object_list except PageNotAnInteger: group_service_list = paginator.page(1).object_list except EmptyPage: group_service_list = paginator.page(paginator.num_pages).object_list result = general_message(code, "query success", "应用查询成功", list=group_service_list, total=paginator.count) return Response(result, status=code) except GroupNotExistError as e: logger.exception(e) result = general_message(400, "query success", "该应用不存在") return Response(result, status=400)