Retrieval of information by release channel

Polls omahaproxy for data about Chrome releases

BUG=
NOTRY=true

Review URL: https://codereview.chromium.org/1063073003

Cr-Commit-Position: refs/heads/master@{#27841}
This commit is contained in:
hablich 2015-04-15 05:25:28 -07:00 committed by Commit bot
parent 3a814e4c1a
commit 6198bbc56d
2 changed files with 65 additions and 8 deletions

View File

@ -381,7 +381,7 @@ class RetrieveChromiumV8Releases(Step):
# TODO(machenbach): Unify common code with method above.
class RietrieveChromiumBranches(Step):
class RetrieveChromiumBranches(Step):
MESSAGE = "Retrieve Chromium branch information."
def RunStep(self):
@ -433,6 +433,37 @@ class RietrieveChromiumBranches(Step):
releases_dict.get(revision, {})["chromium_branch"] = ranges
class RetrieveInformationOnChromeReleases(Step):
MESSAGE = 'Retrieves relevant information on the latest Chrome releases'
def Run(self):
params = None
result_raw = self.ReadURL(
"http://omahaproxy.appspot.com/all.json",
params,
wait_plan=[5, 20]
)
recent_releases = json.loads(result_raw)
canaries = []
for current_os in recent_releases:
for current_version in current_os["versions"]:
current_candidate = {
"chrome_version": current_version["version"],
"os": current_version["os"],
"release_date": current_version["current_reldate"],
"v8_version": current_version["v8_version"],
}
if current_version["channel"] == "canary":
canaries.append(current_candidate)
chrome_releases = {"canaries": canaries}
self["chrome_releases"] = chrome_releases
class CleanUp(Step):
MESSAGE = "Clean up."
@ -444,6 +475,12 @@ class WriteOutput(Step):
MESSAGE = "Print output."
def Run(self):
output = {
"releases": self["releases"],
"chrome_releases": self["chrome_releases"],
}
if self._options.csv:
with open(self._options.csv, "w") as f:
writer = csv.DictWriter(f,
@ -455,9 +492,9 @@ class WriteOutput(Step):
writer.writerow(release)
if self._options.json:
with open(self._options.json, "w") as f:
f.write(json.dumps(self["releases"]))
f.write(json.dumps(output))
if not self._options.csv and not self._options.json:
print self["releases"] # pragma: no cover
print output # pragma: no cover
class Releases(ScriptsBase):
@ -486,12 +523,14 @@ class Releases(ScriptsBase):
}
def _Steps(self):
return [
Preparation,
RetrieveV8Releases,
UpdateChromiumCheckout,
RetrieveChromiumV8Releases,
RietrieveChromiumBranches,
RetrieveChromiumBranches,
RetrieveInformationOnChromeReleases,
CleanUp,
WriteOutput,
]

View File

@ -1419,8 +1419,18 @@ Cr-Commit-Position: refs/heads/4.2.71@{#1}
Cmd("git branch -r", " weird/123\n branch-heads/7\n", cwd=chrome_dir),
Cmd("git show refs/branch-heads/7:DEPS", c_deps % "hash_345",
cwd=chrome_dir),
URL("http://omahaproxy.appspot.com/all.json", """[{
"os": "win",
"versions": [{
"version": "1.1.1.1",
"v8_version": "2.2.2.2",
"current_reldate": "04/09/15",
"os": "win",
"channel": "canary"
}]
}]"""),
Cmd("git checkout -f origin/master", ""),
Cmd("git branch -D %s" % TEST_CONFIG["BRANCHNAME"], ""),
Cmd("git branch -D %s" % TEST_CONFIG["BRANCHNAME"], "")
])
args = ["-c", TEST_CONFIG["CHROMIUM"],
@ -1436,7 +1446,15 @@ Cr-Commit-Position: refs/heads/4.2.71@{#1}
"3.3.1.1,3.3,234,,abc12\r\n")
self.assertEquals(csv, FileToText(csv_output))
expected_json = [
expected_json = {"chrome_releases":{
"canaries": [
{
"chrome_version": "1.1.1.1",
"os": "win",
"release_date": "04/09/15",
"v8_version": "2.2.2.2",
}]},
"releases":[
{
"revision": "1",
"revision_git": "hash_456",
@ -1493,8 +1511,8 @@ Cr-Commit-Position: refs/heads/4.2.71@{#1}
"date": "18:15",
"chromium_branch": "",
"revision_link": "https://code.google.com/p/v8/source/detail?r=234",
},
]
},],
}
self.assertEquals(expected_json, json.loads(FileToText(json_output)))