{% if env == 'staging' %}
suffix  = 'stg.phx2.fedoraproject.org'
non_phx_suffix = 'stg.fedoraproject.org'
{% else %}
suffix = 'phx2.fedoraproject.org'
non_phx_suffix = 'fedoraproject.org'
vpn_suffix = 'vpn.fedoraproject.org'
{% endif %}


config = dict(
    # This is a dict of possible addresses from which fedmsg can send
    # messages.  fedmsg.init(...) requires that a 'name' argument be passed
    # to it which corresponds with one of the keys in this dict.
    endpoints = {
        # For message producers, fedmsg will try to guess the
        # name of it's calling module to determine which endpoint definition
        # to use.  This can be overridden by explicitly providing the name in
        # the initial call to fedmsg.init(...).
        "bodhi.bodhi01": [
            "tcp://bodhi01.%s:300%i" % (suffix, i)
            for i in range(8)
        ],
{% if not env == 'staging' %}
        "bodhi.bodhi02": [
            "tcp://bodhi02.%s:300%i" % (suffix, i)
            for i in range(8)
        ],
{% endif %}
{% if not env == 'staging' %}
        "bodhi.releng04": [
            "tcp://releng04.%s:3000" % suffix,
            "tcp://releng04.%s:3001" % suffix,
        ],
        "bodhi.relepel01": [
            "tcp://relepel01.%s:3000" % suffix,
            "tcp://relepel01.%s:3001" % suffix,
        ],
{% endif %}

        # This used to be on value01 and value03.. but now we just have one
        "supybot.value01": [
            "tcp://value01.%s:3000" % suffix,
        ],

        # Askbot runs as 6 processes with 1 thread each.
        "askbot.ask01": [
            "tcp://ask01.%s:30%02i" % (suffix, i)
            for i in range(6)
        ],

{% if env != 'staging' %}
        "askbot.ask02": [
            "tcp://ask02.%s:30%02i" % (suffix, i)
            for i in range(6)
        ],
{% endif %}

        # The mirrormanager2 frontend runs as 2 processes with 1 thread each.
        "mirrormanager2.mm-frontend01": [
            "tcp://mm-frontend01.%s:30%02i" % (suffix, i)
            for i in range(2)
        ],

        # mizdebsk says he thinks we'll need four sockets.  Two services
        # (koschei-resolver and koschei-polling) are only sending messages, one
        # service (koschei-watcher) can both send and receive them.  The wsgi
        # webapp doesn't use fedmsg at all and all services are single-threaded
        # koschei-watcher uses two endpoints
        "koschei.koschei01": [
            "tcp://koschei01.%s:30%02i" % (suffix, i)
            for i in range(4)
        ],

        # koji is not listed here since it publishes to the fedmsg-relay


# Dynamically generate endpoint declarations from our wsgi app vars.
# Eventually, replace *all* fedmsg endpoint definitions with this one loop
{% for host in groups['all'] %}
{% if 'wsgi_fedmsg_service' in hostvars[host] and env == hostvars[host]['env'] %}
        "{{hostvars[host]['wsgi_fedmsg_service']}}.{{host.split('.')|first}}": [
{% for i in range(hostvars[host]['wsgi_procs'] * hostvars[host]['wsgi_threads']) %}
            "tcp://{{host}}:30{{'%02d' % i}}",
{% endfor %}
        ],
{% endif %}
{% endfor %}
    },
)
