in ShortHand/lambda/convert.py [0:0]
def convert_template(template):
resources = {}
counts = {}
for ident, props in convert(template.get("Resources", [])):
resource = {}
if len(ident) == 1:
name = None
resource["Type"] = ident[0]
else:
name = ident[0]
resource["Type"] = ident[1]
resource["Properties"] = props
types = resolve.resource(resource["Type"])
if len(types) != 1:
raise Exception("Ambiguous or unknown resource type: {}".format(resource["Type"]))
resource["Type"] = types[0]
# Handle un-named resources
if not name:
name = resource["Type"].split("::")[-1]
if resource["Type"] not in counts:
counts[resource["Type"]] = 1
else:
counts[resource["Type"]] += 1
while "{}{}".format(name, counts[resource["Type"]]) in resources:
counts[resource["Type"]] += 1
name = "{}{}".format(name, counts[resource["Type"]])
resources[name] = resource
template["Resources"] = resources
return template