def create_asset(name, sign, rank, remark='', operator=None): ''' 创建资产模块 ''' if AssetModel.objects.filter(name=name).exists(): raise errors.CommonError('资产模块名称已经存在') if AssetModel.objects.filter(sign=sign).exists(): raise errors.CommonError('资产模块标识已经存在') data = { 'name': name, 'sign': sign, 'rank': rank, 'remark': remark, } obj = base_ctl.create_obj(AssetModel, data, operator) data = obj.to_dict() return data
def delete_asset(obj_id, operator): ''' 删除资产 ''' obj = base_ctl.get_obj(AssetModel, obj_id) if obj.user_id != operator.id: raise errors.CommonError('数据异常') base_ctl.delete_obj(AssetModel, obj_id, operator)
def update_mod(obj_id, name, sign, rank, operator=None): ''' 更新模块 ''' if ModModel.objects.filter(name=name).exclude(id=obj_id).exists(): raise errors.CommonError('名称已存在') if ModModel.objects.filter(sign=sign).exclude(id=obj_id).exists(): raise errors.CommonError('标识已存在') obj = base_ctl.get_obj(ModModel, obj_id) data = { 'name': name, 'sign': sign, 'rank': rank, } obj = base_ctl.update_obj(ModModel, obj_id, data, operator) data = obj.to_dict() return data
def create_role(name, sign, operator=None): ''' 创建角色 ''' obj = RoleModel.objects.filter(name=name).first() if obj: raise errors.CommonError('角色已存在') obj = RoleModel.objects.filter(sign=sign).first() if obj: raise errors.CommonError('标识已存在') data = { 'name': name, 'sign': sign, } obj = base_ctl.create_obj(RoleModel, data, operator) data = obj.to_dict() return data
def create_gitlab_server(name, host, username, password, token, operator=None): ''' 创建Gitlab服务 ''' if GitlabServerModel.objects.filter(name=name).exists(): raise errors.CommonError('Gitlab已经存在') if GitlabServerModel.objects.filter(host=host).exists(): raise errors.CommonError('Gitlab已经存在') data = { 'name': name, 'host': host, 'username': username, 'password': password, 'token': token, } obj = base_ctl.create_obj(GitlabServerModel, data, operator) data = obj.to_dict() return data
def get_enabled_aliyun_key(): ''' 获取启用状态的阿里云key ''' obj = AliyunKeyModel.objects.filter( status=AliyunKeyModel.ST_ENABLE).first() if not obj: raise errors.CommonError('无可用阿里云key') return obj.key, obj.secret
def delete_stopword(obj_id): ''' 删除停止词 ''' obj = StopwordModel.objects.filter(id=obj_id, is_deleted=False).first() if not obj: raise errors.CommonError('停止词不存在') obj.is_deleted = True obj.save()
def update_stopword(obj_id, status): ''' 编辑停止词 ''' obj = StopwordModel.objects.filter(id=obj_id, is_deleted=False).first() if not obj: raise errors.CommonError('停止词不存在') obj.status = status obj.save()
def login(username, password, is_ldap=False): ''' 登录 ''' base_query = UserModel.objects.filter(username=username) if is_ldap: base_query = base_query.filter(typ=UserModel.TYP_LDAP) obj = base_query.first() if not obj: raise errors.CommonError('用户名或密码错误') if not obj.check_password(password): raise errors.CommonError('用户名或密码错误') if obj.status == UserModel.ST_FORBIDDEN: raise errors.CommonError('用户已被禁止登录') data = { 'token': obj.gen_token(), } return data
def update_department_user(department_id, user_id, typ, operator=None): ''' 编辑部门关联用户 ''' query = { 'user_id': user_id, 'department_id': department_id, } obj = DepartmentUserModel.objects.filter(**query).first() if not obj: raise errors.CommonError('用户未在此部门') if not DepartmentUserModel.check_choices('typ', typ): raise errors.CommonError('类型值不正确') data = { 'typ': typ, } obj = base_ctl.update_obj(DepartmentUserModel, obj.id, data, operator) data = obj.to_dict() return data
def update_comment(obj_id, label): ''' 编辑评价 ''' obj = CommentModel.objects.filter(id=obj_id, is_deleted=False).first() if not obj: raise errors.CommonError('评论不存在') obj.label = label obj.status = CommentModel.ST_CHECKED obj.save()
def wrapper(*args, **kwargs): key = self.gen_key(prifix, params_str, key_str, args, kwargs) try: with self.redis_cli.db.lock( key, timeout=timeout, blocking_timeout=timeout) as lock: result = func(*args, **kwargs) except LockError: raise errors.CommonError('不允许同时操作') return result
def delete_user(obj_id, operator=None): ''' 删除用户 ''' obj = base_ctl.get_obj(UserModel, obj_id) if is_admin(obj): raise errors.CommonError('超级管理员用户不允许删除') with transaction.atomic(): base_ctl.delete_obj(UserModel, obj_id, operator)
def update_service_user(obj_id, user_id, typ, operator=None): ''' 编辑服务关联用户 ''' query = { 'service_id': obj_id, 'user_id': user_id, } obj = ServiceUserModel.objects.filter(**query).first() if not obj: raise errors.CommonError('用户未在此服务中') if not ServiceUserModel.check_choices('typ', typ): raise errors.CommonError('类型值不正确') data = { 'typ': typ, } obj = base_ctl.update_obj(ServiceUserModel, obj.id, data, operator) data = obj.to_dict() return data
def create_stopword(word): ''' 创建停止词 ''' obj = StopwordModel.objects.filter(word=word, is_deleted=False).first() if obj: raise errors.CommonError('此停止词已经存在') data = { 'word': word, } obj = StopwordModel.objects.create(**data)
def create_service_user(obj_id, user_id, typ, operator=None): ''' 创建服务关联用户 ''' query = { 'service_id': obj_id, 'user_id': user_id, } if ServiceUserModel.objects.filter(**query).exists(): raise errors.CommonError('用户已在此服务中') if not ServiceUserModel.check_choices('typ', typ): raise errors.CommonError('类型值不正确') data = { 'service_id': obj_id, 'user_id': user_id, 'typ': typ, } obj = base_ctl.create_obj(ServiceUserModel, data, operator) data = obj.to_dict() return data
def create_department_user(department_id, user_id, typ, operator=None): ''' 创建部门关联用户 ''' query = { 'user_id': user_id, 'department_id': department_id, } if DepartmentUserModel.objects.filter(**query).exists(): raise errors.CommonError('用户已在此部门中') if not DepartmentUserModel.check_choices('typ', typ): raise errors.CommonError('类型值不正确') data = { 'user_id': user_id, 'department_id': department_id, 'typ': typ, } obj = base_ctl.create_obj(DepartmentUserModel, data, operator) data = obj.to_dict() return data
def update_service(obj_id, name, sign, project_id, language_id, frame_id, gitlab_id, remark=None, operator=None): ''' 编辑服务 ''' if ServiceModel.objects.filter(name=name).exclude(id=obj_id).exists(): raise errors.CommonError('服务名称已存在') if ServiceModel.objects.filter(sign=sign).exclude(id=obj_id).exists(): raise errors.CommonError('服务标识已存在') data = { 'name': name, 'sign': sign, 'project_id': project_id, 'language_id': language_id, 'frame_id': frame_id, 'gitlab_id': gitlab_id, 'remark': remark, } obj = base_ctl.update_obj(ServiceModel, obj_id, data, operator) data = obj.to_dict() return data
def create_berry(name, typ, time_mode=BerryModel.TIME_MODE_NOW, dt_start=None, params={}, operator=None): ''' 创建任务 params: dict ''' query = { 'sign': typ, } typ_obj = BerryTypeModel.objects.filter(**query).first() if not typ_obj: raise errors.CommonError('任务类型不存在') if not BerryModel.check_choices('time_mode', time_mode): raise errors.CommonError('时间模式值不正确') now = time_utils.now() countdown = 0 if time_mode == BerryModel.TIME_MODE_CRONTAB: if not dt_start: raise errors.CommonError('定时任务必须传开始时间') if dt_start <= now: raise errors.CommonError('不能指定过去的时间') countdown = dt_start - now countdown = int(countdown.total_seconds()) if countdown < 5 * 60: raise errors.CommonError('定时任务必须指定五分钟以后的时间') else: dt_start = time_utils.now() data = { 'name': name, 'typ_id': typ_obj.id, 'time_mode': time_mode, 'dt_start': dt_start, 'input_params': params, } berry_obj = base_ctl.create_obj(BerryModel, data) result = berry_tasks.apply_task.apply_async(countdown=countdown, args=[berry_obj.id]) data = { 'task_id': result.task_id, } base_ctl.update_obj(BerryModel, berry_obj.id, data)
def delete_user(user_id): ''' 删除用户 ''' user = UserModel.objects.filter(id=user_id, is_deleted=False).first() if not user: raise errors.CommonError('用户不存在') user.is_deleted = True user.save() UserRoleModel.objects.filter(user_id=user_id, is_deleted=False).update(is_deleted=True) return user
def delete_role_permission(role_id, permission_id, operator=None): ''' 删除角色关联权限 ''' query = { 'role_id': role_id, 'permission_id': permission_id, } obj = RolePermissionModel.objects.filter(**query).first() if not obj: raise errors.CommonError('角色未关联此权限') base_ctl.delete_obj(RolePermissionModel, obj.id, operator)
def delete_role_user(role_id, user_id, operator=None): ''' 删除角色关联用户 ''' query = { 'user_id': user_id, 'role_id': role_id, } obj = RoleUserModel.objects.filter(**query).first() if not obj: raise errors.CommonError('用户未关联此角色') base_ctl.delete_obj(RoleUserModel, obj.id, operator)
def set_region_status(obj_id, status, operator): ''' 设置地域状态 ''' if not RegionModel.check_choices('status', status): raise errors.CommonError('状态值不正确') data = { 'status': status, } obj = base_ctl.update_obj(RegionModel, obj_id, data) data = obj.to_dict() return data
def delete_service_user(obj_id, user_id, operator=None): ''' 删除服务关联用户 ''' query = { 'service_id': obj_id, 'user_id': user_id, } obj = ServiceUserModel.objects.filter(**query).first() if not obj: raise errors.CommonError('用户未在此项目中') base_ctl.delete_obj(ServiceUserModel, obj.id, operator)
def delete_service_asset(obj_id, asset_id, operator=None): ''' 删除服务关联资产模块 ''' query = { 'service_id': obj_id, 'asset_id': asset_id, } obj = ServiceAssetModel.objects.filter(**query).first() if not obj: raise errors.CommonError('服务未关联此资产模块') base_ctl.delete_obj(ServiceAssetModel, obj.id, operator)
def delete_department_user(department_id, user_id, operator=None): ''' 删除部门关联用户 ''' query = { 'user_id': user_id, 'department_id': department_id, } obj = DepartmentUserModel.objects.filter(**query).first() if not obj: raise errors.CommonError('用户未在此部门中') base_ctl.delete_obj(DepartmentUserModel, obj.id, operator)
def delete_service_department(obj_id, department_id, operator=None): ''' 删除服务关联部门 ''' query = { 'service_id': obj_id, 'department_id': department_id, } obj = DepartmentServiceModel.objects.filter(**query).first() if not obj: raise errors.CommonError('服务未关联此部门') base_ctl.delete_obj(DepartmentServiceModel, obj.id, operator)
def create_aliyun_key(key, secret, operator): ''' 创建阿里云key ''' if AliyunKeyModel.objects.filter(key=key).exists(): raise errors.CommonError('此Key已经存在') data = { 'key': key, 'secret': secret, } obj = base_ctl.create_obj(AliyunKeyModel, data, operator) data = obj.to_dict() return data
def update_aliyun_key(obj_id, key, secret, operator): ''' 编辑阿里云key ''' if AliyunKeyModel.objects.filter(key=key).exclude(id=obj_id).exists(): raise errors.CommonError('此Key已经存在') data = { 'key': key, 'secret': secret, } obj = base_ctl.update_obj(AliyunKeyModel, obj_id, data, operator) data = obj.to_dict() return data
def update_berry_type(obj_id, name, sign, parent_id, operator=None): ''' 编辑任务类型 ''' query = { 'name': name, } if BerryTypeModel.objects.filter(**query).exclude(id=obj_id).exists(): raise errors.CommonError('任务类型名称已经存在') query = { 'sign': sign, } if BerryTypeModel.objects.filter(**query).exclude(id=obj_id).exists(): raise errors.CommonError('任务类型标识已经存在') data = { 'name': name, 'sign': sign, 'parent_id': parent_id, } obj = base_ctl.update_obj(BerryTypeModel, obj_id, data, operator) data = obj.to_dict() return data