Ejemplo n.º 1
0
def get_environment(obj_id, operator=None):
    '''
    获取环境信息
    '''
    obj = base_ctl.get_obj(EnvironmentModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 2
0
def get_asset(obj_id, operator=None):
    '''
    获取资产详情
    '''
    obj = base_ctl.get_obj(AssetModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
def get_jenkins_server(obj_id, operator=None):
    '''
    获取Jenkins服务
    '''
    obj = base_ctl.get_obj(JenkinsServerModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 5
0
def get_mod(obj_id, operator=None):
    '''
    获取模块
    '''
    obj = base_ctl.get_obj(ModModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 6
0
def get_permission(obj_id, operator=None):
    '''
    获取权限信息
    '''
    obj = base_ctl.get_obj(PermissionModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 7
0
def get_ecs(obj_id, operator=None):
    '''
    获取ECS详情
    '''
    obj = base_ctl.get_obj(EcsModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 8
0
def get_department(obj_id, operator=None):
    '''
    获取部门信息
    '''
    obj = base_ctl.get_obj(DepartmentModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
def get_user(obj_id, operator=None):
    '''
    获取用户信息
    '''
    obj = base_ctl.get_obj(UserModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 11
0
def get_slb(obj_id, operator=None):
    '''
    获取SLB详情
    '''
    obj = base_ctl.get_obj(SlbModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 12
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
Ejemplo n.º 13
0
def get_aliyun_key(obj_id, operator):
    '''
    获取阿里云key
    '''
    obj = base_ctl.get_obj(AliyunKeyModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 14
0
def get_domain(obj_id, operator=None):
    '''
    获取域名详情
    '''
    obj = base_ctl.get_obj(DomainModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 15
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
Ejemplo n.º 16
0
def get_berry_type(obj_id, operator=None):
    '''
    获取任务类型信息
    '''
    obj = base_ctl.get_obj(BerryTypeModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 17
0
def get_mongo(obj_id, operator=None):
    '''
    获取Mongo详情
    '''
    obj = base_ctl.get_obj(MongoModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 18
0
def get_rds(obj_id, operator=None):
    '''
    获取RDS详情
    '''
    obj = base_ctl.get_obj(RdsModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 19
0
def get_role(obj_id, operator=None):
    '''
    获取角色信息
    '''
    obj = base_ctl.get_obj(RoleModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 20
0
def get_region(obj_id, operator=None):
    '''
    获取地域详情
    '''
    obj = base_ctl.get_obj(RegionModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 21
0
def get_zone(obj_id, operator=None):
    '''
    获取可用区详情
    '''
    obj = base_ctl.get_obj(ZoneModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 22
0
def get_rocket(obj_id, operator=None):
    '''
    获取Rocket详情
    '''
    obj = base_ctl.get_obj(RocketModel, obj_id)
    data = obj.to_dict()
    return data
Ejemplo n.º 23
0
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
Ejemplo n.º 24
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
Ejemplo n.º 25
0
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)
Ejemplo n.º 26
0
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
Ejemplo n.º 27
0
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
Ejemplo n.º 28
0
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
Ejemplo n.º 29
0
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
Ejemplo n.º 30
0
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