use of com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserEvent in project cloudbreak by hortonworks.
the class CreateBindUserActions method createKerberosBindUserAction.
@Bean("CREATE_KERBEROS_BIND_USER_STATE")
public Action<?, ?> createKerberosBindUserAction() {
return new AbstractBindUserCreateAction<>(CreateBindUserEvent.class) {
@Override
protected void doExecute(CommonContext context, CreateBindUserEvent payload, Map<Object, Object> variables) {
LOGGER.info("Sending request to create Kerberos bind user for {}", payload.getSuffix());
sendEvent(context, new CreateKerberosBindUserEvent(payload));
}
};
}
use of com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserEvent in project cloudbreak by hortonworks.
the class BindUserCreateService method startCreateBindUserFLow.
private Operation startCreateBindUserFLow(String accountId, BindUserCreateRequest request, Long stackId, Operation operation) {
CreateBindUserEvent event = new CreateBindUserEvent(CREATE_BIND_USER_EVENT.event(), stackId, accountId, operation.getOperationId(), request.getBindUserNameSuffix(), request.getEnvironmentCrn());
try {
LOGGER.info("Start CreateBindUserFlow");
flowManager.notify(CREATE_BIND_USER_EVENT.event(), event);
LOGGER.info("Started CreateBindUserFlow");
return operation;
} catch (Exception e) {
LOGGER.error("Couldn't start create bind user flow", e);
return operationService.failOperation(accountId, operation.getOperationId(), "Couldn't start create bind user flow: " + e.getMessage());
}
}
use of com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserEvent in project cloudbreak by hortonworks.
the class BindUserCreateServiceTest method testCreateStartedFLowNotified.
@Test
public void testCreateStartedFLowNotified() {
BindUserCreateRequest request = createRequest();
Operation operation = new Operation();
operation.setOperationId("op");
operation.setStatus(OperationState.RUNNING);
when(operationService.startOperation(eq(ACCOUNT), eq(OperationType.BIND_USER_CREATE), anyCollection(), anyCollection())).thenReturn(operation);
OperationStatus operationStatus = new OperationStatus();
when(operationConverter.convert(operation)).thenReturn(operationStatus);
OperationStatus response = underTest.createBindUser(ACCOUNT, request);
assertEquals(operationStatus, response);
ArgumentCaptor<Acceptable> captor = ArgumentCaptor.forClass(Acceptable.class);
verify(flowManager).notify(eq(CREATE_BIND_USER_EVENT.event()), captor.capture());
Acceptable event = captor.getValue();
assertTrue(event instanceof CreateBindUserEvent);
CreateBindUserEvent bindUserEvent = (CreateBindUserEvent) event;
assertEquals(CREATE_BIND_USER_EVENT.event(), bindUserEvent.selector());
assertEquals(STACK_ID, bindUserEvent.getResourceId());
assertEquals(ACCOUNT, bindUserEvent.getAccountId());
assertEquals(operation.getOperationId(), bindUserEvent.getOperationId());
assertEquals(request.getEnvironmentCrn(), bindUserEvent.getEnvironmentCrn());
assertEquals(request.getBindUserNameSuffix(), bindUserEvent.getSuffix());
}
use of com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserEvent in project cloudbreak by hortonworks.
the class KerberosBindUserCreationHandlerTest method testCreated.
@Test
public void testCreated() throws FreeIpaClientException {
CreateBindUserEvent createBindUserEvent = new CreateBindUserEvent("selector", 1L, "acc", "opid", "suffix", "envcrn");
CreateKerberosBindUserEvent createKerberosBindUserEvent = new CreateKerberosBindUserEvent(createBindUserEvent);
HandlerEvent<CreateKerberosBindUserEvent> handlerEvent = new HandlerEvent<>(new Event<>(createKerberosBindUserEvent));
when(kerberosConfigService.find(createBindUserEvent.getEnvironmentCrn(), createBindUserEvent.getAccountId(), createBindUserEvent.getSuffix())).thenReturn(Optional.empty());
Stack stack = new Stack();
when(stackService.getByEnvironmentCrnAndAccountId(createBindUserEvent.getEnvironmentCrn(), createBindUserEvent.getAccountId())).thenReturn(stack);
Selectable selectable = underTest.doAccept(handlerEvent);
assertTrue(selectable instanceof CreateBindUserEvent);
CreateBindUserEvent event = (CreateBindUserEvent) selectable;
assertEquals(CreateBindUserFlowEvent.CREATE_KERBEROS_BIND_USER_FINISHED_EVENT.event(), event.selector());
assertEquals(createBindUserEvent.getOperationId(), event.getOperationId());
assertEquals(createBindUserEvent.getSuffix(), event.getSuffix());
assertEquals(createBindUserEvent.getAccountId(), event.getAccountId());
assertEquals(createBindUserEvent.getResourceId(), event.getResourceId());
verify(stackService).getByEnvironmentCrnAndAccountId(createBindUserEvent.getEnvironmentCrn(), createBindUserEvent.getAccountId());
verify(kerberosConfigV1Service).createNewKerberosConfig(createBindUserEvent.getEnvironmentCrn(), createBindUserEvent.getSuffix(), stack, true);
}
use of com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserEvent in project cloudbreak by hortonworks.
the class KerberosBindUserCreationHandlerTest method testDefaultFailureEventCreation.
@Test
public void testDefaultFailureEventCreation() {
CreateBindUserEvent createBindUserEvent = new CreateBindUserEvent("selector", 1L, "acc", "opid", "suffix", "envcrn");
CreateKerberosBindUserEvent createKerberosBindUserEvent = new CreateKerberosBindUserEvent(createBindUserEvent);
Exception exception = new Exception("test");
Selectable result = underTest.defaultFailureEvent(1L, exception, new Event<>(createKerberosBindUserEvent));
assertTrue(result instanceof CreateBindUserFailureEvent);
CreateBindUserFailureEvent failureEvent = (CreateBindUserFailureEvent) result;
assertEquals(CreateBindUserFlowEvent.CREATE_BIND_USER_FAILED_EVENT.event(), failureEvent.selector());
assertEquals("Kerberos bind user creation failed for suffix with test", failureEvent.getFailureMessage());
assertEquals(exception, failureEvent.getException());
}
Aggregations