aboutsummaryrefslogtreecommitdiff
path: root/get_common_image_version.py
diff options
context:
space:
mode:
authorLuis Lozano <llozano@chromium.org>2013-03-15 14:44:13 -0700
committerChromeBot <chrome-bot@google.com>2013-03-15 15:51:37 -0700
commitf81680c018729fd4499e1e200d04b48c4b90127c (patch)
tree940608da8374604b82edfdb2d7df55d065f05d4c /get_common_image_version.py
parent2296ee0b914aba5bba07becab4ff68884ce9b8a5 (diff)
downloadtoolchain-utils-f81680c018729fd4499e1e200d04b48c4b90127c.tar.gz
Cleaned up directory after copy of tools from perforce directory
Got rid of stale copies of some tools like "crosperf" and moved all files under v14 directory (that came from perforce) into the top directory. BUG=None TEST=None Change-Id: I408d17a36ceb00e74db71403d2351fd466a14f8e Reviewed-on: https://gerrit-int.chromium.org/33887 Tested-by: Luis Lozano <llozano@chromium.org> Reviewed-by: Yunlian Jiang <yunlian@google.com> Commit-Queue: Luis Lozano <llozano@chromium.org>
Diffstat (limited to 'get_common_image_version.py')
-rwxr-xr-xget_common_image_version.py87
1 files changed, 87 insertions, 0 deletions
diff --git a/get_common_image_version.py b/get_common_image_version.py
new file mode 100755
index 00000000..cdac8006
--- /dev/null
+++ b/get_common_image_version.py
@@ -0,0 +1,87 @@
+#!/usr/bin/python
+#
+# 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.
+"""
+
+__author__ = "llozano@google.com (Luis Lozano)"
+
+import optparse
+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", 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 = optparse.OptionParser()
+ parser.add_option("--serialize", dest="serialize", default=None,
+ help="Save list of common images into the specified file.")
+ options = parser.parse_args(argv)[0]
+
+ 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)
+ sys.exit(retval)