Source code for ecs_files_composer.jinja2_functions
# SPDX-License-Identifier: MPL-2.0
# Copyright 2020-2022 John Mille<john@compose-x.io>
from __future__ import annotations
from os import environ
from ecs_files_composer.jinja2_functions.aws import (
ec2_zone_id,
ecs_container_metadata,
ecs_task_metadata,
from_ssm,
from_ssm_json,
msk_bootstrap,
msk_cluster_zookeeper,
msk_endpoints,
using_resolve,
)
[docs]def env_var(key, value=None):
return environ.get(key, value)
[docs]def hostname(alternative_value: str = None) -> str:
try:
import platform
return str(platform.node())
except Exception as error:
print("Error with platform", error)
try:
import socket
return str(socket.gethostname())
except Exception as error:
print("Error with socket", error)
if alternative_value:
return alternative_value
JINJA_FUNCTIONS = {
"ecs_container_metadata": ecs_container_metadata,
"ecs_task_metadata": ecs_task_metadata,
"env_var": env_var,
"from_ssm": from_ssm,
"from_ssm_json": from_ssm_json,
"from_resolve": using_resolve,
"msk_bootstrap": msk_bootstrap,
"msk_endpoints": msk_endpoints,
"msk_cluster_zookeeper": msk_cluster_zookeeper,
"hostname": hostname,
"ec2_zone_id": ec2_zone_id,
"subnet_zone_id": ec2_zone_id,
}