| # Copyright (c) 2012 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| AUTHOR = "Chromium OS" |
| NAME = "Auto Update Host" |
| TIME = "MEDIUM" |
| TEST_CATEGORY = "Functional" |
| TEST_CLASS = "platform" |
| TEST_TYPE = "server" |
| |
| DOC = """ |
| A test that reimages the assigned machines and checks for success. |
| |
| Can only be used by test suites based on server.cros.dynamic_suite.Suite. |
| Assumes that a label including the image name has already been created. |
| |
| @param image_url: the full URL in which to find the update payload. |
| @param image_name: the name of the image, used to label the device a.k.a. build |
| @param devserver_url: the URL that designates the devserver e.g. |
| http://host:port. |
| """ |
| |
| from autotest_lib.server.cros.dynamic_suite import frontend_wrappers |
| |
| vers = 'cros-version:' |
| repo_url = None |
| if 'devserver_url' in locals() and 'image_name' in locals(): |
| from autotest_lib.server.cros.dynamic_suite import constants |
| from autotest_lib.server.cros.dynamic_suite import tools |
| vers = constants.VERSION_PREFIX |
| repo_url = tools.get_package_url(devserver_url, image_name) |
| |
| AFE = frontend_wrappers.RetryingAFE(timeout_min=30, delay_sec=10, debug=False) |
| |
| def run(machine): |
| host = hosts.create_host(machine, initialize=False) |
| host.clear_cros_version_labels_and_job_repo_url() |
| |
| if job.run_test('autoupdate', host=host, update_url=image_url): |
| label = AFE.get_labels(name=vers+image_name)[0] |
| label.add_hosts([machine]) |
| AFE.set_host_attribute('job_repo_url', repo_url, hostname=machine) |
| |
| |
| job.parallel_simple(run, machines) |