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

Side by Side Diff: swarm_client/example/run_example_swarm.py

Issue 69143004: Delete swarm_client. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/
Patch Set: Created 7 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « swarm_client/example/run_example_local.py ('k') | swarm_client/googletest/README.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 (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 """Runs hello_world.py, through hello_world.isolate, remotely on a Swarm slave.
7 """
8
9 import datetime
10 import getpass
11 import hashlib
12 import optparse
13 import os
14 import shutil
15 import subprocess
16 import sys
17 import tempfile
18
19
20 ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
21
22 # Mapping of the sys.platform value into Swarm OS value.
23 OSES = {'win32': 'win', 'linux2': 'linux', 'darwin': 'mac'}
24
25
26 def run(cmd, verbose):
27 cmd = cmd[:]
28 cmd.extend(['--verbose'] * verbose)
29 print('Running: %s' % ' '.join(cmd))
30 cmd = [sys.executable, os.path.join(ROOT_DIR, '..', cmd[0])] + cmd[1:]
31 if sys.platform != 'win32':
32 cmd = ['time', '-p'] + cmd
33 subprocess.check_call(cmd)
34
35
36 def simple(isolate_server, swarming_server, prefix, os_slave, verbose):
37 try:
38 # All the files are put in a temporary directory. This is optional and
39 # simply done so the current directory doesn't have the following files
40 # created:
41 # - hello_world.isolated
42 # - hello_world.isolated.state
43 tempdir = tempfile.mkdtemp(prefix='hello_world')
44 isolated = os.path.join(tempdir, 'hello_world.isolated')
45
46 run(
47 [
48 'isolate.py',
49 'check',
50 '--isolate', os.path.join(ROOT_DIR, 'hello_world.isolate'),
51 '--isolated', isolated,
52 # Manually override the OS.
53 '--variable', 'OS', OSES[os_slave],
54 ],
55 verbose)
56
57 run(
58 [
59 'swarming.py',
60 'run',
61 '--os', os_slave,
62 '--swarming', swarming_server,
63 '--task-prefix', prefix,
64 '--isolate-server', isolate_server,
65 isolated,
66 ],
67 verbose)
68 return 0
69 finally:
70 shutil.rmtree(tempdir)
71
72
73 def involved(isolate_server, swarming_server, prefix, os_slave, verbose):
74 """Runs all the steps involved individually, for demonstration purposes."""
75 try:
76 # All the files are put in a temporary directory. This is optional and
77 # simply done so the current directory doesn't have the following files
78 # created:
79 # - hello_world.isolated
80 # - hello_world.isolated.state
81 tempdir = tempfile.mkdtemp(prefix='hello_world')
82 isolated = os.path.join(tempdir, 'hello_world.isolated')
83
84 print('Archiving')
85 run(
86 [
87 'isolate.py',
88 'archive',
89 '--isolate', os.path.join(ROOT_DIR, 'hello_world.isolate'),
90 '--isolated', isolated,
91 '--outdir', isolate_server,
92 # Manually override the OS.
93 '--variable', 'OS', OSES[os_slave],
94 ],
95 verbose)
96 hashval = hashlib.sha1(open(isolated, 'rb').read()).hexdigest()
97 finally:
98 shutil.rmtree(tempdir)
99
100 print('\nRunning')
101 run(
102 [
103 'swarming.py',
104 'trigger',
105 '--os', os_slave,
106 '--isolate-server', isolate_server,
107 '--swarming', swarming_server,
108 '--task-prefix', prefix,
109 '--task',
110 hashval,
111 'hello_world',
112 # Number of shards.
113 '1',
114 '*',
115 ],
116 verbose)
117
118 print('\nGetting results')
119 run(
120 [
121 'swarming.py',
122 'collect',
123 '--swarming', swarming_server,
124 prefix + 'hello_world',
125 ],
126 verbose)
127 return 0
128
129
130 def main():
131 parser = optparse.OptionParser(description=sys.modules[__name__].__doc__)
132 parser.add_option(
133 '-I', '--isolate-server',
134 metavar='URL', default='',
135 help='Isolate server to use')
136 parser.add_option(
137 '-S', '--swarming',
138 metavar='URL', default='',
139 help='Swarming server to use')
140 parser.add_option('-v', '--verbose', action='count', default=0)
141 parser.add_option(
142 '-o', '--os', default=sys.platform,
143 help='Swarm OS image to request. Should be one of the valid sys.platform '
144 'values like darwin, linux2 or win32 default: %default.')
145 parser.add_option(
146 '--short', action='store_true',
147 help='Use \'swarming.py run\' instead of running each step manually')
148 options, args = parser.parse_args()
149 if args:
150 parser.error('Unsupported argument %s' % args)
151 if not options.isolate_server:
152 parser.error('--isolate-server is required.')
153 if not options.swarming:
154 parser.error('--swarming is required.')
155
156 prefix = getpass.getuser() + '-' + datetime.datetime.now().isoformat() + '-'
157 try:
158 if options.short:
159 return simple(
160 options.isolate_server,
161 options.swarming,
162 prefix,
163 options.os,
164 options.verbose)
165 else:
166 return involved(
167 options.isolate_server,
168 options.swarming,
169 prefix,
170 options.os,
171 options.verbose)
172 except subprocess.CalledProcessError as e:
173 print e.returncode or 1
174
175
176 if __name__ == '__main__':
177 sys.exit(main())
OLDNEW
« no previous file with comments | « swarm_client/example/run_example_local.py ('k') | swarm_client/googletest/README.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698