Example usage for com.amazonaws.services.elasticbeanstalk AWSElasticBeanstalk terminateEnvironment

List of usage examples for com.amazonaws.services.elasticbeanstalk AWSElasticBeanstalk terminateEnvironment

Introduction

In this page you can find the example usage for com.amazonaws.services.elasticbeanstalk AWSElasticBeanstalk terminateEnvironment.

Prototype

TerminateEnvironmentResult terminateEnvironment(TerminateEnvironmentRequest terminateEnvironmentRequest);

Source Link

Document

Terminates the specified environment.

Usage

From source file:fr.xebia.cloud.amazon.aws.tools.AmazonAwsUtils.java

License:Apache License

public static void synchronousTerminateEnvironments(@Nonnull String applicationName,
        @Nonnull AWSElasticBeanstalk beanstalk) {
    Set<String> statusToTerminate = Sets.newHashSet("Launching", "Updating", "Ready");
    Set<String> statusTerminating = Sets.newHashSet("Terminating");

    List<EnvironmentDescription> environments = beanstalk
            .describeEnvironments(new DescribeEnvironmentsRequest().withApplicationName(applicationName))
            .getEnvironments();//from w  ww  .ja v  a 2 s . c o m
    List<EnvironmentDescription> environmentsToWaitFor = Collections.emptyList();

    int counter = 0;
    while (counter < 1 * 60) {
        environmentsToWaitFor = Lists.newArrayList();
        for (EnvironmentDescription environment : environments) {
            if (statusToTerminate.contains(environment.getStatus())) {
                TerminateEnvironmentResult terminateEnvironmentResult = beanstalk.terminateEnvironment(
                        new TerminateEnvironmentRequest().withEnvironmentId(environment.getEnvironmentId()));
                logger.debug("Terminate environment {}, status:{} - ",
                        new Object[] { environment.getEnvironmentName(), environment.getStatus(),
                                terminateEnvironmentResult });
                environmentsToWaitFor.add(environment);
            } else if (statusTerminating.contains(environment.getStatus())) {
                environmentsToWaitFor.add(environment);
                logger.debug("Skip termination of not running environment {}", environment);
            } else {
                logger.trace("skip terminated environment {}", environment);
            }
        }
        if (environmentsToWaitFor.isEmpty()) {
            break;
        } else {
            try {
                Thread.sleep(500);
            } catch (Exception e) {
                throw Throwables.propagate(e);
            }
            environments = beanstalk
                    .describeEnvironments(
                            new DescribeEnvironmentsRequest().withApplicationName(applicationName))
                    .getEnvironments();
        }
    }

    if (!environmentsToWaitFor.isEmpty()) {
        logger.warn("Failure to terminate {}", environmentsToWaitFor);
    }
}

From source file:jp.classmethod.aws.gradle.elasticbeanstalk.AWSElasticBeanstalkTerminateEnvironmentTask.java

License:Apache License

@TaskAction
public void terminateEnvironment() {
    // to enable conventionMappings feature
    String appName = getAppName();
    String envName = getEnvName();
    String envId = getEnvId();/* ww w  . j a  v  a 2s .c  o  m*/

    AwsBeanstalkPluginExtension ext = getProject().getExtensions().getByType(AwsBeanstalkPluginExtension.class);
    AWSElasticBeanstalk eb = ext.getClient();

    if (envId == null) {
        DescribeEnvironmentsResult der = eb.describeEnvironments(
                new DescribeEnvironmentsRequest().withApplicationName(appName).withEnvironmentNames(envName));

        if (der.getEnvironments() == null || der.getEnvironments().isEmpty()) {
            getLogger().warn("environment " + envName + " @ " + appName + " not found");
            return;
        }

        EnvironmentDescription ed = der.getEnvironments().get(0);
        envId = ed.getEnvironmentId();
    }

    try {
        eb.terminateEnvironment(
                new TerminateEnvironmentRequest().withEnvironmentId(envId).withEnvironmentName(envName));
        getLogger().info("environment " + envName + " (" + envId + ") @ " + appName + " termination requested");
    } catch (AmazonServiceException e) {
        if (e.getMessage().contains("No Environment found") == false) {
            throw e;
        }
        getLogger().warn("environment " + envName + " (" + envId + ") @ " + appName + " not found");
    }
}