diff options
Diffstat (limited to 'deprecated/get_common_image_version.py')
-rwxr-xr-x | deprecated/get_common_image_version.py | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/deprecated/get_common_image_version.py b/deprecated/get_common_image_version.py new file mode 100755 index 00000000..4bb6949f --- /dev/null +++ b/deprecated/get_common_image_version.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python2 +# +# Copyright 2013 Google Inc. All Rights Reserved. +"""Script to find list of common images (first beta releases) in Chromeos. + +Display information about stable ChromeOS/Chrome versions to be used +by the team developers. The purpose is to increase team productivity +by using stable (known and tested) ChromeOS/Chrome versions instead of +using randomly selected versions. Currently we define as a "stable" +version the first Beta release in a particular release cycle. +""" + +from __future__ import print_function + +__author__ = 'llozano@google.com (Luis Lozano)' + +import argparse +import pickle +import re +import sys +import urllib + +VERSIONS_HISTORY_URL = 'http://cros-omahaproxy.appspot.com/history' + + +def DisplayBetas(betas): + print('List of betas from %s' % VERSIONS_HISTORY_URL) + for beta in betas: + print(' Release', beta['chrome_major_version'], beta) + return + + +def FindAllBetas(all_versions): + """Get ChromeOS first betas from History URL.""" + + all_betas = [] + prev_beta = {} + for line in all_versions: + match_obj = re.match( + r'(?P<date>.*),(?P<chromeos_version>.*),' + r'(?P<chrome_major_version>\d*).(?P<chrome_minor_version>.*),' + r'(?P<chrome_appid>.*),beta-channel,,Samsung Chromebook Series 5 550', + line) + if match_obj: + if prev_beta: + if (prev_beta['chrome_major_version'] != + match_obj.group('chrome_major_version')): + all_betas.append(prev_beta) + prev_beta = match_obj.groupdict() + if prev_beta: + all_betas.append(prev_beta) + return all_betas + + +def SerializeBetas(all_betas, serialize_file): + with open(serialize_file, 'wb') as f: + pickle.dump(all_betas, f) + print('Serialized list of betas into', serialize_file) + return + + +def Main(argv): + """Get ChromeOS first betas list from history URL.""" + + parser = argparse.ArgumentParser() + parser.add_argument( + '--serialize', + dest='serialize', + default=None, + help='Save list of common images into the specified ' + 'file.') + options = parser.parse_args(argv) + + try: + opener = urllib.URLopener() + all_versions = opener.open(VERSIONS_HISTORY_URL) + except IOError as ioe: + print('Cannot open', VERSIONS_HISTORY_URL) + print(ioe) + return 1 + + all_betas = FindAllBetas(all_versions) + DisplayBetas(all_betas) + if options.serialize: + SerializeBetas(all_betas, options.serialize) + all_versions.close() + + return 0 + + +if __name__ == '__main__': + retval = Main(sys.argv[1:]) + sys.exit(retval) |