Esempio n. 1
0
    def post(self, request, *args, **kwargs):
        """
        垂直升级组件
        ---
        parameters:
            - name: tenantName
              description: 租户名
              required: true
              type: string
              paramType: path
            - name: serviceAlias
              description: 组件别名
              required: true
              type: string
              paramType: path
            - name: new_memory
              description: 内存大小(单位:M)
              required: true
              type: int
              paramType: form
            - name: new_gpu
              description: gpu显存数量(单位:MiB)
              required: false
              type: int
              paramType: form
            - name: new_cpu
              description: cpu分配额(单位:1000=1Core)
              required: false
              type: int
              paramType: form

        """
        try:
            new_memory = request.data.get("new_memory", 0)
            new_gpu = request.data.get("new_gpu", None)
            new_cpu = request.data.get("new_cpu", None)
            code, msg = app_manage_service.vertical_upgrade(
                self.tenant,
                self.service,
                self.user,
                int(new_memory),
                oauth_instance=self.oauth_instance,
                new_gpu=new_gpu,
                new_cpu=new_cpu)
            bean = {}
            if code != 200:
                return Response(general_message(code,
                                                "vertical upgrade error",
                                                msg,
                                                bean=bean),
                                status=code)
            result = general_message(code, "success", "操作成功", bean=bean)
        except ResourceNotEnoughException as re:
            raise re
        except AccountOverdueException as re:
            logger.exception(re)
            return Response(general_message(10410, "resource is not enough",
                                            re.message),
                            status=412)
        return Response(result, status=result["code"])
Esempio n. 2
0
 def post(self, request, *args, **kwargs):
     serializer = AppServiceTelescopicVerticalSerializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     new_memory = serializer.data.get("new_memory")
     code, msg = app_manage_service.vertical_upgrade(
         self.team, self.service, self.user, int(new_memory), oauth_instance=self.oauth_instance)
     if code != 200:
         raise ServiceHandleException(status_code=code, msg="vertical upgrade error", msg_show=msg)
     return Response(None, status=code)
Esempio n. 3
0
    def post(self, request, *args, **kwargs):
        """
        垂直升级服务
        ---
        parameters:
            - name: tenantName
              description: 租户名
              required: true
              type: string
              paramType: path
            - name: serviceAlias
              description: 服务别名
              required: true
              type: string
              paramType: path
            - name: new_memory
              description: 内存大小(单位:M)
              required: true
              type: int
              paramType: form

        """
        try:
            new_memory = request.data.get("new_memory", None)
            if not new_memory:
                return Response(general_message(400, "memory is null", "请选择升级内存"), status=400)
            new_add_memory = (int(new_memory) * self.service.min_node) - self.service.min_node * self.service.min_memory
            if new_add_memory < 0:
                new_add_memory = 0
            allow_create, tips = app_service.verify_source(self.tenant, self.service.service_region, new_add_memory,
                                                           "start_app")
            if not allow_create:
                return Response(general_message(412, "resource is not enough", "资源不足,无法升级"))
            code, msg, event = app_manage_service.vertical_upgrade(self.tenant, self.service, self.user,
                                                                   int(new_memory))
            bean = {}
            if event:
                bean = event.to_dict()
                bean["type_cn"] = event_service.translate_event_type(event.type)
            if code != 200:
                return Response(general_message(code, "vertical upgrade error", msg, bean=bean), status=code)
            result = general_message(code, "success", "操作成功", bean=bean)
        except ResourceNotEnoughException as re:
            logger.exception(re)
            return Response(general_message(10406, "resource is not enough", re.message), status=412)
        except Exception as e:
            logger.exception(e)
            result = error_message(e.message)
        return Response(result, status=result["code"])
Esempio n. 4
0
    def post(self, request, *args, **kwargs):
        """
        垂直升级服务
        ---
        parameters:
            - name: tenantName
              description: 租户名
              required: true
              type: string
              paramType: path
            - name: serviceAlias
              description: 服务别名
              required: true
              type: string
              paramType: path
            - name: new_memory
              description: 内存大小(单位:M)
              required: true
              type: int
              paramType: form

        """
        try:
            new_memory = request.data.get("new_memory", None)
            if not new_memory:
                return Response(general_message(400, "memory is null",
                                                "请选择升级内存"),
                                status=400)
            code, msg, event = app_manage_service.vertical_upgrade(
                self.tenant, self.service, self.user, int(new_memory))
            bean = {}
            if event:
                bean = event.to_dict()
                bean["type_cn"] = event_service.translate_event_type(
                    event.type)
            if code != 200:
                return Response(general_message(code,
                                                "vertical upgrade error",
                                                msg,
                                                bean=bean),
                                status=code)
            result = general_message(code, "success", "操作成功", bean=bean)
        except Exception as e:
            logger.exception(e)
            result = error_message(e.message)
        return Response(result, status=result["code"])
Esempio n. 5
0
    def post(self, request, *args, **kwargs):
        """
        垂直升级组件
        ---
        parameters:
            - name: tenantName
              description: 租户名
              required: true
              type: string
              paramType: path
            - name: serviceAlias
              description: 组件别名
              required: true
              type: string
              paramType: path
            - name: new_memory
              description: 内存大小(单位:M)
              required: true
              type: int
              paramType: form

        """
        try:
            new_memory = request.data.get("new_memory", None)
            if not new_memory:
                return Response(general_message(400, "memory is null",
                                                "请选择升级内存"),
                                status=400)
            code, msg = app_manage_service.vertical_upgrade(
                self.tenant, self.service, self.user, int(new_memory))
            bean = {}
            if code != 200:
                return Response(general_message(code,
                                                "vertical upgrade error",
                                                msg,
                                                bean=bean),
                                status=code)
            result = general_message(code, "success", "操作成功", bean=bean)
        except ResourceNotEnoughException as re:
            raise re
        except AccountOverdueException as re:
            logger.exception(re)
            return Response(general_message(10410, "resource is not enough",
                                            re.message),
                            status=412)
        return Response(result, status=result["code"])