From a384d854d473402422d3dbe17b9ebdcd9a902648 Mon Sep 17 00:00:00 2001 From: Santhosh Gandhe <1909520+san81@users.noreply.github.com> Date: Mon, 13 Jan 2025 18:27:39 -0800 Subject: [PATCH] Keeping the existing values in the secret. Just updating an existing key Signed-off-by: Santhosh Gandhe <1909520+san81@users.noreply.github.com> --- .../plugins/aws/AwsSecretManagerConfiguration.java | 5 ++--- .../dataprepper/plugins/aws/AwsSecretsSupplier.java | 5 ++++- .../plugins/aws/AwsSecretManagerConfigurationTest.java | 2 +- .../dataprepper/plugins/aws/AwsSecretsSupplierTest.java | 4 ++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/data-prepper-plugins/aws-plugin/src/main/java/org/opensearch/dataprepper/plugins/aws/AwsSecretManagerConfiguration.java b/data-prepper-plugins/aws-plugin/src/main/java/org/opensearch/dataprepper/plugins/aws/AwsSecretManagerConfiguration.java index 83a2486fab..be95953be6 100644 --- a/data-prepper-plugins/aws-plugin/src/main/java/org/opensearch/dataprepper/plugins/aws/AwsSecretManagerConfiguration.java +++ b/data-prepper-plugins/aws-plugin/src/main/java/org/opensearch/dataprepper/plugins/aws/AwsSecretManagerConfiguration.java @@ -79,11 +79,10 @@ public GetSecretValueRequest createGetSecretValueRequest() { .build(); } - public PutSecretValueRequest putSecretValueRequest(String keyToUpdate, Object newValue) { - String updatedSecretString = String.format("{\"%s\": \"%s\"}", keyToUpdate, newValue); + public PutSecretValueRequest putSecretValueRequest(String secretKeyValueMapAsString) { return PutSecretValueRequest.builder() .secretId(awsSecretId) - .secretString(updatedSecretString) + .secretString(secretKeyValueMapAsString) .build(); } diff --git a/data-prepper-plugins/aws-plugin/src/main/java/org/opensearch/dataprepper/plugins/aws/AwsSecretsSupplier.java b/data-prepper-plugins/aws-plugin/src/main/java/org/opensearch/dataprepper/plugins/aws/AwsSecretsSupplier.java index cbd20049ef..4f16070af6 100644 --- a/data-prepper-plugins/aws-plugin/src/main/java/org/opensearch/dataprepper/plugins/aws/AwsSecretsSupplier.java +++ b/data-prepper-plugins/aws-plugin/src/main/java/org/opensearch/dataprepper/plugins/aws/AwsSecretsSupplier.java @@ -131,9 +131,12 @@ private Object retrieveSecretsFromSecretManager(final AwsSecretManagerConfigurat @Override public String updateValue(String secretId, String keyToUpdate, Object newValue) { + final Map keyValuePairs = (Map) secretIdToValue.get(secretId); + keyValuePairs.put(keyToUpdate, newValue); + String secretKeyValueMapAsString = (String) retrieveValue(secretId); AwsSecretManagerConfiguration awsSecretManagerConfiguration = awsSecretManagerConfigurationMap.get(secretId); PutSecretValueRequest putSecretValueRequest = - awsSecretManagerConfiguration.putSecretValueRequest(keyToUpdate, newValue); + awsSecretManagerConfiguration.putSecretValueRequest(secretKeyValueMapAsString); SecretsManagerClient secretsManagerClient = secretsManagerClientMap.get(secretId); try { diff --git a/data-prepper-plugins/aws-plugin/src/test/java/org/opensearch/dataprepper/plugins/aws/AwsSecretManagerConfigurationTest.java b/data-prepper-plugins/aws-plugin/src/test/java/org/opensearch/dataprepper/plugins/aws/AwsSecretManagerConfigurationTest.java index 5a155c4350..926293863a 100644 --- a/data-prepper-plugins/aws-plugin/src/test/java/org/opensearch/dataprepper/plugins/aws/AwsSecretManagerConfigurationTest.java +++ b/data-prepper-plugins/aws-plugin/src/test/java/org/opensearch/dataprepper/plugins/aws/AwsSecretManagerConfigurationTest.java @@ -151,7 +151,7 @@ void testCreatePutSecretValueRequest() throws IOException { mockStatic(PutSecretValueRequest.class)) { putSecretValueRequestMockedStatic.when(PutSecretValueRequest::builder).thenReturn( putSecretValueRequestBuilder); - assertThat(awsSecretManagerConfiguration.putSecretValueRequest("keyToUpdate", "newValue"), is(putSecretValueRequest)); + assertThat(awsSecretManagerConfiguration.putSecretValueRequest("{\"keyToUpdate\", \"newValue\"}"), is(putSecretValueRequest)); } verify(putSecretValueRequestBuilder).secretId("test-secret"); } diff --git a/data-prepper-plugins/aws-plugin/src/test/java/org/opensearch/dataprepper/plugins/aws/AwsSecretsSupplierTest.java b/data-prepper-plugins/aws-plugin/src/test/java/org/opensearch/dataprepper/plugins/aws/AwsSecretsSupplierTest.java index 91fe274658..dc9113c6d2 100644 --- a/data-prepper-plugins/aws-plugin/src/test/java/org/opensearch/dataprepper/plugins/aws/AwsSecretsSupplierTest.java +++ b/data-prepper-plugins/aws-plugin/src/test/java/org/opensearch/dataprepper/plugins/aws/AwsSecretsSupplierTest.java @@ -175,7 +175,7 @@ void testRefreshSecretsWithoutKey() { @Test void testUpdateValue() { - when(awsSecretManagerConfiguration.putSecretValueRequest(any(), any())).thenReturn(putSecretValueRequest); + when(awsSecretManagerConfiguration.putSecretValueRequest(any())).thenReturn(putSecretValueRequest); when(secretsManagerClient.putSecretValue(eq(putSecretValueRequest))).thenReturn(putSecretValueResponse); final String testValue = "{\"key\":\"oldValue\"}"; when(secretValueDecoder.decode(eq(getSecretValueResponse))).thenReturn(testValue); @@ -188,7 +188,7 @@ void testUpdateValue() { @Test void testUpdateValueFailed() { - when(awsSecretManagerConfiguration.putSecretValueRequest(any(), any())).thenReturn(putSecretValueRequest); + when(awsSecretManagerConfiguration.putSecretValueRequest(any())).thenReturn(putSecretValueRequest); when(secretsManagerClient.putSecretValue(eq(putSecretValueRequest))).thenReturn(putSecretValueResponse); final String testValue = "{\"key\":\"oldValue\"}"; when(secretValueDecoder.decode(eq(getSecretValueResponse))).thenReturn(testValue);