#!/bin/bash

set -eu

mkdir -p ~/.instack
LOGFILE=~/.instack/install-undercloud.log

exec > >(tee $LOGFILE)
exec 2>&1

echo "Running $0"

# generate ssh authentication keys if they don't exist
if [ ! -f ~/.ssh/id_rsa ]; then
  echo "Generating an ssh key..."
  ssh-keygen -t rsa -N ""  -f ~/.ssh/id_rsa
fi

echo "Sourcing answers file from instack.answers..."
source ~/instack.answers

export LOCAL_IP
export DNSMASQ_START
export DNSMASQ_END
export LOCAL_INTERFACE
export MASQUERADE_NETWORK
export POWER_DRIVER
export VIRTUAL_POWER_USER
export VIRTUAL_POWER_HOST
export DHCP_START
export DHCP_END
export NETWORK_CIDR
export NETWORK_GATEWAY
export SSH_KEY

export UNDERCLOUD_DB_PASSWORD=${UNDERCLOUD_DB_PASSWORD:-$(tripleo os-make-password)}
export UNDERCLOUD_ADMIN_TOKEN=${UNDERCLOUD_ADMIN_TOKEN:-$(tripleo os-make-password)}
export UNDERCLOUD_ADMIN_PASSWORD=${UNDERCLOUD_ADMIN_PASSWORD:-$(tripleo os-make-password)}
export UNDERCLOUD_GLANCE_PASSWORD=${UNDERCLOUD_GLANCE_PASSWORD:-$(tripleo os-make-password)}
export UNDERCLOUD_HEAT_PASSWORD=${UNDERCLOUD_HEAT_PASSWORD:-$(tripleo os-make-password)}
export UNDERCLOUD_NEUTRON_PASSWORD=${UNDERCLOUD_NEUTRON_PASSWORD:-$(tripleo os-make-password)}
export UNDERCLOUD_NOVA_PASSWORD=${UNDERCLOUD_NOVA_PASSWORD:-$(tripleo os-make-password)}
export UNDERCLOUD_IRONIC_PASSWORD=${UNDERCLOUD_IRONIC_PASSWORD:-$(tripleo os-make-password)}

sudo -E instack \
  -p /usr/share/diskimage-builder/elements/ \
     /usr/share/tripleo-image-elements/ \
     /usr/share/instack-undercloud/ \
  -j /usr/share/instack-undercloud/json-files/fedora-20-undercloud-packages.json

sudo os-refresh-config

echo "$0 complete!"
