def build_cluster_info(config):
    """
    Construct our cluster settings. Dumps global settings config to each cluster
    settings, however, does not overwrite local cluster settings. Cluster config
    takes precedence over global. Use global config for generic info to be
    applied by default.

    Note:
        However, as in the docstring for :func:`send_to_notifiers`, the local
        settings are not used for anything other than user/pass for getting
        snapshot information. There's not a need to send notifications to
        multiple areas at the time of writing. I doubt this will change in the
        future.

    Args:
        config: global settings config

    Returns:
        Global settings config, but with each cluster config is updated with
        global settings.
    """
    global_settings = config['settings']
    cluster_settings = config['clusters']

    for cluster in cluster_settings:

        # Set global as settings if not present
        if 'settings' not in cluster:
            cluster['settings'] = global_settings
            continue

        # Only add/update keys not present in cluster
        for k, v in global_settings.items():
            if k not in cluster['settings']:
                cluster['settings'][k] = v

    return config