Skip to content

Commit b0b2efe

Browse files
committed
add fault path tests for secrets manager
1 parent 5c3bb95 commit b0b2efe

File tree

5 files changed

+79
-0
lines changed

5 files changed

+79
-0
lines changed

appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/base/AwsSdkBaseTest.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2347,6 +2347,38 @@ protected void doTestSecretsManagerError() throws Exception {
23472347
List.of());
23482348
}
23492349

2350+
protected void doTestSecretsManagerFault() throws Exception {
2351+
appClient.get("/secretsmanager/fault").aggregate().join();
2352+
var traces = mockCollectorClient.getTraces();
2353+
var metrics = mockCollectorClient.getMetrics(
2354+
Set.of(
2355+
AppSignalsConstants.ERROR_METRIC,
2356+
AppSignalsConstants.FAULT_METRIC,
2357+
AppSignalsConstants.LATENCY_METRIC
2358+
));
2359+
2360+
var localService = getApplicationOtelServiceName();
2361+
var localOperation = "GET /secretsmanager/fault";
2362+
var type = "AWS::SecretsManager::Secret";
2363+
2364+
assertSpanClientAttributes(
2365+
traces,
2366+
secretsManagerSpanName("DescribeSecret"),
2367+
getSecretsManagerRpcServiceName(),
2368+
localService,
2369+
localOperation,
2370+
getSecretsManagerServiceName(),
2371+
"DescribeSecret",
2372+
null,
2373+
null,
2374+
null,
2375+
"fault.test",
2376+
8080,
2377+
"http://fault.test:8080",
2378+
500,
2379+
List.of());
2380+
}
2381+
23502382
protected void doTestStepFunctionsDescribeStateMachine() throws Exception {
23512383
appClient.get("/sfn/describestatemachine/test-state-machine").aggregate().join();
23522384
var traces = mockCollectorClient.getTraces();

appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v1/AwsSdkV1Test.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,11 @@ void testSecretsManagerError() throws Exception {
266266
doTestSecretsManagerError();
267267
}
268268

269+
@Test
270+
void testSecretsManagerFault() throws Exception {
271+
doTestSecretsManagerFault();
272+
}
273+
269274
@Test
270275
void testStepFunctionsDescribeStateMachine() throws Exception {
271276
doTestStepFunctionsDescribeStateMachine();

appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,11 @@ void testSecretsManagerError() throws Exception {
271271
doTestSecretsManagerError();
272272
}
273273

274+
@Test
275+
void testSecretsManagerFault() throws Exception {
276+
doTestSecretsManagerFault();
277+
}
278+
274279
@Test
275280
void testStepFunctionsDescribeStateMachine() throws Exception {
276281
doTestStepFunctionsDescribeStateMachine();

appsignals-tests/images/aws-sdk/aws-sdk-v1/src/main/java/com/amazon/sampleapp/App.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -701,6 +701,23 @@ private static void setupSecretsManager() {
701701
}
702702
return "";
703703
});
704+
705+
get(
706+
"/secretsmanager/fault",
707+
(req, res) -> {
708+
setMainStatus(500);
709+
var errorClient = AWSSecretsManagerClient.builder().withCredentials(CREDENTIALS_PROVIDER)
710+
.withEndpointConfiguration(new EndpointConfiguration("http://fault.test:8080", Regions.US_WEST_2.getName()))
711+
.build();
712+
713+
try {
714+
var describeRequest = new DescribeSecretRequest().withSecretId("arn:aws:secretsmanager:us-west-2:000000000000:secret:fault-secret-id");
715+
errorClient.describeSecret(describeRequest);
716+
} catch (Exception e) {
717+
logger.info("Error describing secret", e);
718+
}
719+
return "";
720+
});
704721
}
705722

706723
private static void setupStepFunctions() {

appsignals-tests/images/aws-sdk/aws-sdk-v2/src/main/java/com/amazon/sampleapp/App.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,26 @@ private static void setupSecretsManager() {
730730
}
731731
return "";
732732
});
733+
get(
734+
"/secretsmanager/fault",
735+
(req, res) -> {
736+
setMainStatus(500);
737+
var faultClient =
738+
SecretsManagerClient.builder()
739+
.endpointOverride(URI.create("http://fault.test:8080"))
740+
.credentialsProvider(CREDENTIALS_PROVIDER)
741+
.build();
742+
743+
try {
744+
var describeRequest = DescribeSecretRequest.builder()
745+
.secretId("arn:aws:secretsmanager:us-west-2:000000000000:secret:fault-secret-id")
746+
.build();
747+
faultClient.describeSecret(describeRequest);
748+
} catch (Exception e) {
749+
logger.info("Fault caught in Sample App", e);
750+
}
751+
return "";
752+
});
733753
}
734754

735755
private static void setupStepFunctions() {

0 commit comments

Comments
 (0)