#!/bin/sh

set -e

if [ -z "${1}" ] || [ -z "${2}" ] ; then
	echo "Usage: $0 <ip-address> <region>"
	exit 1
fi

IP=${1}
REGION=${2}

if ! [ -r /usr/share/openstack-pkg-tools/pkgos_func ] ; then
	echo "Could not include /usr/share/openstack-pkg-tools/pkgos_func: exiting"
	exit 1
fi
. /usr/share/openstack-pkg-tools/pkgos_func

pkgos_get_config /etc/keystone/keystone.conf admin_token DEFAULT
if [ -z "${RET}" ] ; then
	echo "No keystone admin token: exiting"
	exit 1
fi
AUTH_TOKEN=${RET}


KEYSTONE_SERVICE_ID=$(pkgos_get_id keystone --token ${AUTH_TOKEN} --endpoint http://${IP}:35357/v2.0/ service-create \
	--name=keystone --type=identity --description="Keystone Identity Service")

KEYSTONE_ENDPOINT_ID=$(pkgos_get_id keystone --token ${AUTH_TOKEN} --endpoint http://${IP}:35357/v2.0/ endpoint-create \
	--region ${REGION} --service_id=${KEYSTONE_SERVICE_ID} \
	--publicurl=http://${IP}:5000/v2.0 \
	--internalurl=http://${IP}:5000/v2.0 \
	--adminurl=http://${IP}:35357/v2.0)

NOVA_SERVICE_ID=$(pkgos_get_id keystone --token ${AUTH_TOKEN} --endpoint http://${IP}:35357/v2.0/ service-create \
	--name=nova --type=compute --description="Nova Compute Service")

NOVA_ENDPOINT_ID=$(pkgos_get_id keystone --token ${AUTH_TOKEN} --endpoint http://${IP}:35357/v2.0/ endpoint-create \
	--region ${REGION} --service_id=${NOVA_SERVICE_ID} \
	--publicurl=http://${IP}:8774/v2/'%(tenant_id)s' \
	--internalurl=http://${IP}:8774/v2/'%(tenant_id)s' \
	--adminurl=http://${IP}:8774/v2/'%(tenant_id)s')

CINDER_SERVICE_ID=$(pkgos_get_id keystone --token ${AUTH_TOKEN} --endpoint http://${IP}:35357/v2.0/ service-create \
	--name=cinder --type=volume --description="Cinder Volume Service")

CINDER_ENDPOINT_ID=$(pkgos_get_id keystone --token ${AUTH_TOKEN} --endpoint http://${IP}:35357/v2.0/ endpoint-create \
	--region ${REGION} \
	--service_id=${CINDER_SERVICE_ID} \
	--publicurl=http://${IP}:8776/v1/'%(tenant_id)s' \
	--internalurl=http://${IP}:8776/v1/'%(tenant_id)s' \
	--adminurl=http://${IP}:8776/v1/'%(tenant_id)s')

GLANCE_SERVICE_ID=$(pkgos_get_id keystone --token ${AUTH_TOKEN} --endpoint http://${IP}:35357/v2.0/ service-create \
	--name=glance --type=image --description="Glance Image Service")

GLANCE_ENDPOINT_ID=$(pkgos_get_id keystone --token ${AUTH_TOKEN} --endpoint http://${IP}:35357/v2.0/ endpoint-create \
	--region ${REGION} \
	--service_id=${GLANCE_SERVICE_ID} \
	--publicurl=http://${IP}:9292/v1 \
	--internalurl=http://${IP}:9292/v1 \
	--adminurl=http://${IP}:9292/v1)

EC2_SERVICE_ID=$(pkgos_get_id keystone  --token ${AUTH_TOKEN} --endpoint http://${IP}:35357/v2.0/ service-create \
	--name=ec2 --type=ec2 --description="EC2 Compatibility Layer")

EC2_ENDPOINT_ID=$(pkgos_get_id keystone --token ${AUTH_TOKEN} --endpoint http://${IP}:35357/v2.0/ endpoint-create \
	--region ${REGION} \
	--service_id=${EC2_SERVICE_ID} \
	--publicurl=http://${IP}:8773/services/Cloud \
	--internalurl=http://${IP}:8773/services/Cloud \
	--adminurl=http://${IP}:8773/services/Admin)

QUANTUM_SERVICE_ID=$(pkgos_get_id keystone  --token ${AUTH_TOKEN} --endpoint http://${IP}:35357/v2.0/ service-create \
	--name=quantum --type=network --description="Quantum networking service")

QUANTUM_ENDPOINT_ID=$(pkgos_get_id keystone --token ${AUTH_TOKEN} --endpoint http://${IP}:35357/v2.0/ endpoint-create \
	--region ${REGION} \
	--service_id=${QUANTUM_SERVICE_ID} \
	--publicurl=http://${IP}:9696/v1 \
	--internalurl=http://${IP}:9696/v1 \
	--adminurl=http://${IP}:9696/v1)
