def get_environment(obj_id, operator=None): ''' 获取环境信息 ''' obj = base_ctl.get_obj(EnvironmentModel, obj_id) data = obj.to_dict() return data
def get_asset(obj_id, operator=None): ''' 获取资产详情 ''' obj = base_ctl.get_obj(AssetModel, obj_id) data = obj.to_dict() return data
def apply_task(berry_id): try: berry_obj = base_ctl.get_obj(BerryModel, berry_id) # 一进来就更改任务状态到进行中 data = { 'status': BerryModel.ST_RUNNING, } base_ctl.update_obj(BerryModel, berry_id, data) sync_list = [ 'sync_ecs', 'sync_slb', 'sync_rds', 'sync_redis', 'sync_mongo', 'sync_rocket', 'sync_domain', 'sync_gitlab', 'sync_jenkins', 'sync_ldap_user' ] # 如果是同步任务,则走此处理方式 if berry_obj.typ.sign in sync_list: sync_task_route(berry_obj) except Exception as e: # 如果出现异常,则更改任务状态,并且记录错误日志 log = traceback.format_exc() dt_end = time_utils.now() duration = dt_end - berry_obj.dt_start duration = int(duration.total_seconds()) data = { 'status': BerryModel.ST_FAILURE, 'error_log': log, 'dt_end': dt_end, 'duration': duration, } base_ctl.update_obj(BerryModel, berry_id, data)
def get_jenkins_server(obj_id, operator=None): ''' 获取Jenkins服务 ''' obj = base_ctl.get_obj(JenkinsServerModel, obj_id) data = obj.to_dict() return data
def get_mod(obj_id, operator=None): ''' 获取模块 ''' obj = base_ctl.get_obj(ModModel, obj_id) data = obj.to_dict() return data
def get_permission(obj_id, operator=None): ''' 获取权限信息 ''' obj = base_ctl.get_obj(PermissionModel, obj_id) data = obj.to_dict() return data
def get_ecs(obj_id, operator=None): ''' 获取ECS详情 ''' obj = base_ctl.get_obj(EcsModel, obj_id) data = obj.to_dict() return data
def get_department(obj_id, operator=None): ''' 获取部门信息 ''' obj = base_ctl.get_obj(DepartmentModel, obj_id) data = obj.to_dict() return data
def update_user(obj_id, name=None, password=None, phone=None, email=None, operator=None): ''' 编辑用户 ''' obj = base_ctl.get_obj(UserModel, obj_id) if not obj: raise errors.CommonError('用户不存在') if is_admin(obj): raise errors.CommonError('超级管理员用户不允许编辑') data = { 'name': name, 'phone': phone, 'email': email, } with transaction.atomic(): user_obj = base_ctl.update_obj(UserModel, obj_id, data, operator) if password: user_obj.set_password(password) data = user_obj.to_dict() return data
def get_user(obj_id, operator=None): ''' 获取用户信息 ''' obj = base_ctl.get_obj(UserModel, obj_id) data = obj.to_dict() return data
def get_slb(obj_id, operator=None): ''' 获取SLB详情 ''' obj = base_ctl.get_obj(SlbModel, obj_id) data = obj.to_dict() return data
def get_service_rocket_topics(service_id, environment_id, page_num=None, page_size=None): ''' 获取服务关联Rocket Topic列表 ''' query = { 'service_id': service_id, 'environment_id': environment_id, 'typ': ServiceAssetObjModel.TYP_ROCKET_TOPIC, } base_query = ServiceAssetObjModel.objects.filter(**query) total = base_query.count() objs = base_ctl.query_objs_by_page(base_query, page_num, page_size) data_list = [] for obj in objs: data = obj.to_dict() rocket_obj = base_ctl.get_obj(RocketTopicModel, obj.asset_obj_id) data['rocket_topic'] = rocket_obj.to_dict(is_base=False) data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_aliyun_key(obj_id, operator): ''' 获取阿里云key ''' obj = base_ctl.get_obj(AliyunKeyModel, obj_id) data = obj.to_dict() return data
def get_domain(obj_id, operator=None): ''' 获取域名详情 ''' obj = base_ctl.get_obj(DomainModel, obj_id) data = obj.to_dict() return data
def get_service_ecses(service_id, environment_id, page_num=None, page_size=None): ''' 获取服务关联ECS列表 ''' query = { 'service_id': service_id, 'environment_id': environment_id, 'typ': ServiceAssetObjModel.TYP_ECS, } base_query = ServiceAssetObjModel.objects.filter(**query) total = base_query.count() objs = base_ctl.query_objs_by_page(base_query, page_num, page_size) data_list = [] for obj in objs: data = obj.to_dict() ecs_obj = base_ctl.get_obj(EcsModel, obj.asset_obj_id) data['ecs'] = ecs_obj.to_dict() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_berry_type(obj_id, operator=None): ''' 获取任务类型信息 ''' obj = base_ctl.get_obj(BerryTypeModel, obj_id) data = obj.to_dict() return data
def get_mongo(obj_id, operator=None): ''' 获取Mongo详情 ''' obj = base_ctl.get_obj(MongoModel, obj_id) data = obj.to_dict() return data
def get_rds(obj_id, operator=None): ''' 获取RDS详情 ''' obj = base_ctl.get_obj(RdsModel, obj_id) data = obj.to_dict() return data
def get_role(obj_id, operator=None): ''' 获取角色信息 ''' obj = base_ctl.get_obj(RoleModel, obj_id) data = obj.to_dict() return data
def get_region(obj_id, operator=None): ''' 获取地域详情 ''' obj = base_ctl.get_obj(RegionModel, obj_id) data = obj.to_dict() return data
def get_zone(obj_id, operator=None): ''' 获取可用区详情 ''' obj = base_ctl.get_obj(ZoneModel, obj_id) data = obj.to_dict() return data
def get_rocket(obj_id, operator=None): ''' 获取Rocket详情 ''' obj = base_ctl.get_obj(RocketModel, obj_id) data = obj.to_dict() return data
def set_aliyun_key_status(obj_id, status, operator): ''' 设置阿里云key状态 ''' if not AliyunKeyModel.check_choices('status', status): raise errors.CommonError('状态值不正确') if status != AliyunKeyModel.ST_ENABLE: raise errors.CommonError('暂时只支持启用操作') obj = base_ctl.get_obj(AliyunKeyModel, obj_id) if obj.status == status: return with transaction.atomic(): # 先禁用所有启用状态 existed_ids = AliyunKeyModel.objects.filter(status=AliyunKeyModel.ST_ENABLE)\ .values_list('id', flat=True).all() data = { 'status': AliyunKeyModel.ST_DISABLE, } base_ctl.update_objs(AliyunKeyModel, existed_ids, data) # 再启用 data = { 'status': status, } obj = base_ctl.update_obj(AliyunKeyModel, obj_id, data, operator) data = obj.to_dict() return data
def get_service_server_groups(service_id, environment_id, page_num=None, page_size=None): ''' 获取服务关联SLB服务器组列表 ''' query = { 'service_id': service_id, 'environment_id': environment_id, 'typ': ServiceAssetObjModel.TYP_SLB_SERVER_GROUP, } base_query = ServiceAssetObjModel.objects.filter(**query) total = base_query.count() objs = base_ctl.query_objs_by_page(base_query, page_num, page_size) data_list = [] for obj in objs: data = obj.to_dict() server_group_obj = base_ctl.get_obj(SlbServerGroupModel, obj.asset_obj_id) data['server_group'] = server_group_obj.to_dict(is_base=False) data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def delete_aliyun_key(obj_id, operator): ''' 删除阿里云key ''' obj = base_ctl.get_obj(AliyunKeyModel, obj_id) if obj.status == AliyunKeyModel.ST_ENABLE: raise errors.CommonError('不允许删除启用状态的Key') base_ctl.delete_obj(AliyunKeyModel, obj_id, operator)
def get_group(obj_id, operator=None): ''' 获取Group详情 ''' obj = base_ctl.get_obj(RocketGroupModel, obj_id) data = obj.to_dict() data['rocket'] = obj.rocket.to_dict() return data
def get_account(obj_id, operator=None): ''' 获取Account详情 ''' obj = base_ctl.get_obj(MongoAccountModel, obj_id) data = obj.to_dict() data['mongo'] = obj.mongo.to_dict() return data
def get_account(obj_id, operator=None): ''' 获取Account详情 ''' obj = base_ctl.get_obj(RdsAccountModel, obj_id) data = obj.to_dict() data['rds'] = obj.rds.to_dict() return data
def get_frame(obj_id, operator=None): ''' 获取框架信息 ''' obj = base_ctl.get_obj(FrameModel, obj_id) data = obj.to_dict() data['language'] = obj.language.to_dict() return data
def get_topic(obj_id, operator=None): ''' 获取Topic详情 ''' obj = base_ctl.get_obj(RocketTopicModel, obj_id) data = obj.to_dict() data['rocket'] = obj.rocket.to_dict() return data