lin
2025-08-21 57113df3a0e2be01232281fad9a5f2c060567981
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/python -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()