Support SSM Parameter tags (#3739)

This commit is contained in:
Joakim Saario 2021-03-02 10:00:26 +01:00 committed by GitHub
commit 457402fbe2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 34 additions and 2 deletions

View file

@ -46,6 +46,7 @@ class Parameter(BaseModel):
keyid,
last_modified_date,
version,
tags=None,
):
self.name = name
self.type = type
@ -54,6 +55,7 @@ class Parameter(BaseModel):
self.keyid = keyid
self.last_modified_date = last_modified_date
self.version = version
self.tags = tags or []
self.labels = []
if self.type == "SecureString":
@ -1151,6 +1153,12 @@ class SimpleSystemManagerBackend(BaseBackend):
values = ["/" + value.strip("/") for value in values]
elif key == "Type":
what = parameter.type
elif key.startswith("tag:"):
what = key[4:] or None
for tag in parameter.tags:
if tag["Key"] == what and tag["Value"] in values:
return True
return False
if what is None:
return False
@ -1274,7 +1282,7 @@ class SimpleSystemManagerBackend(BaseBackend):
return [invalid_labels, version]
def put_parameter(
self, name, description, value, type, allowed_pattern, keyid, overwrite
self, name, description, value, type, allowed_pattern, keyid, overwrite, tags,
):
if name.lower().lstrip("/").startswith("aws") or name.lower().lstrip(
"/"
@ -1315,6 +1323,7 @@ class SimpleSystemManagerBackend(BaseBackend):
keyid,
last_modified_date,
version,
tags or [],
)
)
return version

View file

@ -247,9 +247,10 @@ class SimpleSystemManagerResponse(BaseResponse):
allowed_pattern = self._get_param("AllowedPattern")
keyid = self._get_param("KeyId")
overwrite = self._get_param("Overwrite", False)
tags = self._get_param("Tags", [])
result = self.ssm_backend.put_parameter(
name, description, value, type_, allowed_pattern, keyid, overwrite
name, description, value, type_, allowed_pattern, keyid, overwrite, tags
)
if result is None: