Example usage for com.amazonaws.services.glacier.model GetJobOutputRequest setJobId

List of usage examples for com.amazonaws.services.glacier.model GetJobOutputRequest setJobId

Introduction

In this page you can find the example usage for com.amazonaws.services.glacier.model GetJobOutputRequest setJobId.

Prototype


public void setJobId(String jobId) 

Source Link

Document

The job ID whose data is downloaded.

Usage

From source file:nl.nekoconeko.glaciercmd.GlacierClient.java

License:Open Source License

private GetJobOutputResult waitForJobCompletion(String vault, String jobId) throws InterruptedException {
    GetJobOutputRequest job = new GetJobOutputRequest();
    job.setVaultName(vault);//from w  w w.  ja  v a  2s .  c  om
    job.setJobId(jobId);

    GetJobOutputResult res = null;
    boolean stop = false;
    while (!stop) {
        int code = 0;
        String error = "";
        try {
            res = this.client.getJobOutput(job);
            code = res.getStatus();
        } catch (AmazonServiceException e) {
            error = e.getMessage();
            code = e.getStatusCode();
        }

        switch (code) {
        case 200:
            stop = true;
            break;
        case 400:
            if (error.contains("The job is not currently available for download")) {
                Formatter.printInfoLine("Job is not finished yet, waiting...");
            } else {
                Formatter.printErrorLine("AWS returned code 400. Body Malformed.");
                System.exit(1);
            }
            break;
        case 404:
            Formatter.printErrorLine("AWS returned code 404. Vault or Job could not be found.");
            System.exit(1);
        default:
            Formatter.printInfoLine(String.format("Job returned code %d, waiting 30 seconds", code));
            break;
        }
        if (!stop) {
            Thread.sleep(1000 * 60);
        }
    }

    return res;
}