Ori Liel has uploaded a new change for review. Change subject: restapi: Update Tag Makes Redundant Call ......................................................................
restapi: Update Tag Makes Redundant Call When updating a tag to have its existing parent (no change), MoveTag command is activated anyway. Change-Id: I01ddc4f951b43a66cc44152df7ff67fb4f87f6b1 Signed-off-by: Ori Liel <[email protected]> --- M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendTagResource.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagResourceTest.java 2 files changed, 18 insertions(+), 5 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/18/7818/1 diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendTagResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendTagResource.java index 7dd073a..46afe12 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendTagResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendTagResource.java @@ -38,7 +38,10 @@ incoming.getParent().getTag().setId(parent.getParentId(incoming)); } - if (isSetParent(incoming)) { + String existingParentId = + getEntity(new QueryIdResolver(VdcQueryType.GetTagByTagId, GetTagByTagIdParameters.class), true).getparent_id() + .toString(); + if (isSetParent(incoming) && !existingParentId.equals(incoming.getParent().getTag().getId())) { moveTag(asGuid(incoming.getParent().getTag().getId())); } diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagResourceTest.java index 2aabd7d..a3bc0f9 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendTagResourceTest.java @@ -12,6 +12,8 @@ import org.ovirt.engine.core.common.queries.GetTagByTagIdParameters; import org.ovirt.engine.core.common.queries.GetTagByTagNameParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; +import org.ovirt.engine.core.compat.Guid; + import static org.ovirt.engine.api.restapi.resource.BackendTagsResourceTest.PARENT_GUID; import static org.ovirt.engine.api.restapi.resource.BackendTagsResourceTest.PARENT_IDX; import static org.ovirt.engine.api.restapi.resource.BackendTagsResourceTest.getModel; @@ -20,6 +22,9 @@ public class BackendTagResourceTest extends AbstractBackendSubResourceTest<Tag, tags, BackendTagResource> { + + private static final int NEW_PARENT_IDX = 1; + private static final Guid NEW_PARENT_ID = GUIDS[NEW_PARENT_IDX]; public BackendTagResourceTest() { super(new BackendTagResource(GUIDS[0].toString(), new BackendTagsResource())); @@ -81,6 +86,7 @@ public void testUpdate() throws Exception { setUpGetEntityExpectations(0); setUpGetEntityExpectations(0); + setUpGetEntityExpectations(0); setUriInfo(setUpActionExpectations(VdcActionType.UpdateTag, TagsOperationParameters.class, @@ -103,7 +109,7 @@ GetTagByTagNameParameters.class, new String[] { "TagName" }, new Object[] { NAMES[PARENT_IDX] }, - getEntity(PARENT_IDX)); + getEntity(NEW_PARENT_IDX)); Tag model = getModel(0); model.getParent().getTag().setId(null); @@ -113,10 +119,11 @@ } protected void doTestMove(Tag model, int index) throws Exception { + model.getParent().getTag().setId(NEW_PARENT_ID.toString()); setUpActionExpectations(VdcActionType.MoveTag, MoveTagParameters.class, new String[] { "TagId", "NewParentId" }, - new Object[] { GUIDS[index], PARENT_GUID }, + new Object[] { GUIDS[index], NEW_PARENT_ID }, true, true, null, @@ -125,11 +132,12 @@ setUpGetEntityExpectations(index); setUpGetEntityExpectations(index); + setUpGetEntityExpectations(index); setUriInfo(setUpActionExpectations(VdcActionType.UpdateTag, TagsOperationParameters.class, new String[] { "Tag.tag_name", "Tag.parent_id" }, - new Object[] { NAMES[index], PARENT_GUID }, + new Object[] { NAMES[index], NEW_PARENT_ID }, true, true)); @@ -147,6 +155,7 @@ } private void doTestBadUpdate(boolean canDo, boolean success, String detail) throws Exception { + setUpGetEntityExpectations(0); setUpGetEntityExpectations(0); setUriInfo(setUpActionExpectations(VdcActionType.UpdateTag, @@ -167,11 +176,12 @@ @Test public void testConflictedUpdate() throws Exception { setUpGetEntityExpectations(0); + setUpGetEntityExpectations(0); setUriInfo(setUpBasicUriExpectations()); control.replay(); Tag model = getModel(1, false); - model.setId(GUIDS[1].toString()); + model.setId(NEW_PARENT_ID.toString()); try { resource.update(model); fail("expected WebApplicationException"); -- To view, visit http://gerrit.ovirt.org/7818 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I01ddc4f951b43a66cc44152df7ff67fb4f87f6b1 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
