| # 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. |
| |
| |
| |
| |
| import common |
| from 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 |