Alex Miller | 6faf3f1 | 2013-11-11 10:50:54 -0800 | [diff] [blame] | 1 | #!/usr/bin/python -t |
| 2 | |
| 3 | """ |
| 4 | Nice little script to quickly stage a build onto a devserver. |
| 5 | """ |
| 6 | |
| 7 | import argparse |
| 8 | import sys |
| 9 | |
| 10 | import common |
| 11 | from autotest_lib.client.common_lib.cros import dev_server |
| 12 | from autotest_lib.server.cros.dynamic_suite import tools |
| 13 | from autotest_lib.server import frontend |
| 14 | |
| 15 | def 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 | |
| 30 | def 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 |
Simran Basi | 25e7a92 | 2014-10-31 11:56:10 -0700 | [diff] [blame] | 40 | ds.stage_artifacts(options.build, ['full_payload', 'stateful', |
| 41 | 'control_files', 'autotest_packages']) |
Alex Miller | 6faf3f1 | 2013-11-11 10:50:54 -0800 | [diff] [blame] | 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 | |
| 48 | if __name__ == '__main__': |
| 49 | main() |