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

Reply via email to