Beispiel #1
0
 def update_group(self,
                  tenant,
                  region_name,
                  app_id,
                  app_name,
                  note="",
                  username=None):
     # check app id
     if not app_id or not str.isdigit(app_id) or int(app_id) < 0:
         raise ServiceHandleException(msg="app id illegal",
                                      msg_show="应用ID不合法")
     # check username
     if username:
         try:
             data = {"username": username}
             user_repo.get_user_by_username(username)
             group_repo.update(app_id, **data)
             return
         except ErrUserNotFound:
             raise ServiceHandleException(msg="user not exists",
                                          msg_show="用户不存在,请选择其他应用负责人",
                                          status_code=404)
     # check app name
     self.check_app_name(tenant, region_name, app_name)
     group = group_repo.get_group_by_unique_key(tenant.tenant_id,
                                                region_name, app_name)
     if group and int(group.ID) != int(app_id):
         raise ServiceHandleException(msg="app already exists",
                                      msg_show="应用名{0}已存在".format(app_name))
     data = {
         "note": note,
     }
     if app_name:
         data["group_name"] = app_name
     group_repo.update(app_id, **data)
Beispiel #2
0
 def add_group(self, tenant, region_name, group_name):
     if not group_name:
         return 400, u"组名不能为空", None
     group = group_repo.get_group_by_unique_key(tenant.tenant_id, region_name, group_name)
     if group:
         return 409, u"组名{0}已存在".format(group_name), None
     new_group = group_repo.add_group(tenant.tenant_id, region_name, group_name)
     return 200, u"添加成功", new_group
Beispiel #3
0
 def add_group(self, tenant, region_name, group_name, group_note=""):
     self.check_group_name(tenant, region_name, group_name)
     group = group_repo.get_group_by_unique_key(tenant.tenant_id,
                                                region_name, group_name)
     if group:
         raise ServiceHandleException(
             msg="app already exists",
             msg_show="应用名{0}已存在".format(group_name))
     return group_repo.add_group(tenant.tenant_id, region_name, group_name,
                                 group_note)
Beispiel #4
0
 def update_group(self, tenant, region_name, group_id, group_name):
     if not group_id or group_id < 0:
         return 400, u"组ID不合法", None
     if not group_name:
         return 400, u"组名不能为空", None
     group = group_repo.get_group_by_unique_key(tenant.tenant_id, region_name, group_name)
     if group:
         return 403, u"组名{0}已存在".format(group_name), None
     group_repo.update_group_name(group_id, group_name)
     return 200, u"修改成功", group_name
Beispiel #5
0
 def __add_group(self, tenant, region_name, app_name, note="", username=""):
     self.check_app_name(tenant, region_name, app_name)
     if group_repo.get_group_by_unique_key(tenant.tenant_id, region_name,
                                           app_name):
         raise ServiceHandleException(msg="app name exist",
                                      msg_show="应用名称已存在")
     return group_repo.add_group(tenant.tenant_id,
                                 region_name,
                                 app_name,
                                 group_note=note,
                                 username=username)
 def check_app_name(tenant, region_name, group_name, app: ServiceGroup = None):
     if not group_name:
         raise ServiceHandleException(msg="app name required", msg_show="应用名不能为空")
     if len(group_name) > 128:
         raise ServiceHandleException(msg="app_name illegal", msg_show="应用名称最多支持128个字符")
     r = re.compile('^[a-zA-Z0-9_\\.\\-\\u4e00-\\u9fa5]+$')
     if not r.match(group_name):
         raise ServiceHandleException(msg="app_name illegal", msg_show="应用名称只支持中英文, 数字, 下划线, 中划线和点")
     exist_app = group_repo.get_group_by_unique_key(tenant.tenant_id, region_name, group_name)
     if not exist_app:
         return
     if not app or exist_app.app_id != app.app_id:
         raise ServiceHandleException(msg="app name exist", msg_show="应用名称已存在")
Beispiel #7
0
 def update_group(self,
                  tenant,
                  region_name,
                  group_id,
                  group_name,
                  group_note=""):
     if not group_id or group_id < 0:
         raise ServiceHandleException(msg="app id illegal",
                                      msg_show="应用ID不合法")
     self.check_group_name(tenant, region_name, group_name)
     group = group_repo.get_group_by_unique_key(tenant.tenant_id,
                                                region_name, group_name)
     if group and group.ID != group_id:
         raise ServiceHandleException(
             msg="app already exists",
             msg_show="应用名{0}已存在".format(group_name))
     group_repo.update_group_name(group_id, group_name, group_note)
Beispiel #8
0
    def update_group(self, tenant, region_name, app_id, app_name, note="", username=None, overrides="", version="", revision=0):
        # check app id
        if not app_id or not str.isdigit(app_id) or int(app_id) < 0:
            raise ServiceHandleException(msg="app id illegal", msg_show="应用ID不合法")
        # check username
        if username:
            try:
                data = {"username": username}
                user_repo.get_user_by_username(username)
                group_repo.update(app_id, **data)
                return
            except ErrUserNotFound:
                raise ServiceHandleException(msg="user not exists", msg_show="用户不存在,请选择其他应用负责人", status_code=404)
        # check app name
        if app_name:
            self.check_app_name(tenant, region_name, app_name)
        if overrides:
            overrides = self._parse_overrides(overrides)

        group = group_repo.get_group_by_unique_key(tenant.tenant_id, region_name, app_name)
        if group and int(group.ID) != int(app_id):
            raise ServiceHandleException(msg="app already exists", msg_show="应用名{0}已存在".format(app_name))
        data = {
            "note": note,
        }
        if app_name:
            data["group_name"] = app_name
        if version:
            data["version"] = version

        group_repo.update(app_id, **data)

        region_app_id = region_app_repo.get_region_app_id(region_name, app_id)
        region_api.update_app(region_name, tenant.tenant_name, region_app_id, {
            "overrides": overrides,
            "version": version,
            "revision": revision,
        })