blob: ea9fd0f9d252ae964efbaec1bb02c343e72a7c43 [file] [log] [blame]
Alex Miller6faf3f12013-11-11 10:50:54 -08001#!/usr/bin/python -t
2
3"""
4Nice little script to quickly stage a build onto a devserver.
5"""
6
7import argparse
8import sys
9
10import common
11from autotest_lib.client.common_lib.cros import dev_server
12from autotest_lib.server.cros.dynamic_suite import tools
13from autotest_lib.server import frontend
14
15def parse_args():
16 """Parse command line arguments."""
17 parser = argparse.ArgumentParser()
18 parser.add_argument('--build', help='e.g. lumpy-release/R26-4321.0.0')
19 parser.add_argument('--server', help='OPTIONAL: e.g. devserver.cros')
20 parser.add_argument('--host',
21 help='OPTIONAL: e.g. chromeos2-row3-rack4-host5')
22
23 args = parser.parse_args()
24 if not args.build:
25 parser.print_help()
26 sys.exit(1)
27
28 return args
29
30def main():
31 """Stage a build on the devserver."""
32 options = parse_args()
33 if options.server:
34 server = 'http://%s/' % options.server
35 ds = dev_server.ImageServer(server)
36 else:
37 ds = dev_server.ImageServer.resolve(options.build)
38
39 print "Downloading %s..." % options.build
40 ds.stage_artifacts(options.build, ['full_payload', 'stateful', 'autotest'])
41
42 if options.host:
43 print "Poking job_repo_url on %s..." % options.host
44 repo_url = tools.get_package_url(ds.url(), options.build)
45 AFE = frontend.AFE()
46 AFE.set_host_attribute('job_repo_url', repo_url, hostname=options.host)
47
48if __name__ == '__main__':
49 main()