#!/bin/bash
#
# Basic glance setup based on:
# https://docs.openstack.org/glance/pike/install/install-debian.html
#
# Prerequisites: keystone must be available and bootstrapped
#

# Substitutions setup at do_intall()
DB_USER=%DB_USER%
GLANCE_USER=%GLANCE_USER%
GLANCE_GROUP=%GLANCE_GROUP%
CONTROLLER_IP=%CONTROLLER_IP%
ADMIN_USER=%ADMIN_USER%
ADMIN_PASSWORD=%ADMIN_PASSWORD%
ADMIN_ROLE=%ADMIN_ROLE%
SYSCONFDIR=%SYSCONFDIR%

# Create the glance DB and grant the necessary permissions
sudo -u postgres psql -c "CREATE DATABASE glance" 2> /dev/null
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE glance TO ${DB_USER}" 2> /dev/null

source ${SYSCONFDIR}/keystone/admin-openrc

openstack user create --domain default --password ${ADMIN_PASSWORD} ${GLANCE_USER}

# Ensure the 'service' project exists
openstack project show service > /dev/null 2>&1
if [ $? -ne 0 ]; then
    openstack project create service --domain default
fi
openstack role add --project service --user ${GLANCE_USER} ${ADMIN_ROLE}

openstack service create --name glance --description "OpenStack Image" image
openstack endpoint create --region RegionOne image public http://${CONTROLLER_IP}:9292
openstack endpoint create --region RegionOne image internal http://${CONTROLLER_IP}:9292
openstack endpoint create --region RegionOne image admin http://${CONTROLLER_IP}:9292

sudo -u ${GLANCE_USER} glance-manage db_sync

systemctl restart glance-registry
systemctl restart glance-api
