@Override public void onFailure(final List<VdcOperation<ActionType, ActionParametersBase>> operation, final Throwable caught) { if (ignoreFailure(caught)) { return; } logger.log(Level.SEVERE, "Failed to execute runMultipleAction: " + caught, caught); //$NON-NLS-1$ failureEventHandler(caught); if (callback != null) { callback.executed(new FrontendMultipleActionAsyncResult(actionType, parameters, null, state)); } fireAsyncActionFailedEvent(state); } };
protected void executeImport(ImportTemplatesModel model) { model.executeImport(cloneObjectMap, result -> { boolean isAllValidatePassed = true; for (ActionReturnValue returnValueBase : result.getReturnValue()) { if (!returnValueBase.isValid()) { isAllValidatePassed = false; break; } } if (isAllValidatePassed) { setWindow(null); } }); }
private void onRemove() { final ConfirmationModel model = (ConfirmationModel) getWindow(); if (model.getProgress() != null) { return; } final ArrayList<ActionParametersBase> list = new ArrayList<>(); for (Entry<Guid, EntityModel> entry : vmsRemoveMap.entrySet()) { list.add(new RemoveVmParameters(entry.getKey(), false, (Boolean) entry.getValue().getEntity())); } model.startProgress(); Frontend.getInstance().runMultipleAction(ActionType.RemoveVm, list, result -> { ConfirmationModel localModel = (ConfirmationModel) result.getState(); localModel.stopProgress(); cancel(); }, model); }
public FrontendMultipleActionAsyncResult(ActionType actionType, java.util.List<ActionParametersBase> parameters, java.util.List<ActionReturnValue> returnValue) { setActionType(actionType); setParameters(parameters); setReturnValues(returnValue); }
verify(mockFrontendFailureEvent, never()).raise(eq(Frontend.class), (FrontendFailureEventArgs) any()); verify(mockMultipleActionCallback).executed(callbackMultipleParam.capture()); assertEquals(parameters, callbackMultipleParam.getValue().getParameters(), "Parameters should match"); //$NON-NLS-1$ assertEquals(returnValues, callbackMultipleParam.getValue().getReturnValue(), "Result should match"); //$NON-NLS-1$ assertEquals(testState, callbackMultipleParam.getValue().getState(), "States should match"); //$NON-NLS-1$ verifyAsyncActionStartedAndSucceeded();
/** * Run the following test case. * <ol> * <li>Run a multiple actions, a single action</li> * <li>Force a failure with an HTTP status code = 404</li> * <li>Check to make sure the failure event is fired</li> * <li>Check to make sure the proper values are passed to the callback.</li> * </ol> */ @Test public void testrunMultipleActions_404_failure_multiple() { ArrayList<ActionParametersBase> parameters = new ArrayList<>(); parameters.add(new ActionParametersBase()); frontend.runMultipleAction(ActionType.AddLocalStorageDomain, parameters, false, mockMultipleActionCallback, testState); verify(mockService).runMultipleActions(eq(ActionType.AddLocalStorageDomain), eq(parameters), eq(false), eq(false), callbackMultipleActions.capture()); StatusCodeException exception = new StatusCodeException(HttpServletResponse.SC_NOT_FOUND, "404 status code"); //$NON-NLS-1$ callbackMultipleActions.getValue().onFailure(exception); verify(mockFrontendFailureEvent).raise(eq(Frontend.class), (FrontendFailureEventArgs) any()); verify(mockMultipleActionCallback).executed(callbackMultipleParam.capture()); assertEquals(ActionType.AddLocalStorageDomain, callbackMultipleParam.getValue().getActionType(), "ActionType should be 'AddLocalStorageDomain'"); //$NON-NLS-1$ assertEquals(parameters, callbackMultipleParam.getValue().getParameters(), "Parameters should match"); //$NON-NLS-1$ assertNull(callbackMultipleParam.getValue().getReturnValue(), "There should be no result"); //$NON-NLS-1$ assertEquals(testState, callbackMultipleParam.getValue().getState(), "States should match"); //$NON-NLS-1$ verifyAsyncActionStartedAndFailed(); }
@Override public void executed(FrontendMultipleActionAsyncResult result) { final DataCenterGuideModel dataCenterGuideModel = (DataCenterGuideModel) result.getState(); List<MoveHostData> hosts = ((MoveHost) dataCenterGuideModel.getWindow()).getSelectedHosts(); List<ActionReturnValue> retVals = result.getReturnValue(); final List<ActionParametersBase> activateVdsParameterList = new ArrayList<>(); if (retVals != null && hosts.size() == retVals.size()) {
public FrontendMultipleActionAsyncResult(ActionType actionType, java.util.List<ActionParametersBase> parameters, java.util.List<ActionReturnValue> returnValue, Object state) { this(actionType, parameters, returnValue); setState(state); } }
assertEquals(returnValues.get(1), failedCaptor.getValue().get(0), "Failures should match"); //$NON-NLS-1$ verify(mockMultipleActionCallback).executed(callbackMultipleParam.capture()); assertEquals(parameters, callbackMultipleParam.getValue().getParameters(), "Parameters should match"); //$NON-NLS-1$ assertEquals(returnValues, callbackMultipleParam.getValue().getReturnValue(), "Result should match"); //$NON-NLS-1$ assertEquals(testState, callbackMultipleParam.getValue().getState(), "States should match"); //$NON-NLS-1$ verifyAsyncActionStartedAndSucceeded();
), result -> { DataCenterListModel localModel = (DataCenterListModel) result.getState(); localModel.postOnSaveInternal(result.getReturnValue().get(0)); }, this);
private void onRemove() { ConfirmationModel model = (ConfirmationModel) getWindow(); ArrayList<ActionParametersBase> paramerterList = new ArrayList<>(); Map<Guid, List<Guid>> diskImageIdsMap = groupImageIdsByDiskId(getSelectedItems()); for (List<Guid> imageIds : diskImageIdsMap.values()) { RemoveDiskSnapshotsParameters parameters = new RemoveDiskSnapshotsParameters(new ArrayList<>(imageIds)); paramerterList.add(parameters); } model.startProgress(); Frontend.getInstance().runMultipleAction(ActionType.RemoveDiskSnapshots, paramerterList, result -> { StorageSnapshotListModel localModel = (StorageSnapshotListModel) result.getState(); localModel.stopProgress(); cancel(); }, this); }
assertEquals(returnValues.get(3), failedCaptor.getValue().get(1), "Failures should match"); //$NON-NLS-1$ verify(mockMultipleActionCallback).executed(callbackMultipleParam.capture()); assertEquals(parameters, callbackMultipleParam.getValue().getParameters(), "Parameters should match"); //$NON-NLS-1$ assertEquals(returnValues, callbackMultipleParam.getValue().getReturnValue(), "Result should match"); //$NON-NLS-1$ assertEquals(testState, callbackMultipleParam.getValue().getState(), "States should match"); //$NON-NLS-1$ verifyAsyncActionStartedAndSucceeded();
@Override public void executeCommand(UICommand uiCommand) { model.onRestoreVms( result -> { boolean isAllValidatePassed = true; for (ActionReturnValue returnValueBase : result.getReturnValue()) { if (!returnValueBase.isValid()) { isAllValidatePassed = false; break; } } if (isAllValidatePassed) { setWindow(null); } }); } }).setTitle(ConstantsManager.getInstance().getConstants().ok())
@Override public void onSuccess(final List<VdcOperation<ActionType, ActionParametersBase>> operationList, final List<ActionReturnValue> resultObject) { logger.finer("Frontend: successfully executed runMultipleAction, determining result!"); //$NON-NLS-1$ List<ActionReturnValue> failed = resultObject.stream() .filter(v -> !v.isValid()) .collect(Collectors.toList()); if (showErrorDialog && !failed.isEmpty()) { translateErrors(failed); getEventsHandler().runMultipleActionFailed(actionType, failed); } if (callback != null) { callback.executed(new FrontendMultipleActionAsyncResult(actionType, parameters, resultObject, state)); } fireAsyncActionSucceededEvent(state); }
public void postDetach(Model model) { Frontend.getInstance().runMultipleAction(ActionType.RemoveStorageDomain, getRemoveParams(), outerResult -> { Object[] array = (Object[]) outerResult.getState(); ConfirmationModel localModel1 = (ConfirmationModel) array[0]; List<ActionParametersBase> parameters = (List<ActionParametersBase>) array[1]; Frontend.getInstance().runMultipleAction(ActionType.DetachStorageDomainFromPool, parameters, innerResult -> { ConfirmationModel localModel2 = (ConfirmationModel) innerResult.getState(); localModel2.stopProgress(); cancel(); }, localModel1); }, new Object[] { model, getDetachParams() }); }
private IFrontendMultipleActionAsyncCallback createCallback() { return result -> { boolean hasError = false; for (ActionReturnValue singleResult : result.getReturnValue()) { if (!singleResult.isValid() || (waitForResult && !singleResult.getSucceeded())) { hasError = true; getActionFlowState().addFailure(actionType, singleResult); } } if (hasError && !runNextInCaseOfError) { then(null); } runNextAction(); }; }
callback.executed(new FrontendMultipleActionAsyncResult(actionType, parameters, resultObject, state)); callback.executed(new FrontendMultipleActionAsyncResult(actionType, parameters, null, state)); if (callback != null) { List<ActionReturnValue> emptyResult = new ArrayList<>(); callback.executed(new FrontendMultipleActionAsyncResult(actionType, parameters, emptyResult, state));
public void executeAttachStorageDomains(Model model) { ArrayList<ActionParametersBase> parameters = new ArrayList<>(); for (StoragePool dataCenter : getSelectedDataCentersForAttach()) { parameters.add(new AttachStorageDomainToPoolParameters(getEntity().getId(), dataCenter.getId())); } Frontend.getInstance().runMultipleAction(ActionType.AttachStorageDomainToPool, parameters, result -> { ListModel localModel = (ListModel) result.getState(); localModel.stopProgress(); cancel(); }, model); }
templateBackupModel.getWindow().stopProgress(); templateBackupModel.cancel(); List<ActionReturnValue> retVals = result.getReturnValue(); if (retVals != null && templateBackupModel.getSelectedItems().size() == retVals.size()) {
private void executeCallbacks(boolean success, ActionFlowState flowState, List<IFrontendMultipleActionAsyncCallback> callbacks, boolean waitForResult) { Collections.shuffle(callbacks); for (IFrontendMultipleActionAsyncCallback callback : callbacks) { assertNotAllDone(flowState); ActionReturnValue result = new ActionReturnValue(); result.setValid(waitForResult || success); result.setSucceeded(waitForResult && success); callback.executed(new FrontendMultipleActionAsyncResult(ACTION_TYPE, null, Collections.singletonList(result))); } }