blob: c4dd66fd1740a699b10ecd3a904bd5ee2e94fd78 [file] [log] [blame]
# Copyright (c) 2019 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.
from __future__ import print_function
from __future__ import unicode_literals
import common
from autotest_lib.client.common_lib.global_config import global_config
FROM_AFE = "FROM_AFE"
FROM_HOST_CONFIG = "FROM_HOST_CONFIG"
def _config(_config_override):
config = global_config if _config_override is None else _config_override
enabled = config.get_config_value(
'CROS', 'stable_version_config_repo_enable', type=bool, default=False
)
return config, enabled
def classify_board(board, _config_override=None):
"""
determine what the appropriate information source is for a given board.
@param board string -- board name
@param _config_override -- optional global config object
@returns FROM_AFE or FROM_HOST_CONFIG
"""
config, enabled = _config(_config_override)
if enabled:
boards = config.get_config_value(
'CROS', 'stable_version_config_repo_opt_in_boards', type=list, default=[],
)
if ':all' in boards or board in boards:
return FROM_HOST_CONFIG
return FROM_AFE
def classify_model(model, _config_override=None):
"""
determine what the appropriate information source is for a given model.
@param board string -- board name
@param _config_override -- optional global config object
@returns FROM_AFE or FROM_HOST_CONFIG
"""
config, enabled = _config(_config_override)
if enabled:
models = config.get_config_value(
'CROS', 'stable_version_config_repo_opt_in_models', type=list, default=[],
)
if ':all' in models or model in models:
return FROM_HOST_CONFIG
return FROM_AFE