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

Reply via email to