def fill_config()

in automation/lambda/handlers/index.py [0:0]


def fill_config(d, prop):
    for k in d:
        if isinstance(d[k], dict) and bool(d[k]):
            fill_config(d[k], prop)
        elif isinstance(d[k], list):
            for i in d[k]:
                if isinstance(i, (list, dict)):
                    fill_config(i, prop)
        elif isinstance(d[k], str):
            while True:
                if re.search(secret_field_pattern, d[k]):
                    secret_path = re.search(secret_field_pattern, d[k]).group(1)
                    if secret_path and prop.get(secret_path):
                        d[k] = d[k].replace('${' + secret_path + '}', prop.get(secret_path))
                else:
                    break
    return d