Exemplo n.º 1
0
    def get(self, request, *args, **kwargs):
        """
        获取服务挂载的服务
        ---
        parameters:
            - name: tenantName
              description: 租户名
              required: true
              type: string
              paramType: path
            - name: serviceAlias
              description: 服务别名
              required: true
              type: string
              paramType: path
            - name: type
              description: 查询的类别 mnt(已挂载的,默认)| unmnt (未挂载的)
              required: false
              type: string
              paramType: query
            - name: page
              description: 页号(默认第一页)
              required: false
              type: integer
              paramType: query
            - name: page_size
              description: 每页大小(默认10)
              required: false
              type: integer
              paramType: query

        """
        result = {}
        query_type = request.GET.get("type", "mnt")
        page = request.GET.get("page", 1)
        page_size = request.GET.get("page_size", 10)
        try:

            if query_type == "mnt":
                mnt_list, total = mnt_service.get_service_mnt_details(
                    self.tenant, self.service)
            elif query_type == "unmnt":
                services = app_service.get_app_list(
                    self.tenant.pk, self.user, self.tenant.tenant_id,
                    self.service.service_region)
                services_ids = [s.service_id for s in services]
                mnt_list, total = mnt_service.get_service_unmnt_details(
                    self.tenant, self.service, services_ids, page, page_size)
            else:
                return Response(general_message(400, "param error", "参数错误"),
                                status=400)
            result = general_message(200,
                                     "success",
                                     "查询成功",
                                     list=mnt_list,
                                     total=total)
        except Exception as e:
            logger.exception(e)
            result = error_message(e.message)
        return Response(result, status=result["code"])
Exemplo n.º 2
0
    def get(self, request, *args, **kwargs):
        """
        获取组件挂载的组件
        ---
        parameters:
            - name: tenantName
              description: 租户名
              required: true
              type: string
              paramType: path
            - name: serviceAlias
              description: 组件别名
              required: true
              type: string
              paramType: path
            - name: type
              description: 查询的类别 mnt(已挂载的,默认)| unmnt (未挂载的)
              required: false
              type: string
              paramType: query
            - name: page
              description: 页号(默认第一页)
              required: false
              type: integer
              paramType: query
            - name: page_size
              description: 每页大小(默认10)
              required: false
              type: integer
              paramType: query

        """
        query = request.GET.get("query", "")
        query_type = request.GET.get("type", "mnt")
        page = request.GET.get("page", 1)
        page_size = request.GET.get("page_size", 10)
        volume_types = parse_argument(request, 'volume_types', value_type=list)

        if query_type == "mnt":
            mnt_list, total = mnt_service.get_service_mnt_details(
                self.tenant, self.service, volume_types)
        elif query_type == "unmnt":
            q = Q(volume_type__in=volume_types) if volume_types else Q()
            services = app_service.get_app_list(self.tenant.pk, self.user,
                                                self.tenant.tenant_id,
                                                self.service.service_region,
                                                query)

            services_ids = [s.service_id for s in services]
            mnt_list, total = mnt_service.get_service_unmnt_details(
                self.tenant, self.service, services_ids, page, page_size, q)
        else:
            return Response(general_message(400, "param error", "参数错误"),
                            status=400)
        result = general_message(200,
                                 "success",
                                 "查询成功",
                                 list=mnt_list,
                                 total=total)

        return Response(result, status=result["code"])