Exemple #1
0
    def post(self, request, *args, **kwargs):
        """
        添加组信息
        ---
        parameters:
            - name: tenantName
              description: 租户名
              required: true
              type: string
              paramType: path
            - name: group_name
              description: 组名称
              required: true
              type: string
              paramType: form

        """
        try:
            group_name = request.data.get("group_name", None)
            code, msg, data = group_service.add_group(self.tenant,
                                                      self.response_region,
                                                      group_name)
            if code != 200:
                result = general_message(code, "group add error", msg)
            else:
                result = general_message(code,
                                         "success",
                                         msg,
                                         bean=data.to_dict())
        except Exception as e:
            logger.exception(e)
            result = error_message(e.message)
        return Response(result, status=result["code"])
 def post(self, request, *args, **kwargs):
     serializer = AppPostInfoSerializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     data = serializer.data
     group_info = group_service.add_group(self.team, self.region_name,
                                          data["app_name"],
                                          data.get("app_note"))
     re = AppBaseInfoSerializer(group_info)
     return Response(re.data, status=status.HTTP_201_CREATED)
Exemple #3
0
    def post(self, request, *args, **kwargs):
        """
        docker-compose创建应用
        ---
        parameters:
            - name: tenantName
              description: 租户名
              required: true
              type: string
              paramType: path
            - name: group_name
              description: 应用组名称
              required: true
              type: string
              paramType: form
            - name: yaml_content
              description: compose文件内容
              required: true
              type: string
              paramType: form

        """

        group_name = request.data.get("group_name", None)
        yaml_content = request.data.get("yaml_content", "")
        try:
            if not group_name:
                return Response(general_message(400, 'params error', "请指明需要创建的compose组名"), status=400)
            if not yaml_content:
                return Response(general_message(400, "params error", "未指明yaml内容"), status=400)
            code, msg, json_data = compose_service.yaml_to_json(yaml_content)
            if code != 200:
                return Response(general_message(code, "parse yaml error", msg), status=code)
            # 创建组
            code, msg, group_info = group_service.add_group(self.tenant, self.response_region, group_name)
            if code != 200:
                return Response(general_message(code, "create group error", msg), status=code)
            code, msg, group_compose = compose_service.create_group_compose(self.tenant, self.response_region,
                                                                            group_info.ID, json_data)
            if code != 200:
                return Response(general_message(code, "create group compose error", msg), status=code)
            bean = dict()
            bean["group_id"] = group_compose.group_id
            bean["compose_id"] = group_compose.compose_id
            bean["group_name"] = group_info.group_name
            result = general_message(200, "operation success", "compose组创建成功", bean=bean)
        except Exception as e:
            logger.exception(e)
            result = error_message()
        return Response(result, status=result["code"])
Exemple #4
0
    def post(self, request, *args, **kwargs):
        """
        添加应用信息
        ---
        parameters:
            - name: tenantName
              description: 租户名
              required: true
              type: string
              paramType: path
            - name: group_name
              description: 应用名称
              required: true
              type: string
              paramType: form
            - name: group_note
              description: 应用备注
              required: false
              type: string
              paramType: form

        """
        try:
            group_name = request.data.get("group_name", None)
            group_note = request.data.get("group_note", "")
            if group_note and len(group_note) > 2048:
                return Response(general_message(400, "node too long",
                                                "应用备注长度限制2048"),
                                status=400)
            data = group_service.add_group(self.tenant, self.response_region,
                                           group_name, group_note)
            bean = {
                "group_note": data.note,
                "region_name": data.region_name,
                "tenant_id": data.tenant_id,
                "group_name": data.group_name,
                "is_default": data.is_default,
                "group_id": data.ID,
            }
            result = general_message(200, "success", "创建成功", bean=bean)
        except ServiceHandleException as e:
            result = general_message(400, e.msg, e.msg_show)
            return Response(result, status=400)
        except Exception as e:
            logger.exception(e)
            result = error_message(e.message)
        return Response(result, status=result["code"])
Exemple #5
0
 def post(self, request, *args, **kwargs):
     serializer = AppPostInfoSerializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     data = serializer.data
     logger.info(data["team_alias"])
     tenant = team_services.get_tenant_by_tenant_name(data["team_alias"])
     if not tenant:
         raise serializers.ValidationError("指定租户不存在")
     if not region_services.verify_team_region(
             team_name=data["team_alias"], region_name=data["region_name"]):
         raise serializers.ValidationError("指定数据中心租户未开通")
     code, msg, group_info = group_service.add_group(
         tenant, data["region_name"], data["app_name"])
     if not group_info:
         return Response(FailSerializer({"msg": msg}).data, status=code)
     re = AppBaseInfoSerializer(group_info)
     return Response(re.data, status=status.HTTP_201_CREATED)
    def post(self, request, *args, **kwargs):
        """
        docker-compose创建组件
        ---
        parameters:
            - name: tenantName
              description: 租户名
              required: true
              type: string
              paramType: path
            - name: group_name
              description: 应用名称
              required: true
              type: string
              paramType: form
            - name: user_name
              description: 镜像仓库名称
              required: true
              type: string
              paramType: form
            - name: password
              description: 镜像仓库密码
              required: true
              type: string
              paramType: form
            - name: yaml_content
              description: compose文件内容
              required: true
              type: string
              paramType: form

        """

        group_name = request.data.get("group_name", None)
        hub_user = request.data.get("user_name", "")
        hub_pass = request.data.get("password", "")
        yaml_content = request.data.get("yaml_content", "")
        group_note = request.data.get("group_note", "")
        if group_note and len(group_note) > 2048:
            return Response(general_message(400, "node too long",
                                            "应用备注长度限制2048"),
                            status=400)
        if not group_name:
            return Response(general_message(400, 'params error',
                                            "请指明需要创建的compose组名"),
                            status=400)
        if not yaml_content:
            return Response(general_message(400, "params error", "未指明yaml内容"),
                            status=400)
        # Parsing yaml determines whether the input is illegal
        code, msg, json_data = compose_service.yaml_to_json(yaml_content)
        if code != 200:
            return Response(general_message(code, "parse yaml error", msg),
                            status=code)
        # 创建组
        group_info = group_service.add_group(self.tenant, self.response_region,
                                             group_name, group_note)
        code, msg, group_compose = compose_service.create_group_compose(
            self.tenant, self.response_region, group_info.ID, yaml_content,
            hub_user, hub_pass)
        if code != 200:
            return Response(general_message(code, "create group compose error",
                                            msg),
                            status=code)
        bean = dict()
        bean["group_id"] = group_compose.group_id
        bean["compose_id"] = group_compose.compose_id
        bean["group_name"] = group_info.group_name
        result = general_message(200,
                                 "operation success",
                                 "compose组创建成功",
                                 bean=bean)
        return Response(result, status=result["code"])