#!/bin/sh

set -e

# Prepare RHEL image for bootstrap on VSPHERE

: "${DOWNLOAD_INSTALL:="true"}"
: "${VCENTER_CONFIG_PATH:="/etc/virt-who.d/vcenter.conf"}"

if [ -z "${VC_SERVER}" ] || [ -z "${VC_USER}" ] || [ -z "${VC_PASSWORD}" ] || [ -z "${VC_OWNER}" ]; then
    echo "VC_SERVER or VC_USER or VC_PASSWORD or VC_OWNER is not provided"
    exit 1
fi

yum -y install open-vm-tools cloud-init virt-who
systemctl enable virt-who
VC_PASSWORD_ENCRYPTED="$(virt-who-password -p "${VC_PASSWORD}")"

mkdir -p "$(dirname "${VCENTER_CONFIG_PATH}")"
cat <<EOF > "${VCENTER_CONFIG_PATH}"
[vcenter]
type=${VC_TYPE:-esx}
server=${VC_SERVER}
username=${VC_USER}
encrypted_password=${VC_PASSWORD_ENCRYPTED}
owner=${VC_OWNER}
hypervisor_id=${VC_HYPERVISOR_ID:-hostname}
EOF

if [ -n "${VC_FILTER_HOSTS}" ]; then
    echo "filter_hosts=${VC_FILTER_HOSTS}" >> "${VCENTER_CONFIG_PATH}"
fi

# The script to lookup the path to the cloud-init's datasource directory, "sources".
PY_SCRIPT='import os; from cloudinit import sources; print(os.path.dirname(sources.__file__));'

# Get the path to the cloud-init installation's datasource directory.
CLOUD_INIT_SOURCES=$(python -c ''"${PY_SCRIPT}"'' 2>/dev/null || \
  python3 -c ''"${PY_SCRIPT}"'' 2>/dev/null) ||
  { exit_code="${?}"; echo "failed to find python runtime" 1>&2; exit "${exit_code}"; }

# If no "sources" directory was located then it's likely cloud-init is not installed.
[ -z "${CLOUD_INIT_SOURCES}" ] && echo "cloud-init not found" 1>&2 && exit 1

if [ "${DOWNLOAD_INSTALL}" = "true" ]; then
    REPO_URL="${REPO_URL:-https://gerrit.mcp.mirantis.com/plugins/gitiles/kubernetes/vmware-guestinfo/+/refs/heads}"

    # The git reference to use. This can be a branch or tag name as well as a commit ID.
    GIT_REF="${GIT_REF:-mcp}"

    # Download the cloud init datasource into the cloud-init's "sources" directory.
    curl "${REPO_URL}/${GIT_REF}/DataSourceVMwareGuestInfo.py?format=TEXT" | base64 -d \
      > "${CLOUD_INIT_SOURCES}/DataSourceVMwareGuestInfo.py"

    # Add the configuration file that tells cloud-init what datasource to use.
    mkdir -p /etc/cloud/cloud.cfg.d
    curl "${REPO_URL}/${GIT_REF}/99-DataSourceVMwareGuestInfo.cfg?format=TEXT" | base64 -d \
      > /etc/cloud/cloud.cfg.d/99-DataSourceVMwareGuestInfo.cfg
else
    BASEDIR=$(dirname "$0")
    cp "${BASEDIR}/DataSourceVMwareGuestInfo.py" "${CLOUD_INIT_SOURCES}/DataSourceVMwareGuestInfo.py"
    mkdir -p /etc/cloud/cloud.cfg.d
    cp "${BASEDIR}/99-DataSourceVMwareGuestInfo.cfg" /etc/cloud/cloud.cfg.d/99-DataSourceVMwareGuestInfo.cfg
fi
