{#   Copyright (c) 2015 Rackspace
#
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
#    not use this file except in compliance with the License. You may obtain
#    a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.
#
#}
{% extends 'base.j2' %}


{% from 'macros.j2' import frontend_macro, backend_macro %}
{% from 'macros.j2' import peers_macro %}


{% set loadbalancer_id = loadbalancer.id %}
{% set sock_path = stats_sock %}


{% block peers %}
{{ peers_macro(constants, loadbalancer) }}
{% endblock peers %}

{% block prometheus %}
{% if enable_prometheus %}
frontend prometheus-exporter-internal-endpoint
    bind 127.0.0.1:9101
    mode http
    no log
    option http-use-htx
    http-request use-service prometheus-exporter if { path /metrics }
    http-request reject
    timeout http-request 5s
    timeout client 5s
backend prometheus-exporter-internal
    mode http
    no log
    balance first
    timeout connect 5s
    timeout server 5s
    server prometheus-internal 127.0.0.1:9102
{% endif %}
{% endblock prometheus %}

{% block proxies %}
    {% if loadbalancer.enabled %}
         {% for listener in loadbalancer.listeners if listener.enabled %}
             {{- frontend_macro(constants, lib_consts, listener, loadbalancer.vip_address,
                                loadbalancer.additional_vips) }}
             {% for pool in listener.pools if pool.enabled %}
               {{- backend_macro(constants, lib_consts, listener, pool, loadbalancer, state_file) }}
             {% endfor %}
         {% endfor %}
    {% endif %}
{% endblock proxies %}
