Ravi Nori has uploaded a new change for review.

Change subject: engine: Change parameter type of QueriesCommandBase
......................................................................

engine: Change parameter type of QueriesCommandBase

Change QueriesCommandBase<T extends VdcQueryParametersBase> to
QueriesCommandBase<T extends VdcParametersMap> and all supporting
code to work with VdcParametersMap

Add helper methods in VdcParameterHelper to build VdcParametersMap
with the default values for Action/Query parameters

Change-Id: I1992d8a2af4af96b01f2e6b3cc1684b82159e230
Signed-off-by: Ravi Nori <rn...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandsFactory.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/QueriesCommandBase.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/interfaces/BackendInternal.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AbstractGetEntitiesWithPermittedActionParametersQueryTest.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AbstractQueryTest.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AbstractUserQueryTest.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/QueriesCommandBaseTest.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/interfaces/BackendLocal.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryParametersBase.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VdcParameterHelper.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendBaseTest.java
12 files changed, 144 insertions(+), 100 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/81/21481/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java
index 1726585..a0abba2 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/Backend.java
@@ -51,7 +51,6 @@
 import org.ovirt.engine.core.common.osinfo.OsRepository;
 import org.ovirt.engine.core.common.queries.ConfigurationValues;
 import org.ovirt.engine.core.common.queries.GetConfigurationValueParameters;
-import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.common.utils.SimpleDependecyInjector;
@@ -453,21 +452,21 @@
 
     @Override
     @ExcludeClassInterceptors
-    public VdcQueryReturnValue runInternalQuery(VdcQueryType actionType, 
VdcQueryParametersBase parameters) {
+    public <T extends VdcParametersMap> VdcQueryReturnValue 
runInternalQuery(VdcQueryType actionType, T parameters) {
         return runQueryImpl(actionType, parameters, false);
     }
 
     @Override
-    public VdcQueryReturnValue RunQuery(VdcQueryType actionType, 
VdcQueryParametersBase parameters) {
+    public <T extends VdcParametersMap> VdcQueryReturnValue 
RunQuery(VdcQueryType actionType, T parameters) {
         return runQueryImpl(actionType, parameters, true);
     }
 
-    protected VdcQueryReturnValue runQueryImpl(VdcQueryType actionType, 
VdcQueryParametersBase parameters,
+    protected <T extends VdcParametersMap> VdcQueryReturnValue 
runQueryImpl(VdcQueryType actionType, T parameters,
             boolean isPerformUserCheck) {
         if (isPerformUserCheck) {
             String sessionId = addSessionToContext(parameters);
             if (StringUtils.isEmpty(sessionId)
-                    || SessionDataContainer.getInstance().getUser(sessionId, 
parameters.getRefresh()) == null) {
+                    || SessionDataContainer.getInstance().getUser(sessionId, 
parameters.<Boolean>get(CoreVdcParameters.REFRESH)) == null) {
                 return 
getErrorQueryReturnValue(VdcBllMessages.USER_IS_NOT_LOGGED_IN);
             }
         }
@@ -487,11 +486,11 @@
 
     }
 
-    private static String addSessionToContext(VdcQueryParametersBase 
parameters) {
-        String sessionId = parameters.getHttpSessionId();
+    private static <T extends VdcParametersMap> String addSessionToContext(T 
parameters) {
+        String sessionId = 
parameters.<String>get(CoreVdcParameters.HTTP_SESSION_ID);
         boolean isAddToContext = true;
         if (StringUtils.isEmpty(sessionId)) {
-            sessionId = parameters.getSessionId();
+            sessionId = parameters.<String>get(CoreVdcParameters.SESSION_ID);
         }
         // This is a workaround for front end
         // Where no session, try to get Id of session which was attached to
@@ -598,7 +597,7 @@
     }
 
     @Override
-    public VdcQueryReturnValue RunPublicQuery(VdcQueryType actionType, 
VdcQueryParametersBase parameters) {
+    public <T extends VdcParametersMap> VdcQueryReturnValue 
RunPublicQuery(VdcQueryType actionType, T parameters) {
         switch (actionType) {
         case GetDomainList:
         case RegisterVds:
@@ -626,7 +625,7 @@
     }
 
     @Override
-    public VdcQueryReturnValue RunAutoQuery(VdcQueryType actionType, 
VdcQueryParametersBase parameters) {
+    public <T extends VdcParametersMap> VdcQueryReturnValue 
RunAutoQuery(VdcQueryType actionType, T parameters) {
         return runInternalQuery(actionType, parameters);
     }
 
@@ -661,7 +660,7 @@
         return returnValue;
     }
 
-    protected QueriesCommandBase<?> createQueryCommand(VdcQueryType 
actionType, VdcQueryParametersBase parameters) {
+    protected <T extends VdcParametersMap> QueriesCommandBase<?> 
createQueryCommand(VdcQueryType actionType, T parameters) {
         return CommandsFactory.CreateQueryCommand(actionType, parameters);
     }
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandsFactory.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandsFactory.java
index 895de8e..b296e24 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandsFactory.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandsFactory.java
@@ -8,7 +8,6 @@
 import java.util.concurrent.ConcurrentMap;
 
 import org.ovirt.engine.core.common.action.VdcActionType;
-import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.common.utils.VdcParametersMap;
 import org.ovirt.engine.core.compat.Guid;
@@ -92,7 +91,7 @@
         }
     }
 
-    public static QueriesCommandBase<?> CreateQueryCommand(VdcQueryType query, 
VdcQueryParametersBase parameters) {
+    public static <T extends VdcParametersMap> QueriesCommandBase<?> 
CreateQueryCommand(VdcQueryType query, T parameters) {
         Class<?> type = null;
         try {
             type = getCommandClass(query.name(), QueryPrefix);
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/QueriesCommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/QueriesCommandBase.java
index 42b4985..bdf7334 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/QueriesCommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/QueriesCommandBase.java
@@ -10,9 +10,10 @@
 import org.ovirt.engine.core.bll.session.SessionDataContainer;
 import org.ovirt.engine.core.common.businessentities.DbUser;
 import org.ovirt.engine.core.common.errors.VdcBLLException;
-import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
+import org.ovirt.engine.core.common.utils.CoreVdcParameters;
+import org.ovirt.engine.core.common.utils.VdcParametersMap;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.VdcCommandBase;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
@@ -22,7 +23,7 @@
 import org.ovirt.engine.core.utils.log.Logged.LogLevel;
 
 @Logged(executionLevel = LogLevel.TRACE, errorLevel = LogLevel.WARN)
-public abstract class QueriesCommandBase<P extends VdcQueryParametersBase> 
extends VdcCommandBase {
+public abstract class QueriesCommandBase<P extends VdcParametersMap> extends 
VdcCommandBase {
 
     private final static Validator validator = 
Validation.buildDefaultValidatorFactory().getValidator();
     private static final String QuerySuffix = "Query";
@@ -52,8 +53,8 @@
     }
 
     private final DbUser initUser() {
-        return 
SessionDataContainer.getInstance().addUserToThreadContext(parameters.getSessionId(),
-                parameters.getRefresh());
+        return 
SessionDataContainer.getInstance().addUserToThreadContext(parameters.<String>get(CoreVdcParameters.SESSION_ID),
+                parameters.<Boolean>get(CoreVdcParameters.REFRESH));
     }
 
     @Override
@@ -108,7 +109,7 @@
     private final boolean validatePermissions() {
         // If the user requests filtered execution, his permissions are 
inconsequential.
         // If the query supports filtering it should be allowed, and if not - 
not.
-        if (parameters.isFiltered()) {
+        if (parameters.<Boolean>get(CoreVdcParameters.FILTERED)) {
             return !queryType.isAdmin();
         }
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/interfaces/BackendInternal.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/interfaces/BackendInternal.java
index c751134..e7191dd 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/interfaces/BackendInternal.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/interfaces/BackendInternal.java
@@ -7,7 +7,6 @@
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
 import org.ovirt.engine.core.common.interfaces.BackendLocal;
-import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.common.utils.VdcParametersMap;
@@ -48,7 +47,7 @@
             T parameters,
             CommandContext context);
 
-    VdcQueryReturnValue runInternalQuery(VdcQueryType actionType, 
VdcQueryParametersBase parameters);
+    <T extends VdcParametersMap> VdcQueryReturnValue 
runInternalQuery(VdcQueryType actionType, T parameters);
 
     <T extends VdcParametersMap> ArrayList<VdcReturnValueBase> 
runInternalMultipleActions(VdcActionType actionType,
             ArrayList<T> parameters);
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AbstractGetEntitiesWithPermittedActionParametersQueryTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AbstractGetEntitiesWithPermittedActionParametersQueryTest.java
index bbdbb87..48869b2 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AbstractGetEntitiesWithPermittedActionParametersQueryTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AbstractGetEntitiesWithPermittedActionParametersQueryTest.java
@@ -1,12 +1,13 @@
 package org.ovirt.engine.core.bll;
 
-import static org.mockito.Mockito.when;
 
 import org.junit.After;
 import org.junit.Before;
+import static org.mockito.Mockito.when;
 import org.ovirt.engine.core.bll.session.SessionDataContainer;
 import org.ovirt.engine.core.common.businessentities.ActionGroup;
 import 
org.ovirt.engine.core.common.queries.GetEntitiesWithPermittedActionParameters;
+import org.ovirt.engine.core.common.utils.CoreVdcParameters;
 import org.ovirt.engine.core.utils.RandomUtils;
 
 public abstract class 
AbstractGetEntitiesWithPermittedActionParametersQueryTest<P, Q> extends 
AbstractUserQueryTest<GetEntitiesWithPermittedActionParameters, 
QueriesCommandBase<? extends GetEntitiesWithPermittedActionParameters>> {
@@ -31,6 +32,7 @@
         when(getQueryParameters().getActionGroup()).thenReturn(actionGroup);
         sessionID = RandomUtils.instance().nextString(10);
         when(getQueryParameters().getSessionId()).thenReturn(sessionID);
+        
when(getQueryParameters().<String>get(CoreVdcParameters.SESSION_ID)).thenReturn(sessionID);
         SessionDataContainer.getInstance().setUser(sessionID, getUser());
     }
 
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AbstractQueryTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AbstractQueryTest.java
index cd0b8d4..51deffd 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AbstractQueryTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AbstractQueryTest.java
@@ -10,11 +10,13 @@
 
 import org.junit.Before;
 import org.junit.Test;
-import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
+import static org.mockito.Mockito.when;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
+import org.ovirt.engine.core.common.utils.CoreVdcParameters;
+import org.ovirt.engine.core.common.utils.VdcParametersMap;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 
-public abstract class AbstractQueryTest<P extends VdcQueryParametersBase, Q 
extends QueriesCommandBase<? extends P>> {
+public abstract class AbstractQueryTest<P extends VdcParametersMap, Q extends 
QueriesCommandBase<? extends P>> {
 
     protected P params;
     private Q query;
@@ -29,6 +31,8 @@
     /** Sets up a mock for {@link #params} */
     private void setUpMockQueryParameters() {
         params = mock(getParameterType());
+        when(params.<Boolean>get(CoreVdcParameters.REFRESH)).thenReturn(true);
+        
when(params.<Boolean>get(CoreVdcParameters.FILTERED)).thenReturn(false);
     }
 
     /** Sets up a mock for {@link #query} */
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AbstractUserQueryTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AbstractUserQueryTest.java
index 5731df1..ef016ca 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AbstractUserQueryTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AbstractUserQueryTest.java
@@ -9,11 +9,12 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.ovirt.engine.core.common.businessentities.DbUser;
-import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
+import org.ovirt.engine.core.common.utils.CoreVdcParameters;
+import org.ovirt.engine.core.common.utils.VdcParametersMap;
 import org.ovirt.engine.core.compat.Guid;
 
 /** An abstract test class for query classes that handles common mocking 
requirements */
-public abstract class AbstractUserQueryTest<P extends VdcQueryParametersBase, 
Q extends QueriesCommandBase<? extends P>>
+public abstract class AbstractUserQueryTest<P extends VdcParametersMap, Q 
extends QueriesCommandBase<? extends P>>
         extends AbstractQueryTest<P, Q> {
 
     private DbUser user;
@@ -37,7 +38,7 @@
 
     /** Sets up a mock for {@link #params} */
     protected void setUpMockQueryParameters() {
-        when(getQueryParameters().isFiltered()).thenReturn(true);
+        
when(getQueryParameters().<Boolean>get(CoreVdcParameters.FILTERED)).thenReturn(true);
     }
 
     /** Sets up a mock for {@link #query} */
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/QueriesCommandBaseTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/QueriesCommandBaseTest.java
index 61f6b85..1cc99a8 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/QueriesCommandBaseTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/QueriesCommandBaseTest.java
@@ -4,17 +4,18 @@
 import static junit.framework.Assert.assertFalse;
 import static junit.framework.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import static org.mockito.Mockito.when;
 import org.ovirt.engine.core.bll.session.SessionDataContainer;
 import org.ovirt.engine.core.common.businessentities.DbUser;
-import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
+import org.ovirt.engine.core.common.utils.CoreVdcParameters;
+import org.ovirt.engine.core.common.utils.VdcParametersMap;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.utils.ThreadLocalParamsContainer;
 
@@ -27,20 +28,20 @@
     /** Test {@link QueriesCommandBase#isInternalExecution()} and {@link 
QueriesCommandBase#setInternalExecution(boolean) */
     @Test
     public void testIsInternalExecutionDefault() {
-        ThereIsNoSuchQuery query = new 
ThereIsNoSuchQuery(mock(VdcQueryParametersBase.class));
+        ThereIsNoSuchQuery query = new ThereIsNoSuchQuery(getParams());
         assertFalse("By default, a query should not be marked for internel 
execution", query.isInternalExecution());
     }
 
     @Test
     public void testIsInternalExecutionTrue() {
-        ThereIsNoSuchQuery query = new 
ThereIsNoSuchQuery(mock(VdcQueryParametersBase.class));
+        ThereIsNoSuchQuery query = new ThereIsNoSuchQuery(getParams());
         query.setInternalExecution(true);
         assertTrue("Query should be marked for internel execution", 
query.isInternalExecution());
     }
 
     @Test
     public void testIsInternalExecutionFalse() {
-        ThereIsNoSuchQuery query = new 
ThereIsNoSuchQuery(mock(VdcQueryParametersBase.class));
+        ThereIsNoSuchQuery query = new ThereIsNoSuchQuery(getParams());
 
         // Set as true, then override with false
         query.setInternalExecution(true);
@@ -52,12 +53,22 @@
     /** Test that an "oddly" typed query will be considered unknown */
     @Test
     public void testUnknownQuery() throws Exception {
-        ThereIsNoSuchQuery query = new 
ThereIsNoSuchQuery(mock(VdcQueryParametersBase.class));
+        ThereIsNoSuchQuery query = new ThereIsNoSuchQuery(getParams());
         assertEquals("Wrong type for 'ThereIsNoSuchQuery' ",
                 VdcQueryType.Unknown,
                 TestHelperQueriesCommandType.getQueryTypeFieldValue(query));
     }
 
+    private VdcParametersMap getParams() {
+        String sessionId = getClass().getSimpleName();
+
+        // Mock parameters
+        VdcParametersMap params = mock(VdcParametersMap.class);
+        when(params.<Boolean>get(CoreVdcParameters.REFRESH)).thenReturn(true);
+        
when(params.<String>get(CoreVdcParameters.SESSION_ID)).thenReturn(sessionId);
+
+        return params;
+    }
     /** Tests Admin permission check */
     @Test
     public void testPermissionChecking() throws Exception {
@@ -78,9 +89,10 @@
                         String sessionId = getClass().getSimpleName();
 
                         // Mock parameters
-                        VdcQueryParametersBase params = 
mock(VdcQueryParametersBase.class);
-                        when(params.isFiltered()).thenReturn(isFiltered);
-                        when(params.getSessionId()).thenReturn(sessionId);
+                        VdcParametersMap params = mock(VdcParametersMap.class);
+                        
when(params.<Boolean>get(CoreVdcParameters.REFRESH)).thenReturn(true);
+                        
when(params.<Boolean>get(CoreVdcParameters.FILTERED)).thenReturn(isFiltered);
+                        
when(params.<String>get(CoreVdcParameters.SESSION_ID)).thenReturn(sessionId);
 
                         Guid guid = mock(Guid.class);
 
@@ -117,14 +129,14 @@
         when(user.getId()).thenReturn(Guid.EVERYONE);
 
         ThreadLocalParamsContainer.setUser(user);
-        ThereIsNoSuchQuery query = new ThereIsNoSuchQuery(new 
VdcQueryParametersBase());
+        ThereIsNoSuchQuery query = new ThereIsNoSuchQuery(getParams());
 
         assertEquals("wrong guid", Guid.EVERYONE, query.getUserID());
     }
 
     @Test
     public void testGetUserIDWithNoUser() {
-        ThereIsNoSuchQuery query = new ThereIsNoSuchQuery(new 
VdcQueryParametersBase());
+        ThereIsNoSuchQuery query = new ThereIsNoSuchQuery(getParams());
 
         assertEquals("wrong guid", null, query.getUserID());
     }
@@ -139,9 +151,9 @@
     }
 
     /** A stub class that will cause the {@link VdcQueryType#Unknown} to be 
used */
-    private static class ThereIsNoSuchQuery extends 
QueriesCommandBase<VdcQueryParametersBase> {
+    private static class ThereIsNoSuchQuery extends 
QueriesCommandBase<VdcParametersMap> {
 
-        public ThereIsNoSuchQuery(VdcQueryParametersBase parameters) {
+        public ThereIsNoSuchQuery(VdcParametersMap parameters) {
             super(parameters);
         }
 
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/interfaces/BackendLocal.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/interfaces/BackendLocal.java
index 269da9a..0277756 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/interfaces/BackendLocal.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/interfaces/BackendLocal.java
@@ -4,7 +4,6 @@
 import org.ovirt.engine.core.common.action.LogoutUserParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
-import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.common.utils.VdcParametersMap;
@@ -14,7 +13,7 @@
 
     VDSBrokerFrontend getResourceManager();
 
-    VdcQueryReturnValue RunQuery(VdcQueryType actionType, 
VdcQueryParametersBase parameters);
+    <T extends VdcParametersMap> VdcQueryReturnValue RunQuery(VdcQueryType 
actionType, T parameters);
 
     <T extends VdcParametersMap>  VdcReturnValueBase endAction(VdcActionType 
actionType, T parameters);
 
@@ -28,7 +27,7 @@
 
     void Initialize();
 
-    VdcQueryReturnValue RunPublicQuery(VdcQueryType actionType, 
VdcQueryParametersBase parameters);
+    <T extends VdcParametersMap> VdcQueryReturnValue 
RunPublicQuery(VdcQueryType actionType, T parameters);
 
     VdcReturnValueBase login(LoginUserParameters parameters);
 
@@ -37,5 +36,5 @@
     // for auto backend
     <T extends VdcParametersMap> VdcReturnValueBase 
RunAutoAction(VdcActionType actionType, T parameters);
 
-    VdcQueryReturnValue RunAutoQuery(VdcQueryType actionType, 
VdcQueryParametersBase parameters);
+    <T extends VdcParametersMap> VdcQueryReturnValue RunAutoQuery(VdcQueryType 
actionType, T parameters);
 }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryParametersBase.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryParametersBase.java
index 16334a7..95ffccb 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryParametersBase.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryParametersBase.java
@@ -1,95 +1,88 @@
 package org.ovirt.engine.core.common.queries;
 
 import java.io.Serializable;
-import org.ovirt.engine.core.common.utils.VdcParameter;
+
+import org.ovirt.engine.core.common.utils.CoreVdcParameters;
 import org.ovirt.engine.core.common.utils.VdcParametersMap;
 
-public class VdcQueryParametersBase implements Serializable {
+public class VdcQueryParametersBase extends VdcParametersMap implements 
Serializable {
     private static final long serialVersionUID = -6766170283465888549L;
+
+    public VdcQueryParametersBase() {
+        setRefresh(true);
+        setFiltered(false);
+    }
+
+    public String getSessionId() {
+        String sessionId = this.<String>get(CoreVdcParameters.SESSION_ID);
+        if (sessionId == null) {
+            return "";
+        }
+        return sessionId;
+    }
 
     /**
      * The identifier of session which should be set by sender via Rest Api or 
by front end
      */
-    private String sessionId;
+    public void setSessionId(String value) {
+        put(CoreVdcParameters.SESSION_ID, value);
+    }
+
+    public String getHttpSessionId() {
+        String httpSessionId = 
this.<String>get(CoreVdcParameters.HTTP_SESSION_ID);
+        if (httpSessionId == null) {
+            return "";
+        }
+        return httpSessionId;
+    }
+
     /**
      * The identifier of session which should be set by web client of front end
      */
-    private String httpSessionId;
+    public void setHttpSessionId(String httpSessionId) {
+        put(CoreVdcParameters.HTTP_SESSION_ID, httpSessionId);
+    }
+
+    public boolean getRefresh() {
+        return this.<Boolean>get(CoreVdcParameters.REFRESH);
+    }
 
     /**
      * The boolean flag which provides if the session should be refreshed
      */
-    private boolean refresh;
+    public void setRefresh(boolean refresh) {
+        put(CoreVdcParameters.REFRESH, refresh);
+    }
 
     /**
      * The boolean flag which specifies if the query should be filtered
      * (e.g., according to user permissions as opposed to the default, which 
is running as admin)
      */
-    private boolean isFiltered;
-
-    private VdcParametersMap parametersMap;
-
-    public VdcQueryParametersBase() {
-        refresh = true;
-        parametersMap = new VdcParametersMap();
-    }
-
-    public String getSessionId() {
-        return sessionId;
-    }
-
-    public void setSessionId(String sessionId) {
-        this.sessionId = sessionId;
-    }
-
-    public String getHttpSessionId() {
-        return httpSessionId;
-    }
-
-    public void setHttpSessionId(String httpSessionId) {
-        this.httpSessionId = httpSessionId;
-    }
-
-    public boolean getRefresh() {
-        return refresh;
-    }
-
-    public void setRefresh(boolean refresh) {
-        this.refresh = refresh;
-    }
-
     public boolean isFiltered() {
-        return isFiltered;
+        return this.<Boolean>get(CoreVdcParameters.FILTERED);
     }
 
     public void setFiltered(boolean isFiltered) {
-        this.isFiltered = isFiltered;
+        put(CoreVdcParameters.FILTERED, isFiltered);
     }
 
-    public  VdcQueryParametersBase addParameter(VdcParameter param, 
Serializable value) {
-        parametersMap.put(param, value);
-        return this;
+    @Override
+    public int hashCode() {
+        return super.hashCode();
     }
 
-    public <T> T getParameter(VdcParameter param) {
-        return parametersMap.<T>get(param);
-    }
-
-    public VdcParametersMap getParameters() {
-        return parametersMap;
-    }
-
-    public void setParameters(VdcParametersMap map) {
-        parametersMap = map;
+    @Override
+    public boolean equals(Object obj) {
+        return this == obj;
     }
 
     @Override
     public String toString() {
         StringBuilder builder = new StringBuilder(25);
         builder.append("refresh: ");
-        builder.append(refresh);
+        builder.append(getRefresh());
         builder.append(", filtered: ");
-        builder.append(isFiltered);
+        builder.append(getRefresh());
         return builder.toString();
     }
 }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VdcParameterHelper.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VdcParameterHelper.java
index aaf3283..d4dac73 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VdcParameterHelper.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VdcParameterHelper.java
@@ -1,7 +1,10 @@
 package org.ovirt.engine.core.common.utils;
 
+import java.util.ArrayList;
 import java.util.List;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
+import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.compat.TransactionScopeOption;
 
 public class VdcParameterHelper {
 
@@ -21,4 +24,24 @@
         return childrenTasksSuccess;
     }
 
+    public static VdcParametersMap buildActionParametersMap() {
+        return new VdcParametersMap().
+                put(CoreVdcParameters.SHOULD_BE_LOGGED, true).
+                put(CoreVdcParameters.TRANSACTION_OPTION, 
TransactionScopeOption.Required).
+                put(CoreVdcParameters.TASK_GROUP_SUCCESS, true).
+                put(CoreVdcParameters.PARENT_COMMAND, VdcActionType.Unknown).
+                put(CoreVdcParameters.COMMAND_EXECUTION_REASON, 
VdcActionParametersBase.CommandExecutionReason.REGULAR_FLOW).
+                put(CoreVdcParameters.COMPENSATION_ENABLED, false).
+                put(CoreVdcParameters.PARENT_COMMAND, VdcActionType.Unknown).
+                put(CoreVdcParameters.COMMAND_TYPE, VdcActionType.Unknown).
+                put(CoreVdcParameters.IMAGE_PARAMETERS, new 
ArrayList<VdcActionParametersBase>()).
+                put(CoreVdcParameters.EXECUTION_INDEX, 0).
+                put(CoreVdcParameters.MULTIPLE_ACTION, false);
+    }
+
+    public static VdcParametersMap buildQueryParametersMap() {
+        return new VdcParametersMap().
+                put(CoreVdcParameters.REFRESH, true).
+                put(CoreVdcParameters.REFRESH, false);
+    }
 }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendBaseTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendBaseTest.java
index 2b19591..dd9416d 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendBaseTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/AbstractBackendBaseTest.java
@@ -49,6 +49,7 @@
 import 
org.ovirt.engine.core.common.queries.GetTasksStatusesByTasksIDsParameters;
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
 import org.ovirt.engine.core.common.queries.SearchParameters;
+import org.ovirt.engine.core.common.utils.CoreVdcParameters;
 import org.ovirt.engine.core.common.utils.VdcParameter;
 import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
@@ -250,13 +251,15 @@
             throws Exception {
         VdcQueryParametersBase paramsBase = 
control.createMock(VdcQueryParametersBase.class);
         int i = 0;
+        values = addSession(values);
+        queryParamNames = addSession(queryParamNames);
         for (VdcParameter param : queryParamNames) {
-            
expect(paramsBase.getParameter(eq(param))).andReturn(values[i]).anyTimes();
+            expect(paramsBase.get(eq(param))).andReturn(values[i]).anyTimes();
             i++;
         }
 
         VdcQueryReturnValue queryResult = 
control.createMock(VdcQueryReturnValue.class);
-        expect(backend.RunQuery(eq(query), eqQueryParams(clz, 
addSession(names), addSession(values), queryParamNames))).andReturn(
+        expect(backend.RunQuery(eq(query), eqQueryParams(clz, names, values, 
queryParamNames))).andReturn(
                 queryResult).anyTimes();
         expect(queryResult.getSucceeded()).andReturn(true).anyTimes();
         expect(queryResult.getReturnValue()).andReturn(entity).anyTimes();
@@ -618,6 +621,15 @@
         return ret;
     }
 
+    protected VdcParameter[] addSession(VdcParameter... params) {
+        VdcParameter[] ret = new VdcParameter[params.length + 1];
+        for (int i = 0; i < params.length; i++) {
+            ret[i] = params[i];
+        }
+        ret[params.length] = CoreVdcParameters.SESSION_ID;
+        return ret;
+    }
+
     private void setAsyncTaskStatusExpectations(ArrayList<Guid> asyncTasks,
             ArrayList<AsyncTaskStatus> asyncStatuses,
             VdcQueryReturnValue monitorResult,


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1992d8a2af4af96b01f2e6b3cc1684b82159e230
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ravi Nori <rn...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to