List of usage examples for com.amazonaws.services.elasticbeanstalk AWSElasticBeanstalk terminateEnvironment
TerminateEnvironmentResult terminateEnvironment(TerminateEnvironmentRequest terminateEnvironmentRequest);
Terminates the specified environment.
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"); } }