| #!/usr/bin/python2 -t |
| |
| """ |
| Nice little script to quickly stage a build onto a devserver. |
| """ |
| |
| import argparse |
| import sys |
| |
| import common |
| from autotest_lib.client.common_lib.cros import dev_server |
| from autotest_lib.server.cros.dynamic_suite import tools |
| from autotest_lib.server import frontend |
| |
| def parse_args(): |
| """Parse command line arguments.""" |
| parser = argparse.ArgumentParser() |
| parser.add_argument('--build', help='e.g. lumpy-release/R26-4321.0.0') |
| parser.add_argument('--server', help='OPTIONAL: e.g. devserver.cros') |
| parser.add_argument('--host', |
| help='OPTIONAL: e.g. chromeos2-row3-rack4-host5') |
| |
| args = parser.parse_args() |
| if not args.build: |
| parser.print_help() |
| sys.exit(1) |
| |
| return args |
| |
| def main(): |
| """Stage a build on the devserver.""" |
| options = parse_args() |
| if options.server: |
| server = 'http://%s/' % options.server |
| ds = dev_server.ImageServer(server) |
| else: |
| ds = dev_server.ImageServer.resolve(options.build) |
| |
| print "Downloading %s..." % options.build |
| ds.stage_artifacts(options.build, ['full_payload', 'stateful', |
| 'control_files', 'autotest_packages']) |
| if options.host: |
| print "Poking job_repo_url on %s..." % options.host |
| repo_url = tools.get_package_url(ds.url(), options.build) |
| AFE = frontend.AFE() |
| AFE.set_host_attribute('job_repo_url', repo_url, hostname=options.host) |
| |
| if __name__ == '__main__': |
| main() |