package org.ovirt.engine.api.restapi.resource; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.Response; import org.ovirt.engine.api.model.Disk; import org.ovirt.engine.api.resource.SnapshotDiskResource; import org.ovirt.engine.api.restapi.types.DiskMapper; import org.ovirt.engine.core.common.action.RemoveDiskSnapshotsParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.storage.DiskImage; public class BackendSnapshotDiskResource extends BackendDiskResource implements SnapshotDiskResource { protected String diskId; protected BackendSnapshotDisksResource collection; public BackendSnapshotDiskResource(String diskId, BackendSnapshotDisksResource collection) { super(diskId); this.diskId = diskId; this.collection = collection; } @Override public Disk get() { for (Disk disk : collection.list().getDisks()) { if (disk.getId().equals(diskId)) { return disk; } } throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND).build()); } @Override public Response remove() { DiskImage diskImage = (DiskImage) DiskMapper.map(get(), null); return performAction(VdcActionType.RemoveDiskSnapshots, new RemoveDiskSnapshotsParameters(diskImage.getImageId())); } }