Example usage for com.amazonaws.services.opsworks.model CreateDeploymentResult getDeploymentId

List of usage examples for com.amazonaws.services.opsworks.model CreateDeploymentResult getDeploymentId

Introduction

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

Prototype


public String getDeploymentId() 

Source Link

Document

The deployment ID, which can be used with other requests to identify the deployment.

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);
    }/* w  ww . j  a  v  a  2 s.  com*/

    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));
}