use of com.sequenceiq.cloudbreak.reactor.api.event.recipe.CcmKeyDeregisterRequest in project cloudbreak by hortonworks.
the class CcmKeyDeregisterAction method createRequest.
@Override
protected CcmKeyDeregisterRequest createRequest(StackTerminationContext context) {
Stack stack = context.getStack();
String userCrn = ThreadBasedUserCrnProvider.getUserCrn();
String actorCrn = Objects.requireNonNull(userCrn, "userCrn is null");
String accountId = ThreadBasedUserCrnProvider.getAccountId();
String keyId = CcmResourceUtil.getKeyId(stack.getResourceCrn());
return new CcmKeyDeregisterRequest(stack.getId(), actorCrn, accountId, keyId, stack.getTunnel());
}
use of com.sequenceiq.cloudbreak.reactor.api.event.recipe.CcmKeyDeregisterRequest in project cloudbreak by hortonworks.
the class CcmKeyDeregisterAction method doExecute.
@Override
protected void doExecute(StackTerminationContext context, ClusterProxyDeregisterSuccess payload, Map<Object, Object> variables) {
CcmKeyDeregisterRequest deregisterRequest = createRequest(context);
sendEvent(context, deregisterRequest.selector(), deregisterRequest);
}
use of com.sequenceiq.cloudbreak.reactor.api.event.recipe.CcmKeyDeregisterRequest in project cloudbreak by hortonworks.
the class CcmKeyDeregisterHandler method accept.
@Override
public void accept(Event<CcmKeyDeregisterRequest> requestEvent) {
CcmKeyDeregisterRequest request = requestEvent.getData();
Selectable result;
try {
Stack stack = stackService.getByIdWithListsInTransaction(request.getResourceId());
try {
if (request.getTunnel().useCcmV1()) {
LOGGER.debug("De-registering MinaSshdServiceId '{}' from CCM. Cluster CRN: {}", stack.getMinaSshdServiceId(), stack.getResourceCrn());
ccmResourceTerminationListener.deregisterCcmSshTunnelingKey(request.getActorCrn(), request.getAccountId(), request.getKeyId(), stack.getMinaSshdServiceId());
LOGGER.debug("De-registered MinaSshdServiceId '{}' from CCM. Cluster CRN: {}", stack.getMinaSshdServiceId(), stack.getResourceCrn());
} else if (request.getTunnel().useCcmV2OrJumpgate() && StringUtils.isNotBlank(stack.getCcmV2AgentCrn())) {
LOGGER.debug("De-registering CcmV2AgentCrn '{}' from CCM. Cluster CRN: {}", stack.getCcmV2AgentCrn(), stack.getResourceCrn());
ccmV2AgentTerminationListener.deregisterInvertingProxyAgent(stack.getCcmV2AgentCrn());
LOGGER.debug("De-registered CcmV2AgentCrn '{}' from CCM. Cluster CRN: {}", stack.getCcmV2AgentCrn(), stack.getResourceCrn());
} else {
LOGGER.debug("CCM is DISABLED, skipping de-registering of key from CCM. Cluster CRN: {}", stack.getResourceCrn());
}
} catch (Exception ex) {
LOGGER.warn("CCM key deregistration failed", ex);
}
result = new CcmKeyDeregisterSuccess(stack.getId());
} catch (Exception ex) {
LOGGER.error("Stack retrieval for CCM key deregistration failed", ex);
result = new StackFailureEvent(StackTerminationEvent.CCM_KEY_DEREGISTER_FAILED_EVENT.event(), request.getResourceId(), ex);
}
eventBus.notify(result.selector(), new Event<>(requestEvent.getHeaders(), result));
}
use of com.sequenceiq.cloudbreak.reactor.api.event.recipe.CcmKeyDeregisterRequest in project cloudbreak by hortonworks.
the class CcmKeyDeregisterHandlerTest method testWhenTunnelIsNotCcmV2ThenNoCcmV2AgentDeregistrationIsCalled.
@ParameterizedTest
@EnumSource(value = Tunnel.class, names = { "CCMV2", "CCMV2_JUMPGATE" }, mode = EnumSource.Mode.EXCLUDE)
void testWhenTunnelIsNotCcmV2ThenNoCcmV2AgentDeregistrationIsCalled(Tunnel tunnel) {
setupBasicStack();
CcmKeyDeregisterRequest request = new CcmKeyDeregisterRequest(STACK_ID, ACTOR_CRN, ACCOUNT, KEY_ID, tunnel);
Event<CcmKeyDeregisterRequest> event = new Event<>(request);
underTest.accept(event);
verifyNoMoreInteractions(ccmV2AgentTerminationListener);
checkSuccess();
}
use of com.sequenceiq.cloudbreak.reactor.api.event.recipe.CcmKeyDeregisterRequest in project cloudbreak by hortonworks.
the class CcmKeyDeregisterHandlerTest method testWhenErrorHappensDuringDeregistrationStillSuccess.
@Test
void testWhenErrorHappensDuringDeregistrationStillSuccess() {
Stack stack = setupBasicStack();
stack.setCcmV2AgentCrn(AGENT_CRN);
CcmKeyDeregisterRequest request = new CcmKeyDeregisterRequest(STACK_ID, ACTOR_CRN, ACCOUNT, KEY_ID, CCMV2_JUMPGATE);
Event<CcmKeyDeregisterRequest> event = new Event<>(request);
doAnswer(a -> {
throw new Exception("failed");
}).when(ccmV2AgentTerminationListener).deregisterInvertingProxyAgent(anyString());
underTest.accept(event);
verifyNoMoreInteractions(ccmResourceTerminationListener);
verifyNoMoreInteractions(ccmV2AgentTerminationListener);
checkSuccess();
}
Aggregations