Do not remove tags after secret update, handle description

This commit is contained in:
= 2020-04-24 16:12:55 +02:00
parent cd6dbe5b03
commit 3e145ef8df
2 changed files with 18 additions and 5 deletions

View File

@ -121,8 +121,12 @@ class SecretsManagerBackend(BaseBackend):
"You can't perform this operation on the secret because it was marked for deletion."
)
secret = self.secrets[secret_id]
tags = secret["tags"]
description = secret["description"]
version_id = self._add_secret(
secret_id, secret_string=secret_string, secret_binary=secret_binary
secret_id, secret_string=secret_string, secret_binary=secret_binary, description=description, tags=tags
)
response = json.dumps(
@ -136,7 +140,7 @@ class SecretsManagerBackend(BaseBackend):
return response
def create_secret(
self, name, secret_string=None, secret_binary=None, tags=[], **kwargs
self, name, secret_string=None, secret_binary=None, description=None, tags=[], **kwargs
):
# error if secret exists
@ -146,7 +150,7 @@ class SecretsManagerBackend(BaseBackend):
)
version_id = self._add_secret(
name, secret_string=secret_string, secret_binary=secret_binary, tags=tags
name, secret_string=secret_string, secret_binary=secret_binary, description=description, tags=tags
)
response = json.dumps(
@ -164,6 +168,7 @@ class SecretsManagerBackend(BaseBackend):
secret_id,
secret_string=None,
secret_binary=None,
description=None,
tags=[],
version_id=None,
version_stages=None,
@ -216,13 +221,18 @@ class SecretsManagerBackend(BaseBackend):
secret["rotation_lambda_arn"] = ""
secret["auto_rotate_after_days"] = 0
secret["tags"] = tags
secret["description"] = description
return version_id
def put_secret_value(self, secret_id, secret_string, secret_binary, version_stages):
secret = self.secrets[secret_id]
tags = secret["tags"]
description = secret["description"]
version_id = self._add_secret(
secret_id, secret_string, secret_binary, version_stages=version_stages
secret_id, secret_string, secret_binary, description=description, tags=tags, version_stages=version_stages
)
response = json.dumps(
@ -310,6 +320,7 @@ class SecretsManagerBackend(BaseBackend):
self._add_secret(
secret_id,
old_secret_version["secret_string"],
secret["description"],
secret["tags"],
version_id=new_version_id,
version_stages=["AWSCURRENT"],
@ -416,7 +427,7 @@ class SecretsManagerBackend(BaseBackend):
{
"ARN": secret_arn(self.region, secret["secret_id"]),
"DeletedDate": secret.get("deleted_date", None),
"Description": "",
"Description": secret.get["description"],
"KmsKeyId": "",
"LastAccessedDate": None,
"LastChangedDate": None,

View File

@ -21,11 +21,13 @@ class SecretsManagerResponse(BaseResponse):
name = self._get_param("Name")
secret_string = self._get_param("SecretString")
secret_binary = self._get_param("SecretBinary")
description = self._get_param("Description", if_none="")
tags = self._get_param("Tags", if_none=[])
return secretsmanager_backends[self.region].create_secret(
name=name,
secret_string=secret_string,
secret_binary=secret_binary,
description=description,
tags=tags,
)