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')
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')
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')
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')
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')
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')
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
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
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
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
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
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