Ravi Nori has uploaded a new change for review.

Change subject: engine : Remove dependency of IdQueryParameters from 
GetRoleByIdQuery
......................................................................

engine : Remove dependency of IdQueryParameters from GetRoleByIdQuery

This patch uses the map in VdcQueryParametersBase
to remove the dependency of IdQueryParameters from
GetRoleByIdQuery.

This patch ues the key VdcQueryParameter.RoleId
to store and retrive the role id from the map in
VdcQueryParametersBase.

The api code and the test cases that call
GetRoleById has been modified to use the map
instead of IdQueryParameters

Change-Id: I67fb4920f8107575dd26e173456a7edf99c3503f
Signed-off-by: Ravi Nori <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetRoleByIdQuery.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRoleResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRolesResource.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendRoleResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendAssignedRolesResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRoleResourceTest.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRolesResourceTest.java
7 files changed, 91 insertions(+), 41 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/15/20415/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetRoleByIdQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetRoleByIdQuery.java
index 76a8c5a..1b79d5b 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetRoleByIdQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetRoleByIdQuery.java
@@ -1,9 +1,12 @@
 package org.ovirt.engine.core.bll;
 
-import org.ovirt.engine.core.common.queries.IdQueryParameters;
+import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
+import org.ovirt.engine.core.common.utils.VdcParameter;
+import org.ovirt.engine.core.common.utils.VdcParameterValue;
+import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 
-public class GetRoleByIdQuery<P extends IdQueryParameters> extends 
QueriesCommandBase<P> {
+public class GetRoleByIdQuery<P extends VdcQueryParametersBase> extends 
QueriesCommandBase<P> {
     public GetRoleByIdQuery(P parameters)
 
     {
@@ -12,6 +15,11 @@
 
     @Override
     protected void executeQueryCommand() {
-        
getQueryReturnValue().setReturnValue(DbFacade.getInstance().getRoleDao().get(getParameters().getId()));
+        
getQueryReturnValue().setReturnValue(DbFacade.getInstance().getRoleDao().get(getRoleId()));
+    }
+
+    private Guid getRoleId() {
+        VdcParameterValue paramValue = 
getParameters().getParameterValue(VdcParameter.RoleId);
+        return ((VdcParameterValue<Guid>) paramValue).getValue();
     }
 }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRoleResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRoleResource.java
index e72ef10..5bcf531 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRoleResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRoleResource.java
@@ -10,8 +10,10 @@
 import org.ovirt.engine.core.common.action.RolesOperationsParameters;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
-import org.ovirt.engine.core.common.queries.IdQueryParameters;
+import org.ovirt.engine.core.common.queries.InvalidParameterValueException;
+import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
+import org.ovirt.engine.core.common.utils.VdcParameter;
 import org.ovirt.engine.core.compat.Guid;
 
 public class BackendRoleResource
@@ -32,7 +34,7 @@
     @Override
     public Role get() {
         return performGet(VdcQueryType.GetRoleById,
-                new IdQueryParameters(guid));
+                getParameters(guid));
     }
 
     @Override
@@ -53,11 +55,26 @@
     public Role update(Role role) {
         validateEnums(Role.class, role);
         return performUpdate(role,
-                new QueryIdResolver<Guid>(VdcQueryType.GetRoleById, 
IdQueryParameters.class),
+                new QueryIdResolver<Guid>(VdcQueryType.GetRoleById, 
VdcQueryParametersBase.class),
                 VdcActionType.UpdateRole,
                 new UpdateParametersProvider());
     }
 
+    @Override
+    protected <T> VdcQueryParametersBase getQueryParams(Class<? extends 
VdcQueryParametersBase> queryParamsClass, T id) {
+        return getParameters(id);
+    }
+
+    private <T> VdcQueryParametersBase getParameters(T id) {
+        VdcQueryParametersBase params = new VdcQueryParametersBase();
+        try {
+            params.addParameter(VdcParameter.RoleId, id);
+        } catch (InvalidParameterValueException ex) {
+            LOG.error(ex);
+        }
+        return params;
+    }
+
     public class UpdateParametersProvider implements ParametersProvider<Role, 
org.ovirt.engine.core.common.businessentities.Role> {
         @Override
         public VdcActionParametersBase getParameters(Role model, 
org.ovirt.engine.core.common.businessentities.Role entity) {
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRolesResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRolesResource.java
index f521cd8..591c90a 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRolesResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendRolesResource.java
@@ -15,9 +15,11 @@
 import org.ovirt.engine.core.common.action.RolesParameterBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.ActionGroup;
-import org.ovirt.engine.core.common.queries.IdQueryParameters;
+import org.ovirt.engine.core.common.queries.InvalidParameterValueException;
 import 
org.ovirt.engine.core.common.queries.MultilevelAdministrationsQueriesParameters;
+import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
+import org.ovirt.engine.core.common.utils.VdcParameter;
 import org.ovirt.engine.core.compat.Guid;
 
 public class BackendRolesResource
@@ -42,7 +44,18 @@
         validateEnums(Role.class, role);
         return performCreate(VdcActionType.AddRoleWithActionGroups,
                                new RoleWithActionGroupsParameters(map(role), 
mapPermits(role.getPermits().getPermits())),
-                               new 
QueryIdResolver<Guid>(VdcQueryType.GetRoleById, IdQueryParameters.class));
+                               new 
QueryIdResolver<Guid>(VdcQueryType.GetRoleById, VdcQueryParametersBase.class));
+    }
+
+    @Override
+    protected <T> VdcQueryParametersBase getQueryParams(Class<? extends 
VdcQueryParametersBase> queryParamsClass, T id) {
+        VdcQueryParametersBase params = new VdcQueryParametersBase();
+        try {
+        params.addParameter(VdcParameter.RoleId, id);
+        } catch (InvalidParameterValueException ex) {
+            LOG.error(ex);
+        }
+        return params;
     }
 
     @Override
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendRoleResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendRoleResourceTest.java
index 496fc16..620b0ae 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendRoleResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendRoleResourceTest.java
@@ -5,8 +5,9 @@
 import org.junit.Test;
 import org.ovirt.engine.api.model.Role;
 import org.ovirt.engine.core.common.businessentities.RoleType;
-import org.ovirt.engine.core.common.queries.IdQueryParameters;
+import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
+import org.ovirt.engine.core.common.utils.VdcParameter;
 
 
 public abstract class AbstractBackendRoleResourceTest
@@ -54,11 +55,12 @@
     }
 
     protected void setUpGetEntityExpectations(boolean notFound) throws 
Exception {
-        setUpGetEntityExpectations(VdcQueryType.GetRoleById,
-                                   IdQueryParameters.class,
-                                   new String[] { "Id" },
-                                   new Object[] { GUIDS[0] },
-                                   notFound ? null : getEntity(0));
+        setUpGetEntityExpectationsWithParamNames(VdcQueryType.GetRoleById,
+                VdcQueryParametersBase.class,
+                new String[]  { "ParameterValue"},
+                new Object[] { GUIDS[0] },
+                new VdcParameter[] { VdcParameter.RoleId },
+                notFound ? null : getEntity(0));
     }
 
     @Override
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendAssignedRolesResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendAssignedRolesResourceTest.java
index 2253699..b04386b 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendAssignedRolesResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendAssignedRolesResourceTest.java
@@ -15,7 +15,9 @@
 import org.ovirt.engine.core.common.businessentities.permissions;
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
 import org.ovirt.engine.core.common.queries.NameQueryParameters;
+import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
+import org.ovirt.engine.core.common.utils.VdcParameter;
 import org.ovirt.engine.core.compat.Guid;
 
 public class BackendAssignedRolesResourceTest
@@ -67,10 +69,11 @@
             role = new org.ovirt.engine.core.common.businessentities.Role();
             role.setId(entityId);
         }
-        setUpGetEntityExpectations(VdcQueryType.GetRoleById,
-                IdQueryParameters.class,
-                new String[] { "Id" },
+        setUpGetEntityExpectationsWithParamNames(VdcQueryType.GetRoleById,
+                VdcQueryParametersBase.class,
+                new String[]  { "ParameterValue"},
                 new Object[] { entityId },
+                new VdcParameter[] { VdcParameter.RoleId },
                 role);
     }
 
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRoleResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRoleResourceTest.java
index 0625b12..a5fcf4a 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRoleResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRoleResourceTest.java
@@ -4,8 +4,9 @@
 import org.ovirt.engine.api.model.Role;
 import org.ovirt.engine.core.common.action.RolesOperationsParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
-import org.ovirt.engine.core.common.queries.IdQueryParameters;
+import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
+import org.ovirt.engine.core.common.utils.VdcParameter;
 
 public class BackendRoleResourceTest extends AbstractBackendRoleResourceTest {
 
@@ -21,14 +22,17 @@
 
     @Test
     public void testUpdate() throws Exception {
-        setUpGetEntityExpectations(2);
         setUriInfo(setUpActionExpectations(VdcActionType.UpdateRole,
                                            RolesOperationsParameters.class,
                                            new String[] { "RoleId", "Role" },
                                            new Object[] { GUIDS[0], 
getEntity(0) },
                                            true,
-                                           true));
-
+                                           true,
+                                           null,
+                                           false,
+                                           CANT_DO));
+        setUpGetEntityExpectations(1);
+        control.replay();
         verifyModel(resource.update(getModel()), 0);
     }
 
@@ -39,13 +43,12 @@
     }
 
     protected void setUpGetEntityExpectations(int times) throws Exception {
-        for (int i=0; i<times; i++) {
-            setUpGetEntityExpectations(VdcQueryType.GetRoleById,
-                                       IdQueryParameters.class,
-                                       new String[] { "Id" },
-                                       new Object[] { GUIDS[0] },
-                                       getEntity(0));
-        }
+        setUpGetEntityExpectationsWithParamNames(VdcQueryType.GetRoleById,
+                VdcQueryParametersBase.class,
+                new String[]{"ParameterValue"},
+                new Object[]{GUIDS[0]},
+                new VdcParameter[]{VdcParameter.RoleId},
+                getEntity(0));
     }
 }
 
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRolesResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRolesResourceTest.java
index a1340f9..891b49f 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRolesResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendRolesResourceTest.java
@@ -16,9 +16,10 @@
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.businessentities.ActionGroup;
 import org.ovirt.engine.core.common.businessentities.RoleType;
-import org.ovirt.engine.core.common.queries.IdQueryParameters;
 import 
org.ovirt.engine.core.common.queries.MultilevelAdministrationsQueriesParameters;
+import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
+import org.ovirt.engine.core.common.utils.VdcParameter;
 
 public class BackendRolesResourceTest
         extends AbstractBackendCollectionResourceTest<Role, 
org.ovirt.engine.core.common.businessentities.Role, BackendRolesResource> {
@@ -47,10 +48,11 @@
 
     @Test
     public void testRemoveNonExistant() throws Exception{
-        setUpGetEntityExpectations(VdcQueryType.GetRoleById,
-                IdQueryParameters.class,
-                new String[] { "Id" },
+        setUpGetEntityExpectationsWithParamNames(VdcQueryType.GetRoleById,
+                VdcQueryParametersBase.class,
+                new String[]  { "ParameterValue"},
                 new Object[] { NON_EXISTANT_GUID },
+                new VdcParameter[] { VdcParameter.RoleId },
                 null);
         control.replay();
         try {
@@ -63,10 +65,11 @@
     }
 
     private void setUpGetEntityExpectations() throws Exception {
-        setUpGetEntityExpectations(VdcQueryType.GetRoleById,
-                IdQueryParameters.class,
-                new String[] { "Id" },
+        setUpGetEntityExpectationsWithParamNames(VdcQueryType.GetRoleById,
+                VdcQueryParametersBase.class,
+                new String[]  { "ParameterValue"},
                 new Object[] { GUIDS[0] },
+                new VdcParameter[] { VdcParameter.RoleId },
                 getEntity(0));
     }
 
@@ -99,18 +102,19 @@
     @Test
     public void testAddRole() throws Exception {
         setUriInfo(setUpBasicUriExpectations());
+        setUpGetEntityExpectationsWithParamNames(VdcQueryType.GetRoleById,
+                VdcQueryParametersBase.class,
+                new String[]  { "ParameterValue"},
+                new Object[] { GUIDS[0] },
+                new VdcParameter[] { VdcParameter.RoleId },
+                getEntity(0));
         setUpCreationExpectations(VdcActionType.AddRoleWithActionGroups,
                                   RoleWithActionGroupsParameters.class,
                                   new String[] { "Role.Id", "Role.name" },
                                   new Object[] { GUIDS[0], NAMES[0] },
                                   true,
                                   true,
-                                  GUIDS[0],
-                                  VdcQueryType.GetRoleById,
-                                  IdQueryParameters.class,
-                                  new String[] { "Id" },
-                                  new Object[] { GUIDS[0] },
-                                  getEntity(0));
+                                  GUIDS[0], null, null);
         Role model = new Role();
         model.setName(NAMES[0].toString());
         model.setPermits(new Permits());


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

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

Reply via email to