Пример #1
0
def list_server(req, db, context):
    if is_sys_admin_or_dept_admin(context):
        # 管理员可以看到部门下面所有机器
        servers = db.query(Server).filter(Server.dept.in_(context['dept_ids']),
                                          Server.deleted==0).all()
    else:
        # 普通用户只能看到属于自己的机器
        servers = db.query(Server).filter(Server.owner==context['user'].id,
                                          Server.deleted==0).all()
    return obj_array_to_json(servers, 'servers')
Пример #2
0
def list_volume(req, db, context):
    if is_sys_admin_or_dept_admin(context):
        # 管理员可以看到部门下面所有云硬盘
        volumes = db.query(Volume).filter(Volume.dept.in_(context['dept_ids']),
                                          Volume.deleted==0).all()
    else:
        # 普通用户只能看到属于自己的云硬盘
        volumes = db.query(Volume).filter(Volume.owner==context['user'].id,
                                          Volume.deleted==0).all()
    return obj_array_to_json(volumes, 'volumes')
Пример #3
0
def list_snapshot(req, db, context):
    if is_sys_admin_or_dept_admin(context):
        # 管理员可以看到部门下面所有云硬盘
        snapshots = db.query(Snapshot).filter(Snapshot.dept.in_(context['dept_ids']),
                                          Snapshot.deleted==0).all()
    else:
        # 普通用户只能看到属于自己的云硬盘
        snapshots = db.query(Snapshot).filter(Snapshot.owner==context['user'].id,
                                          Snapshot.deleted==0).all()
    return obj_array_to_json(snapshots, 'snapshots')
Пример #4
0
def list_volume(req, db, context):
    if is_sys_admin_or_dept_admin(context):
        # 管理员可以看到部门下面所有云硬盘
        volumes = db.query(Volume).filter(Volume.dept.in_(context['dept_ids']),
                                          Volume.deleted == 0).all()
    else:
        # 普通用户只能看到属于自己的云硬盘
        volumes = db.query(Volume).filter(Volume.owner == context['user'].id,
                                          Volume.deleted == 0).all()
    return obj_array_to_json(volumes, 'volumes')
Пример #5
0
def list_server(req, db, context):
    if is_sys_admin_or_dept_admin(context):
        # 管理员可以看到部门下面所有机器
        servers = db.query(Server).filter(Server.dept.in_(context['dept_ids']),
                                          Server.deleted == 0).all()
    else:
        # 普通用户只能看到属于自己的机器
        servers = db.query(Server).filter(Server.owner == context['user'].id,
                                          Server.deleted == 0).all()
    return obj_array_to_json(servers, 'servers')
Пример #6
0
def list_snapshot(req, db, context):
    if is_sys_admin_or_dept_admin(context):
        # 管理员可以看到部门下面所有云硬盘
        snapshots = db.query(Snapshot).filter(
            Snapshot.dept.in_(context['dept_ids']),
            Snapshot.deleted == 0).all()
    else:
        # 普通用户只能看到属于自己的云硬盘
        snapshots = db.query(Snapshot).filter(
            Snapshot.owner == context['user'].id, Snapshot.deleted == 0).all()
    return obj_array_to_json(snapshots, 'snapshots')
Пример #7
0
def find_volume(db, context, volume_id):
    if is_sys_admin_or_dept_admin(context):
        # 管理员可以看到部门下面所有机器
        volume = db.query(Volume).filter(Volume.dept.in_(context['dept_ids']),
                                         Volume.deleted==0,
                                         Volume.id==volume_id).first()
    else:
        # 普通用户只能看到属于自己的机器
        volume = db.query(Volume).filter(Volume.owner==context['user'].id,
                                         Volume.deleted==0,
                                         Volume.id==volume_id).first()
    if volume == None:
        raise VolumeNotFoundError(volume_id)

    return volume
Пример #8
0
def find_snapshot(db, context, snapshot_id):
    if is_sys_admin_or_dept_admin(context):
        # 管理员可以看到部门下面所有机器
        snapshot = db.query(Snapshot).filter(Snapshot.dept.in_(context['dept_ids']),
                                         Snapshot.deleted==0,
                                         Snapshot.id==snapshot_id).first()
    else:
        # 普通用户只能看到属于自己的机器
        snapshot = db.query(Snapshot).filter(Snapshot.owner==context['user'].id,
                                         Snapshot.deleted==0,
                                         Snapshot.id==snapshot_id).first()
    if snapshot == None:
        raise SnapshotNotFoundError(snapshot_id)

    return snapshot
Пример #9
0
def find_volume(db, context, volume_id):
    if is_sys_admin_or_dept_admin(context):
        # 管理员可以看到部门下面所有机器
        volume = db.query(Volume).filter(Volume.dept.in_(context['dept_ids']),
                                         Volume.deleted == 0,
                                         Volume.id == volume_id).first()
    else:
        # 普通用户只能看到属于自己的机器
        volume = db.query(Volume).filter(Volume.owner == context['user'].id,
                                         Volume.deleted == 0,
                                         Volume.id == volume_id).first()
    if volume == None:
        raise VolumeNotFoundError(volume_id)

    return volume
Пример #10
0
def find_server(db, context, server_id):
    if is_sys_admin_or_dept_admin(context):
        # 管理员可以看到部门下面所有机器
        server = db.query(Server).filter(Server.dept.in_(context['dept_ids']),
                                         Server.deleted==0,
                                         Server.id==server_id).first()
    else:
        # 普通用户只能看到属于自己的机器
        server = db.query(Server).filter(Server.owner==context['user'].id,
                                         Server.deleted==0,
                                         Server.id==server_id).first()
    if server == None:
        raise ServerNotFoundError

    return server
Пример #11
0
def find_server(db, context, server_id):
    if is_sys_admin_or_dept_admin(context):
        # 管理员可以看到部门下面所有机器
        server = db.query(Server).filter(Server.dept.in_(context['dept_ids']),
                                         Server.deleted == 0,
                                         Server.id == server_id).first()
    else:
        # 普通用户只能看到属于自己的机器
        server = db.query(Server).filter(Server.owner == context['user'].id,
                                         Server.deleted == 0,
                                         Server.id == server_id).first()
    if server == None:
        raise ServerNotFoundError

    return server
Пример #12
0
def find_snapshot(db, context, snapshot_id):
    if is_sys_admin_or_dept_admin(context):
        # 管理员可以看到部门下面所有机器
        snapshot = db.query(Snapshot).filter(
            Snapshot.dept.in_(context['dept_ids']), Snapshot.deleted == 0,
            Snapshot.id == snapshot_id).first()
    else:
        # 普通用户只能看到属于自己的机器
        snapshot = db.query(Snapshot).filter(
            Snapshot.owner == context['user'].id, Snapshot.deleted == 0,
            Snapshot.id == snapshot_id).first()
    if snapshot == None:
        raise SnapshotNotFoundError(snapshot_id)

    return snapshot