|
14 | 14 | import static io.opentelemetry.semconv.ServerAttributes.SERVER_PORT;
|
15 | 15 | import static io.opentelemetry.semconv.UrlAttributes.URL_FULL;
|
16 | 16 | import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_REQUEST_ID;
|
| 17 | +import static io.opentelemetry.semconv.incubating.AwsIncubatingAttributes.AWS_SECRETSMANAGER_SECRET_ARN; |
17 | 18 | import static io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes.MESSAGING_DESTINATION_NAME;
|
18 | 19 | import static io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes.MESSAGING_MESSAGE_ID;
|
19 | 20 | import static io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes.MESSAGING_OPERATION;
|
|
79 | 80 | import software.amazon.awssdk.services.s3.S3ClientBuilder;
|
80 | 81 | import software.amazon.awssdk.services.s3.model.CreateBucketRequest;
|
81 | 82 | import software.amazon.awssdk.services.s3.model.GetObjectRequest;
|
| 83 | +import software.amazon.awssdk.services.secretsmanager.SecretsManagerAsyncClient; |
| 84 | +import software.amazon.awssdk.services.secretsmanager.SecretsManagerAsyncClientBuilder; |
| 85 | +import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient; |
| 86 | +import software.amazon.awssdk.services.secretsmanager.SecretsManagerClientBuilder; |
| 87 | +import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest; |
| 88 | +import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueResponse; |
82 | 89 | import software.amazon.awssdk.services.sns.SnsAsyncClient;
|
83 | 90 | import software.amazon.awssdk.services.sns.SnsAsyncClientBuilder;
|
84 | 91 | import software.amazon.awssdk.services.sns.SnsClient;
|
@@ -112,6 +119,18 @@ public abstract class AbstractAws2ClientTest extends AbstractAws2ClientCoreTest
|
112 | 119 | + " <ResponseMetadata><RequestId>0ac9cda2-bbf4-11d3-f92b-31fa5e8dbc99</RequestId></ResponseMetadata>"
|
113 | 120 | + "</DeleteOptionGroupResponse>";
|
114 | 121 |
|
| 122 | + private static final String secretsManagerBodyContent = |
| 123 | + "{" |
| 124 | + + " \"ARN\": \"arn:aws:secretsmanager:us-east-1:123456789012:secret:MySecretFromCLI-sNkBwD\"," |
| 125 | + + " \"Name\": \"MySecretFromCLI\"," |
| 126 | + + " \"VersionId\": \"9959b95b-1234-5678-a19b-a4b0315ca5aa\"," |
| 127 | + + " \"SecretString\": \"super-secret-value\"," |
| 128 | + + " \"VersionStages\": [" |
| 129 | + + " \"AWSCURRENT\"" |
| 130 | + + " ]," |
| 131 | + + " \"CreatedDate\": \"1.523477145713E9\"" |
| 132 | + + "}"; |
| 133 | + |
115 | 134 | private static void assumeSupportedConfig(String operation) {
|
116 | 135 | Assumptions.assumeFalse(
|
117 | 136 | operation.equals("SendMessage") && isSqsAttributeInjectionEnabled(),
|
@@ -214,6 +233,13 @@ private void clientAssertions(
|
214 | 233 | equalTo(MESSAGING_SYSTEM, AWS_SQS))));
|
215 | 234 | }
|
216 | 235 |
|
| 236 | + if (service.equals("SecretsManager")) { |
| 237 | + attributes.add( |
| 238 | + equalTo( |
| 239 | + AWS_SECRETSMANAGER_SECRET_ARN, |
| 240 | + "arn:aws:secretsmanager:us-east-1:123456789012:secret:MySecretFromCLI-sNkBwD")); |
| 241 | + } |
| 242 | + |
217 | 243 | String evaluatedOperation;
|
218 | 244 | SpanKind operationKind;
|
219 | 245 | if (operation.equals("SendMessage")) {
|
@@ -722,4 +748,44 @@ void testS3ListNullBucket() {
|
722 | 748 |
|
723 | 749 | assertThat(Context.current()).isEqualTo(Context.root());
|
724 | 750 | }
|
| 751 | + |
| 752 | + @Test |
| 753 | + void testSecretsManagerSendOperationRequestWithBuilder() { |
| 754 | + SecretsManagerClientBuilder builder = SecretsManagerClient.builder(); |
| 755 | + configureSdkClient(builder); |
| 756 | + SecretsManagerClient client = |
| 757 | + builder |
| 758 | + .endpointOverride(clientUri) |
| 759 | + .region(Region.AP_NORTHEAST_1) |
| 760 | + .credentialsProvider(CREDENTIALS_PROVIDER) |
| 761 | + .build(); |
| 762 | + |
| 763 | + server.enqueue( |
| 764 | + HttpResponse.of(HttpStatus.OK, MediaType.PLAIN_TEXT_UTF_8, secretsManagerBodyContent)); |
| 765 | + Object response = |
| 766 | + client.getSecretValue(GetSecretValueRequest.builder().secretId("MySecretFromCLI").build()); |
| 767 | + assertThat(response.getClass().getSimpleName()) |
| 768 | + .satisfies( |
| 769 | + v -> assertThat(v).isEqualTo("GetSecretValueResponse"), |
| 770 | + v -> assertThat(response).isInstanceOf(GetSecretValueResponse.class)); |
| 771 | + clientAssertions("SecretsManager", "GetSecretValue", "POST", response, "UNKNOWN"); |
| 772 | + } |
| 773 | + |
| 774 | + @Test |
| 775 | + void testSecretsManagerAsyncSendOperationRequestWithBuilder() { |
| 776 | + SecretsManagerAsyncClientBuilder builder = SecretsManagerAsyncClient.builder(); |
| 777 | + configureSdkClient(builder); |
| 778 | + SecretsManagerAsyncClient client = |
| 779 | + builder |
| 780 | + .endpointOverride(clientUri) |
| 781 | + .region(Region.AP_NORTHEAST_1) |
| 782 | + .credentialsProvider(CREDENTIALS_PROVIDER) |
| 783 | + .build(); |
| 784 | + |
| 785 | + server.enqueue( |
| 786 | + HttpResponse.of(HttpStatus.OK, MediaType.PLAIN_TEXT_UTF_8, secretsManagerBodyContent)); |
| 787 | + Object response = |
| 788 | + client.getSecretValue(GetSecretValueRequest.builder().secretId("MySecretFromCLI").build()); |
| 789 | + clientAssertions("SecretsManager", "GetSecretValue", "POST", response, "UNKNOWN"); |
| 790 | + } |
725 | 791 | }
|
0 commit comments