Search in sources :

Example 1 with PrepareImageResult

use of com.sequenceiq.cloudbreak.cloud.event.setup.PrepareImageResult in project cloudbreak by hortonworks.

the class PrepareImageHandler method accept.

@Override
public void accept(Event<PrepareImageRequest> event) {
    LOGGER.info("Received event: {}", event);
    PrepareImageRequest request = event.getData();
    CloudContext cloudContext = request.getCloudContext();
    try {
        CloudConnector connector = cloudPlatformConnectors.get(request.getCloudContext().getPlatformVariant());
        AuthenticatedContext auth = connector.authentication().authenticate(cloudContext, request.getCloudCredential());
        Image image = request.getImage();
        CloudStack stack = request.getStack();
        connector.setup().prepareImage(auth, stack, image);
        PrepareImageResult result = new PrepareImageResult(request);
        request.getResult().onNext(result);
        eventBus.notify(result.selector(), new Event<>(event.getHeaders(), result));
        LOGGER.info("Prepare image finished for {}", cloudContext);
    } catch (RuntimeException e) {
        PrepareImageResult failure = new PrepareImageResult(e, request);
        request.getResult().onNext(failure);
        eventBus.notify(failure.selector(), new Event<>(event.getHeaders(), failure));
    }
}
Also used : CloudConnector(com.sequenceiq.cloudbreak.cloud.CloudConnector) CloudContext(com.sequenceiq.cloudbreak.cloud.context.CloudContext) Event(reactor.bus.Event) AuthenticatedContext(com.sequenceiq.cloudbreak.cloud.context.AuthenticatedContext) PrepareImageResult(com.sequenceiq.cloudbreak.cloud.event.setup.PrepareImageResult) Image(com.sequenceiq.cloudbreak.cloud.model.Image) CloudStack(com.sequenceiq.cloudbreak.cloud.model.CloudStack) PrepareImageRequest(com.sequenceiq.cloudbreak.cloud.event.setup.PrepareImageRequest)

Aggregations

CloudConnector (com.sequenceiq.cloudbreak.cloud.CloudConnector)1 AuthenticatedContext (com.sequenceiq.cloudbreak.cloud.context.AuthenticatedContext)1 CloudContext (com.sequenceiq.cloudbreak.cloud.context.CloudContext)1 PrepareImageRequest (com.sequenceiq.cloudbreak.cloud.event.setup.PrepareImageRequest)1 PrepareImageResult (com.sequenceiq.cloudbreak.cloud.event.setup.PrepareImageResult)1 CloudStack (com.sequenceiq.cloudbreak.cloud.model.CloudStack)1 Image (com.sequenceiq.cloudbreak.cloud.model.Image)1 Event (reactor.bus.Event)1