def migrate_config(self, current_config, config_to_migrate,
                       always_update, update_defaults):
        """Migrate config value in current_config, updating config_to_migrate.

        Given the current_config object, it will attempt to find a value
        based on all the names given. If no name could be found, then it
        will simply set the value to the default.

        If a value is found and is in the list of previous_defaults, it will
        either update or keep the old value based on if update_defaults is
        set.

        If a non-default value is set it will either keep this value or update
        it based on if ``always_update`` is true.

        Args:
            current_config (dict): Current configuration.
            config_to_migrate (dict): Config to update.
            always_update (bool): Always update value.
            update_defaults (bool): Update values found in previous_defaults
        """
        value = self._search_config_for_possible_names(current_config)
        self._update_config(config_to_migrate, value,
                            always_update, update_defaults)
Migrate config value in current_config, updating config_to_migrate.

        Given the current_config object, it will attempt to find a value
        based on all the names given. If no name could be found, then it
        will simply set the value to the default.

        If a value is found and is in the list of previous_defaults, it will
        either update or keep the old value based on if update_defaults is
        set.

        If a non-default value is set it will either keep this value or update
        it based on if ``always_update`` is true.

        Args:
            current_config (dict): Current configuration.
            config_to_migrate (dict): Config to update.
            always_update (bool): Always update value.
            update_defaults (bool): Update values found in previous_defaults