use of org.ovirt.engine.core.common.action.ActionParametersBase in project ovirt-engine by oVirt.
the class OperationProcessorTest method testOnOperationAvailableMultipleAction_failure.
@Test
public void testOnOperationAvailableMultipleAction_failure() {
ActionParametersBase testParameter = new ActionParametersBase();
VdcOperation testOperation1 = new VdcOperation(ActionType.AddEventSubscription, testParameter, mockCallback1);
VdcOperation testOperation2 = new VdcOperation(ActionType.AddEventSubscription, testParameter, mockCallback2);
when(mockOperationManager.pollOperation()).thenReturn(testOperation1).thenReturn(testOperation2).thenReturn(null);
testProcessor.processAvailableOperations(mockOperationManager);
verify(mockProvider).transmitOperationList(operationListCaptor.capture());
assertFalse("The callbacks should not match", // $NON-NLS-1$
operationListCaptor.getValue().get(0).getCallback().equals(mockCallback1));
assertFalse("The callbacks should not match", // $NON-NLS-1$
operationListCaptor.getValue().get(1).getCallback().equals(mockCallback2));
// $NON-NLS-1$
Exception testException = new Exception("this is an exception");
operationListCaptor.getValue().get(0).getCallback().onFailure(operationListCaptor.getValue().get(0), testException);
verify(mockCallback1).onFailure(testOperation1, testException);
operationListCaptor.getValue().get(0).getCallback().onFailure(operationListCaptor.getValue().get(1), testException);
verify(mockCallback2).onFailure(testOperation2, testException);
}
use of org.ovirt.engine.core.common.action.ActionParametersBase in project ovirt-engine by oVirt.
the class OperationProcessorTest method testOnOperationAvailableSingle.
@Test
public void testOnOperationAvailableSingle() {
ActionParametersBase testParameter = new ActionParametersBase();
VdcOperation<ActionType, ActionParametersBase> testOperation = new VdcOperation<>(ActionType.AddEventSubscription, testParameter, mockCallback1);
when(mockOperationManager.pollOperation()).thenReturn((VdcOperation) testOperation).thenReturn(null);
testProcessor.processAvailableOperations(mockOperationManager);
verify(mockProvider).transmitOperationList(operationListCaptor.capture());
// Test that we inserted the callback from the processor.
assertFalse(// $NON-NLS-1$
"The callbacks should not match.", operationListCaptor.getValue().get(0).getCallback().equals(mockCallback1));
}
use of org.ovirt.engine.core.common.action.ActionParametersBase in project ovirt-engine by oVirt.
the class OperationProcessorTest method testOnOperationAvailableMultiple_success.
@Test
public void testOnOperationAvailableMultiple_success() {
ActionParametersBase testParameter = new ActionParametersBase();
VdcOperation testOperation1 = new VdcOperation(ActionType.AddEventSubscription, testParameter, mockCallback1);
VdcOperation testOperation2 = new VdcOperation(ActionType.AddEventSubscription, testParameter, mockCallback2);
when(mockOperationManager.pollOperation()).thenReturn(testOperation1).thenReturn(testOperation2).thenReturn(null);
testProcessor.processAvailableOperations(mockOperationManager);
verify(mockProvider).transmitOperationList(operationListCaptor.capture());
assertFalse("The callbacks should not match", // $NON-NLS-1$
operationListCaptor.getValue().get(0).getCallback().equals(mockCallback1));
assertFalse("The callbacks should not match", // $NON-NLS-1$
operationListCaptor.getValue().get(1).getCallback().equals(mockCallback2));
List<ActionReturnValue> resultList1 = new ArrayList<>();
List<ActionReturnValue> resultList2 = new ArrayList<>();
ActionReturnValue result1 = new ActionReturnValue();
ActionReturnValue result2 = new ActionReturnValue();
resultList1.add(result1);
resultList2.add(result2);
operationListCaptor.getValue().get(0).getCallback().onSuccess(operationListCaptor.getValue().get(0), resultList1);
verify(mockCallback1).onSuccess(testOperation1, resultList1);
operationListCaptor.getValue().get(1).getCallback().onSuccess(operationListCaptor.getValue().get(1), resultList2);
verify(mockCallback2).onSuccess(testOperation2, resultList2);
}
use of org.ovirt.engine.core.common.action.ActionParametersBase in project ovirt-engine by oVirt.
the class ClusterGlusterHookListModel method enableHook.
private void enableHook() {
if (getEntity() == null || getSelectedItems() == null || getSelectedItems().size() == 0) {
return;
}
ArrayList<ActionParametersBase> list = new ArrayList<>();
for (GlusterHookEntity hook : getSelectedItems()) {
list.add(new GlusterHookParameters(hook.getId()));
}
Frontend.getInstance().runMultipleAction(ActionType.EnableGlusterHook, list, null, null);
}
use of org.ovirt.engine.core.common.action.ActionParametersBase in project ovirt-engine by oVirt.
the class ClusterGlusterHookListModel method onResolveConflicts.
/*
* If there are multiple types of conflicts found for a hook and the user choose to resolve them. The conflicts will
* be resolved in the following order 1)Content Conflict, 2)Status Conflict, 3)Missing Conflict
*
* If any conflict resolution is failed the next one will not be executed
*/
private void onResolveConflicts() {
final GlusterHookResolveConflictsModel resolveConflictsModel = (GlusterHookResolveConflictsModel) getWindow();
if (resolveConflictsModel == null) {
return;
}
if (!resolveConflictsModel.isAnyResolveActionSelected()) {
resolveConflictsModel.setMessage(ConstantsManager.getInstance().getConstants().noResolveActionSelectedGlusterHook());
return;
}
resolveConflictsModel.startProgress();
GlusterHookEntity hookEntity = resolveConflictsModel.getGlusterHookEntity();
ArrayList<ActionType> actionTypes = new ArrayList<>();
ArrayList<ActionParametersBase> parameters = new ArrayList<>();
ArrayList<IFrontendActionAsyncCallback> callbacks = new ArrayList<>();
if (resolveConflictsModel.getResolveContentConflict().getEntity()) {
actionTypes.add(ActionType.UpdateGlusterHook);
GlusterServerHook serverHook = resolveConflictsModel.getServerHooksList().getSelectedItem();
Guid serverId = (serverHook == null) ? null : serverHook.getServerId();
parameters.add(new GlusterHookManageParameters(hookEntity.getId(), serverId));
IFrontendActionAsyncCallback callback = result -> {
if (result.getReturnValue().getSucceeded()) {
resolveConflictsModel.getResolveContentConflict().setEntity(Boolean.FALSE);
resolveConflictsModel.getResolveContentConflict().setIsChangeable(Boolean.FALSE);
}
};
callbacks.add(callback);
}
if (resolveConflictsModel.getResolveStatusConflict().getEntity()) {
boolean isEnable = resolveConflictsModel.getResolveStatusConflictEnable().getEntity();
actionTypes.add(isEnable ? ActionType.EnableGlusterHook : ActionType.DisableGlusterHook);
parameters.add(new GlusterHookParameters(hookEntity.getId()));
IFrontendActionAsyncCallback callback = result -> {
if (result.getReturnValue().getSucceeded()) {
resolveConflictsModel.getResolveStatusConflict().setEntity(Boolean.FALSE);
resolveConflictsModel.getResolveStatusConflict().setIsChangeable(Boolean.FALSE);
}
};
callbacks.add(callback);
}
if (resolveConflictsModel.getResolveMissingConflict().getEntity()) {
boolean isAdd = resolveConflictsModel.getResolveMissingConflictCopy().getEntity();
actionTypes.add(isAdd ? ActionType.AddGlusterHook : ActionType.RemoveGlusterHook);
parameters.add(new GlusterHookManageParameters(hookEntity.getId()));
IFrontendActionAsyncCallback callback = result -> {
if (result.getReturnValue().getSucceeded()) {
resolveConflictsModel.getResolveMissingConflict().setEntity(Boolean.FALSE);
resolveConflictsModel.getResolveMissingConflict().setIsChangeable(Boolean.FALSE);
}
};
callbacks.add(callback);
}
IFrontendActionAsyncCallback onFinishCallback = result -> {
if (result.getReturnValue().getSucceeded()) {
resolveConflictsModel.stopProgress();
cancel();
syncSearch();
}
};
IFrontendActionAsyncCallback failureCallback = result -> resolveConflictsModel.stopProgress();
// Replacing the last callback with onFinishCallback, as we just want to close the dialog and execute the search
if (callbacks.size() > 0) {
callbacks.remove(callbacks.size() - 1);
callbacks.add(onFinishCallback);
Frontend.getInstance().runMultipleActions(actionTypes, parameters, callbacks, failureCallback, null);
}
}
Aggregations