in syndicate/core/build/meta_processor.py [0:0]
def resolve_meta(overall_meta):
from syndicate.core import CONFIG
iam_suffix = CONFIG.iam_suffix
extended_prefix_mode = CONFIG.extended_prefix_mode
overall_meta = _resolve_aliases(overall_meta)
_LOG.debug('Resolved meta was created')
_LOG.debug(prettify_json(overall_meta))
_resolve_permissions_boundary(overall_meta)
_LOG.debug('Permissions boundary were resolved')
# get dict with resolved prefix and suffix in meta resources
# key: current_name, value: resolved_name
resolved_names = {}
for name, res_meta in overall_meta.items():
resource_type = res_meta['resource_type']
if resource_type in GLOBAL_AWS_SERVICES or extended_prefix_mode:
resolved_name = resolve_resource_name(
resource_name=name,
prefix=CONFIG.resources_prefix,
suffix=CONFIG.resources_suffix)
if resource_type == LAMBDA_TYPE:
res_meta['prefix'] = CONFIG.resources_prefix
res_meta['suffix'] = CONFIG.resources_suffix
# add iam_suffix to IAM role only if it is specified in config file
if resource_type == IAM_ROLE and iam_suffix:
resolved_name = resolved_name + iam_suffix
if name != resolved_name:
resolved_names[name] = resolved_name
_LOG.debug('Going to resolve names in meta')
_LOG.debug('Resolved names mapping: {0}'.format(str(resolved_names)))
for current_name, resolved_name in resolved_names.items():
overall_meta[resolved_name] = overall_meta.pop(current_name)
if not all([current_name, resolved_name]):
continue
_resolve_names_in_meta(overall_meta, current_name, resolved_name)
return overall_meta