Chromium Code Reviews| Index: platform_tools/android/tradefed/upload_dm_results.py |
| diff --git a/platform_tools/android/tradefed/upload_dm_results.py b/platform_tools/android/tradefed/upload_dm_results.py |
| new file mode 100755 |
| index 0000000000000000000000000000000000000000..1c5746b68363ff5ce6540a6164d949c6cf591202 |
| --- /dev/null |
| +++ b/platform_tools/android/tradefed/upload_dm_results.py |
| @@ -0,0 +1,73 @@ |
| +#!/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.""" |
| + |
|
borenet
2015/03/05 15:48:47
Nit: 2 lines between top-level items.
djsollen
2015/03/05 15:52:26
Done.
|
| +import datetime |
| +import os |
| +import shutil |
| +import sys |
| +import tempfile |
| + |
| +def main(dm_dir, build_number, builder_name): |
| + """Upload DM output PNG files and JSON summary to Google Storage. |
| + |
| + dm_dir: path to PNG files and JSON summary (str) |
| + build_number: nth build on this builder (str or int) |
| + builder_name: name of this builder (str) |
| + """ |
| + # import gs_utils |
| + current_dir = os.path.dirname(os.path.abspath(__file__)) |
| + sys.path.insert(0, os.path.join(current_dir, "../../../common/py/utils")) |
| + 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 to its own directory to make uploading it easier. |
| + tmp = tempfile.mkdtemp() |
| + shutil.move(os.path.join(dm_dir, 'dm.json'), |
| + os.path.join(tmp, 'dm.json')) |
| + |
| + # Only images are left in dm_dir. Upload any new ones. |
| + gs = gs_utils.GSUtils() |
| + gs.upload_dir_contents(dm_dir, |
| + 'skia-android-dm', |
| + 'dm-images-v1', |
| + upload_if = gs.UploadIf.IF_NEW, |
| + predefined_acl = ACL, |
| + fine_grained_acl_list = FINE_ACLS) |
| + |
| + |
| + # /dm-json-v1/year/month/day/hour/git-hash/builder/build-number/dm.json |
|
borenet
2015/03/05 15:48:47
This is not accurate. Why aren't we using the com
djsollen
2015/03/05 15:52:26
Updated the comment. Also we don't need the git h
borenet
2015/03/05 15:53:56
Ok.
|
| + 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), |
| + str(build_number), |
| + builder_name]) |
| + |
| + # Upload the JSON summary. |
| + gs.upload_dir_contents(tmp, |
| + 'skia-android-dm', |
| + summary_dest_dir, |
| + predefined_acl = ACL, |
| + fine_grained_acl_list = FINE_ACLS) |
| + |
| + |
| + # Just for hygiene, put dm.json back. |
| + shutil.move(os.path.join(tmp, 'dm.json'), |
| + os.path.join(dm_dir, 'dm.json')) |
| + os.rmdir(tmp) |
| + |
| +if '__main__' == __name__: |
| + main(*sys.argv[1:]) |