#!/bin/sh

set -eux

cat > /etc/haproxy/haproxy.cfg <<EOF
global
        chroot /var/lib/haproxy
        user haproxy
        group haproxy
        daemon
        maxconn 4096

defaults
        log global
        option dontlognull
        option redispatch
        retries 3
        timeout client 50s
        timeout connect 10s
        timeout http-request 5s
        timeout server 50s
        maxconn 4096

frontend test-front
    bind *:8080
    mode http
    default_backend test-back

backend test-back
    mode http
    stick store-request src
    stick-table type ip size 256k expire 30m
    server test-1 localhost:80
EOF

systemctl restart haproxy

# index.html is shipped with apache2
# Download it via haproxy and compare
if wget -t1 http://localhost:8080 -O- | cmp /var/www/html/index.html -; then
    echo "OK: index.html downloaded via haproxy matches the source file."
else
    echo "FAIL: downloaded index.html via haproxy is different from the"
    echo "      file delivered by apache."
    exit 1
fi

exit 0
