Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(454)

Side by Side Diff: client/example/2_swarming_run_auto_upload.py

Issue 1337633002: Reapply "Isolated task support in Endpoints API: client side (3/3)" and fixes" (Closed) Base URL: git@github.com:luci/luci-py.git@master
Patch Set: Final fixes Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « client/example/2_swarming_run.py ('k') | client/example/3_swarming_trigger_collect.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright 2012 The Swarming Authors. All rights reserved.
3 # Use of this source code is governed under the Apache License, Version 2.0 that
4 # can be found in the LICENSE file.
5
6 """Runs hello_world.py, through hello_world.isolate, remotely on a Swarming
7 slave.
8
9 It first 'compiles' hello_world.isolate into hello_word.isolated, then requests
10 via swarming.py to archives, run and collect results for this task.
11 """
12
13 import os
14 import shutil
15 import subprocess
16 import sys
17 import tempfile
18
19 # Pylint can't find common.py that's in the same directory as this file.
20 # pylint: disable=F0401
21 import common
22
23
24 def main():
25 options = common.parse_args(use_isolate_server=True, use_swarming=True)
26 tempdir = tempfile.mkdtemp(prefix=u'hello_world')
27 try:
28 # All the files are put in a temporary directory. This is optional and
29 # simply done so the current directory doesn't have the following files
30 # created:
31 # - hello_world.isolated
32 # - hello_world.isolated.state
33 isolated = os.path.join(tempdir, 'hello_world.isolated')
34
35 common.note(
36 'Creating hello_world.isolated. Note that this doesn\'t archives '
37 'anything.')
38 common.run(
39 [
40 'isolate.py',
41 'check',
42 '--isolate', os.path.join('payload', 'hello_world.isolate'),
43 '--isolated', isolated,
44 '--config-variable', 'OS', options.swarming_os,
45 ], options.verbose)
46
47 common.note(
48 'Running the job remotely. This:\n'
49 ' - archives to %s\n'
50 ' - runs and collect results via %s' %
51 (options.isolate_server, options.swarming))
52 cmd = [
53 'swarming.py',
54 'run',
55 '--swarming', options.swarming,
56 '--isolate-server', options.isolate_server,
57 '--dimension', 'os', options.swarming_os,
58 '--task-name', options.task_name,
59 isolated,
60 ]
61 if options.idempotent:
62 cmd.append('--idempotent')
63 if options.priority is not None:
64 cmd.extend(('--priority', str(options.priority)))
65 common.run(cmd, options.verbose)
66 return 0
67 except subprocess.CalledProcessError as e:
68 return e.returncode
69 finally:
70 shutil.rmtree(tempdir)
71
72
73 if __name__ == '__main__':
74 sys.exit(main())
OLDNEW
« no previous file with comments | « client/example/2_swarming_run.py ('k') | client/example/3_swarming_trigger_collect.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698