#!/bin/bash

if [ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]; then
    set -x
fi
set -eu
set -o pipefail

DIB_IPA_ENABLE_RESCUE=${DIB_IPA_ENABLE_RESCUE:-true}

if $DIB_IPA_ENABLE_RESCUE; then
    # Make sure rescue works
    mkdir -p /etc/ipa-rescue-config
fi

case "$DIB_INIT_SYSTEM" in
    upstart)
        if [ -f /etc/init/ufw.conf ]; then
            mv /etc/init/ufw.conf /etc/init/ufw.conf.disabled
        fi
        if [ -f /etc/init/tgt.conf ]; then
            mv /etc/init/tgt.conf /etc/init/tgt.conf.disabled
        fi
        ;;
    systemd)
        if [[ $(systemctl --no-pager list-unit-files iptables) =~ 'enabled' ]]; then
            systemctl disable iptables.service
        fi
        systemctl enable $(svc-map ironic-python-agent).service
        if $DIB_IPA_ENABLE_RESCUE; then
            systemctl enable ironic-agent-create-rescue-user.path
        fi
        # NOTE(rpittau) disable caching remote package index to prevent
        # delays due to failures.
        # This is a new service for dnf-based systems (e.g. Centos8) to speed
        # up subsequent dnf commands, for example automated updates, and
        # it's not really needed in the ipa-ramdisk as we shouldn't install
        # anything during runtime.
        if [[ ${IPA_DISTRO_FAMILY} == 'rh' ]]; then
            if [[ ${YUM} == 'dnf' ]]; then
                systemctl disable dnf-makecache.service
                systemctl disable dnf-makecache.timer
            fi
        fi
        ;;
    sysv)
        update-rc.d iptables disable
        ;;
    *)
        echo "Unsupported init system"
        exit 1
        ;;
esac
