#!/bin/bash -xe

CLUSTER_MODEL_REF=${CLUSTER_MODEL_REF:-master}
FORMULA_VERSION=${FORMULA_VERSION:-testing}
SALTSTACK_GPG=${SALTSTACK_GPG:-"https://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3/SALTSTACK-GPG-KEY.pub"}
SALTSTACK_REPO=${SALTSTACK_REPO:-"http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.3 xenial main"}
APT_MIRANTIS_GPG=${APT_MIRANTIS_GPG:-"http://apt.mirantis.com/public.gpg"}
APT_MIRANTIS_SALT_REPO=${APT_MIRANTIS_SALT_REPO:-"http://apt.mirantis.com/xenial/ $FORMULA_VERSION salt"}
GIT_SALT_FORMULAS_SCRIPTS=${GIT_SALT_FORMULAS_SCRIPTS:-"https://github.com/salt-formulas/salt-formulas-scripts"}
GIT_SALT_FORMULAS_SCRIPTS_REF=${GIT_SALT_FORMULAS_SCRIPTS_REF:-master}

wget -O - ${SALTSTACK_GPG} | sudo apt-key add -
wget -O - ${APT_MIRANTIS_GPG} | apt-key add -
echo "deb [arch=amd64] ${SALTSTACK_REPO}"  > /etc/apt/sources.list.d/saltstack.list
apt-get update
apt-get install git-core -y

for g_host in ${CLUSTER_MODEL} ${GIT_SALT_FORMULAS_SCRIPTS} ; do
  _tmp_host=$(echo ${g_host} | awk -F/ '{print $3}')
  ssh-keyscan -T 1 -H ${_tmp_host} >> ~/.ssh/known_hosts || true
done

if [[ ! -d /srv/salt/reclass ]]; then
  git clone --recursive ${CLUSTER_MODEL} /srv/salt/reclass
  pushd /srv/salt/reclass/
    git checkout ${CLUSTER_MODEL_REF}
  popd
fi

if [[ ! -d /srv/salt/scripts ]]; then
  git clone --recursive ${GIT_SALT_FORMULAS_SCRIPTS} /srv/salt/scripts
  pushd /srv/salt/scripts/
    git checkout ${GIT_SALT_FORMULAS_SCRIPTS_REF}
  popd
fi

# bootstrap.sh opts
export FORMULAS_SOURCE=pkg
export HOSTNAME=apt01
export DOMAIN="${CLUSTER_NAME}.local"
export EXTRA_FORMULAS="ntp aptly nginx iptables docker"
export APT_REPOSITORY=" deb [arch=amd64] ${APT_MIRANTIS_SALT_REPO} "
export APT_REPOSITORY_GPG=${APT_MIRANTIS_GPG}
if [[ ! -z "${PACKER_OFFLINE_BUILD}" ]];then
  echo "INFO: build in offline detected!"
  export BOOTSTRAP_SALTSTACK_COM="file:///tmp/bootstrap.saltstack.com.sh"
  # extra opts will push bootstrap script NOT install upstream repos.
  export BOOTSTRAP_SALTSTACK_OPTS=${BOOTSTRAP_SALTSTACK_OPTS:- -dXr $BOOTSTRAP_SALTSTACK_VERSION }
fi
#

if [[ ! -f /srv/salt/scripts/bootstrap.sh ]]; then
  echo "ERROR: File /srv/salt/scripts/bootstrap.sh not found"
  exit 1
fi
bash -x /srv/salt/scripts/bootstrap.sh || true
