Search in sources :

Example 1 with ResourceRecreator

use of com.sequenceiq.cloudbreak.core.flow2.stack.migration.handler.service.ResourceRecreator in project cloudbreak by hortonworks.

the class CreateResourcesHandler method accept.

@Override
public void accept(Event<CreateResourcesRequest> event) {
    LOGGER.info("Re-create the resources during the AWS migration");
    CreateResourcesRequest request = event.getData();
    try {
        CloudContext cloudContext = request.getCloudContext();
        CloudCredential cloudCredential = request.getCloudCredential();
        CloudStack cloudStack = request.getCloudStack();
        AuthenticatedContext ac = awsAuthenticator.authenticate(cloudContext, cloudCredential);
        Network network = cloudStack.getNetwork();
        AwsContext awsContext = awsContextBuilder.contextInit(cloudContext, ac, network, List.of(), true);
        for (ResourceRecreator resourceRecreator : resourceRecreators) {
            resourceRecreator.recreate(request, awsContext, ac);
        }
        CreateResourcesResult result = new CreateResourcesResult(request.getResourceId());
        request.getResult().onNext(result);
        eventBus.notify(result.selector(), new Event<>(event.getHeaders(), result));
    } catch (Exception e) {
        LOGGER.error("Cannot re-create the AWS security group during the variant migration", e);
        CreateResourcesResult result = new CreateResourcesResult(e.getMessage(), e, request.getResourceId());
        request.getResult().onNext(result);
        eventBus.notify(AWS_VARIANT_MIGRATION_FAILED_EVENT.event(), new Event<>(event.getHeaders(), result));
    }
}
Also used : ResourceRecreator(com.sequenceiq.cloudbreak.core.flow2.stack.migration.handler.service.ResourceRecreator) CloudCredential(com.sequenceiq.cloudbreak.cloud.model.CloudCredential) CreateResourcesResult(com.sequenceiq.cloudbreak.cloud.event.resource.migration.aws.CreateResourcesResult) CloudContext(com.sequenceiq.cloudbreak.cloud.context.CloudContext) Network(com.sequenceiq.cloudbreak.cloud.model.Network) Event(reactor.bus.Event) CreateResourcesRequest(com.sequenceiq.cloudbreak.cloud.event.resource.migration.aws.CreateResourcesRequest) AuthenticatedContext(com.sequenceiq.cloudbreak.cloud.context.AuthenticatedContext) CloudStack(com.sequenceiq.cloudbreak.cloud.model.CloudStack) AwsContext(com.sequenceiq.cloudbreak.cloud.aws.common.context.AwsContext)

Aggregations

AwsContext (com.sequenceiq.cloudbreak.cloud.aws.common.context.AwsContext)1 AuthenticatedContext (com.sequenceiq.cloudbreak.cloud.context.AuthenticatedContext)1 CloudContext (com.sequenceiq.cloudbreak.cloud.context.CloudContext)1 CreateResourcesRequest (com.sequenceiq.cloudbreak.cloud.event.resource.migration.aws.CreateResourcesRequest)1 CreateResourcesResult (com.sequenceiq.cloudbreak.cloud.event.resource.migration.aws.CreateResourcesResult)1 CloudCredential (com.sequenceiq.cloudbreak.cloud.model.CloudCredential)1 CloudStack (com.sequenceiq.cloudbreak.cloud.model.CloudStack)1 Network (com.sequenceiq.cloudbreak.cloud.model.Network)1 ResourceRecreator (com.sequenceiq.cloudbreak.core.flow2.stack.migration.handler.service.ResourceRecreator)1 Event (reactor.bus.Event)1