Skip to content

Commit 682311b

Browse files
committed
update secrets manager contract tests to be describe secret
1 parent 8fa9601 commit 682311b

File tree

5 files changed

+70
-19
lines changed

5 files changed

+70
-19
lines changed

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

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2241,8 +2241,8 @@ protected void doTestBedrockAgentRuntimeKnowledgeBaseId() {
22412241
0.0);
22422242
}
22432243

2244-
protected void doTestSecretsManagerCreateSecret() throws Exception {
2245-
appClient.get("/secretsmanager/createsecret/test-secret-id").aggregate().join();
2244+
protected void doTestSecretsManagerDescribeSecret() throws Exception {
2245+
appClient.get("/secretsmanager/describesecret/test-secret-id").aggregate().join();
22462246
var traces = mockCollectorClient.getTraces();
22472247
var metrics =
22482248
mockCollectorClient.getMetrics(
@@ -2251,20 +2251,20 @@ protected void doTestSecretsManagerCreateSecret() throws Exception {
22512251
AppSignalsConstants.FAULT_METRIC,
22522252
AppSignalsConstants.LATENCY_METRIC));
22532253
var localService = getApplicationOtelServiceName();
2254-
var localOperation = "GET /secretsmanager/createsecret/:secretId";
2254+
var localOperation = "GET /secretsmanager/describesecret/:secretId";
22552255
var type = "AWS::SecretsManager::Secret";
22562256
var identifier = "test-secret-id-[A-Za-z0-9]{6}";
22572257
var cloudformationIdentifier =
22582258
"arn:aws:secretsmanager:us-west-2:000000000000:secret:test-secret-id-[A-Za-z0-9]{6}";
22592259

22602260
assertSpanClientAttributes(
22612261
traces,
2262-
secretsManagerSpanName("CreateSecret"),
2262+
secretsManagerSpanName("DescribeSecret"),
22632263
getSecretsManagerRpcServiceName(),
22642264
localService,
22652265
localOperation,
22662266
getSecretsManagerServiceName(),
2267-
"CreateSecret",
2267+
"DescribeSecret",
22682268
type,
22692269
identifier,
22702270
cloudformationIdentifier,
@@ -2282,7 +2282,7 @@ protected void doTestSecretsManagerCreateSecret() throws Exception {
22822282
localService,
22832283
localOperation,
22842284
getSecretsManagerServiceName(),
2285-
"CreateSecret",
2285+
"DescribeSecret",
22862286
type,
22872287
identifier,
22882288
cloudformationIdentifier,
@@ -2293,7 +2293,7 @@ protected void doTestSecretsManagerCreateSecret() throws Exception {
22932293
localService,
22942294
localOperation,
22952295
getSecretsManagerServiceName(),
2296-
"CreateSecret",
2296+
"DescribeSecret",
22972297
type,
22982298
identifier,
22992299
cloudformationIdentifier,
@@ -2304,7 +2304,7 @@ protected void doTestSecretsManagerCreateSecret() throws Exception {
23042304
localService,
23052305
localOperation,
23062306
getSecretsManagerServiceName(),
2307-
"CreateSecret",
2307+
"DescribeSecret",
23082308
type,
23092309
identifier,
23102310
cloudformationIdentifier,
@@ -2314,7 +2314,6 @@ protected void doTestSecretsManagerCreateSecret() throws Exception {
23142314
protected void doTestStepFunctionsDescribeStateMachine() throws Exception {
23152315
appClient.get("/sfn/describestatemachine/test-state-machine").aggregate().join();
23162316
var traces = mockCollectorClient.getTraces();
2317-
System.out.println("TRACES: " + traces);
23182317
var metrics =
23192318
mockCollectorClient.getMetrics(
23202319
Set.of(

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,8 @@ void testBedrockAgentRuntimeKnowledgeBaseId() {
257257
}
258258

259259
@Test
260-
void testSecretsManagerCreateSecret() throws Exception {
261-
doTestSecretsManagerCreateSecret();
260+
void testSecretsManagerDescribeSecret() throws Exception {
261+
doTestSecretsManagerDescribeSecret();
262262
}
263263

264264
@Test

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,8 @@ void testBedrockAgentRuntimeAgentId() {
262262
// }
263263

264264
@Test
265-
void testSecretsManagerCreateSecret() throws Exception {
266-
doTestSecretsManagerCreateSecret();
265+
void testSecretsManagerDescribeSecret() throws Exception {
266+
doTestSecretsManagerDescribeSecret();
267267
}
268268

269269
@Test

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

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@
5757
import com.amazonaws.services.s3.model.Region;
5858
import com.amazonaws.services.secretsmanager.AWSSecretsManagerClient;
5959
import com.amazonaws.services.secretsmanager.model.CreateSecretRequest;
60+
import com.amazonaws.services.secretsmanager.model.DescribeSecretRequest;
61+
import com.amazonaws.services.secretsmanager.model.ListSecretsRequest;
62+
import com.amazonaws.services.secretsmanager.model.SecretListEntry;
6063
import com.amazonaws.services.sqs.AmazonSQSClient;
6164
import com.amazonaws.services.sqs.model.CreateQueueRequest;
6265
import com.amazonaws.services.sqs.model.ReceiveMessageRequest;
@@ -648,13 +651,36 @@ private static void setupSecretsManager() {
648651
.withCredentials(CREDENTIALS_PROVIDER)
649652
.withEndpointConfiguration(endpointConfiguration)
650653
.build();
654+
var secretName = "test-secret-id";
655+
String existingSecretArn = null;
656+
try {
657+
var listRequest = new ListSecretsRequest();
658+
var listResponse = secretsManagerClient.listSecrets(listRequest);
659+
existingSecretArn = listResponse.getSecretList().stream()
660+
.filter(secret -> secret.getName().contains(secretName))
661+
.findFirst()
662+
.map(SecretListEntry::getARN)
663+
.orElse(null);
664+
} catch (Exception e) {
665+
logger.error("Error listing secrets", e);
666+
}
667+
if (existingSecretArn != null) {
668+
logger.info("Secret already exists, skipping creation");
669+
} else {
670+
logger.info("Secret not found, creating new one");
671+
var createSecretRequest = new CreateSecretRequest().withName(secretName);
672+
var createSecretResponse = secretsManagerClient.createSecret(createSecretRequest);
673+
existingSecretArn = createSecretResponse.getARN();
674+
}
651675

676+
String finalExistingSecretArn = existingSecretArn;
677+
logger.info("Existing secret arn {}", finalExistingSecretArn);
652678
get(
653-
"/secretsmanager/createsecret/:secretId",
679+
"/secretsmanager/describesecret/:secretId",
654680
(req, res) -> {
655681
var secretId = req.params(":secretId");
656-
var createSecretRequest = new CreateSecretRequest().withName(secretId);
657-
secretsManagerClient.createSecret(createSecretRequest);
682+
var describeRequest = new DescribeSecretRequest().withSecretId(finalExistingSecretArn);
683+
secretsManagerClient.describeSecret(describeRequest);
658684
return "";
659685
});
660686
}

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

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@
7070
import software.amazon.awssdk.services.s3.model.PutObjectRequest;
7171
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
7272
import software.amazon.awssdk.services.secretsmanager.model.CreateSecretRequest;
73+
import software.amazon.awssdk.services.secretsmanager.model.DescribeSecretRequest;
74+
import software.amazon.awssdk.services.secretsmanager.model.ListSecretsRequest;
75+
import software.amazon.awssdk.services.secretsmanager.model.SecretListEntry;
7376
import software.amazon.awssdk.services.sfn.SfnClient;
7477
import software.amazon.awssdk.services.sfn.model.*;
7578
import software.amazon.awssdk.services.sqs.SqsClient;
@@ -674,13 +677,36 @@ private static void setupSecretsManager() {
674677
.endpointOverride(endpoint)
675678
.credentialsProvider(CREDENTIALS_PROVIDER)
676679
.build();
680+
var secretName = "test-secret-id";
681+
String existingSecretArn = null;
682+
try {
683+
var listRequest = ListSecretsRequest.builder().build();
684+
var listResponse = secretsManagerClient.listSecrets(listRequest);
685+
existingSecretArn = listResponse.secretList().stream()
686+
.filter(secret -> secret.name().contains(secretName))
687+
.findFirst()
688+
.map(SecretListEntry::arn)
689+
.orElse(null);
690+
} catch (Exception e) {
691+
logger.error("Error listing secrets", e);
692+
}
693+
if (existingSecretArn != null) {
694+
logger.info("Secret already exists, skipping creation");
695+
} else {
696+
logger.info("Secret not found, creating a new one");
697+
var createSecretRequest = CreateSecretRequest.builder().name(secretName).build();
698+
var createResponse = secretsManagerClient.createSecret(createSecretRequest);
699+
existingSecretArn = createResponse.arn();
700+
}
677701

702+
String finalExistingSecretArn = existingSecretArn;
703+
logger.info("Existing secret arn {}", finalExistingSecretArn);
678704
get(
679-
"/secretsmanager/createsecret/:secretId",
705+
"/secretsmanager/describesecret/:secretId",
680706
(req, res) -> {
681707
var secretId = req.params(":secretId");
682-
var createSecretRequest = CreateSecretRequest.builder().name(secretId).build();
683-
secretsManagerClient.createSecret(createSecretRequest);
708+
var describeRequest = DescribeSecretRequest.builder().secretId(finalExistingSecretArn).build();
709+
secretsManagerClient.describeSecret(describeRequest);
684710
return "";
685711
});
686712
}

0 commit comments

Comments
 (0)