#!/bin/bash -xe

FORMULA_VERSION=${FORMULA_VERSION:-2018.3.1}
APT_MIRANTIS_SALT_REPO=${APT_MIRANTIS_SALT_REPO:-"http://apt.mirantis.com/xenial/ $FORMULA_VERSION salt"}
SALT_OPTS="-t 10 --retcode-passthrough --no-color"

echo "deb [arch=amd64] ${APT_MIRANTIS_SALT_REPO}" > /etc/apt/sources.list.d/mcp_salt.list
apt-get update
apt-get install salt-formula* -y

# Wait for salt-master and salt-minion to wake up after restart
# since we just perform 'reboot.sh'
salt-call --timeout=120 test.ping

salt-call ${SALT_OPTS} saltutil.clear_cache
salt-call ${SALT_OPTS} saltutil.refresh_pillar
salt-call ${SALT_OPTS} saltutil.sync_all
salt-call ${SALT_OPTS} reclass.validate_pillar

salt-call ${SALT_OPTS} state.sls linux.system.repo,linux.system.package,linux.system.user,linux.system.directory,linux.system.file,linux.system.config
salt-call ${SALT_OPTS} state.sls linux.network
salt-call ${SALT_OPTS} state.sls salt.minion.ca

salt-call ${SALT_OPTS} state.sls salt
salt-call ${SALT_OPTS} state.sls docker.host

salt-call ${SALT_OPTS} state.sls openssh
salt-call ${SALT_OPTS} state.sls git.server
salt-call ${SALT_OPTS} state.sls postgresql
# install only MAAS packages, don't configure anything.
# Configuration will be processed during cfg01 initialization.
# Those step, required to have clean MAAS configuration - w\o auto import and etc.
salt-call ${SALT_OPTS} state.sls_id maas_cluster_packages maas
salt-call ${SALT_OPTS} state.sls_id maas_region_packages maas

# FIXME move those into cluster model
git clone https://github.com/Mirantis/docker-jenkins.git
mkdir -p /srv/volumes/jenkins/userContent/theme/
cp -r docker-jenkins/theme/* /srv/volumes/jenkins/userContent/theme/
rm -rf docker-jenkins
chown -R 1000:1000 /srv/volumes/jenkins/userContent/

docker pull "docker-prod-local.artifactory.mirantis.com/mirantis/cicd/jenkins:${MCP_VERSION}"
docker pull "docker-prod-local.artifactory.mirantis.com/mirantis/cicd/jnlp-slave:${MCP_VERSION}"
# Flag for cloud-init script
touch /root/jenkins_in_docker

# Duplicate of ubuntu_info.sh
mkdir -p /var/log/bootstrap_logs/ ; pushd /var/log/bootstrap_logs/
  # Drop some reclass info,if available
  if [[ $(which salt-key) ]] ; then
    for node in $(salt-key -l acc | grep -v 'Accepted Keys:') ; do
     salt ${node} pillar.data --out=json > ${node}.pillardata.json || true
     reclass -n  ${node} -o json > ${node}.reclass.json || true
    done
  fi
popd
