Maor Lipchuk has uploaded a new change for review. Change subject: core, restAPI:(wip) Add action type for previewed snapshot. ......................................................................
core, restAPI:(wip) Add action type for previewed snapshot. Adding an enum which distinguish between UNDO and COMMIT operations on snapshots. Change-Id: If877befc5058c3412ae3d3731d5beacbc09e5c97 Signed-off-by: Maor Lipchuk <[email protected]> Bug-Url: https://bugzilla.redhat.com/1018554 --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RestoreAllSnapshotsParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Snapshot.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotResource.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotResourceTest.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java 6 files changed, 47 insertions(+), 13 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/20/20420/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java index a9c9b76..c6a70f0 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java @@ -30,6 +30,7 @@ import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.ImageStatus; import org.ovirt.engine.core.common.businessentities.Snapshot; +import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotPreviewAction; import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotStatus; import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotType; import org.ovirt.engine.core.common.errors.VdcBLLException; @@ -126,7 +127,19 @@ } private Guid getSnapshotId() { - return getParameters().getDstSnapshotId(); + Guid snapshotId; + Snapshot snapshot = null; + snapshotId = getParameters().getDstSnapshotId(); + if (getParameters().getSnapshotPreviewAction() == SnapshotPreviewAction.UNDO) { + snapshot = getSnapshotDao().get(getVmId(), SnapshotType.PREVIEW); + } else if (getParameters().getSnapshotPreviewAction() == SnapshotPreviewAction.COMMIT) { + snapshot = getSnapshotDao().get(getVmId(), SnapshotType.ACTIVE); + } + + if (snapshot != null) { + snapshotId = snapshot.getId(); + } + return snapshotId; } protected void removeSnapshotsFromDB() { diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RestoreAllSnapshotsParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RestoreAllSnapshotsParameters.java index 6a31665..92e2290 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RestoreAllSnapshotsParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RestoreAllSnapshotsParameters.java @@ -3,16 +3,18 @@ import java.util.List; import org.ovirt.engine.core.common.businessentities.DiskImage; +import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotPreviewAction; import org.ovirt.engine.core.compat.Guid; public class RestoreAllSnapshotsParameters extends TryBackToAllSnapshotsOfVmParameters implements java.io.Serializable { private static final long serialVersionUID = -8756081739745132849L; - public RestoreAllSnapshotsParameters(Guid vmId, Guid dstSnapshotId) { + public RestoreAllSnapshotsParameters(Guid vmId, Guid dstSnapshotId, SnapshotPreviewAction snapshotPreviewAction) { super(vmId, dstSnapshotId); } private List<DiskImage> privateImagesList; + private SnapshotPreviewAction snapshotPreviewAction; public List<DiskImage> getImagesList() { return privateImagesList; @@ -24,4 +26,12 @@ public RestoreAllSnapshotsParameters() { } + + public SnapshotPreviewAction getSnapshotPreviewAction() { + return snapshotPreviewAction; + } + + public void setSnapshotPreviewAction(SnapshotPreviewAction snapshotPreviewAction) { + this.snapshotPreviewAction = snapshotPreviewAction; + } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Snapshot.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Snapshot.java index 56ecadf..2012454 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Snapshot.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/Snapshot.java @@ -259,4 +259,11 @@ STATELESS, PREVIEW } + + public enum SnapshotPreviewAction { + UNDO, + COMMIT, + NONE + } + } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotResource.java index 30f5861..33bc20f 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotResource.java @@ -15,6 +15,8 @@ import org.ovirt.engine.core.common.action.RestoreAllSnapshotsParameters; import org.ovirt.engine.core.common.action.TryBackToAllSnapshotsOfVmParameters; import org.ovirt.engine.core.common.action.VdcActionType; +import org.ovirt.engine.core.common.businessentities.BusinessEntitySnapshot.SnapshotType; +import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotPreviewAction; import org.ovirt.engine.core.compat.Guid; public class BackendSnapshotResource extends AbstractBackendActionableResource<Snapshot, org.ovirt.engine.core.common.businessentities.Snapshot> implements SnapshotResource { @@ -59,7 +61,7 @@ action, PollingType.JOB); if (response.getStatus()==Response.Status.OK.getStatusCode()) { - RestoreAllSnapshotsParameters restoreParams = new RestoreAllSnapshotsParameters(parentId, guid); + RestoreAllSnapshotsParameters restoreParams = new RestoreAllSnapshotsParameters(parentId, guid, SnapshotPreviewAction.COMMIT); restoreParams.setCorrelationId(RESTORE_SNAPSHOT_CORRELATION_ID); Response response2 = doAction(VdcActionType.RestoreAllSnapshots, restoreParams, @@ -73,7 +75,7 @@ @Override public Response undo(Action action) { - RestoreAllSnapshotsParameters restoreParams = new RestoreAllSnapshotsParameters(parentId, guid); + RestoreAllSnapshotsParameters restoreParams = new RestoreAllSnapshotsParameters(parentId, guid, SnapshotPreviewAction.UNDO); Response response = doAction(VdcActionType.RestoreAllSnapshots, restoreParams, action); @@ -82,7 +84,7 @@ @Override public Response commit(Action action) { - RestoreAllSnapshotsParameters restoreParams = new RestoreAllSnapshotsParameters(parentId, guid); + RestoreAllSnapshotsParameters restoreParams = new RestoreAllSnapshotsParameters(parentId, guid, SnapshotPreviewAction.COMMIT); Response response = doAction(VdcActionType.RestoreAllSnapshots, restoreParams, action); diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotResourceTest.java index a123f30..228c6f7 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotResourceTest.java @@ -21,6 +21,7 @@ import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.AsyncTaskStatus; import org.ovirt.engine.core.common.businessentities.AsyncTaskStatusEnum; +import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotPreviewAction; import org.ovirt.engine.core.common.job.JobExecutionStatus; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; @@ -135,8 +136,8 @@ public void testUndo() throws Exception { setUriInfo(setUpActionExpectations(VdcActionType.RestoreAllSnapshots, RestoreAllSnapshotsParameters.class, - new String[] { "VmId", "DstSnapshotId" }, - new Object[] { VM_ID, SNAPSHOT_ID }, + new String[] { "VmId", "DstSnapshotId", "SnaphotPreviewAction" }, + new Object[] { VM_ID, SNAPSHOT_ID, SnapshotPreviewAction.COMMIT }, asList(GUIDS[1]), asList(new AsyncTaskStatus(AsyncTaskStatusEnum.finished)))); Response response = resource.undo(new Action()); @@ -150,8 +151,8 @@ public void testCommit() throws Exception { setUriInfo(setUpActionExpectations(VdcActionType.RestoreAllSnapshots, RestoreAllSnapshotsParameters.class, - new String[] { "VmId", "DstSnapshotId" }, - new Object[] { VM_ID, SNAPSHOT_ID }, + new String[] { "VmId", "DstSnapshotId", "SnaphotPreviewAction" }, + new Object[] { VM_ID, SNAPSHOT_ID, SnapshotPreviewAction.COMMIT }, asList(GUIDS[1]), asList(new AsyncTaskStatus(AsyncTaskStatusEnum.finished)))); Response response = resource.commit(new Action()); @@ -196,8 +197,8 @@ return setUpActionExpectations( VdcActionType.RestoreAllSnapshots, RestoreAllSnapshotsParameters.class, - new String[] { "VmId", "DstSnapshotId" }, - new Object[] { VM_ID, SNAPSHOT_ID }, + new String[] { "VmId", "DstSnapshotId", "SnaphotPreviewAction" }, + new Object[] { VM_ID, SNAPSHOT_ID, SnapshotPreviewAction.COMMIT }, true, true, null, diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java index 24a7d2e..faa1c41 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java @@ -18,6 +18,7 @@ import org.ovirt.engine.core.common.businessentities.MigrationSupport; import org.ovirt.engine.core.common.businessentities.Quota; import org.ovirt.engine.core.common.businessentities.Snapshot; +import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotPreviewAction; import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotStatus; import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotType; import org.ovirt.engine.core.common.businessentities.StoragePool; @@ -383,7 +384,7 @@ Snapshot snapshot = getPreview(); Frontend.RunAction(VdcActionType.RestoreAllSnapshots, - new RestoreAllSnapshotsParameters(vm.getId(), snapshot.getId()), + new RestoreAllSnapshotsParameters(vm.getId(), snapshot.getId(), SnapshotPreviewAction.UNDO), null, null); } @@ -397,7 +398,7 @@ Snapshot snapshot = getInPreview(); Frontend.RunAction(VdcActionType.RestoreAllSnapshots, - new RestoreAllSnapshotsParameters(vm.getId(), snapshot.getId()), + new RestoreAllSnapshotsParameters(vm.getId(), snapshot.getId(), SnapshotPreviewAction.COMMIT), null, null); } -- To view, visit http://gerrit.ovirt.org/20420 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If877befc5058c3412ae3d3731d5beacbc09e5c97 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Maor Lipchuk <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
