aboutsummaryrefslogtreecommitdiffhomepage
path: root/infra/bots/recipe_modules/core/resources/upload_dm_results.py
diff options
context:
space:
mode:
Diffstat (limited to 'infra/bots/recipe_modules/core/resources/upload_dm_results.py')
-rwxr-xr-xinfra/bots/recipe_modules/core/resources/upload_dm_results.py98
1 files changed, 0 insertions, 98 deletions
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 1bee64fb78..0000000000
--- 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:])