Beispiel #1
0
    def _apply_high_security_mode_fixups(cls, server_settings, local_settings):
        # When High Security Mode is True in local_settings, then all
        # security related settings should be removed from server_settings.
        # That way, when the local and server side configuration settings
        # are merged, the local security settings will not get overwritten
        # by the server side configuration settings.
        #
        # Note that security settings we may want to remove can appear at
        # both the top level of the server settings, but also nested within
        # the 'agent_config' sub dictionary. Those settings at the top level
        # represent how the settings were previously overridden for high
        # security mode. Those in 'agent_config' correspond to server side
        # configuration as set by the user.

        if not local_settings.high_security:
            return server_settings

        # Remove top-level 'high_security' setting. This will only exist
        # if it had been enabled server side.

        if "high_security" in server_settings:
            del server_settings["high_security"]

        # Remove individual security settings from top level of configuration
        # settings.

        for setting in cls.SECURITY_SETTINGS:
            if setting in server_settings:
                del server_settings[setting]

        # When server side configuration is disabled, there will be no
        # agent_config value in server_settings, so no more fix-ups
        # are required.

        if "agent_config" not in server_settings:
            return server_settings

        # Remove individual security settings from agent server side
        # configuration settings.

        agent_config = server_settings["agent_config"]

        for setting in cls.SECURITY_SETTINGS:
            if setting in agent_config:
                del server_settings["agent_config"][setting]

                _logger.info(
                    "Ignoring server side configuration setting for "
                    "%r, because High Security Mode has been activated. "
                    "Using local setting %s=%r.",
                    setting,
                    setting,
                    fetch_config_setting(local_settings, setting),
                )

        return server_settings
def test_translate_deprecated_setting_without_old_setting(old, new):
    # Before: deprecated setting will *NOT* be in settings object.
    #         new setting will be in settings object and have its value
    #
    # After:  deprecated setting will still *NOT* be in settings object
    #         new setting will still have its value (remain unchanged)

    settings = apply_server_side_settings()
    apply_config_setting(settings, new.name, new.value)

    assert old.name not in flatten_settings(settings)
    assert fetch_config_setting(settings, new.name) == new.value

    cached = [(new.name, new.value)]
    result = translate_deprecated_settings(settings, cached)

    assert result is settings
    assert old.name not in flatten_settings(result)
    assert fetch_config_setting(result, new.name) == new.value
def test_translate_deprecated_setting_without_new_setting(old, new):
    # Before: deprecated setting will be in settings object.
    #         new setting will be in settings object and have default value
    #
    # After:  deprecated setting will *NOT* be in settings object
    #         new setting will have value of deprecated setting

    settings = apply_server_side_settings()
    apply_config_setting(settings, old.name, old.value)

    assert fetch_config_setting(settings, old.name) == old.value
    assert fetch_config_setting(settings, new.name) == new.default

    cached = [(old.name, old.value)]
    result = translate_deprecated_settings(settings, cached)

    assert result is settings
    assert old.name not in flatten_settings(result)
    assert fetch_config_setting(result, new.name) == old.value
def test_default_values(name, expected_value):
    settings = global_settings()
    value = fetch_config_setting(settings, name)
    assert value == expected_value