package org.ovirt.engine.api.restapi.resource;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response;
import org.ovirt.engine.api.model.Session;
import org.ovirt.engine.api.model.Sessions;
import org.ovirt.engine.api.resource.VmSessionResource;
import org.ovirt.engine.api.resource.VmSessionsResource;
public class BackendVmSessionResource extends AbstractBackendResource<Session, Object> implements VmSessionResource {
private VmSessionsResource parent;
private String id;
public BackendVmSessionResource(VmSessionsResource parent, String id) {
super(Session.class, Object.class);
this.parent = parent;
this.id = id;
}
@Override
public Session get() {
// Get all sessions and search for the session with this ID. Must be done this way because
// there's no way to get session by ID from the engine.
Sessions sessions = parent.list();
if (sessions.isSetSessions()) {
for (Session session : sessions.getSessions()) {
if (session.getId().equals(id)) {
return session;
}
}
}
throw new WebApplicationException(Response.Status.NOT_FOUND); // shouldn't happen.
}
}