Search in sources :

Example 11 with CreateBindUserEvent

use of com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserEvent in project cloudbreak by hortonworks.

the class KerberosBindUserCreationHandlerTest method testCreateFailed.

@Test
public void testCreateFailed() 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);
    when(kerberosConfigV1Service.createNewKerberosConfig(createBindUserEvent.getEnvironmentCrn(), createBindUserEvent.getSuffix(), stack, true)).thenThrow(new FreeIpaClientException("test"));
    Selectable selectable = underTest.doAccept(handlerEvent);
    assertTrue(selectable instanceof CreateBindUserEvent);
    CreateBindUserEvent event = (CreateBindUserEvent) selectable;
    assertEquals(CreateBindUserFlowEvent.CREATE_BIND_USER_FAILED_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);
}
Also used : CreateKerberosBindUserEvent(com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateKerberosBindUserEvent) Selectable(com.sequenceiq.cloudbreak.common.event.Selectable) HandlerEvent(com.sequenceiq.flow.reactor.api.handler.HandlerEvent) CreateBindUserEvent(com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserEvent) FreeIpaClientException(com.sequenceiq.freeipa.client.FreeIpaClientException) Stack(com.sequenceiq.freeipa.entity.Stack) Test(org.junit.jupiter.api.Test)

Example 12 with CreateBindUserEvent

use of com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserEvent in project cloudbreak by hortonworks.

the class LdapBindUserCreationHandlerTest method testDefaultFailureEventCreation.

@Test
public void testDefaultFailureEventCreation() {
    CreateBindUserEvent createBindUserEvent = new CreateBindUserEvent("selector", 1L, "acc", "opid", "suffix", "envcrn");
    CreateLdapBindUserEvent createLdapBindUserEvent = new CreateLdapBindUserEvent(createBindUserEvent);
    Exception exception = new Exception("test");
    Selectable result = underTest.defaultFailureEvent(1L, exception, new Event<>(createLdapBindUserEvent));
    assertTrue(result instanceof CreateBindUserFailureEvent);
    CreateBindUserFailureEvent failureEvent = (CreateBindUserFailureEvent) result;
    assertEquals(CreateBindUserFlowEvent.CREATE_BIND_USER_FAILED_EVENT.event(), failureEvent.selector());
    assertEquals("LDAP bind user creation failed for suffix with test", failureEvent.getFailureMessage());
    assertEquals(exception, failureEvent.getException());
}
Also used : Selectable(com.sequenceiq.cloudbreak.common.event.Selectable) CreateBindUserFailureEvent(com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserFailureEvent) CreateBindUserEvent(com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserEvent) CreateLdapBindUserEvent(com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateLdapBindUserEvent) FreeIpaClientException(com.sequenceiq.freeipa.client.FreeIpaClientException) Test(org.junit.jupiter.api.Test)

Example 13 with CreateBindUserEvent

use of com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserEvent in project cloudbreak by hortonworks.

the class LdapBindUserCreationHandler method defaultFailureEvent.

@Override
protected Selectable defaultFailureEvent(Long resourceId, Exception e, Event<CreateLdapBindUserEvent> event) {
    CreateBindUserEvent eventData = event.getData();
    String failureMsg = String.format("LDAP bind user creation failed for %s with %s", eventData.getSuffix(), e.getMessage());
    return new CreateBindUserFailureEvent(CreateBindUserFlowEvent.CREATE_BIND_USER_FAILED_EVENT.event(), eventData, failureMsg, e);
}
Also used : CreateBindUserFailureEvent(com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserFailureEvent) CreateBindUserEvent(com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserEvent)

Example 14 with CreateBindUserEvent

use of com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserEvent in project cloudbreak by hortonworks.

the class LdapBindUserCreationHandler method createLdapBindUSer.

private Selectable createLdapBindUSer(Event<CreateLdapBindUserEvent> event, CreateBindUserEvent data) {
    Stack stack = stackService.getByEnvironmentCrnAndAccountId(data.getEnvironmentCrn(), data.getAccountId());
    MDCBuilder.buildMdcContext(stack);
    LOGGER.info("Create LDAP bind user for [{}]", data.getSuffix());
    try {
        ldapConfigV1Service.createNewLdapConfig(data.getEnvironmentCrn(), data.getSuffix(), stack, true);
        return new CreateBindUserEvent(CreateBindUserFlowEvent.CREATE_LDAP_BIND_USER_FINISHED_EVENT.event(), data);
    } catch (FreeIpaClientException e) {
        LOGGER.error("Couldn't create LDAP bind user: {}", data, e);
        return defaultFailureEvent(data.getResourceId(), e, event);
    }
}
Also used : CreateBindUserEvent(com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserEvent) FreeIpaClientException(com.sequenceiq.freeipa.client.FreeIpaClientException) Stack(com.sequenceiq.freeipa.entity.Stack)

Example 15 with CreateBindUserEvent

use of com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserEvent in project cloudbreak by hortonworks.

the class LdapBindUserCreationHandler method doAccept.

@Override
protected Selectable doAccept(HandlerEvent<CreateLdapBindUserEvent> event) {
    CreateBindUserEvent data = event.getData();
    Optional<LdapConfig> ldapConfig = ldapConfigService.find(data.getEnvironmentCrn(), data.getAccountId(), data.getSuffix());
    if (ldapConfig.isPresent()) {
        LOGGER.info("LDAP configuration already exists: {}", ldapConfig.get());
        return new CreateBindUserEvent(CreateBindUserFlowEvent.CREATE_LDAP_BIND_USER_FINISHED_EVENT.event(), data);
    } else {
        return createLdapBindUSer(event.getEvent(), data);
    }
}
Also used : LdapConfig(com.sequenceiq.freeipa.ldap.LdapConfig) CreateBindUserEvent(com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserEvent)

Aggregations

CreateBindUserEvent (com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserEvent)19 Test (org.junit.jupiter.api.Test)9 Selectable (com.sequenceiq.cloudbreak.common.event.Selectable)8 HandlerEvent (com.sequenceiq.flow.reactor.api.handler.HandlerEvent)6 FreeIpaClientException (com.sequenceiq.freeipa.client.FreeIpaClientException)6 Stack (com.sequenceiq.freeipa.entity.Stack)6 CreateKerberosBindUserEvent (com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateKerberosBindUserEvent)5 CreateLdapBindUserEvent (com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateLdapBindUserEvent)5 CreateBindUserFailureEvent (com.sequenceiq.freeipa.flow.freeipa.binduser.create.event.CreateBindUserFailureEvent)4 CommonContext (com.sequenceiq.flow.core.CommonContext)3 Map (java.util.Map)3 Bean (org.springframework.context.annotation.Bean)3 KerberosConfig (com.sequenceiq.freeipa.kerberos.KerberosConfig)2 LdapConfig (com.sequenceiq.freeipa.ldap.LdapConfig)2 Acceptable (com.sequenceiq.cloudbreak.common.event.Acceptable)1 BindUserCreateRequest (com.sequenceiq.freeipa.api.v1.freeipa.stack.model.binduser.BindUserCreateRequest)1 SuccessDetails (com.sequenceiq.freeipa.api.v1.freeipa.user.model.SuccessDetails)1 OperationStatus (com.sequenceiq.freeipa.api.v1.operation.model.OperationStatus)1 Operation (com.sequenceiq.freeipa.entity.Operation)1 OperationService (com.sequenceiq.freeipa.service.operation.OperationService)1