def test_get_advanced_setting_found(mock_read_settings_file, mock_settings_values): for k, v in mock_settings_values.items(): s = advanced_settings.get_adv_setting(k) assert s.value == v assert s.definition == \ advanced_settings.settings_by_id[k]
async def set_advanced_setting(request: web.Request) -> web.Response: """ Set a specific advanced setting. The "id" field must correspond to an id field of a setting in `opentrons.config.advanced_settings.settings`. Saves the value of "value" for the setting that matches the supplied id. The response body includes the new settings in the same format as GET /settings, and a "links" object that may contain a "restart" key. If the "restart" key is present, the client should restart the robot, and the value is a URI that will do so. POST /settings {"id": short-id, "value": tristate new-value} -> 400 Bad Request {"error": error-shortname, "message": str} -> 500 Internal Server Error {"error": "error-shortname", "message": str} -> 200 OK {"settings": (as GET /settings), "links": {"restart": uri if restart required}} """ global _SETTINGS_RESTART_REQUIRED data = await request.json() key = data.get('id') value = data.get('value') log.info(f'set_advanced_setting: {key} -> {value}') setting = advs.settings_by_id.get(key) if not setting: log.warning(f'set_advanced_setting: bad request: {key} invalid') return web.json_response( { 'error': 'no-such-advanced-setting', 'message': f'ID {key} not found in settings list', 'links': {} }, status=400) old_val = advs.get_adv_setting(key) advs.set_adv_setting(key, value) if key == 'disableLogAggregation'\ and ARCHITECTURE == SystemArchitecture.BUILDROOT: code, stdout, stderr = await log_control.set_syslog_level( 'emerg' if value else 'info') if code != 0: log.error(f"Could not set log control: {code}: stdout={stdout}" f" stderr={stderr}") return web.json_response( { 'error': 'log-config-failure', 'message': 'Failed to set log upstreaming: {code}' }, status=500) _SETTINGS_RESTART_REQUIRED = _SETTINGS_RESTART_REQUIRED or ( setting.restart_required and old_val != value) return web.json_response( _get_adv_settings_response(), status=200, )
def split_labware_definitions(): return advs.get_adv_setting('splitLabwareDefinitions')
def test_get_advanced_setting_not_found(mock_read_settings_file): assert advanced_settings.get_adv_setting("unknown") is None
def short_fixed_trash(): return advs.get_adv_setting('shortFixedTrash')
def disable_home_on_boot(): return advs.get_adv_setting('disableHomeOnBoot')
def dots_deck_type(): return advs.get_adv_setting('deckCalibrationDots')
def calibrate_to_bottom(): return advs.get_adv_setting('calibrateToBottom')
def get_setting_with_env_overload(setting_name): env_name = 'OT_API_FF_' + setting_name if env_name in os.environ: return os.environ[env_name].lower() in ('1', 'true', 'on') else: return advs.get_adv_setting(setting_name) is True