forked from chromium/chromium
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add logdog_butler cipd package to every swarming gtest_test on androi…
…d tryservers (linux_android_rel_ng, android_n5x_swarming_rel). Add wrapper around android test runner for swarming tasks. This wrapper calls logdog to stream logcats after the completion of the python executable calling test_runner. Adding device serials to every line of logcat logs. Sample of unified logcats: https://luci-logdog.appspot.com/v/?s=chromium%2Fswarming%2F301f0f97eea1a511%2Flogcats%2F%2B%2Ffile:_b_swarm_slave_w_ioVXQmGw_logcats BUG=448050 Review-Url: https://codereview.chromium.org/2163833003 Cr-Commit-Position: refs/heads/master@{#411530}
- Loading branch information
nicholaslin
authored and
Commit bot
committed
Aug 12, 2016
1 parent
d0b75c3
commit 3dbe50f
Showing
6 changed files
with
2,026 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
#!/usr/bin/env python | ||
# Copyright 2016 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. | ||
|
||
"""Wrapper for adding logdog streaming support to swarming tasks.""" | ||
|
||
import argparse | ||
import logging | ||
import os | ||
import subprocess | ||
import sys | ||
import urllib | ||
|
||
|
||
def CommandParser(): | ||
# Parses the command line arguments being passed in | ||
parser = argparse.ArgumentParser() | ||
parser.add_argument('--logdog-bin-cmd', required=True, | ||
help='Command for running logdog butler binary') | ||
parser.add_argument('--project', required=True, | ||
help='Name of logdog project') | ||
parser.add_argument('--logdog-server', | ||
default='services-dot-luci-logdog.appspot.com', | ||
help='URL of logdog server, https:// is assumed.') | ||
parser.add_argument('--service-account-json', required=True, | ||
help='Location of authentication json') | ||
parser.add_argument('--prefix', required=True, | ||
help='Prefix to be used for logdog stream') | ||
parser.add_argument('--source', required=True, | ||
help='Location of file for logdog to stream') | ||
parser.add_argument('--name', required=True, | ||
help='Name to be used for logdog stream') | ||
return parser | ||
|
||
|
||
def CreateUrl(server, project, prefix, name): | ||
stream_name = '%s/%s/+/%s' % (project, prefix, name) | ||
return 'https://%s/v/?s=%s' % (server, urllib.quote_plus(stream_name)) | ||
|
||
|
||
def main(): | ||
parser = CommandParser() | ||
args, test_cmd = parser.parse_known_args(sys.argv[1:]) | ||
logging.basicConfig(level=logging.INFO) | ||
if not test_cmd: | ||
parser.error('Must specify command to run after the logdog flags') | ||
result = subprocess.call(test_cmd) | ||
if '${SWARMING_TASK_ID}' in args.prefix: | ||
args.prefix = args.prefix.replace('${SWARMING_TASK_ID}', | ||
os.environ.get('SWARMING_TASK_ID')) | ||
url = CreateUrl('luci-logdog.appspot.com', args.project, args.prefix, | ||
args.name) | ||
logdog_cmd = [args.logdog_bin_cmd, '-project', args.project, | ||
'-output', 'logdog,host=%s' % args.logdog_server, | ||
'-prefix', args.prefix, | ||
'-service-account-json', args.service_account_json, | ||
'stream', '-source', args.source, | ||
'-stream', '-name=%s' % args.name] | ||
subprocess.call(logdog_cmd) | ||
logging.info('Logcats are located at: %s', url) | ||
return result | ||
|
||
|
||
if __name__ == '__main__': | ||
sys.exit(main()) |
Oops, something went wrong.