in taskcat/_amiupdater.py [0:0]
def build_codenames(tobj: Template, config: Config) -> List[RegionalCodename]:
"""Builds regional codename objects"""
built_cn = []
filters = deep_get(tobj.underlying.template, tobj.metadata_path, {})
mappings = deep_get(tobj.underlying.template, tobj.mapping_path, {})
for cname, cfilters in filters.items():
config.update_filter({cname: cfilters})
for region, cndata in mappings.items():
_missing_filters: Set[str] = set()
if region == "AMI":
continue
if not REGION_REGEX.search(region):
LOG.error(f"[{region}] is not a valid region. Please check your template!")
raise AMIUpdaterFatalException
for cnname in cndata.keys():
_filters = _construct_filters(cnname, config)
if not _filters:
if cnname not in _missing_filters:
_missing_filters.add(cnname)
LOG.warning(
f"No query parameters were found for: {cnname.upper()}.",
"(Results for this codename are not possible.",
)
continue
region_cn = RegionalCodename(region=region, cn=cnname, filters=_filters)
built_cn.append(region_cn)
return built_cn