def gpu_umount(args): api = GPUAPI() vm_api = VmAPI() gpu = api.get_gpu_by_id(args['gpu_id']) vm = vm_api.get_vm_by_uuid(gpu.vm) if not vm.can_operate_by(args['req_user']): return {'res': False, 'err': ERR_AUTH_PERM} if vm.is_running(): return {'res': False, 'err': ERR_UMOUNT_RUNNING} res = api.umount(args['gpu_id']) if res: return {'res': True} return {'res': False, 'err': ERR_GPU_UMOUNT}
def gpu_mount(args): api = GPUAPI() vm_api = VmAPI() vm = vm_api.get_vm_by_uuid(args['vm_id']) if not vm.can_operate_by(args['req_user']): return {'res': False, 'err': ERR_AUTH_PERM} if vm.is_running(): return {'res': False, 'err': ERR_MOUNT_RUNNING} gpu = api.get_gpu_by_id(args['gpu_id']) if vm.group_id != gpu.group_id: return {'res': False, 'err': ERR_GPU_MOUNT} res = api.mount(args['vm_id'], args['gpu_id']) if res: return {'res': True} return {'res': False, 'err': ERR_GPU_MOUNT}
def get_gpu(args): api = GPUAPI() gpu = api.get_gpu_by_id(args['gpu_id']) if gpu.managed_by(args['req_user']): return {'res': True, 'info':{ 'id': gpu.id, 'host_ipv4': gpu.host_ipv4, 'host_id': gpu.host_id, 'address': gpu.address, 'vm': gpu.vm, 'attach_time': gpu.attach_time, 'enable': gpu.enable, 'remarks': gpu.remarks }} else: return {'res': False, 'err': ERR_AUTH_PERM}