Skip to content

Commit

Permalink
restapi: fix single GET disksnapshot request
Browse files Browse the repository at this point in the history
Fixing GET api/disks/{diskid}/disksnapshots/{snapshotid}:
1. Return correct snapshot, when more than one snapshot existed
for the disk. Incorrect query (GetAllDiskSnapshots) was used to fetch
a single snapshot. Now using GetDiskSnapshotByImageId instead.
2. Correct href for <parent> and <disk> elements.

Bug-Url: https://bugzilla.redhat.com/2013696
  • Loading branch information
mkemel committed Apr 18, 2022
1 parent 509ecc5 commit ddf4781
Showing 1 changed file with 6 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import org.ovirt.engine.api.resource.DiskSnapshotResource;
import org.ovirt.engine.core.common.action.ActionType;
import org.ovirt.engine.core.common.action.RemoveDiskSnapshotsParameters;
import org.ovirt.engine.core.common.queries.DiskSnapshotsQueryParameters;
import org.ovirt.engine.core.common.queries.IdQueryParameters;
import org.ovirt.engine.core.common.queries.QueryType;
import org.ovirt.engine.core.compat.Guid;

Expand All @@ -26,15 +26,15 @@ protected BackendDiskSnapshotResource(String id, BackendDiskSnapshotsResource pa

@Override
public DiskSnapshot get() {
// TODO: GetAllDiskSnapshots is an incorrect query to use here, it fetches all the disk snapshots, so the one
// returned here is not necessarily the one requested
DiskSnapshot diskSnapshot = performGet(QueryType.GetAllDiskSnapshots,
new DiskSnapshotsQueryParameters(diskId, true, false), Disk.class);
DiskSnapshot diskSnapshot = performGet(QueryType.GetDiskSnapshotByImageId,
new IdQueryParameters(guid), Disk.class);
diskSnapshot.setDisk(new Disk());
diskSnapshot.getDisk().setId(diskId.toString());
diskSnapshot.getDisk().setHref(backendDiskSnapshotsResource.buildParentHref(diskId.toString(), false));
diskSnapshot.setHref(backendDiskSnapshotsResource.buildHref(diskId.toString(), diskSnapshot.getId().toString()));
if (diskSnapshot.getParent() != null) {
diskSnapshot.getParent().setHref(backendDiskSnapshotsResource.buildParentHref(diskId.toString(), true));
diskSnapshot.getParent().setHref(backendDiskSnapshotsResource.buildHref(diskId.toString(),
diskSnapshot.getParent().getId()));
}
return diskSnapshot;
}
Expand Down

0 comments on commit ddf4781

Please sign in to comment.