Home | History | Annotate | Download | only in contrib
      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
     40   ds.stage_artifacts(options.build, ['full_payload', 'stateful',
     41                                      'control_files', 'autotest_packages'])
     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()
     50