Example usage for com.amazonaws.services.opsworks.model CreateDeploymentRequest withInstanceIds

List of usage examples for com.amazonaws.services.opsworks.model CreateDeploymentRequest withInstanceIds

Introduction

In this page you can find the example usage for com.amazonaws.services.opsworks.model CreateDeploymentRequest withInstanceIds.

Prototype


public CreateDeploymentRequest withInstanceIds(java.util.Collection<String> instanceIds) 

Source Link

Document

The instance IDs for the deployment targets.

Usage

From source file:com.tispr.aws.OpsWorksClient.java

License:Apache License

protected Deployment deploy(App app, List<String> instanceIds, String comment, String revision, boolean noWait)
        throws ExecutionException, InterruptedException {
    DeploymentCommand command = new DeploymentCommand().withName(DeploymentCommandName.Deploy);

    CreateDeploymentRequest deployReq = new CreateDeploymentRequest().withAppId(app.getAppId())
            .withStackId(app.getStackId()).withCommand(command);

    if (instanceIds != null && !instanceIds.isEmpty()) {
        deployReq.withInstanceIds(instanceIds);
    }/*from   w w w  .  jav  a  2  s .c  o  m*/

    if (comment != null && !comment.isEmpty()) {
        deployReq.withComment(comment);
    }

    if (revision != null && !revision.isEmpty()) {
        String customJson = String.format(
                "{\"deploy\":{\"%s\":{\"migrate\":false,\"scm\":{\"revision\":\"%s\"}}}}", app.getShortname(),
                revision);
        deployReq.withCustomJson(customJson);
    }

    CreateDeploymentResult deployRes = opsWorksClient.createDeployment(deployReq);

    String deploymentId = deployRes.getDeploymentId();
    Deployment deployment;
    int timeSpent = 0;

    while (timeSpent < DEPLOYMENT_TIMEOUT) {
        deployment = getDeployment(app.getAppId(), app.getStackId(), deploymentId);
        if (!deployment.getStatus().equals("running") || noWait) {
            return deployment;
        }

        Thread.sleep(DEPLOYMENT_CHECK_INTERVAL * 1000);
        timeSpent += DEPLOYMENT_CHECK_INTERVAL;
    }

    throw new IllegalStateException(
            String.format("Deployment [appId=%s], [stackId=%s], [deploymentId=%s] timed out.", app.getAppId(),
                    app.getStackId(), deploymentId));
}