Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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
Exemplo n.º 6
0
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
Exemplo n.º 7
0
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
Exemplo n.º 8
0
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
Exemplo n.º 9
0
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
Exemplo n.º 10
0
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
Exemplo n.º 11
0
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
Exemplo n.º 12
0
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
Exemplo n.º 13
0
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
Exemplo n.º 14
0
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
Exemplo n.º 15
0
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
Exemplo n.º 16
0
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
Exemplo n.º 17
0
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
Exemplo n.º 18
0
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
Exemplo n.º 19
0
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
Exemplo n.º 20
0
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
Exemplo n.º 21
0
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
Exemplo n.º 22
0
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
Exemplo n.º 23
0
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
Exemplo n.º 24
0
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
Exemplo n.º 25
0
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
Exemplo n.º 26
0
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
Exemplo n.º 27
0
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
Exemplo n.º 28
0
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
Exemplo n.º 29
0
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
Exemplo n.º 30
0
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