#!/bin/bash if [[ -z $OS_AUTH_URL ]]; then echo "This script must have proper environment variables exported. " echo "Please check if you have sourced senlinrc file or openrc file if " echo "you are using devstack." exit -1 fi if [ $OS_USERNAME != 'admin' ]; then echo "This script has to be executed as an 'admin' user. " echo "Please set environment variable OS_USERNAME to 'admin'." exit -1 fi if [ $# -ne 2 ]; then echo "Usage: `basename $0` " exit -1 fi PORT=8778 HOST=$1 # Put your host IP here SVC_PASSWD=$2 OS_REGION_NAME=${OS_REGION_NAME:-RegionOne} OS_IDENTITY_API_VERSION=${OS_IDENTITY_API_VERSION:-3} SERVICE_PROJECT=${OS_SERVICE_PROJECT:-service} SERVICE_ROLE=${OS_SERVICE_ROLE:-service} SERVICE_ID=$(openstack service show senlin -f value -cid 2>/dev/null) if [[ -z $SERVICE_ID ]]; then SERVICE_ID=$(openstack service create \ --name senlin \ --description 'Senlin Clustering Service V1' \ -f value -cid \ clustering) fi if [[ -z $SERVICE_ID ]]; then exit fi if [ "$OS_IDENTITY_API_VERSION" = "3" ]; then openstack endpoint create senlin admin "http://$HOST:$PORT" \ --region $OS_REGION_NAME openstack endpoint create senlin public "http://$HOST:$PORT" \ --region $OS_REGION_NAME openstack endpoint create senlin internal "http://$HOST:$PORT" \ --region $OS_REGION_NAME else openstack endpoint create \ --adminurl "http://$HOST:$PORT" \ --publicurl "http://$HOST:$PORT" \ --internalurl "http://$HOST:$PORT" \ --region $OS_REGION_NAME \ senlin fi # Check service project name. # Devstack uses 'service' while some distributions use 'services' PROJECT_ID=$(openstack project show service -f value -cid 2>/dev/null) if [[ -z $PROJECT_ID ]]; then SERVICE_PROJECT=services SERVICE_ROLE=services openstack role create $SERVICE_ROLE fi openstack user create \ --password "$SVC_PASSWD" \ --project $SERVICE_PROJECT \ --email senlin@localhost \ senlin openstack role add \ admin \ --user senlin \ --project $SERVICE_PROJECT # make sure 'senlin' has service role on 'demo' project openstack role add \ $SERVICE_ROLE \ --user senlin \ --project demo