List of usage examples for com.amazonaws.services.ec2 AmazonEC2Client describeVolumes
@Override
public DescribeVolumesResult describeVolumes(DescribeVolumesRequest request)
Describes the specified EBS volumes or all of your EBS volumes.
From source file:com.pearson.eidetic.aws.EC2ClientMethods.java
public static DescribeVolumesResult describeVolumes(AmazonEC2Client ec2Client, DescribeVolumesRequest describeVolumesRequest, Integer numRetries, Integer maxApiRequestsPerSecond, String uniqueAwsAccountIdentifier) { DescribeVolumesResult describeVolumesResult = null; for (int i = 0; i <= numRetries; i++) { try {/*from www . jav a2 s . co m*/ // if the initial download attempt failed, wait for i * 500ms if (i > 0) { long sleepTimeInMilliseconds = 500 * i; Threads.sleepMilliseconds(sleepTimeInMilliseconds); } AtomicLong requestAttemptCounter = GlobalVariables.apiRequestAttemptCountersByAwsAccount .get(uniqueAwsAccountIdentifier); long currentRequestCount = requestAttemptCounter.incrementAndGet(); while (currentRequestCount > maxApiRequestsPerSecond) { Threads.sleepMilliseconds(50); currentRequestCount = requestAttemptCounter.incrementAndGet(); } describeVolumesResult = ec2Client.describeVolumes(describeVolumesRequest); if (describeVolumesResult != null) { GlobalVariables.apiRequestCountersByAwsAccount.get(uniqueAwsAccountIdentifier) .incrementAndGet(); break; } } catch (Exception e) { logger.error("awsAccountNickname=\"" + uniqueAwsAccountIdentifier + "\"," + describeVolumesRequest.toString() + System.lineSeparator() + e.toString() + System.lineSeparator() + StackTrace.getStringFromStackTrace(e)); } } return describeVolumesResult; }