# Copyright 2017 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 = "dhaddock, Chromium OS"
NAME = "autoupdate_ForcedOOBEUpdate.full"
PURPOSE = "Test forced update at OOBE."
TIME = "MEDIUM"
TEST_CATEGORY = "Functional"
TEST_CLASS = "platform"
TEST_TYPE = "server"
ATTRIBUTES = "suite:au-perbuild"
DOC = """
This tests the forced autoupdate flow at OOBE.

Debugging steps:
This test cannot be debugged locally easily because
1. Using a devserver on your workstation is blocked by SNAX
2. The test relies on reading a job_repo_url which is only set by runs
initiated in the lab.

You will need to use a lab DUT and a lab devserver but kick it off from your
workstation. You can start by going to cautotest and locking a DUT.

You will need to pass a job_repo_url param to test_that.

The test needs to be able to ssh into devservers. To ssh into lab devservers
Follow these instructions to setup the ssh access to lab devservers:
https://sites.google.com/a/google.com/chromeos/for-team-members/infrastructure/chromeos-admin/devserver-access

Use this instruction to find the list of lab devservers:
atest server list | grep devserver

Get access to "Access To Chrome Lab or Cautotest" from:
https://sphinx.corp.google.com/sphinx/#accessChangeRequest:systemName=default-mnp-use-cases

Then run the test as follows:
test_that <hostname>.cros autoupdate_ForcedOOBEUpdate.full --args="job_repo_url='http://<IP>:<PORT>/static/<board>-release/RXX-XXXX.X.X/autotest/packages'"

- IP: The IP of the devserver you are running the test agains:
- PORT: The port of the devserver, normally 8082
"""

from autotest_lib.client.common_lib import utils

args_dict = utils.args_to_dict(args)

def run(machine):
    host = hosts.create_host(machine)
    job.run_test('autoupdate_ForcedOOBEUpdate', host=host, full_payload=True,
                 **args_dict)

job.parallel_simple(run, machines)
