Alexander Wels has uploaded a new change for review. Change subject: engine, webadmin: synchronous multiple action ......................................................................
engine, webadmin: synchronous multiple action - Added a 'synchronous' version of run multiple actions to allow the frontend combine multiple single actions into one request and wait for the result of all of them. At the same time not disturb existing multiple actions that do NOT wait for the results. Change-Id: I935f4257e731de719540db9d79d5865537be228d Signed-off-by: Alexander Wels <[email protected]> --- 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/MultipleActionsRunner.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/interfaces/BackendLocal.java M frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/Frontend.java M frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/communication/GWTRPCCommunicationProvider.java M frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/communication/VdcOperation.java M frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/gwtservices/GenericApiGWTService.java M frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/GenericApiGWTServiceImpl.java M frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/FrontendActionTest.java M frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/communication/GWTRPCCommunicationProviderTest.java 10 files changed, 156 insertions(+), 67 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/82/24182/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 7640521..fd9cd00 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 @@ -20,6 +20,7 @@ import org.apache.commons.collections.KeyValue; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.exception.ExceptionUtils; +import org.ovirt.engine.core.bll.attestationbroker.AttestThread; import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.bll.interceptors.ThreadLocalSessionCleanerInterceptor; import org.ovirt.engine.core.bll.interfaces.BackendCommandObjectsHandler; @@ -74,7 +75,6 @@ import org.ovirt.engine.core.utils.log.LogFactory; import org.ovirt.engine.core.utils.osinfo.OsInfoPreferencesLoader; import org.ovirt.engine.core.utils.timer.SchedulerUtilQuartzImpl; -import org.ovirt.engine.core.bll.attestationbroker.AttestThread; // Here we use a Singleton Bean // The @Startup annotation is to make sure the bean is initialized on startup. @@ -504,13 +504,19 @@ @Override public ArrayList<VdcReturnValueBase> runMultipleActions(VdcActionType actionType, ArrayList<VdcActionParametersBase> parameters, boolean isRunOnlyIfAllCanDoPass) { + return runMultipleActions(actionType, parameters, isRunOnlyIfAllCanDoPass, false); + } + + @Override + public ArrayList<VdcReturnValueBase> runMultipleActions(VdcActionType actionType, + ArrayList<VdcActionParametersBase> parameters, boolean isRunOnlyIfAllCanDoPass, boolean waitForResult) { VdcReturnValueBase returnValue = notAllowToRunAction(actionType); if (returnValue != null) { ArrayList<VdcReturnValueBase> list = new ArrayList<VdcReturnValueBase>(); list.add(returnValue); return list; } else { - return runMultipleActionsImpl(actionType, parameters, false, isRunOnlyIfAllCanDoPass); + return runMultipleActionsImpl(actionType, parameters, false, isRunOnlyIfAllCanDoPass, waitForResult); } } @@ -518,13 +524,14 @@ @ExcludeClassInterceptors public ArrayList<VdcReturnValueBase> runInternalMultipleActions(VdcActionType actionType, ArrayList<VdcActionParametersBase> parameters) { - return runMultipleActionsImpl(actionType, parameters, true, false); + return runMultipleActionsImpl(actionType, parameters, true, false, false); } public ArrayList<VdcReturnValueBase> runMultipleActionsImpl(VdcActionType actionType, ArrayList<VdcActionParametersBase> parameters, boolean isInternal, boolean isRunOnlyIfAllCanDoPass, + boolean isWaitForResult, ExecutionContext executionContext) { String sessionId = ThreadLocalParamsContainer.getHttpSessionId(); if (!StringUtils.isEmpty(sessionId)) { @@ -538,6 +545,7 @@ parameters, isInternal); runner.setExecutionContext(executionContext); runner.setIsRunOnlyIfAllCanDoPass(isRunOnlyIfAllCanDoPass); + runner.setIsWaitForResult(isWaitForResult); return runner.execute(); } @@ -546,14 +554,16 @@ public ArrayList<VdcReturnValueBase> runInternalMultipleActions(VdcActionType actionType, ArrayList<VdcActionParametersBase> parameters, ExecutionContext executionContext) { - return runMultipleActionsImpl(actionType, parameters, true, false, executionContext); + return runMultipleActionsImpl(actionType, parameters, true, false, false, executionContext); } private ArrayList<VdcReturnValueBase> runMultipleActionsImpl(VdcActionType actionType, ArrayList<VdcActionParametersBase> parameters, boolean isInternal, - boolean isRunOnlyIfAllCanDoPass) { - return runMultipleActionsImpl(actionType, parameters, isInternal, isRunOnlyIfAllCanDoPass, null); + boolean isRunOnlyIfAllCanDoPass, + boolean isWaitForResult) { + return runMultipleActionsImpl(actionType, parameters, isInternal, isRunOnlyIfAllCanDoPass, isWaitForResult, + null); } @Override diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MultipleActionsRunner.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MultipleActionsRunner.java index 730839f..eaee39b 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MultipleActionsRunner.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MultipleActionsRunner.java @@ -20,9 +20,10 @@ private final static int CONCURRENT_ACTIONS = 10; private VdcActionType actionType = VdcActionType.Unknown; - private List<VdcActionParametersBase> parameters; + private final List<VdcActionParametersBase> parameters; private final ArrayList<CommandBase<?>> commands = new ArrayList<CommandBase<?>>(); protected boolean isInternal; + private boolean isWaitForResult = false; /** * Execute the actions only if CanDo of all the requests returns true @@ -88,7 +89,11 @@ } if (canRunActions) { - invokeCommands(); + if (isWaitForResult) { + invokeSyncCommands(); + } else { + invokeCommands(); + } } } catch (RuntimeException e) { log.error("Failed to execute multiple actions of type: " + actionType, e); @@ -162,12 +167,17 @@ }); } + protected void invokeSyncCommands() { + runCommands(); + } + /** * Executes commands which passed validation and creates monitoring objects. * * @param command * The command to execute */ + protected void executeValidatedCommand(CommandBase<?> command) { if (executionContext == null || executionContext.isMonitored()) { ExecutionHandler.prepareCommandForMonitoring(command, @@ -186,4 +196,8 @@ public void setIsRunOnlyIfAllCanDoPass(boolean isRunOnlyIfAllCanDoPass) { this.isRunOnlyIfAllCanDoPass = isRunOnlyIfAllCanDoPass; } + + public void setIsWaitForResult(boolean waitForResult) { + this.isWaitForResult = waitForResult; + } } 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 65f3e1c..7d597a2 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 @@ -24,6 +24,10 @@ java.util.ArrayList<VdcReturnValueBase> runMultipleActions(VdcActionType actionType, java.util.ArrayList<VdcActionParametersBase> parameters, + boolean isRunOnlyIfAllCanDoPass, boolean waitForResult); + + java.util.ArrayList<VdcReturnValueBase> runMultipleActions(VdcActionType actionType, + java.util.ArrayList<VdcActionParametersBase> parameters, boolean isRunOnlyIfAllCanDoPass); void initialize(); diff --git a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/Frontend.java b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/Frontend.java index 570ba06..dceea50 100644 --- a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/Frontend.java +++ b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/Frontend.java @@ -251,7 +251,7 @@ initQueryParamsFilter(parameters); final VdcOperation<VdcQueryType, VdcQueryParametersBase> operation = - new VdcOperation<VdcQueryType, VdcQueryParametersBase>(queryType, parameters, isPublic, + new VdcOperation<VdcQueryType, VdcQueryParametersBase>(queryType, parameters, isPublic, false, new VdcOperationCallback<VdcOperation<VdcQueryType, VdcQueryParametersBase>, VdcQueryReturnValue>() { @Override public void onSuccess(final VdcOperation<VdcQueryType, VdcQueryParametersBase> operation, @@ -384,7 +384,7 @@ parameters.setRefresh(false); // Why do we do this? initQueryParamsFilter(parameters); operationList.add(new VdcOperation<VdcQueryType, VdcQueryParametersBase>(queryTypeList.get(i), - parameters, multiCallback)); + parameters, true, multiCallback)); } raiseQueryStartedEvent(queryTypeList, context); @@ -575,7 +575,7 @@ List<VdcOperation<?, ?>> operationList = new ArrayList<VdcOperation<?, ?>>(); for (VdcActionParametersBase parameter: parameters) { VdcOperation<VdcActionType, VdcActionParametersBase> operation = new VdcOperation<VdcActionType, - VdcActionParametersBase>(actionType, parameter, multiCallback); + VdcActionParametersBase>(actionType, parameter, true, multiCallback); operationList.add(operation); } if (operationList.isEmpty()) { diff --git a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/communication/GWTRPCCommunicationProvider.java b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/communication/GWTRPCCommunicationProvider.java index 8fa4001..a3d8f23 100644 --- a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/communication/GWTRPCCommunicationProvider.java +++ b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/communication/GWTRPCCommunicationProvider.java @@ -228,47 +228,71 @@ if (parameters.size() > 1 || (allActionOperations.size() == 1 && allActionOperations.get(0).getCallback() instanceof VdcOperationCallbackList)) { - getService().RunMultipleActions(actionEntry.getKey(), (ArrayList<VdcActionParametersBase>) parameters, false, - new AsyncCallback<ArrayList<VdcReturnValueBase>>() { - - @Override - public void onFailure(final Throwable exception) { - Map<VdcOperationCallback<?, ?>, List<VdcOperation<?, ?>>> callbackMap = - getCallbackMap(actionEntry.getValue()); - for (Map.Entry<VdcOperationCallback<?, ?>, List<VdcOperation<?, ?>>> callbackEntry: callbackMap.entrySet()) { - if (callbackEntry.getKey() instanceof VdcOperationCallbackList) { - ((VdcOperationCallbackList) callbackEntry.getKey()).onFailure(callbackEntry.getValue(), exception); - } else { - ((VdcOperationCallback) callbackEntry.getKey()).onFailure(callbackEntry.getValue().get(0), - exception); - } - } - } - - @Override - public void onSuccess(final ArrayList<VdcReturnValueBase> result) { - Map<VdcOperationCallback<?, ?>, List<VdcOperation<?, ?>>> callbackMap = - getCallbackMap(actionEntry.getValue()); - for (Map.Entry<VdcOperationCallback<?, ?>, List<VdcOperation<?, ?>>> callbackEntry: callbackMap.entrySet()) { - List<VdcReturnValueBase> actionResult = (List<VdcReturnValueBase>) - getOperationResult(callbackEntry.getValue(), allActionOperations, result); - if (callbackEntry.getKey() instanceof VdcOperationCallbackList) { - ((VdcOperationCallbackList) callbackEntry.getKey()).onSuccess(callbackEntry.getValue(), - actionResult); - } else { - ((VdcOperationCallback) callbackEntry.getKey()).onSuccess(callbackEntry.getValue().get(0), - actionResult.get(0)); - } - } - } - - }); + List<VdcOperation<?, ?>> waitForResultList = getWaitForResultList(actionEntry.getValue()); + if (!waitForResultList.isEmpty()) { + runMultipleActions(actionEntry.getKey(), waitForResultList, parameters, allActionOperations, + true); + } + if (waitForResultList.size() != actionEntry.getValue().size()) { + List<VdcOperation<?, ?>> immediateReturnList = actionEntry.getValue(); + immediateReturnList.removeAll(waitForResultList); //Don't care if it succeeds or not. + runMultipleActions(actionEntry.getKey(), immediateReturnList, parameters, allActionOperations, + false); + } } else if (actionEntry.getValue().size() == 1) { transmitOperation(actionEntry.getValue().get(0)); } } } + private List<VdcOperation<?, ?>> getWaitForResultList(List<VdcOperation<?, ?>> originalList) { + List<VdcOperation<?, ?>> result = new ArrayList<VdcOperation<?, ?>>(); + for (VdcOperation<?, ?> operation: originalList) { + if (!operation.isFromList()) { + result.add(operation); + } + } + return result; + } + + private void runMultipleActions(final VdcActionType actionType, final List<VdcOperation<?, ?>> operations, + List<VdcActionParametersBase> parameters, final List<VdcOperation<?, ?>> allActionOperations, + final boolean waitForResults) { + getService().RunMultipleActions(actionType, (ArrayList<VdcActionParametersBase>) parameters, + false, waitForResults, new AsyncCallback<ArrayList<VdcReturnValueBase>>() { + + @Override + public void onFailure(final Throwable exception) { + Map<VdcOperationCallback<?, ?>, List<VdcOperation<?, ?>>> callbackMap = + getCallbackMap(operations); + for (Map.Entry<VdcOperationCallback<?, ?>, List<VdcOperation<?, ?>>> callbackEntry: callbackMap.entrySet()) { + if (callbackEntry.getKey() instanceof VdcOperationCallbackList) { + ((VdcOperationCallbackList) callbackEntry.getKey()).onFailure(callbackEntry.getValue(), exception); + } else { + ((VdcOperationCallback) callbackEntry.getKey()).onFailure(callbackEntry.getValue().get(0), + exception); + } + } + } + + @Override + public void onSuccess(final ArrayList<VdcReturnValueBase> result) { + Map<VdcOperationCallback<?, ?>, List<VdcOperation<?, ?>>> callbackMap = + getCallbackMap(operations); + for (Map.Entry<VdcOperationCallback<?, ?>, List<VdcOperation<?, ?>>> callbackEntry: callbackMap.entrySet()) { + List<VdcReturnValueBase> actionResult = (List<VdcReturnValueBase>) + getOperationResult(callbackEntry.getValue(), allActionOperations, result); + if (callbackEntry.getKey() instanceof VdcOperationCallbackList) { + ((VdcOperationCallbackList) callbackEntry.getKey()).onSuccess(callbackEntry.getValue(), + actionResult); + } else { + ((VdcOperationCallback) callbackEntry.getKey()).onSuccess(callbackEntry.getValue().get(0), + actionResult.get(0)); + } + } + } + }); + } /** * Map operations by callback, so we can properly call a single callback for all related operations. * @param operationList The list of operations to determine the map for. diff --git a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/communication/VdcOperation.java b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/communication/VdcOperation.java index fe17dd1..10af440 100644 --- a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/communication/VdcOperation.java +++ b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/communication/VdcOperation.java @@ -41,21 +41,28 @@ private final boolean isAction; /** + * If {@code true}, this operation was part of a list of operations before being split into a single operation. + */ + private final boolean isFromList; + + /** * Private constructor that initializes the final members. * @param operation The operation. * @param param The parameter for the operation. * @param callback The callback to call when the operation is finished. * @param sourceOperation If we cloned an operation this is the source it came from. * @param isPublicOperation Determines if this operation should be public or not. + * @param fromList Shows if the operation came from a list of operations, before being split. */ private VdcOperation(final T operation, final P param, final VdcOperationCallback<?, ?> callback, - final VdcOperation<T, P> sourceOperation, final boolean isPublicOperation) { + final VdcOperation<T, P> sourceOperation, final boolean isPublicOperation, final boolean fromList) { if (operation instanceof VdcActionType) { this.isAction = true; } else if (operation instanceof VdcQueryType) { this.isAction = false; } else { - throw new IllegalArgumentException("Operation type must be either VdcActionType or VdcQueryType"); //$NON-NLS-1$ + throw new IllegalArgumentException( + "Operation type must be either VdcActionType or VdcQueryType"); //$NON-NLS-1$ } this.operationType = operation; @@ -63,6 +70,7 @@ this.operationCallback = callback; this.source = sourceOperation; this.isPublic = isPublicOperation; + this.isFromList = fromList; } /** @@ -72,7 +80,7 @@ */ public VdcOperation(final VdcOperation<T, P> sourceOperation, final VdcOperationCallback<?, ?> callback) { this(sourceOperation.getOperation(), sourceOperation.getParameter(), callback, sourceOperation, - sourceOperation.isPublic()); + sourceOperation.isPublic(), sourceOperation.isFromList); } /** @@ -82,7 +90,19 @@ * @param callback The callback to call when the operation is finished. */ public VdcOperation(final T operation, final P operationParameter, final VdcOperationCallback<?, ?> callback) { - this(operation, operationParameter, callback, null, false); + this(operation, operationParameter, callback, null, false, false); + } + + /** + * Constructor. + * @param operation The operation to set. + * @param operationParameter The parameter for the operation. + * @param fromList Is the operation originally from a list. + * @param callback The callback to call when the operation is finished. + */ + public VdcOperation(final T operation, final P operationParameter, final boolean fromList, + final VdcOperationCallback<?, ?> callback) { + this(operation, operationParameter, callback, null, false, fromList); } /** @@ -93,8 +113,8 @@ * @param callback The callback to call when the operation is finished. */ public VdcOperation(final T operation, final P operationParameter, final boolean isPublicOperation, - final VdcOperationCallback<?, ?> callback) { - this(operation, operationParameter, callback, null, isPublicOperation); + final boolean fromList, final VdcOperationCallback<?, ?> callback) { + this(operation, operationParameter, callback, null, isPublicOperation, fromList); } /** @@ -195,4 +215,8 @@ return result; } + public boolean isFromList() { + return isFromList; + } + } diff --git a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/gwtservices/GenericApiGWTService.java b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/gwtservices/GenericApiGWTService.java index 746111d..69d102d 100644 --- a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/gwtservices/GenericApiGWTService.java +++ b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/gwtservices/GenericApiGWTService.java @@ -34,6 +34,11 @@ ArrayList<VdcActionParametersBase> multipleParams, boolean isRunOnlyIfAllCanDoPass); + public ArrayList<VdcReturnValueBase> RunMultipleActions( + VdcActionType actionType, + ArrayList<VdcActionParametersBase> multipleParams, + boolean isRunOnlyIfAllCanDoPass, boolean isWaitForResult); + public DbUser getLoggedInUser(); public VdcReturnValueBase logOff(DbUser userToLogoff); diff --git a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/GenericApiGWTServiceImpl.java b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/GenericApiGWTServiceImpl.java index f4aab21..68979c0 100644 --- a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/GenericApiGWTServiceImpl.java +++ b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/server/gwt/GenericApiGWTServiceImpl.java @@ -103,6 +103,12 @@ @Override public ArrayList<VdcReturnValueBase> RunMultipleActions(VdcActionType actionType, ArrayList<VdcActionParametersBase> multipleParams, boolean isRunOnlyIfAllCanDoPass) { + return RunMultipleActions(actionType, multipleParams, isRunOnlyIfAllCanDoPass, false); + } + + @Override + public ArrayList<VdcReturnValueBase> RunMultipleActions(VdcActionType actionType, + ArrayList<VdcActionParametersBase> multipleParams, boolean isRunOnlyIfAllCanDoPass, boolean isWaitForResult) { log.debug("Server: RunMultipleAction invoked! [amount of actions: " + multipleParams.size() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ for (VdcActionParametersBase params : multipleParams) { @@ -110,7 +116,7 @@ } ArrayList<VdcReturnValueBase> returnValues = - getBackend().runMultipleActions(actionType, multipleParams, isRunOnlyIfAllCanDoPass); + getBackend().runMultipleActions(actionType, multipleParams, isRunOnlyIfAllCanDoPass, isWaitForResult); return returnValues; } diff --git a/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/FrontendActionTest.java b/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/FrontendActionTest.java index b818c3d..3c41bbd 100644 --- a/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/FrontendActionTest.java +++ b/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/FrontendActionTest.java @@ -128,7 +128,7 @@ frontend.runMultipleAction(VdcActionType.AddLocalStorageDomain, parameters, false, mockMultipleActionCallback, null); verify(mockService).RunMultipleActions(eq(VdcActionType.AddLocalStorageDomain), eq(parameters), eq(false), - callbackMultipleActions.capture()); + eq(false), callbackMultipleActions.capture()); StatusCodeException exception = new StatusCodeException(0, "0 status code"); //$NON-NLS-1$ callbackMultipleActions.getValue().onFailure(exception); verify(mockFrontendFailureEvent, never()).raise(eq(Frontend.class), (FrontendFailureEventArgs) any()); @@ -152,7 +152,7 @@ frontend.runMultipleAction(VdcActionType.AddLocalStorageDomain, parameters, false, mockMultipleActionCallback, testState); verify(mockService).RunMultipleActions(eq(VdcActionType.AddLocalStorageDomain), eq(parameters), eq(false), - callbackMultipleActions.capture()); + eq(false), callbackMultipleActions.capture()); StatusCodeException exception = new StatusCodeException(HttpServletResponse.SC_NOT_FOUND, "404 status code"); //$NON-NLS-1$ callbackMultipleActions.getValue().onFailure(exception); @@ -186,7 +186,7 @@ frontend.runMultipleAction(VdcActionType.AddLocalStorageDomain, parameters, false, mockMultipleActionCallback, testState); verify(mockService).RunMultipleActions(eq(VdcActionType.AddLocalStorageDomain), eq(parameters), eq(false), - callbackMultipleActions.capture()); + eq(false), callbackMultipleActions.capture()); ArrayList<VdcReturnValueBase> returnValues = new ArrayList<VdcReturnValueBase>(); returnValues.add(new VdcReturnValueBase()); returnValues.add(new VdcReturnValueBase()); @@ -223,7 +223,7 @@ frontend.runMultipleAction(VdcActionType.AddLocalStorageDomain, parameters, false, mockMultipleActionCallback, testState); verify(mockService).RunMultipleActions(eq(VdcActionType.AddLocalStorageDomain), eq(parameters), eq(false), - callbackMultipleActions.capture()); + eq(false), callbackMultipleActions.capture()); ArrayList<VdcReturnValueBase> returnValues = new ArrayList<VdcReturnValueBase>(); returnValues.add(new VdcReturnValueBase()); returnValues.add(new VdcReturnValueBase()); @@ -270,7 +270,7 @@ frontend.runMultipleAction(VdcActionType.AddLocalStorageDomain, parameters, false, mockMultipleActionCallback, testState); verify(mockService).RunMultipleActions(eq(VdcActionType.AddLocalStorageDomain), eq(parameters), eq(false), - callbackMultipleActions.capture()); + eq(false), callbackMultipleActions.capture()); ArrayList<VdcReturnValueBase> returnValues = new ArrayList<VdcReturnValueBase>(); returnValues.add(new VdcReturnValueBase()); returnValues.add(new VdcReturnValueBase()); diff --git a/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/communication/GWTRPCCommunicationProviderTest.java b/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/communication/GWTRPCCommunicationProviderTest.java index cbee65c..a8283c2 100644 --- a/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/communication/GWTRPCCommunicationProviderTest.java +++ b/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/communication/GWTRPCCommunicationProviderTest.java @@ -264,7 +264,8 @@ testList.add(testOperation2); testProvider.transmitOperationList(testList); verify(mockService).RunMultipleActions(eq(VdcActionType.ActivateVds), - (ArrayList<VdcActionParametersBase>) eq(testParameterList), eq(false), actionCallbackList.capture()); + (ArrayList<VdcActionParametersBase>) eq(testParameterList), eq(false), eq(true), + actionCallbackList.capture()); actionCallbackList.getValue().onSuccess((ArrayList<VdcReturnValueBase>) testResultList); verify(mockOperationCallbackList1).onSuccess(eq(testList), eq(testResultList)); } @@ -284,7 +285,8 @@ testList.add(testOperation2); testProvider.transmitOperationList(testList); verify(mockService).RunMultipleActions(eq(VdcActionType.ActivateVds), - (ArrayList<VdcActionParametersBase>) eq(testParameterList), eq(false), actionCallbackList.capture()); + (ArrayList<VdcActionParametersBase>) eq(testParameterList), eq(false), eq(true), + actionCallbackList.capture()); Exception testException = new Exception("Failure"); //$NON-NLS-1$ actionCallbackList.getValue().onFailure(testException); verify(mockOperationCallbackList1).onFailure(eq(testList), eq(testException)); @@ -303,8 +305,8 @@ new VdcOperation<VdcActionType, VdcActionParametersBase>(VdcActionType.ActivateVds, testParameters, mockOperationCallbackList1); VdcOperation<VdcActionType, VdcActionParametersBase> testOperation3 = - new VdcOperation<VdcActionType, VdcActionParametersBase>(VdcActionType.ActivateStorageDomain, testParameters, - mockOperationCallbackSingle2); + new VdcOperation<VdcActionType, VdcActionParametersBase>(VdcActionType.ActivateStorageDomain, + testParameters, mockOperationCallbackSingle2); testList.add(testOperation1); testList.add(testOperation2); testList.add(testOperation3); @@ -315,7 +317,7 @@ List<VdcReturnValueBase> activateVdsResultList = createActionResultList(testResult, 2); testProvider.transmitOperationList(testList); verify(mockService).RunMultipleActions(eq(VdcActionType.ActivateVds), - (ArrayList<VdcActionParametersBase>) eq(activateVdsParameterList), eq(false), + (ArrayList<VdcActionParametersBase>) eq(activateVdsParameterList), eq(false), eq(true), actionCallbackList.capture()); verify(mockService).RunAction(eq(VdcActionType.ActivateStorageDomain), eq(testParameters), actionCallback.capture()); @@ -350,7 +352,7 @@ List<VdcReturnValueBase> activateVdsResultList = createActionResultList(testResult, 2); testProvider.transmitOperationList(testList); verify(mockService).RunMultipleActions(eq(VdcActionType.ActivateVds), - (ArrayList<VdcActionParametersBase>) eq(activateVdsParameterList), eq(false), + (ArrayList<VdcActionParametersBase>) eq(activateVdsParameterList), eq(false), eq(true), actionCallbackList.capture()); verify(mockService).RunAction(eq(VdcActionType.ActivateStorageDomain), eq(testParameters), actionCallback.capture()); @@ -478,7 +480,7 @@ VdcQueryParametersBase testQueryParameters = new VdcQueryParametersBase(); VdcOperation<VdcQueryType, VdcQueryParametersBase> testOperation1 = new VdcOperation<VdcQueryType, VdcQueryParametersBase>(VdcQueryType.Search, testQueryParameters, true, - mockOperationCallbackSingle1); + false, mockOperationCallbackSingle1); List<VdcOperation<?, ?>> operationList = new ArrayList<VdcOperation<?, ?>>(); operationList.add(testOperation1); testProvider.transmitOperationList(operationList); @@ -493,10 +495,10 @@ VdcQueryParametersBase testQueryParameters = new VdcQueryParametersBase(); VdcOperation<VdcQueryType, VdcQueryParametersBase> testOperation1 = new VdcOperation<VdcQueryType, VdcQueryParametersBase>(VdcQueryType.Search, testQueryParameters, true, - mockOperationCallbackSingle1); + false, mockOperationCallbackSingle1); VdcOperation<VdcQueryType, VdcQueryParametersBase> testOperation2 = new VdcOperation<VdcQueryType, VdcQueryParametersBase>(VdcQueryType.GetConfigurationValues, - testQueryParameters, true, mockOperationCallbackSingle2); + testQueryParameters, true, false, mockOperationCallbackSingle2); List<VdcOperation<?, ?>> operationList = new ArrayList<VdcOperation<?, ?>>(); operationList.add(testOperation1); operationList.add(testOperation2); -- To view, visit http://gerrit.ovirt.org/24182 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I935f4257e731de719540db9d79d5865537be228d Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.4 Gerrit-Owner: Alexander Wels <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
