List of usage examples for com.amazonaws.services.elasticbeanstalk.model SwapEnvironmentCNAMEsRequest SwapEnvironmentCNAMEsRequest
SwapEnvironmentCNAMEsRequest
From source file:br.com.ingenieux.jenkins.plugins.awsebdeployment.cmd.ZeroDowntime.java
License:Apache License
private void swapEnvironmentCnames(String environmentId, String clonedEnvironmentId) throws InterruptedException { log("Swapping CNAMEs from environment %s to %s", environmentId, clonedEnvironmentId); SwapEnvironmentCNAMEsRequest request = new SwapEnvironmentCNAMEsRequest() .withSourceEnvironmentId(environmentId).withDestinationEnvironmentId(clonedEnvironmentId); getAwseb().swapEnvironmentCNAMEs(request); Thread.sleep(TimeUnit.SECONDS.toMillis(SLEEP_TIME / 6)); //So the CNAMEs will swap }
From source file:br.com.ingenieux.mojo.beanstalk.bg.BluegreenDeploymentMojo.java
License:Apache License
@Override protected Object executeInternal() throws Exception { versionLabel = lookupVersionLabel(applicationName, versionLabel); getLog().info(format("Using version %s", versionLabel)); Collection<EnvironmentDescription> envs = new WaitForEnvironmentCommand(this) .lookupInternal(new WaitForEnvironmentContextBuilder().withApplicationName(applicationName) .withEnvironmentRef(environmentNamePrefix + "*").build()); if (envs.size() > 2) { final Collection<String> environmentList = Collections2.transform(envs, new Function<EnvironmentDescription, String>() { @Override//from w w w. j ava 2 s . c o m public String apply(EnvironmentDescription input) { return format("%s[%s]", input.getEnvironmentId(), input.getEnvironmentName()); } }); String message = "Ooops. There are multiple environments matching the lookup spec: " + environmentList; getLog().warn(message); getLog().warn("Will pick one at random anyway as long as it uses WebServer tier name"); } String otherEnvId = null; for (EnvironmentDescription e : envs) { if (!e.getEnvironmentId().equals(curEnv.getEnvironmentId()) && "WebServer".equals(e.getTier().getName())) { otherEnvId = e.getEnvironmentId(); break; } } getLog().info( format("(Green) Environment with environmentId['%s'] will be prepared once its ready to update", curEnv.getEnvironmentId())); new WaitForEnvironmentCommand(this).execute(new WaitForEnvironmentContextBuilder() .withStatusToWaitFor("Ready").withApplicationName(applicationName) .withEnvironmentRef(curEnv.getEnvironmentId()).build()); getLog().info( format("(Blue) Environment with environmentId['%s'] will be prepared once its ready to update", otherEnvId)); new WaitForEnvironmentCommand(this) .execute(new WaitForEnvironmentContextBuilder().withStatusToWaitFor("Ready") .withApplicationName(applicationName).withEnvironmentRef(otherEnvId).build()); getLog().info(format("(Blue) Updating environmentId to version %s", versionLabel)); new UpdateEnvironmentCommand(this).execute(new UpdateEnvironmentContextBuilder() .withEnvironmentId(otherEnvId).withVersionLabel(versionLabel).build()); getLog().info(format("(Blue) Waiting for environmentId['%s'] to get ready and green prior to switching", otherEnvId)); new WaitForEnvironmentCommand(this).execute(new WaitForEnvironmentContextBuilder() .withStatusToWaitFor("Ready").withApplicationName(applicationName).withHealth("Green") .withEnvironmentRef(otherEnvId).build()); getLog().info(format("Ok. Switching")); getService().swapEnvironmentCNAMEs(new SwapEnvironmentCNAMEsRequest() .withDestinationEnvironmentId(curEnv.getEnvironmentId()).withSourceEnvironmentId(otherEnvId)); getLog().info(format("Done.")); return null; //To change body of implemented methods use File | Settings | File Templates. }
From source file:br.com.ingenieux.mojo.beanstalk.cmd.env.swap.SwapCNamesCommand.java
License:Apache License
@Override protected Object executeInternal(SwapCNamesContext context) throws Exception { SwapEnvironmentCNAMEsRequest request = new SwapEnvironmentCNAMEsRequest(); request.setSourceEnvironmentName(context.getSourceEnvironmentName()); request.setSourceEnvironmentId(context.getSourceEnvironmentId()); request.setDestinationEnvironmentName(context.getDestinationEnvironmentName()); request.setDestinationEnvironmentId(context.getDestinationEnvironmentId()); service.swapEnvironmentCNAMEs(request); return request; }