Skip to content

Commit e7ad7a0

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

File tree

5 files changed

+61
-18
lines changed

5 files changed

+61
-18
lines changed

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

Lines changed: 8 additions & 8 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,

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: 25 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,32 @@ private static void setupSecretsManager() {
648651
.withCredentials(CREDENTIALS_PROVIDER)
649652
.withEndpointConfiguration(endpointConfiguration)
650653
.build();
654+
var secretName = "test-secret-id";
655+
String existingSecretArn = null;
656+
var listRequest = new ListSecretsRequest();
657+
var listResponse = secretsManagerClient.listSecrets(listRequest);
658+
existingSecretArn = listResponse.getSecretList().stream()
659+
.filter(secret -> secret.getName().contains(secretName))
660+
.findFirst()
661+
.map(SecretListEntry::getARN)
662+
.orElse(null);
663+
664+
if (existingSecretArn == null) {
665+
logger.info("Secret already exists, skipping creation");
666+
} else {
667+
logger.info("Secret not found, creating new one");
668+
var createSecretRequest = new CreateSecretRequest().withName(secretName);
669+
var createSecretResponse = secretsManagerClient.createSecret(createSecretRequest);
670+
existingSecretArn = createSecretResponse.getARN();
671+
}
651672

673+
String finalExistingSecretArn = existingSecretArn;
652674
get(
653-
"/secretsmanager/createsecret/:secretId",
675+
"/secretsmanager/describesecret/:secretId",
654676
(req, res) -> {
655677
var secretId = req.params(":secretId");
656-
var createSecretRequest = new CreateSecretRequest().withName(secretId);
657-
secretsManagerClient.createSecret(createSecretRequest);
678+
var describeRequest = new DescribeSecretRequest().withSecretId(finalExistingSecretArn);
679+
secretsManagerClient.describeSecret(describeRequest);
658680
return "";
659681
});
660682
}

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

Lines changed: 24 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,31 @@ private static void setupSecretsManager() {
674677
.endpointOverride(endpoint)
675678
.credentialsProvider(CREDENTIALS_PROVIDER)
676679
.build();
680+
var secretName = "test-secret-id";
681+
String existingSecretArn = null;
682+
var listRequest = ListSecretsRequest.builder().build();
683+
var listResponse = secretsManagerClient.listSecrets(listRequest);
684+
existingSecretArn = listResponse.secretList().stream()
685+
.filter(secret -> secret.name().contains(secretName))
686+
.findFirst()
687+
.map(SecretListEntry::arn)
688+
.orElse(null);
689+
if (existingSecretArn == null) {
690+
logger.info("Secret already exists, skipping creation");
691+
} else {
692+
logger.info("Secret not found, creating a new one");
693+
var createSecretRequest = CreateSecretRequest.builder().name(secretName).build();
694+
var createResponse = secretsManagerClient.createSecret(createSecretRequest);
695+
existingSecretArn = createResponse.arn();
696+
}
677697

698+
String finalExistingSecretArn = existingSecretArn;
678699
get(
679-
"/secretsmanager/createsecret/:secretId",
700+
"/secretsmanager/describesecret/:secretId",
680701
(req, res) -> {
681702
var secretId = req.params(":secretId");
682-
var createSecretRequest = CreateSecretRequest.builder().name(secretId).build();
683-
secretsManagerClient.createSecret(createSecretRequest);
703+
var describeRequest = DescribeSecretRequest.builder().secretId(finalExistingSecretArn).build();
704+
secretsManagerClient.describeSecret(describeRequest);
684705
return "";
685706
});
686707
}

0 commit comments

Comments
 (0)