enrollment.py revision 20b4120c820669a54938719a4231c23cd3242d46
1# Copyright 2014 The Chromium OS Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import logging
6
7from autotest_lib.client.bin import utils
8from autotest_lib.client.common_lib.cros import chrome
9
10
11def _ExecuteOobeCmd(browser, cmd):
12    logging.info('Invoking ' + cmd)
13    oobe = browser.oobe
14    oobe.WaitForJavaScriptExpression('typeof Oobe !== \'undefined\'', 10)
15    oobe.ExecuteJavaScript(cmd)
16
17
18def SwitchToRemora(browser):
19    """Switch to Remora enrollment.
20
21    @param browser: telemetry browser object.
22    """
23    chrome.Chrome.wait_for_browser_restart(
24            lambda: _ExecuteOobeCmd(browser,
25                                    'Oobe.remoraRequisitionForTesting();'))
26    utils.poll_for_condition(lambda: browser.oobe_exists, timeout=30)
27
28
29def RemoraEnrollment(browser, user_id, password):
30    """Enterprise login for a Remora device.
31
32    @param browser: telemetry browser object.
33    @param user_id: login credentials user_id.
34    @param password: login credentials password.
35    """
36    SwitchToRemora(browser)
37    chrome.Chrome.wait_for_browser_restart(
38            lambda: browser.oobe.NavigateGaiaLogin(
39                    user_id, password, enterprise_enroll=True,
40                    for_user_triggered_enrollment=False))
41
42
43def EnterpriseEnrollment(browser, user_id, password):
44    """Enterprise login for a kiosk device.
45
46    @param browser: telemetry browser object.
47    @param user_id: login credentials user_id.
48    @param password: login credentials password.
49    """
50    chrome.Chrome.wait_for_browser_restart(
51            lambda: browser.oobe.NavigateGaiaLogin(
52                    user_id, password, enterprise_enroll=True,
53                    for_user_triggered_enrollment=True))
54