def get(self, request, team_name, group_id, *args, **kwargs):
     """
     拓扑图中Internet详情
     ---
     parameters:
         - name: team_name
           description: 团队名
           required: true
           type: string
           paramType: path
         - name: group_id
           description: 应用组id
           required: true
           type: string
           paramType: path
     """
     logger.debug("query topological graph from:{0}".format(group_id))
     try:
         if group_id == "-1":
             code = 200
             no_service_list = service_repo.get_no_group_service_status_by_group_id(
                 team_name=self.team_name, region_name=self.response_region)
             result = general_message(200,
                                      "query success",
                                      "应用组获取成功",
                                      list=no_service_list)
         else:
             code = 200
             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={
                                              "json_svg": {},
                                              "json_data": {}
                                          })
                 return Response(result, status=200)
             else:
                 data = topological_service.get_internet_topological_graph(
                     group_id=group_id, team_name=team_name)
                 result = general_message(
                     code,
                     "Obtain topology internet success.",
                     "获取拓扑图Internet成功",
                     bean=data)
         return Response(result, status=code)
     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: group_id
           description: 应用组id
           required: true
           type: string
           paramType: query
     """
     try:
         group_id = request.GET.get("group_id", None)
         code = 200
         if group_id == "-1":
             code = 200
             no_service_list = service_repo.get_no_group_service_status_by_group_id(
                 team_name=self.team_name, region_name=self.response_region)
             result = general_message(200,
                                      "query success",
                                      "应用组查询成功",
                                      list=no_service_list)
         else:
             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)
             topological_info = topological_service.get_group_topological_graph(
                 group_id=group_id,
                 region=self.response_region,
                 team_name=self.team_name,
                 enterprise_id=self.team.enterprise_id)
             result = general_message(code,
                                      "Obtain topology success.",
                                      "获取拓扑图成功",
                                      bean=topological_info)
         return Response(result, status=code)
     except Exception as e:
         logger.exception(e)
         result = error_message(e.message)
         return Response(result, status=500)
예제 #3
0
 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)
예제 #4
0
    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)