upgrade_strategy 1014 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/usr/bin/python3
  2. import json
  3. import sys
  4. import re
  5. from catalog_update.upgrade_strategy import datetime_versioning
  6. RE_STABLE_VERSION = re.compile(r'^(\d+\.){4}\d+$')
  7. def newer_mapping(image_tags):
  8. key = list(image_tags.keys())[0]
  9. temp_tags = {t: t for t in image_tags[key] if RE_STABLE_VERSION.fullmatch(t)}
  10. tags = {}
  11. for tag in temp_tags:
  12. tag = tag.split('.')
  13. for i in range(len(tag)):
  14. # Add leading zero to single digit numbers
  15. if len(tag[i]) == 1:
  16. tag[i] = '0' + tag[i]
  17. tag = '.'.join(tag)
  18. tags[tag] = tag
  19. version = datetime_versioning(list(tags), '%y.%m.%d.%H.%M')
  20. if not version:
  21. return {}
  22. return {
  23. 'tags': {key: tags[version]},
  24. 'app_version': version,
  25. }
  26. if __name__ == '__main__':
  27. try:
  28. versions_json = json.loads(sys.stdin.read())
  29. except ValueError:
  30. raise ValueError('Invalid json specified')
  31. print(json.dumps(newer_mapping(versions_json)))