def get_server_groups(slb_id=None, slb_instance_id=None, keyword=None, page_num=None, page_size=None, operator=None): ''' 获取SLB服务器组列表 ''' if not slb_id and not slb_instance_id: raise errors.CommonError('缺少SLB ID或SLB实例ID') base_query = SlbServerGroupModel.objects if slb_id: base_query = base_query.filter(slb_id=slb_id) else: base_query = base_query.filter(slb__instance_id=slb_instance_id) if keyword: base_query = base_query.filter(Q(name__icontains=keyword) | Q(instance_id__icontains=keyword)) 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() data['slb'] = obj.slb.to_dict() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_domain_records(domain_id=None, keyword=None, page_num=None, page_size=None, operator=None): ''' 获取解析记录列表 ''' base_query = DomainRecordModel.objects if domain_id: base_query = base_query.filter(domain_id=domain_id) if keyword: base_query = base_query.filter( Q(fullname__icontains=keyword) | Q(value__icontains=keyword) | Q(instance_id__icontains=keyword)) 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() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_mods(keyword=None, need_permission=False, page_num=None, page_size=None, operator=None): ''' 获取模块列表 ''' base_query = ModModel.objects if keyword: base_query = base_query.filter( Q(name__icontains=keyword) | Q(sign__icontains=keyword)) total = base_query.count() base_query = base_query.order_by('-rank', 'id') objs = base_ctl.query_objs_by_page(base_query, page_num, page_size) data_list = [] for obj in objs: data = obj.to_dict() data['op_permissions'] = permission_ctl.get_permissions( obj.id, PermissionModel.TYP_OP).get('data_list') data['data_permissions'] = permission_ctl.get_permissions( obj.id, PermissionModel.TYP_DATA).get('data_list') data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_services(keyword=None, project_id=None, department_id=None, page_num=None, page_size=None, operator=None): ''' 获取服务列表 ''' base_query = ServiceModel.objects if keyword: base_query = base_query.filter( Q(name__icontains=keyword) | Q(sign__icontains=keyword)) if project_id: base_query = base_query.filter(project_id=project_id) if department_id: batch_ids = DepartmentServiceModel.objects.filter(department_id=department_id)\ .values_list('service_id', flat=True).all() base_query = base_query.filter(id__in=batch_ids) base_query = base_query.select_related('project') 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() data['project'] = obj.project.to_dict() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_topics(rocket_id=None, rocket_instance_id=None, keyword=None, page_num=None, page_size=None, operator=None): ''' 获取Topic列表 ''' if not rocket_id and not rocket_instance_id: raise errors.CommonError('缺少Rocket ID或Rocket实例ID') base_query = RocketTopicModel.objects if rocket_id: base_query = base_query.filter(rocket_id=rocket_id) else: base_query = base_query.filter(rocket__instance_id=rocket_instance_id) if keyword: base_query = base_query.filter(name__icontains=keyword) 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() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_asset_obj_services(asset_obj_id, typ, page_num=None, page_size=None, operator=None): ''' 获取资产实例服务列表 ''' query = { 'asset_obj_id': asset_obj_id, 'typ': typ, } 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() data['service'] = obj.service.to_dict() data['environment'] = obj.environment.to_dict() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_accounts(mongo_id, keyword=None, page_num=None, page_size=None, operator=None): ''' 获取Account列表 ''' base_query = MongoAccountModel.objects.filter(mongo_id=mongo_id) if keyword: base_query = base_query.filter(username__icontains=keyword) total = base_query.count() objs = base_ctl.query_objs_by_page(base_query, page_num, page_size) has_password = False if operator and user_ctl.has_permission( operator.id, MongoAccountModel.PASSWORD_PERMISSION): has_password = True data_list = [] for obj in objs: data = obj.to_dict(has_password=has_password) data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_permissions(mod_id=None, typ=None, keyword=None, page_num=None, page_size=None, operator=None): ''' 获取权限列表 ''' base_query = PermissionModel.objects if mod_id: base_query = base_query.filter(mod_id=mod_id) if typ: base_query = base_query.filter(typ=typ) if keyword: base_query = base_query.filter( Q(name__icontains=keyword) | Q(sign__icontains=keyword)) total = base_query.count() objs = base_ctl.query_objs_by_page(base_query, page_num, page_size) data_list = [obj.to_dict() for obj in objs] data = { 'total': total, 'data_list': data_list, } 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_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_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 get_aliyun_keys(page_num, page_size, operator): ''' 获取阿里云key列表 ''' base_query = AliyunKeyModel.objects 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() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_jenkins_servers(page_num=None, page_size=None, operator=None): ''' 获取Jenkins服务列表 ''' base_query = JenkinsServerModel.objects 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() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_roles(keyword=None, page_num=None, page_size=None, operator=None): ''' 获取角色列表 ''' base_query = RoleModel.objects if keyword: base_query = base_query.filter( Q(name__icontains=keyword) | Q(sign__icontains=keyword)) total = base_query.count() objs = base_ctl.query_objs_by_page(base_query, page_num, page_size) data_list = [obj.to_dict() for obj in objs] data = { 'total': total, 'data_list': data_list, } return data
def get_berry_types(parent_id=None, page_num=None, page_size=None, operator=None): ''' 获取任务类型列表 ''' base_query = BerryTypeModel.objects.filter(parent_id=parent_id) total = base_query.count() objs = base_ctl.query_objs_by_page(base_query, page_num, page_size) data_list = [obj.to_dict() for obj in objs] data = { 'total': total, 'data_list': data_list, } return data
def get_assets(page_num, page_size, operator=None): ''' 获取资产模块列表 ''' base_query = AssetModel.objects total = base_query.count() base_query = base_query.order_by('-rank') objs = base_ctl.query_objs_by_page(base_query, page_num, page_size) data_list = [] for obj in objs: data = obj.to_dict() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_account_databases(obj_id, page_num=None, page_size=None, operator=None): ''' 获取账号关联Database列表 ''' base_query = RdsDatabaseAccountModel.objects.filter(account_id=obj_id) 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() data['database'] = obj.database.to_dict() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_zones(region_id, page_num=None, page_size=None, operator=None): ''' 获取可用区列表 ''' base_query = ZoneModel.objects base_query = base_query.filter(region_id=region_id) 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() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_environments(page_num=None, page_size=None, operator=None): ''' 获取环境列表 ''' base_query = EnvironmentModel.objects # TODO: 环境列表最后要加权限控制,并不是每个人都可以看到所有环境 # 最简单的控制就是区分线上环境和其它测试类环境 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() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_service_environments(obj_id, page_num=None, page_size=None, operator=None): ''' 获取服务关联环境列表 ''' environment_ids = ServiceEnvironmentModel.objects.filter(service_id=obj_id)\ .values_list('environment_id', flat=True).all() base_query = EnvironmentModel.objects.filter(id__in=environment_ids) 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() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_service_departments(obj_id, page_num=None, page_size=None, operator=None): ''' 获取服务关联部门列表 ''' base_query = DepartmentServiceModel.objects.filter(service_id=obj_id)\ .filter(department__is_deleted=False).select_related('department') 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() data['department'] = obj.department.to_dict() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_regions(status=None, page_num=None, page_size=None, operator=None): ''' 获取地域列表 ''' base_query = RegionModel.objects if status: base_query = base_query.filter(status=status) 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() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_users(keyword=None, page_num=None, page_size=None, operator=None): ''' 获取用户列表 ''' base_query = UserModel.objects if keyword: base_query = base_query.filter( Q(username__icontains=keyword) | Q(name__icontains=keyword)) # 排除超级管理员用户 base_query = base_query.exclude(username='******') total = base_query.count() objs = base_ctl.query_objs_by_page(base_query, page_num, page_size) data_list = [obj.to_dict() for obj in objs] data = { 'total': total, 'data_list': data_list, } return data
def get_role_permissions(obj_id, page_num=None, page_size=None, operator=None): ''' 获取角色权限列表 ''' base_query = RolePermissionModel.objects.filter(role_id=obj_id)\ .filter(user__is_deleted=False).select_related('permission') 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() data['permission'] = obj.permission.to_dict() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_role_mods(obj_id, page_num=None, page_size=None, operator=None): ''' 获取角色模块列表 ''' base_query = RoleModModel.objects.filter(role_id=obj_id)\ .filter(user__is_deleted=False) 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() data['mod'] = obj.mod.to_dict() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_rockets(keyword=None, page_num=None, page_size=None, operator=None): ''' 获取Rocket列表 ''' base_query = RocketModel.objects if keyword: base_query = base_query.filter( Q(name__icontains=keyword) | Q(instance_id__icontains=keyword)) 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() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_mods(keyword=None, page_num=None, page_size=None, operator=None): ''' 获取模块列表 ''' base_query = ModModel.objects if keyword: base_query = base_query.filter( Q(name__icontains=keyword) | Q(sign__icontains=keyword)) total = base_query.count() base_query = base_query.order_by('-rank', 'id') objs = base_ctl.query_objs_by_page(base_query, page_num, page_size) data_list = [] for obj in objs: data = obj.to_dict() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_service_users(obj_id, typ=None, page_num=None, page_size=None, operator=None): ''' 获取服务用户列表 ''' base_query = ServiceUserModel.objects.filter(service_id=obj_id)\ .filter(user__is_deleted=False).select_related('user') if typ: base_query = base_query.filter(typ=typ) 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() data['user'] = obj.user.to_dict() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_frames(language_id=None, page_num=None, page_size=None, operator=None): ''' 获取框架列表 ''' base_query = FrameModel.objects if language_id: base_query = base_query.filter(language_id=language_id) 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() if not language_id: data['language'] = obj.language.to_dict() data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data
def get_jenkins_servers(page_num=None, page_size=None, operator=None): ''' 获取Jenkins服务列表 ''' base_query = JenkinsServerModel.objects total = base_query.count() objs = base_ctl.query_objs_by_page(base_query, page_num, page_size) has_password = False if operator and user_ctl.has_permission( operator.id, JenkinsServerModel.PASSWORD_PERMISSION): has_password = True data_list = [] for obj in objs: data = obj.to_dict(has_password=has_password) data_list.append(data) data = { 'total': total, 'data_list': data_list, } return data