Exemplo n.º 1
0
    def __save_volume(self, tenant, service, volumes):
        if volumes:
            volume_service.delete_service_volumes(service)
            index = 0
            for volume in volumes:
                index += 1
                volume_name = service.service_alias.upper() + "_" + str(index)
                if "file_content" in list(volume.keys()):
                    volume_service.add_service_volume(tenant, service,
                                                      volume["volume_path"],
                                                      volume["volume_type"],
                                                      volume_name,
                                                      volume["file_content"])
                else:
                    settings = {}
                    settings["volume_capacity"] = volume["volume_capacity"]
                    try:
                        volume_service.add_service_volume(
                            tenant, service, volume["volume_path"],
                            volume["volume_type"], volume_name, None, settings)
                    except ErrVolumePath:
                        logger.warning("Volume Path {0} error".format(
                            volume["volume_path"]))

        return 200, "success"
Exemplo n.º 2
0
 def __save_volume(self, tenant, service, volumes):
     if volumes:
         volume_service.delete_service_volumes(service)
         index = 0
         for volume in volumes:
             index += 1
             volume_name = service.service_alias.upper() + "_" + str(index)
             if "file_content" in volume.keys():
                 code, msg, volume_data = volume_service.add_service_volume(
                     tenant, service, volume["volume_path"],
                     volume["volume_type"], volume_name,
                     volume["file_content"])
                 if code != 200:
                     logger.error(
                         "service.check",
                         "save service check info port error {0}".format(
                             msg))
                     # return code, msg
             else:
                 code, msg, volume_data = volume_service.add_service_volume(
                     tenant, service, volume["volume_path"],
                     volume["volume_type"], volume_name)
                 if code != 200:
                     logger.error(
                         "service.check",
                         "save service check info port error {0}".format(
                             msg))
                     # return code, msg
     return 200, "success"
Exemplo n.º 3
0
 def __save_volume(self, tenant, service, volumes):
     if not volumes:
         return 200, "success"
     for volume in volumes:
         if "file_content" in volume.keys():
             code, msg, volume_data = volume_service.add_service_volume(
                 tenant, service, volume["volume_path"],
                 volume["volume_type"], volume["volume_name"],
                 ["file_content"])
         else:
             code, msg, volume_data = volume_service.add_service_volume(
                 tenant, service, volume["volume_path"],
                 volume["volume_type"], volume["volume_name"])
         if code != 200:
             logger.error("save market app volume error".format(msg))
             return code, msg
     return 200, "success"
Exemplo 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: volume_name
              description: 持久化名称
              required: true
              type: string
              paramType: form
            - name: volume_type
              description: 持久化类型
              required: true
              type: string
              paramType: form
            - name: volume_path
              description: 持久化路径
              required: true
              type: string
              paramType: form

        """
        volume_name = request.data.get("volume_name", None)
        volume_type = request.data.get("volume_type", None)
        volume_path = request.data.get("volume_path", None)
        file_content = request.data.get("file_content", None)
        volume_capacity = request.data.get("volume_capacity", 0)
        provider_name = request.data.get("volume_provider_name", '')
        access_mode = request.data.get("access_mode", '')
        share_policy = request.data.get('share_policy', '')
        backup_policy = request.data.get('back_policy', '')
        reclaim_policy = request.data.get('reclaim_policy', '')  # TODO fanyangyang 使用serialer进行参数校验
        allow_expansion = request.data.get('allow_expansion', False)
        settings = {}
        settings['volume_capacity'] = volume_capacity
        settings['provider_name'] = provider_name
        settings['access_mode'] = access_mode
        settings['share_policy'] = share_policy
        settings['backup_policy'] = backup_policy
        settings['reclaim_policy'] = reclaim_policy
        settings['allow_expansion'] = allow_expansion

        data = volume_service.add_service_volume(self.tenant, self.service, volume_path, volume_type, volume_name, file_content,
                                                 settings, self.user.nick_name)
        result = general_message(200, "success", "持久化路径添加成功", bean=data.to_dict())

        return Response(result, status=result["code"])
Exemplo 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: volume_name
              description: 持久化名称
              required: true
              type: string
              paramType: form
            - name: volume_type
              description: 持久化类型
              required: true
              type: string
              paramType: form
            - name: volume_path
              description: 持久化路径
              required: true
              type: string
              paramType: form

        """
        volume_name = request.data.get("volume_name", None)
        volume_type = request.data.get("volume_type", None)
        volume_path = request.data.get("volume_path", None)
        file_content = request.data.get("file_content", None)
        try:

            code, msg, data = volume_service.add_service_volume(
                self.tenant, self.service, volume_path, volume_type,
                volume_name, file_content)
            if code != 200:
                result = general_message(code, "add volume error", msg)
                return Response(result, status=code)
            result = general_message(code,
                                     msg,
                                     u"持久化路径添加成功",
                                     bean=data.to_dict())
        except Exception as e:
            logger.exception(e)
            result = error_message(e.message)
        return Response(result, status=result["code"])
Exemplo n.º 6
0
 def __save_volume(self, tenant, service, volumes):
     if volumes:
         volume_service.delete_service_volumes(service)
         index = 0
         for volume in volumes:
             index += 1
             volume_name = service.service_alias.upper() + "_" + str(index)
             if "file_content" in volume.keys():
                 volume_service.add_service_volume(tenant, service,
                                                   volume["volume_path"],
                                                   volume["volume_type"],
                                                   volume_name,
                                                   volume["file_content"])
             else:
                 settings = {}
                 settings["volume_capacity"] = volume["volume_capacity"]
                 volume_service.add_service_volume(tenant, service,
                                                   volume["volume_path"],
                                                   volume["volume_type"],
                                                   volume_name, None,
                                                   settings)
     return 200, "success"
Exemplo n.º 7
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: volume_name
              description: 持久化名称
              required: true
              type: string
              paramType: form
            - name: volume_type
              description: 持久化类型
              required: true
              type: string
              paramType: form
            - name: volume_path
              description: 持久化路径
              required: true
              type: string
              paramType: form

        """
        volume_name = request.data.get("volume_name", None)
        r = re.compile('(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$')
        if not r.match(volume_name):
            raise AbortRequest(msg="volume name illegal",
                               msg_show="持久化名称只支持数字字母下划线")
        volume_type = request.data.get("volume_type", None)
        volume_path = request.data.get("volume_path", None)
        file_content = request.data.get("file_content", None)
        volume_capacity = request.data.get("volume_capacity", 0)
        provider_name = request.data.get("volume_provider_name", '')
        access_mode = request.data.get("access_mode", '')
        share_policy = request.data.get('share_policy', '')
        backup_policy = request.data.get('back_policy', '')
        reclaim_policy = request.data.get(
            'reclaim_policy', '')  # TODO fanyangyang 使用serialer进行参数校验
        allow_expansion = request.data.get('allow_expansion', False)
        mode = request.data.get("mode")
        if mode is not None:
            mode = ensure_volume_mode(mode)

        settings = {}
        settings['volume_capacity'] = volume_capacity
        settings['provider_name'] = provider_name
        settings['access_mode'] = access_mode
        settings['share_policy'] = share_policy
        settings['backup_policy'] = backup_policy
        settings['reclaim_policy'] = reclaim_policy
        settings['allow_expansion'] = allow_expansion

        data = volume_service.add_service_volume(self.tenant,
                                                 self.service,
                                                 volume_path,
                                                 volume_type,
                                                 volume_name,
                                                 file_content,
                                                 settings,
                                                 self.user.nick_name,
                                                 mode=mode)
        result = general_message(200,
                                 "success",
                                 "持久化路径添加成功",
                                 bean=data.to_dict())

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