From 66c9d15ca84794d118ac49d45c1959cbfc4a7af4 Mon Sep 17 00:00:00 2001 From: mwas Date: Sat, 23 Nov 2019 12:37:30 +0300 Subject: [PATCH] fixing fetching secret id with both arn and name --- moto/secretsmanager/models.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/moto/secretsmanager/models.py b/moto/secretsmanager/models.py index b22ca9bf..fd49892d 100644 --- a/moto/secretsmanager/models.py +++ b/moto/secretsmanager/models.py @@ -25,11 +25,25 @@ class SecretsManager(BaseModel): self.region = region_name +class SecretsStore(dict): + def __setitem__(self, key, value): + new_key = get_secret_name_from_arn(key) + super(SecretsStore, self).__setitem__(new_key, value) + + def __getitem__(self, key): + new_key = get_secret_name_from_arn(key) + return super(SecretsStore, self).__getitem__(new_key) + + def __contains__(self, key): + new_key = get_secret_name_from_arn(key) + return dict.__contains__(self, new_key) + + class SecretsManagerBackend(BaseBackend): def __init__(self, region_name=None, **kwargs): super(SecretsManagerBackend, self).__init__() self.region = region_name - self.secrets = {} + self.secrets = SecretsStore() def reset(self): region_name = self.region @@ -44,7 +58,6 @@ class SecretsManagerBackend(BaseBackend): return (dt - epoch).total_seconds() def get_secret_value(self, secret_id, version_id, version_stage): - secret_id = get_secret_name_from_arn(secret_id) if not self._is_valid_identifier(secret_id): raise SecretNotFoundException() @@ -196,7 +209,6 @@ class SecretsManagerBackend(BaseBackend): return response def describe_secret(self, secret_id): - secret_id = get_secret_name_from_arn(secret_id) if not self._is_valid_identifier(secret_id): raise SecretNotFoundException()