use of com.sequenceiq.cloudbreak.cloud.CloudConnector in project cloudbreak by hortonworks.
the class CreateCredentialHandler method accept.
@Override
public void accept(Event<CreateCredentialRequest> credentialRequestEvent) {
LOGGER.info("Received event: {}", credentialRequestEvent);
CreateCredentialRequest request = credentialRequestEvent.getData();
CloudContext cloudContext = request.getCloudContext();
try {
CloudConnector connector = cloudPlatformConnectors.get(cloudContext.getPlatformVariant());
AuthenticatedContext ac = connector.authentication().authenticate(cloudContext, request.getCloudCredential());
CloudCredentialStatus credentialStatus = connector.credentials().create(ac);
if (CredentialStatus.FAILED == credentialStatus.getStatus()) {
if (credentialStatus.getException() != null) {
throw new CloudConnectorException(credentialStatus.getException());
}
throw new CloudConnectorException(credentialStatus.getStatusReason());
}
CreateCredentialResult result = new CreateCredentialResult(request);
request.getResult().onNext(result);
eventBus.notify(result.selector(), new Event<>(credentialRequestEvent.getHeaders(), result));
LOGGER.info("Creating credential successfully finished for {}", cloudContext);
} catch (RuntimeException e) {
CreateCredentialResult failure = new CreateCredentialResult(e, request);
request.getResult().onNext(failure);
eventBus.notify(failure.selector(), new Event<>(credentialRequestEvent.getHeaders(), failure));
}
}
use of com.sequenceiq.cloudbreak.cloud.CloudConnector in project cloudbreak by hortonworks.
the class CredentialVerificationHandler method accept.
@Override
public void accept(Event<CredentialVerificationRequest> createCredentialRequestEvent) {
LOGGER.info("Received event: {}", createCredentialRequestEvent);
CredentialVerificationRequest request = createCredentialRequestEvent.getData();
try {
CloudConnector connector = cloudPlatformConnectors.getDefault(request.getCloudContext().getPlatform());
AuthenticatedContext ac;
CloudCredentialStatus cloudCredentialStatus;
try {
ac = connector.authentication().authenticate(request.getCloudContext(), request.getCloudCredential());
cloudCredentialStatus = connector.credentials().verify(ac);
} catch (CredentialVerificationException e) {
String errorMessage = e.getMessage();
LOGGER.error(errorMessage, e);
cloudCredentialStatus = new CloudCredentialStatus(request.getCloudCredential(), CredentialStatus.FAILED, e, errorMessage);
} catch (RuntimeException e) {
String errorMessage = String.format("Could not verify credential [credential: '%s'], detailed message: %s", request.getCloudContext().getName(), e.getMessage());
LOGGER.error(errorMessage, e);
cloudCredentialStatus = new CloudCredentialStatus(request.getCloudCredential(), CredentialStatus.FAILED, e, errorMessage);
}
CredentialVerificationResult credentialVerificationResult = new CredentialVerificationResult(request, cloudCredentialStatus);
request.getResult().onNext(credentialVerificationResult);
LOGGER.info("Credential verification successfully finished");
} catch (RuntimeException e) {
request.getResult().onNext(new CredentialVerificationResult(e.getMessage(), e, request));
}
}
Aggregations