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
