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