Theo Chatzimichos 79c2f8
#!/bin/bash
Theo Chatzimichos 79c2f8
Theo Chatzimichos 79c2f8
# Validate the salt-generated nginx configs
Theo Chatzimichos 79c2f8
Theo Chatzimichos 79c2f8
if [[ $(whoami) != 'root' ]]; then
Theo Chatzimichos 79c2f8
    if [[ -f /usr/bin/sudo ]]; then
Theo Chatzimichos 79c2f8
        SUDO='/usr/bin/sudo'
Theo Chatzimichos 79c2f8
    else
Theo Chatzimichos 79c2f8
        echo 'Please install sudo first, or run this script as root'
Theo Chatzimichos 79c2f8
        exit 1
Theo Chatzimichos 79c2f8
    fi
Theo Chatzimichos 79c2f8
fi
Theo Chatzimichos 79c2f8
Theo Chatzimichos 79c2f8
reset_nginx() {
Theo Chatzimichos 79c2f8
    $SUDO rm -rf /etc/nginx/vhosts.d/*
Theo Chatzimichos 79c2f8
    printf "roles:\n- $role" | $SUDO tee /etc/salt/grains > /dev/null
Theo Chatzimichos 79c2f8
}
Theo Chatzimichos 79c2f8
Theo Chatzimichos 79c2f8
WEB_ROLES=( $(bin/get_roles.py | grep web_) )
Theo Chatzimichos 79c2f8
Theo Chatzimichos 79c2f8
for role in ${WEB_ROLES[@]}; do
Theo Chatzimichos 79c2f8
    if grep nginx salt/role/$role.sls > /dev/null; then
Theo Chatzimichos 79c2f8
        echo "Testing role: $role"
Theo Chatzimichos 79c2f8
        reset_nginx
Theo Chatzimichos 79c2f8
        $SUDO salt-call --local -l quiet state.apply role.$role > /dev/null
Theo Chatzimichos 79c2f8
        if $(nginx -tq); then
Theo Chatzimichos 79c2f8
            echo 'PASSED'
Theo Chatzimichos 79c2f8
        else
Theo Chatzimichos 79c2f8
            STATUS=1
Theo Chatzimichos 79c2f8
        fi
Theo Chatzimichos 79c2f8
    fi
Theo Chatzimichos 79c2f8
done
Theo Chatzimichos 79c2f8
Theo Chatzimichos 79c2f8
exit $STATUS