Index: infra/bots/recipe_modules/core/resources/upload_dm_results.py |
diff --git a/infra/bots/recipe_modules/core/resources/upload_dm_results.py b/infra/bots/recipe_modules/core/resources/upload_dm_results.py |
deleted file mode 100755 |
index 1bee64fb78e0c23d198c61031f0e1315227df3f2..0000000000000000000000000000000000000000 |
--- a/infra/bots/recipe_modules/core/resources/upload_dm_results.py |
+++ /dev/null |
@@ -1,98 +0,0 @@ |
-#!/usr/bin/env python |
-# Copyright 2014 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-"""Upload DM output PNG files and JSON summary to Google Storage.""" |
- |
-import datetime |
-import json |
-import os |
-import shutil |
-import sys |
-import tempfile |
- |
-def main(dm_dir, git_hash, builder_name, build_number, try_issue, import_path): |
- """Upload DM output PNG files and JSON summary to Google Storage. |
- |
- dm_dir: path to PNG files and JSON summary (str) |
- git_hash: this build's Git hash (str) |
- builder_name: name of this builder (str) |
- build_number: nth build on this builder (str or int) |
- try_issue: Rietveld issue if this is a try job (str, int, or None) |
- import_path: Path to import the gs_utils package (str) |
- """ |
- # import gs_utils |
- sys.path.insert(0, import_path) |
- import gs_utils |
- |
- # Private, but Google-readable. |
- ACL = gs_utils.GSUtils.PredefinedACL.PRIVATE |
- FINE_ACLS = [( |
- gs_utils.GSUtils.IdType.GROUP_BY_DOMAIN, |
- 'google.com', |
- gs_utils.GSUtils.Permission.READ |
- )] |
- |
- # Move dm.json and verbose.log to their own directory for easy upload. |
- tmp = tempfile.mkdtemp() |
- shutil.move(os.path.join(dm_dir, 'dm.json'), |
- os.path.join(tmp, 'dm.json')) |
- shutil.move(os.path.join(dm_dir, 'verbose.log'), |
- os.path.join(tmp, 'verbose.log')) |
- |
- # Make sure the JSON file parses correctly. |
- json_file_name = os.path.join(tmp, 'dm.json') |
- with open(json_file_name) as jsonFile: |
- try: |
- json.load(jsonFile) |
- except ValueError: |
- json_content = open(json_file_name).read() |
- print >> sys.stderr, "Invalid JSON: \n\n%s\n" % json_content |
- raise |
- |
- # Only images are left in dm_dir. Upload any new ones. |
- gs = gs_utils.GSUtils() |
- bucket, image_dest_dir = 'chromium-skia-gm', 'dm-images-v1' |
- print 'Uploading images to gs://' + bucket + '/' + image_dest_dir |
- gs.upload_dir_contents(dm_dir, |
- bucket, |
- image_dest_dir, |
- upload_if = gs.UploadIf.ALWAYS, |
- predefined_acl = ACL, |
- fine_grained_acl_list = FINE_ACLS) |
- |
- |
- # /dm-json-v1/year/month/day/hour/git-hash/builder/build-number/dm.json |
- now = datetime.datetime.utcnow() |
- summary_dest_dir = '/'.join(['dm-json-v1', |
- str(now.year ).zfill(4), |
- str(now.month).zfill(2), |
- str(now.day ).zfill(2), |
- str(now.hour ).zfill(2), |
- git_hash, |
- builder_name, |
- str(build_number)]) |
- |
- # Trybot results are further siloed by CL. |
- if try_issue: |
- summary_dest_dir = '/'.join(['trybot', summary_dest_dir, str(try_issue)]) |
- |
- # Upload the JSON summary and verbose.log. |
- print 'Uploading logs to gs://' + bucket + '/' + summary_dest_dir |
- gs.upload_dir_contents(tmp, |
- bucket, |
- summary_dest_dir, |
- predefined_acl = ACL, |
- fine_grained_acl_list = FINE_ACLS) |
- |
- |
- # Just for hygiene, put dm.json and verbose.log back. |
- shutil.move(os.path.join(tmp, 'dm.json'), |
- os.path.join(dm_dir, 'dm.json')) |
- shutil.move(os.path.join(tmp, 'verbose.log'), |
- os.path.join(dm_dir, 'verbose.log')) |
- os.rmdir(tmp) |
- |
-if '__main__' == __name__: |
- main(*sys.argv[1:]) |