| 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..9aac4075808240f6a1af91588e824e413fb16242
|
| --- /dev/null
|
| +++ b/platform_tools/android/tradefed/upload_dm_results.py
|
| @@ -0,0 +1,74 @@
|
| +#!/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 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/build-number/builder/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),
|
| + 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:])
|
|
|