Skip to content

Commit 3c54751

Browse files
committed
Improvements
* Remove deprecated certbot-aws lib * Support flatdict notation to retrieve value from ecs metadata * Added hostname function
1 parent 01512b7 commit 3c54751

File tree

6 files changed

+137
-559
lines changed

6 files changed

+137
-559
lines changed

Makefile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,13 @@ dist: clean ## builds source and wheel package
9393
poetry build
9494
ls -l dist
9595

96-
install: clean conform ## install the package to the active Python's site-packages
97-
pip install . --use-pep517
96+
install: clean data-model conform ## install the package to the active Python's site-packages
97+
pip install . || (poetry install && pip install .)
9898

99-
conform: data-model
100-
isort --profile black ecs_files_composer
101-
black ecs_files_composer tests
99+
conform:
100+
isort --profile black ecs_files_composer || poetry run isort --profile black ecs_files_composer
101+
black ecs_files_composer tests || poetry run black ecs_files_composer tests
102102
find ecs_files_composer -name "*.json" -type f -exec sed -i '1s/^\xEF\xBB\xBF//' {} +
103103

104104
data-model:
105-
datamodel-codegen
105+
datamodel-codegen || poetry run datamodel-codegen

ecs_files_composer/input.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# generated by datamodel-codegen:
22
# filename: ecs-files-input.json
3-
# timestamp: 2022-11-16T09:12:19+00:00
3+
# timestamp: 2022-11-23T12:21:00+00:00
44

55
from __future__ import annotations
66

ecs_files_composer/jinja2_filters/__init__.py

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import requests
1212
import yaml
1313
from boto3.session import Session
14+
from flatdict import FlatDict, FlatterDict
1415

1516
from .aws_filters import msk_bootstrap
1617

@@ -91,7 +92,14 @@ def from_metadata_to_flat_keys(metadata):
9192
return new_metadata
9293

9394

94-
def get_property(metadata, property_key):
95+
def get_property(metadata, property_key, separator: str = None):
96+
if separator is None:
97+
separator = r"::"
98+
metadata_mapping = FlatterDict(metadata)
99+
metadata_mapping.set_delimiter(separator)
100+
if property_key in metadata_mapping:
101+
return metadata_mapping[property_key]
102+
95103
metadata_mapping = from_metadata_to_flat_keys(metadata)
96104
property_re = re.compile(property_key)
97105
for key, value in metadata_mapping.items():
@@ -170,13 +178,32 @@ def from_ssm_json(parameter_name: str) -> dict:
170178
return {}
171179

172180

181+
def hostname(alternative_value: str = None) -> str:
182+
try:
183+
import platform
184+
185+
return str(platform.node())
186+
except Exception as error:
187+
print("Error with platform", error)
188+
try:
189+
import socket
190+
191+
return str(socket.gethostname())
192+
except Exception as error:
193+
print("Error with socket", error)
194+
pass
195+
if alternative_value:
196+
return alternative_value
197+
198+
173199
JINJA_FUNCTIONS = {
174200
"ecs_container_metadata": ecs_container_metadata,
175201
"ecs_task_metadata": ecs_task_metadata,
176202
"env_var": env_var,
177203
"from_ssm": from_ssm,
178204
"from_ssm_json": from_ssm_json,
179205
"msk_bootstrap": msk_bootstrap,
206+
"hostname": hostname,
180207
}
181208

182209
JINJA_FILTERS = {"to_yaml": to_yaml, "to_json": to_json, "env_override": env_override}

0 commit comments

Comments
 (0)