Ori Liel has uploaded a new change for review.

Change subject: restapi: #853739 - Actions Should Return Entities In Body
......................................................................

restapi: #853739 - Actions Should Return Entities In Body

https://bugzilla.redhat.com/853739

Change-Id: Ic636b7205fa7b6fbb5d98efdbcd7976e9beb2187
Signed-off-by: Ori Liel <[email protected]>
---
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendActionableResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendSubResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostNicsResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendResource.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendAttachedStorageDomainResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostNicResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainTemplateResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainVmResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTemplateDiskResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTemplateResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmDiskResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterBrickResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumeResourceTest.java
16 files changed, 188 insertions(+), 70 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/66/9466/1

diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendActionableResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendActionableResource.java
index 0fb1f25..12e9dbb 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendActionableResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendActionableResource.java
@@ -1,6 +1,5 @@
 package org.ovirt.engine.api.restapi.resource;
 
-import java.lang.reflect.Method;
 import java.net.URI;
 
 import javax.ws.rs.WebApplicationException;
@@ -44,7 +43,7 @@
                         Object model = resolveCreated(actionResult, 
entityResolver, null);
                         return actionStatus(status, action, model);
                     }
-                    return actionStatus(status, action);
+                    return actionStatus(status, action, get());
                 } else {
                     return actionAsync(actionResult, action);
                 }
@@ -76,12 +75,12 @@
             if (actionResult.getHasAsyncTasks()) {
                 if (expectBlocking(action)) {
                     CreationStatus status = awaitCompletion(actionResult, 
pollingType);
-                    return actionStatus(status, action);
+                    return actionStatus(status, action, get());
                 } else {
                     return actionAsync(actionResult, action);
                 }
             } else {
-                return actionSuccess(action);
+                return actionSuccess(action, get());
             }
         } catch (Exception e) {
             return handleError(e, action);
@@ -181,37 +180,9 @@
         return Response.ok().entity(action).build();
     }
 
-    private Response actionSuccess(Action action, Object result) {
+    protected Response actionSuccess(Action action, Object result) {
         setActionItem(action, result);
         action.setStatus(StatusUtils.create(CreationStatus.COMPLETE));
-        return Response.ok().entity(action).build();
-    }
-
-    private void setActionItem(Action action, Object result) {
-        String name = result.getClass().getSimpleName().toLowerCase();
-        for (Method m : action.getClass().getMethods()) {
-            if (m.getName().startsWith("set") && m.getName().replace("set", 
"").toLowerCase().equals(name)) {
-                try {
-                    m.invoke(action, result);
-                    break;
-                } catch (Exception e) {
-                    // should not happen
-                    LOG.error("Resource to action asignment failure.", e);
-                    e.printStackTrace();
-                    break;
-                }
-            }
-        }
-    }
-
-    protected Response actionStatus(CreationStatus status, Action action) {
-        action.setStatus(StatusUtils.create(status));
-        return Response.ok().entity(action).build();
-    }
-
-    protected Response actionStatus(CreationStatus status, Action action, 
Object result) {
-        setActionItem(action, result);
-        action.setStatus(StatusUtils.create(status));
         return Response.ok().entity(action).build();
     }
 
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendSubResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendSubResource.java
index 3475be8..de610ca 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendSubResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendSubResource.java
@@ -53,7 +53,7 @@
 
         validateUpdate(incoming, model);
 
-        performAction(update, updateProvider.getParameters(incoming, entity));
+        performAction(update, updateProvider.getParameters(incoming, entity), 
false);
 
         return addLinks(populate(map(getEntity(entityResolver, false)), 
entity));
     }
@@ -67,7 +67,7 @@
 
         validateUpdate(incoming, map(entity));
 
-        performAction(update, updateProvider.getParameters(incoming, entity));
+        performAction(update, updateProvider.getParameters(incoming, entity), 
false);
 
         return addLinks(populate(map(getEntity(entityResolver, false)), 
entity));
     }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostNicsResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostNicsResource.java
index 6fe6486..27f3f3b 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostNicsResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostNicsResource.java
@@ -343,7 +343,7 @@
     public Response setupNetworks(Action action) {
         validateParameters(action, "hostNics");
         SetupNetworksParameters parameters = toParameters(action);
-        return performAction(SetupNetworks, parameters, action);
+        return performAction(SetupNetworks, parameters);
     }
 
     private SetupNetworksParameters toParameters(Action action) {
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendResource.java
index 151b00f..0b7b19b 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendResource.java
@@ -1,9 +1,11 @@
 package org.ovirt.engine.api.restapi.resource;
 
+import java.lang.reflect.Method;
 import java.text.MessageFormat;
 import java.util.HashMap;
 import java.util.List;
 
+import javax.ws.rs.GET;
 import javax.ws.rs.core.Response;
 
 import org.ovirt.engine.api.common.invocation.MetaData;
@@ -130,28 +132,28 @@
         }
     }
 
-    protected Response performAction(VdcActionType task, 
VdcActionParametersBase params) {
-        return performAction(task, params, (Action)null);
-    }
-
-    protected Response performAction(VdcActionType task, 
VdcActionParametersBase params, Action action) {
+    protected Response performAction(VdcActionType task, 
VdcActionParametersBase params, boolean getEntityWhenDone) {
         try {
             if (QueryHelper.hasMatrixParam(getUriInfo(), ASYNC_CONSTRAINT) ||
                     expectNonBlocking()) {
                 getCurrent().get(MetaData.class).set("async", true);
-                return performNonBlockingAction(task, params, action);
+                return performNonBlockingAction(task, params);
             } else {
                 doAction(task, params);
-                if (action!=null) {
-                    
action.setStatus(StatusUtils.create(CreationStatus.COMPLETE));
-                    return Response.ok().entity(action).build();
-                } else {
-                    return Response.ok().build();
+                Action action = new Action();
+                action.setStatus(StatusUtils.create(CreationStatus.COMPLETE));
+                if (getEntityWhenDone) {
+                    setActionItem(action, get());
                 }
+                return Response.ok().entity(action).build();
             }
         } catch (Exception e) {
             return handleError(Response.class, e, false);
         }
+    }
+
+    protected Response performAction(VdcActionType task, 
VdcActionParametersBase params) {
+        return performAction(task, params, false);
     }
 
     protected boolean expectNonBlocking() {
@@ -162,15 +164,13 @@
         }
         return expectNonBlocking;
     }
-    protected Response performNonBlockingAction(VdcActionType task, 
VdcActionParametersBase params, Action action) {
+
+    protected Response performNonBlockingAction(VdcActionType task, 
VdcActionParametersBase params) {
         try {
             doNonBlockingAction(task, params);
-            if (action!=null) {
-                
action.setStatus(StatusUtils.create(CreationStatus.IN_PROGRESS));
-                return 
Response.status(Response.Status.ACCEPTED).entity(action).build();
-            }else {
-                return Response.status(Response.Status.ACCEPTED).build();
-            }
+            Action action = new Action();
+            action.setStatus(StatusUtils.create(CreationStatus.IN_PROGRESS));
+            return 
Response.status(Response.Status.ACCEPTED).entity(action).build();
         } catch (Exception e) {
             return handleError(Response.class, e, false);
         }
@@ -243,7 +243,83 @@
         return (Validator<E>) 
getValidatorLocator().getValidator(validatedClass);
     }
 
+    /**
+     * Runs implementation of the @GET annotated method of this resource 
(get() for single entity resources, and list()
+     * for collection resources).
+     *
+     * @return The result of the @GET annotated method, an entity or list of 
entities.
+     */
+    protected Object get() {
+        try {
+            Method m = resolveGet();
+            return m.invoke(this);
+        } catch (Exception e) {
+            LOG.error("Getting resource after action failed.", e);
+            return null;
+        }
+    }
+
+
+    private Method resolveGet() throws NoSuchMethodException, 
SecurityException {
+        Method methodSignature = findGetSignature(this.getClass());
+        Method methodImplementation =
+                this.getClass().getMethod(methodSignature.getName(), 
methodSignature.getParameterTypes());
+        return methodImplementation;
+    }
+
+    private static Method findGetSignature(Class<?> clazz) {
+        Class<?> currentAncestor = clazz;
+        while (currentAncestor != null) {
+            Class<?>[] interfaces = currentAncestor.getInterfaces();
+            for (Class<?> ifc : interfaces) {
+                Method m = find(ifc);
+                if (m != null) {
+                    return m;
+                }
+            }
+            currentAncestor = currentAncestor.getSuperclass();
+        }
+        return null;
+    }
+
+    private static Method find(Class<?> ifc) {
+        Class<?> currentAncestor = ifc;
+        while (currentAncestor != null) {
+            for (Method m : currentAncestor.getMethods()) {
+                if (m.isAnnotationPresent(GET.class)) {
+                    return m;
+                }
+            }
+            currentAncestor = currentAncestor.getSuperclass();
+        }
+        return null;
+    }
+
     protected <E> void validateEnums(Class<E> validatedClass, E instance) {
         getValidator(validatedClass).validateEnums(instance);
     }
+
+    protected Response actionStatus(CreationStatus status, Action action, 
Object result) {
+        setActionItem(action, result);
+        action.setStatus(StatusUtils.create(status));
+        return Response.ok().entity(action).build();
+    }
+
+    protected void setActionItem(Action action, Object result) {
+        String name = result.getClass().getSimpleName().toLowerCase();
+        for (Method m : action.getClass().getMethods()) {
+            if (m.getName().startsWith("set") && m.getName().replace("set", 
"").toLowerCase().equals(name)) {
+                try {
+                    m.invoke(action, result);
+                    break;
+                } catch (Exception e) {
+                    // should not happen
+                    LOG.error("Resource to action asignment failure.", e);
+                    e.printStackTrace();
+                    break;
+                }
+            }
+        }
+    }
+
 }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendAttachedStorageDomainResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendAttachedStorageDomainResourceTest.java
index 7a469d1..412f578 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendAttachedStorageDomainResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendAttachedStorageDomainResourceTest.java
@@ -79,6 +79,12 @@
 
     @Test
     public void testActivate() throws Exception {
+        setUpGetEntityExpectations(VdcQueryType.GetStorageServerConnectionById,
+                StorageServerConnectionQueryParametersBase.class,
+                new String[] { "ServerConnectionId" },
+                new Object[] { GUIDS[0].toString() },
+                setUpStorageServerConnection());
+        setUpGetEntityExpectations();
         setUriInfo(setUpActionExpectations(VdcActionType.ActivateStorageDomain,
                                            
StorageDomainPoolParametersBase.class,
                                            new String[] { "StorageDomainId", 
"StoragePoolId" },
@@ -120,6 +126,12 @@
 
     @Test
     public void testDeactivate() throws Exception {
+        setUpGetEntityExpectations(VdcQueryType.GetStorageServerConnectionById,
+                StorageServerConnectionQueryParametersBase.class,
+                new String[] { "ServerConnectionId" },
+                new Object[] { GUIDS[0].toString() },
+                setUpStorageServerConnection());
+        setUpGetEntityExpectations();
         
setUriInfo(setUpActionExpectations(VdcActionType.DeactivateStorageDomain,
                                            
StorageDomainPoolParametersBase.class,
                                            new String[] { "StorageDomainId", 
"StoragePoolId" },
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostNicResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostNicResourceTest.java
index ce1b8ba..6b61349 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostNicResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostNicResourceTest.java
@@ -97,12 +97,16 @@
     @Test
     public void testGet() throws Exception {
         setUriInfo(setUpBasicUriExpectations());
-        setGetVdsQueryExpectations(1);
-        setGetNetworksQueryExpectations(1);
-        setUpEntityQueryExpectations();
+        setupGetExpectations();
         control.replay();
 
         hostNicsResource.verifyModelSpecific(resource.get(), NIC_IDX);
+    }
+
+    private void setupGetExpectations() throws Exception {
+        setGetVdsQueryExpectations(1);
+        setGetNetworksQueryExpectations(1);
+        setUpEntityQueryExpectations();
     }
 
     @Test
@@ -110,9 +114,7 @@
         try {
             accepts.add("application/xml; detail=statistics");
             setUriInfo(setUpBasicUriExpectations());
-            setGetVdsQueryExpectations(1);
-            setGetNetworksQueryExpectations(1);
-            setUpEntityQueryExpectations();
+            setupGetExpectations();
             control.replay();
 
             HostNIC nic = resource.get();
@@ -357,6 +359,7 @@
 
 
     protected void testAction(VdcActionType actionType, String networkId, 
String networkName) throws Exception {
+        setupGetExpectations();
         Action action = new Action();
         action.setNetwork(new Network());
         if (networkId != null) {
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostResourceTest.java
index 5f76538..4a65081 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostResourceTest.java
@@ -230,6 +230,7 @@
 
     @Test
     public void testActivate() throws Exception {
+        setUpGetEntityExpectations(1);
         setUriInfo(setUpActionExpectations(VdcActionType.ActivateVds,
                                            VdsActionParameters.class,
                                            new String[] { "VdsId" },
@@ -271,6 +272,7 @@
 
     @Test
     public void testApprove() throws Exception {
+        setUpGetEntityExpectations(1);
         setUriInfo(setUpActionExpectations(VdcActionType.ApproveVds,
                                            ApproveVdsParameters.class,
                                            new String[] { "VdsId" },
@@ -281,7 +283,7 @@
 
     @Test
     public void testApproveChangingCluster() throws Exception {
-        setUpGetEntityExpectations(3);
+        setUpGetEntityExpectations(4);
 
         setUriInfo(setUpActionExpectations(VdcActionType.ChangeVDSCluster,
                                            ChangeVDSClusterParameters.class,
@@ -310,6 +312,7 @@
 
     @Test
     public void testIscsiLogin() throws Exception {
+        setUpGetEntityExpectations(1);
         setUriInfo(setUpActionExpectations(VdcActionType.ConnectStorageToVds,
                                            
StorageServerConnectionParametersBase.class,
                                            new String[] { "VdsId",
@@ -366,6 +369,7 @@
 
     @Test
     public void testDeactivate() throws Exception {
+        setUpGetEntityExpectations(1);
         
setUriInfo(setUpActionExpectations(VdcActionType.MaintananceNumberOfVdss,
                                            
MaintananceNumberOfVdssParameters.class,
                                            new String[] { "VdsIdList" },
@@ -377,6 +381,7 @@
     @Test
     public void testInstall() throws Exception {
         setUpGetEntityWithNoCertificateInfoExpectations(1);
+        setUpGetEntityExpectations(1);
 
         setUriInfo(setUpActionExpectations(VdcActionType.UpdateVds,
                                            UpdateVdsActionParameters.class,
@@ -390,6 +395,7 @@
 
     @Test
     public void testCommitNetConfig() throws Exception {
+        setUpGetEntityExpectations(1);
         setUriInfo(setUpActionExpectations(VdcActionType.CommitNetworkChanges,
                                            VdsActionParameters.class,
                                            new String[] { "VdsId" },
@@ -401,6 +407,7 @@
     @Test
     public void testManualFence() throws Exception {
         setUpGetEntityWithNoCertificateInfoExpectations(1);
+        setUpGetEntityExpectations(1);
 
         setUriInfo(setUpActionExpectations(VdcActionType.FenceVdsManualy,
                                            FenceVdsManualyParameters.class,
@@ -437,6 +444,7 @@
     public void doTestFence(FenceType fenceType,
                             VdcActionType actionType,
                             FenceActionType fenceActionType) throws Exception {
+        setUpGetEntityExpectations(1);
         setUriInfo(setUpActionExpectations(actionType,
                                            FenceVdsActionParameters.class,
                                            new String[] { "VdsId", "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 d08b729..b7c94f4 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
@@ -79,8 +79,9 @@
     }
 
     @Test
-    public void testRestore() {
+    public void testRestore() throws Exception {
         setUriInfo(setUpBasicUriExpectations());
+        setUpGetEntityExpectations(asList(getEntity(1)));
         setUpTryBackExpectations();
         setUpRestoreExpectations();
         control.replay();
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainTemplateResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainTemplateResourceTest.java
index a09d7b2..902dd09 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainTemplateResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainTemplateResourceTest.java
@@ -177,6 +177,8 @@
 
     public void doTestImport(StorageDomain storageDomain, Cluster cluster, 
boolean importAsNewEntity) throws Exception {
         setUpGetEntityExpectations(1, StorageDomainType.ImportExport, 
GUIDS[2]);
+        setUpGetStorageDomainExpectations(StorageDomainType.ImportExport);
+        setUpGetEntityExpectations(StorageDomainType.ImportExport, 
STORAGE_DOMAIN_ID);
         setUriInfo(setUpActionExpectations(VdcActionType.ImportVmTemplate,
                                            ImportVmTemplateParameters.class,
                                            new String[] { "ContainerId", 
"StorageDomainId", "SourceDomainId", "DestDomainId", "StoragePoolId", 
"VdsGroupId", "ImportAsNewEntity" },
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainVmResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainVmResourceTest.java
index b466aad..639730b 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainVmResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainVmResourceTest.java
@@ -186,6 +186,8 @@
 
     public void doTestImport(StorageDomain storageDomain, Cluster cluster, 
boolean collapseSnapshots, boolean importAsNewEntity) throws Exception {
         setUpGetEntityExpectations(1, StorageDomainType.ImportExport, 
GUIDS[2]);
+        setUpGetStorageDomainExpectations(StorageDomainType.ImportExport);
+        setUpGetEntityExpectations(StorageDomainType.ImportExport, 
STORAGE_DOMAIN_ID);
         setUriInfo(setUpActionExpectations(VdcActionType.ImportVm,
                                            ImportVmParameters.class,
                                            new String[] { "ContainerId", 
"StorageDomainId", "SourceDomainId", "DestDomainId", "StoragePoolId", 
"VdsGroupId", "CopyCollapse", "ImportAsNewEntity" },
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTemplateDiskResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTemplateDiskResourceTest.java
index 381d459..ba7c401 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTemplateDiskResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTemplateDiskResourceTest.java
@@ -103,7 +103,7 @@
 
     @Test
     public void testCopyBySdId() throws Exception {
-        setUpEntityQueryExpectations(1);
+        setUpEntityQueryExpectations(2);
         setUriInfo(setUpActionExpectations(VdcActionType.MoveOrCopyDisk,
                                            
MoveOrCopyImageGroupParameters.class,
                                            new String[] { "ImageId", 
"SourceDomainId", "StorageDomainId", "Operation" },
@@ -114,7 +114,7 @@
 
     @Test
     public void testCopyBySdName() throws Exception {
-        setUpEntityQueryExpectations(1);
+        setUpEntityQueryExpectations(2);
         setUpGetEntityExpectations("Storage: name=" + NAMES[2],
                                     SearchType.StorageDomain,
                                     getStorageDomainEntity(0));
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTemplateResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTemplateResourceTest.java
index f202729..0870d75 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTemplateResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTemplateResourceTest.java
@@ -185,6 +185,7 @@
     }
 
     protected void doTestExport(StorageDomain storageDomain, boolean 
exclusive) throws Exception {
+        setUpGetEntityExpectations(1);
         setUriInfo(setUpActionExpectations(VdcActionType.ExportVmTemplate,
                                            MoveVmParameters.class,
                                            new String[] { "ContainerId", 
"StorageDomainId", "ForceOverride" },
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmDiskResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmDiskResourceTest.java
index 362af5a..c580493 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmDiskResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmDiskResourceTest.java
@@ -127,6 +127,7 @@
 
     @Test
     public void testActivate() throws Exception {
+        setUpEntityQueryExpectations(1);
         setUriInfo(setUpActionExpectations(VdcActionType.HotPlugDiskToVm,
                                            HotPlugDiskToVmParameters.class,
                                            new String[] { "VmId", "DiskId" },
@@ -140,6 +141,7 @@
 
     @Test
     public void testDeactivate() throws Exception {
+        setUpEntityQueryExpectations(1);
         setUriInfo(setUpActionExpectations(VdcActionType.HotUnPlugDiskFromVm,
                                            HotPlugDiskToVmParameters.class,
                                            new String[] { "VmId", "DiskId" },
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java
index 65a93d8..496dec1 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java
@@ -112,10 +112,7 @@
     @Test
     public void testGet() throws Exception {
         setUriInfo(setUpBasicUriExpectations());
-        setUpGetEntityExpectations(1);
-        setUpGetPayloadExpectations(0);
-        setUpGetBallooningExpectations();
-        setUpGetCertuficateExpectations();
+        setupGetVmExpectations();
         control.replay();
         VM response = resource.get();
         verifyModel(response, 0);
@@ -309,17 +306,25 @@
     @Test
     public void testStart() throws Exception {
         setUpWindowsGetEntityExpectations(2, false);
+        setupGetVmExpectations();
         setUriInfo(setUpActionExpectations(VdcActionType.RunVmOnce,
                                            RunVmOnceParams.class,
                                            new String[] { "VmId" },
                                            new Object[] { GUIDS[0] }));
-
         verifyActionResponse(resource.start(new Action()));
+    }
+
+    private void setupGetVmExpectations() throws Exception {
+        setUpGetEntityExpectations(1);
+        setUpGetPayloadExpectations(0);
+        setUpGetBallooningExpectations();
+        setUpGetCertuficateExpectations();
     }
 
     @Test
     public void testStartWithPauseAndStateless() throws Exception {
         setUpWindowsGetEntityExpectations(2, false);
+        setupGetVmExpectations();
         setUriInfo(setUpActionExpectations(VdcActionType.RunVmOnce,
                                            RunVmOnceParams.class,
                                            new String[] { "VmId", 
"RunAndPause", "RunAsStateless" },
@@ -336,6 +341,7 @@
     @Test
     public void testStartWithVnc() throws Exception {
         setUpWindowsGetEntityExpectations(2, false);
+        setupGetVmExpectations();
         setUriInfo(setUpActionExpectations(VdcActionType.RunVmOnce,
                                            RunVmOnceParams.class,
                                            new String[] { "VmId", "UseVnc" },
@@ -352,6 +358,7 @@
     @Test
     public void testStartWithBootDev() throws Exception {
         setUpWindowsGetEntityExpectations(2, false);
+        setupGetVmExpectations();
         setUriInfo(setUpActionExpectations(VdcActionType.RunVmOnce,
                                            RunVmOnceParams.class,
                                            new String[] { "VmId", 
"BootSequence" },
@@ -369,6 +376,7 @@
     @Test
     public void testStartWithCdRomAndFloppy() throws Exception {
         setUpWindowsGetEntityExpectations(2, false);
+        setupGetVmExpectations();
         setUriInfo(setUpActionExpectations(VdcActionType.RunVmOnce,
                                            RunVmOnceParams.class,
                                            new String[] { "VmId", "DiskPath", 
"FloppyPath" },
@@ -408,6 +416,7 @@
 
     protected void testStartWithHost(Host host, Guid hostId) throws Exception {
         setUpWindowsGetEntityExpectations(2, false);
+        setupGetVmExpectations();
         setUriInfo(setUpActionExpectations(VdcActionType.RunVmOnce,
                                            RunVmOnceParams.class,
                                            new String[] { "VmId", 
"DestinationVdsId" },
@@ -424,6 +433,7 @@
 
     @Test
     public void testSuspend() throws Exception {
+        setupGetVmExpectations();
         setUriInfo(setUpActionExpectations(VdcActionType.HibernateVm,
                                            HibernateVmParameters.class,
                                            new String[] { "VmId" },
@@ -465,6 +475,7 @@
 
     @Test
     public void testShutdown() throws Exception {
+        setupGetVmExpectations();
         setUriInfo(setUpActionExpectations(VdcActionType.ShutdownVm,
                                            ShutdownVmParameters.class,
                                            new String[] { "VmId" },
@@ -475,6 +486,7 @@
 
     @Test
     public void testStop() throws Exception {
+        setupGetVmExpectations();
         setUriInfo(setUpActionExpectations(VdcActionType.StopVm,
                                            StopVmParameters.class,
                                            new String[] { "VmId", "StopVmType" 
},
@@ -485,6 +497,7 @@
 
     @Test
     public void testCancelMigration() throws Exception {
+        setupGetVmExpectations();
         setUriInfo(setUpActionExpectations(VdcActionType.CancelMigrateVm,
                                            VmOperationParameterBase.class,
                                            new String[] { "VmId" },
@@ -495,6 +508,7 @@
 
     @Test
     public void testDetach() throws Exception {
+        setupGetVmExpectations();
         setUriInfo(setUpActionExpectations(VdcActionType.RemoveVmFromPool,
                                            RemoveVmFromPoolParameters.class,
                                            new String[] { "VmId" },
@@ -505,6 +519,7 @@
 
     @Test
     public void testTicket() throws Exception {
+        setupGetVmExpectations();
         setUriInfo(setUpActionExpectations(VdcActionType.SetVmTicket,
                                            SetVmTicketParameters.class,
                                            new String[] { "VmId", "Ticket" },
@@ -518,6 +533,7 @@
 
     @Test
     public void testMigrateWithHostId() throws Exception {
+        setupGetVmExpectations();
         setUriInfo(setUpActionExpectations(VdcActionType.MigrateVmToServer,
                                            MigrateVmToServerParameters.class,
                                            new String[] { "VmId", "VdsId", 
"ForceMigrationForNonMigratableVM" },
@@ -532,6 +548,7 @@
     @Test
     public void testMigrateWithHostName() throws Exception {
         setUpGetHostIdExpectations(1);
+        setupGetVmExpectations();
 
         setUriInfo(setUpActionExpectations(VdcActionType.MigrateVmToServer,
                                            MigrateVmToServerParameters.class,
@@ -546,6 +563,7 @@
 
     @Test
     public void testMigrateNoHost() throws Exception {
+        setupGetVmExpectations();
         setUriInfo(setUpActionExpectations(VdcActionType.MigrateVm,
                 MigrateVmParameters.class,
                 new String[] { "VmId", "ForceMigrationForNonMigratableVM" },
@@ -566,6 +584,7 @@
 
     @Test
     public void testExportWithStorageDomainName() throws Exception {
+        setupGetVmExpectations();
         setUpGetEntityExpectations("Storage: name=" + NAMES[2],
                                    SearchType.StorageDomain,
                                    getStorageDomain(2));
@@ -577,6 +596,7 @@
     }
 
     protected void testExportWithStorageDomainId(boolean exclusive, boolean 
discardSnapshots) throws Exception {
+        setupGetVmExpectations();
         StorageDomain storageDomain = new StorageDomain();
         storageDomain.setId(GUIDS[2].toString());
         doTestExport(storageDomain, exclusive, discardSnapshots);
@@ -615,6 +635,7 @@
 
     @Test
     public void testMoveWithStorageDomainId() throws Exception {
+        setupGetVmExpectations();
         StorageDomain storageDomain = new StorageDomain();
         storageDomain.setId(GUIDS[2].toString());
         doTestMove(storageDomain);
@@ -622,6 +643,7 @@
 
     @Test
     public void testMoveWithStorageDomainName() throws Exception {
+        setupGetVmExpectations();
         setUpGetEntityExpectations("Storage: name=" + NAMES[2],
                                    SearchType.StorageDomain,
                                    getStorageDomain(2));
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterBrickResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterBrickResourceTest.java
index 47a7b4b..2a02523 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterBrickResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterBrickResourceTest.java
@@ -76,7 +76,7 @@
     @Test
     public void testReplace() throws Exception {
         setupParentExpectations();
-        setUpGetEntityExpectations(1);
+        setUpGetEntityExpectations(2);
         
setUriInfo(setUpActionExpectations(VdcActionType.ReplaceGlusterVolumeBrick,
                 GlusterVolumeReplaceBrickActionParameters.class,
                 new String[] { "VolumeId", "NewBrick.ServerId", 
"NewBrick.BrickDirectory" },
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumeResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumeResourceTest.java
index ac94840..1e9681e 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumeResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/gluster/BackendGlusterVolumeResourceTest.java
@@ -65,6 +65,9 @@
 
     @Test
     public void testStart() throws Exception {
+        setupParentExpectations();
+        setUpGetEntityExpectations(1);
+        resource.setParent(volumesResourceMock);
         setUriInfo(setUpActionExpectations(VdcActionType.StartGlusterVolume,
                 GlusterVolumeActionParameters.class,
                 new String[] { "VolumeId" },
@@ -75,6 +78,9 @@
 
     @Test
     public void testStop() throws Exception {
+        setupParentExpectations();
+        setUpGetEntityExpectations(1);
+        resource.setParent(volumesResourceMock);
         setUriInfo(setUpActionExpectations(VdcActionType.StopGlusterVolume,
                 GlusterVolumeActionParameters.class,
                 new String[] { "VolumeId" },
@@ -85,6 +91,9 @@
 
     @Test
     public void testRebalance() throws Exception {
+        setupParentExpectations();
+        setUpGetEntityExpectations(1);
+        resource.setParent(volumesResourceMock);
         
setUriInfo(setUpActionExpectations(VdcActionType.StartRebalanceGlusterVolume,
                 GlusterVolumeRebalanceParameters.class,
                 new String[] { "VolumeId" },
@@ -111,6 +120,9 @@
 
     @Test
     public void testSetOption() throws Exception {
+        setupParentExpectations();
+        setUpGetEntityExpectations(1);
+        resource.setParent(volumesResourceMock);
         
setUriInfo(setUpActionExpectations(VdcActionType.SetGlusterVolumeOption,
                 GlusterVolumeOptionParameters.class,
                 new String[] { "VolumeId" },
@@ -141,6 +153,9 @@
 
     @Test
     public void testResetOption() throws Exception {
+        setupParentExpectations();
+        setUpGetEntityExpectations(1);
+        resource.setParent(volumesResourceMock);
 
         
setUriInfo(setUpActionExpectations(VdcActionType.ResetGlusterVolumeOptions,
                 ResetGlusterVolumeOptionsParameters.class,
@@ -155,6 +170,9 @@
 
     @Test
     public void testResetAllOptions() throws Exception {
+        setupParentExpectations();
+        setUpGetEntityExpectations(1);
+        resource.setParent(volumesResourceMock);
         
setUriInfo(setUpActionExpectations(VdcActionType.ResetGlusterVolumeOptions,
                 ResetGlusterVolumeOptionsParameters.class,
                 new String[] { "VolumeId" },


--
To view, visit http://gerrit.ovirt.org/9466
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic636b7205fa7b6fbb5d98efdbcd7976e9beb2187
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ori Liel <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to