Comments (3)
Bump. I think it should be a common feature of the SDK applicable to all requests. Otherwise it is difficult to check if we have all the required permissions to execute some task before actually starting the whole process.
from aws-sdk-java-v2.
After merging above PR , we can get the dry run status as below
Sync Client
// Lets consider we want to find the dryRun Status for describeRegions API
boolean dryRunComplete = isDryRunComplete(() -> ec2Client.describeRegions(r -> r.regionNames(Region.US_EAST_1.id()).dryRun(true)));
// Write a generic Private API that takes in any EC2 Operation , make sure dryRun flag is set and extract the Error response
private boolean isDryRunComplete(Supplier<Ec2Response> dryRunOp) {
Ec2Response ec2Response = null;
try {
ec2Response = dryRunOp.get();
} catch (Ec2Exception exception) {
AwsErrorDetails awsErrorDetails = exception.awsErrorDetails();
if ("AuthFailure".equals(awsErrorDetails.errorCode())) {
return false;
}
if ("DryRunOperation".equals(awsErrorDetails.errorCode())) {
return true;
}
throw exception;
}
throw new IllegalStateException("Unable to get dryRun status for ec2Response: " + ec2Response);
}
Async Client
Boolean isDryRunComplete = asyncClient.describeRegions(r -> r.regionNames(Region.US_EAST_1.id())
.dryRun(true))
.handle((resp, e) -> isDryRunCompleted(e))
.join();
// Write a generic Private API that gets the DryRun status from the exception
private static Boolean isDryRunCompleted(Throwable exceptionCaught) {
if(exceptionCaught.getCause() instanceof Ec2Exception){
Ec2Exception exception = (Ec2Exception) exceptionCaught.getCause();
AwsErrorDetails awsErrorDetails = exception.awsErrorDetails();
if ("AuthFailure".equals(awsErrorDetails.errorCode())) {
return false;
}
if ("DryRunOperation".equals(awsErrorDetails.errorCode())) {
return true;
}
}
throw new IllegalStateException(exceptionCaught.getCause());
}
from aws-sdk-java-v2.
⚠️ COMMENT VISIBILITY WARNING⚠️
Comments on closed issues are hard for our team to see.
If you need more assistance, please open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.
from aws-sdk-java-v2.
Related Issues (20)
- Cognito: support for partial UpdateUserPoolClient calls HOT 1
- finalizeMultipartUpload is throwing 404 error HOT 3
- SDK Clients are `Closeable` and documented as thread safe but don't provide an `isClosed()` method HOT 1
- S3Async client fail to upload files (Service: S3, Status Code: 400, Request ID: null) HOT 1
- Getting occasional Crc32MismatchException using DynamoDbClient HOT 5
- Thread locals are lost after the control is returned from SDK methods to the client code HOT 1
- Parse QueryParams when building S3Uri from AWS CLI Style format HOT 3
- InstanceProfileCredentialsProvider unable to refresh/recover from network problems at time of credential cache refresh HOT 2
- Stuck on `java.util.concurrent.Future#get(long, java.util.concurrent.TimeUnit)` when using `java.util.concurrent.Executors#newVirtualThreadPerTaskExecutor` HOT 2
- Equivalent of `com.amazonaws.util.json.Jackson` in sdk v2 HOT 5
- Regression between SDK v1 and v2 around client side encryption HOT 2
- Version 2.25.26 Could not parse POM HOT 1
- S3 Transfer Manager created using S3Aysnc Client with CRT Builder holding significant memory even after downloads are completed
- Setting metadata and retention with UploadDirectoryRequest
- Don't download 200MB of JS for a JavaDoc search feature that most people don't use HOT 1
- Unshaded dependencies in AWS SDK HOT 9
- S3 Presign Head method HOT 2
- S3 CRT Client GetObject Request with Invalid Range crashes JVM with SIGSEGV HOT 1
- ApiName does not implement equals HOT 2
- assumeRoleWithWebIdentity doesn't work from java API but does work from the cli interface HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aws-sdk-java-v2.