INNER CODE UNIT · Python
image_pins
spantaleev/matrix-docker-ansible-deploy · bin/molecule-select-roles.py:99
def image_pins(snapshot):
"""Accept only flat, quoted literal image pins; other YAML runs all scenarios."""
if IMAGE_VARS not in snapshot or snapshot[IMAGE_VARS][0] == "120000":
raise Uncertain("Missing or symlinked shared image pins")
pins = {}
document_started = False
for line in snapshot[IMAGE_VARS][1].splitlines():
if not line.strip() or line.startswith("#"):
continue
if line == "---" and not pins and not document_started:
document_started = True
continue
match = IMAGE_PIN.fullmatch(line)
if not match or match[1] in pins:
raise Uncertain("Unrecognized shared image-pin format")
pins[match[1]] = match[3]
if not pins:
raise Uncertain("No shared image pins")