#!/bin/bash

set -eux

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

mkdir -p ~/.instack

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

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

# Need pip and git (due to pbr) to install instack since this is the source
# install.
sudo yum -y install python-pip git
pushd instack
  sudo pip install -e .
popd

# Source specific. Must install dependent packages that would have previously
# been installed.
sudo yum install -y diskimage-builder
sudo yum install -y openstack-tripleo
sudo yum install -y openstack-tripleo-image-elements
sudo yum install -y openstack-tripleo-heat-templates
sudo yum install -y openstack-tuskar
sudo yum install -y openstack-tuskar-ui
sudo yum install -y python-tuskarclient
sudo yum install -y redhat-lsb-core
sudo yum install -y policycoreutils-python

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/ \
     instack-undercloud/elements \
  -j instack-undercloud/json-files/fedora-20-undercloud-packages.json

sudo os-refresh-config

echo "$0 complete!"
