summaryrefslogtreecommitdiffstats
path: root/meta-openstack/recipes-devtools/python
diff options
context:
space:
mode:
authorAndy Ning <andy.ning@windriver.com>2014-07-16 11:11:18 -0400
committerBruce Ashfield <bruce.ashfield@windriver.com>2014-07-31 15:15:31 -0400
commit1d1bcd7da7e8606db6d2021a3413638267b96714 (patch)
tree3fc83fe9ac78522e0ae53aff6c707eab8ddf90b9 /meta-openstack/recipes-devtools/python
parentdfcdedf2fa46a3dcbfd7d1af300deeae6b496eb7 (diff)
downloadmeta-cloud-services-1d1bcd7da7e8606db6d2021a3413638267b96714.tar.gz
Keystone: implement incremental/programatic user additions
Instead of creating tenant/user/role and service/endpoint for all openstack services in keystone postinstall, now each of the services creates keystone identities by itself in its own postinstall. The existing identity.sh has been re-written to be a utility that takes parameters, and the service postinstall calls identity.sh to create its own keystone identities. The identity.sh can also be used as a tool to manually create keystone identities at run time. Signed-off-by: Andy Ning <andy.ning@windriver.com>
Diffstat (limited to 'meta-openstack/recipes-devtools/python')
-rw-r--r--meta-openstack/recipes-devtools/python/python-keystone/identity.sh400
1 files changed, 210 insertions, 190 deletions
diff --git a/meta-openstack/recipes-devtools/python/python-keystone/identity.sh b/meta-openstack/recipes-devtools/python/python-keystone/identity.sh
index 40cc2b3..af99673 100644
--- a/meta-openstack/recipes-devtools/python/python-keystone/identity.sh
+++ b/meta-openstack/recipes-devtools/python/python-keystone/identity.sh
@@ -1,23 +1,20 @@
1#!/bin/bash 1#!/bin/bash
2 2
3# Modify these variables as needed
4ADMIN_PASSWORD=${ADMIN_PASSWORD:-password}
5SERVICE_PASSWORD=${SERVICE_PASSWORD:-$ADMIN_PASSWORD}
6DEMO_PASSWORD=${DEMO_PASSWORD:-$ADMIN_PASSWORD}
7export OS_SERVICE_TOKEN="password"
8export OS_SERVICE_ENDPOINT="http://localhost:35357/v2.0"
9SERVICE_TENANT_NAME=${SERVICE_TENANT_NAME:-service}
10# 3#
11MYSQL_USER=keystone 4# Copyright (C) 2014 Wind River Systems, Inc.
12MYSQL_DATABASE=keystone 5#
13MYSQL_HOST=localhost 6# The identity.sh provides utilities for services to add tenant/role/users,
14MYSQL_PASSWORD=password 7# and service/endpoints into keystone database
15# 8#
16KEYSTONE_REGION=RegionOne 9
17KEYSTONE_HOST=%CONTROLLER_IP% 10# Use shared secret for authentication before any user created.
11export OS_SERVICE_TOKEN="password"
12export OS_SERVICE_ENDPOINT="http://localhost:35357/v2.0"
13
14declare -A PARAMS
18 15
19# Shortcut function to get a newly generated ID 16# Shortcut function to get a newly generated ID
20function get_field() { 17function get_field () {
21 while read data; do 18 while read data; do
22 if [ "$1" -lt 0 ]; then 19 if [ "$1" -lt 0 ]; then
23 field="(\$(NF$1))" 20 field="(\$(NF$1))"
@@ -28,179 +25,202 @@ function get_field() {
28 done 25 done
29} 26}
30 27
31# Tenants 28# Usage help
32keystone tenant-get admin 29help () {
33if [ $? -eq 1 ]; then 30 if [ $# -eq 0 ]; then
34 ADMIN_TENANT=$(keystone tenant-create --name=admin | grep " id " | get_field 2) 31 echo "Usage: $0 <subcommand> ..."
35else 32 echo ""
36 ADMIN_TENANT=$(keystone tenant-get admin | grep " id " | get_field 2) 33 echo "Keystone CLI wrapper to create tenant/user/role, and service/endpoint."
37fi 34 echo "It uses the default tenant, user and password from environment variables"
38keystone tenant-get demo 35 echo "(OS_TENANT_NAME, OS_USERNAME, OS_PASSWORD) to authenticate with keystone."
39if [ $? -eq 1 ]; then 36 echo ""
40 DEMO_TENANT=$(keystone tenant-create --name=demo | grep " id " | get_field 2) 37 echo "Positional arguments:"
41else 38 echo " <subcommand>"
42 DEMO_TENANT=$(keystone tenant-get demo | grep " id " | get_field 2) 39 echo " user-create"
43fi 40 echo " service-create"
44keystone tenant-get alt_demo 41 echo ""
45if [ $? -eq 1 ]; then 42 echo "See \"identity.sh help COMMAND\" for help on a specific command."
46 ALT_DEMO_TENANT=$(keystone tenant-create --name=alt_demo | grep " id " | get_field 2) 43 exit 0
47else 44 fi
48 ALT_DEMO_TENANT=$(keystone tenant-get alt_demo | grep " id " | get_field 2) 45
49fi 46 case "$2" in
50keystone tenant-get $SERVICE_TENANT_NAME 47 service-create)
51if [ $? -eq 1 ]; then 48 echo "Usage: $0 $2 [--name=<name>] [--type=<type>] [--description=<description>] [--region=<region>] [--publicurl=<public url>] [--adminurl=<admin url>] [--internalurl=<internal url>]"
52 SERVICE_TENANT=$(keystone tenant-create --name=$SERVICE_TENANT_NAME | grep " id " | get_field 2) 49 echo ""
53else 50 echo "Create service and endpoint in keystone."
54 SERVICE_TENANT=$(keystone tenant-get $SERVICE_TENANT_NAME | grep " id " | get_field 2) 51 echo ""
55fi 52 echo "Arguments:"
56 53 echo " --name=<name>"
57# Users 54 echo " The name of the service"
58keystone user-get admin 55 echo " --type=<type>"
59if [ $? -eq 1 ]; then 56 echo " The type of the service"
60 ADMIN_USER=$(keystone user-create --name=admin --pass="$ADMIN_PASSWORD" --email=admin@domain.com | grep " id " | get_field 2) 57 echo " --description=<description>"
61else 58 echo " Description of the service"
62 ADMIN_USER=$(keystone user-get admin | grep " id " | get_field 2) 59 echo " --region=<region>"
63fi 60 echo " The region of the service"
64keystone user-get demo 61 echo " --publicurl=<public url>"
65if [ $? -eq 1 ]; then 62 echo " Public URL of the service endpoint"
66 DEMO_USER=$(keystone user-create --name=demo --pass="$DEMO_PASSWORD" --email=demo@domain.com --tenant-id=$DEMO_TENANT | grep " id " | get_field 2) 63 echo " --adminurl=<admin url>"
67else 64 echo " Admin URL of the service endpoint"
68 DEMO_USER=$(keystone user-get demo | grep " id " | get_field 2) 65 echo " --internalurl=<internal url>"
69fi 66 echo " Internal URL of the service endpoint"
70keystone user-get alt_demo 67 ;;
71if [ $? -eq 1 ]; then 68 user-create)
72 ALT_DEMO_USER=$(keystone user-create --name=alt_demo --pass="$DEMO_PASSWORD" --email=alt_demo@domain.com --tenant-id=$ALT_DEMO_TENANT | grep " id " | get_field 2) 69 echo "Usage: $0 $2 [--name=<name>] [--pass=<password>] [--tenant=<tenant>] [--role=<role>] [--email=<email>]"
73else 70 echo ""
74 ALT_DEMO_USER=$(keystone user-get alt_demo | grep " id " | get_field 2) 71 echo "Arguments:"
75fi 72 echo " --name=<name>"
76keystone user-get nova 73 echo " The name of the user"
77if [ $? -eq 1 ]; then 74 echo " --pass=<password>"
78 NOVA_USER=$(keystone user-create --name=nova --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=nova@domain.com | grep " id " | get_field 2) 75 echo " The password of the user"
79else 76 echo " --tenant=<tenant>"
80 NOVA_USER=$(keystone user-get nova | grep " id " | get_field 2) 77 echo " The tenant of the user belongs to"
81fi 78 echo " --role=<role>"
82keystone user-get glance 79 echo " The role of the user in the <tenant>"
83if [ $? -eq 1 ]; then 80 echo " --email=<email>"
84 GLANCE_USER=$(keystone user-create --name=glance --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=glance@domain.com | grep " id " | get_field 2) 81 echo " The email of the user"
85else 82 ;;
86 GLANCE_USER=$(keystone user-get glance | grep " id " | get_field 2) 83 *)
87fi 84 echo "Usage: $0 help <subcommand> ..."
88keystone user-get neutron 85 echo ""
89if [ $? -eq 1 ]; then 86 exit 0
90 NEUTRON_USER=$(keystone user-create --name=neutron --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=neutron@domain.com | grep " id " | get_field 2) 87 ;;
91else 88 esac
92 NEUTRON_USER=$(keystone user-get neutron | grep " id " | get_field 2) 89}
93fi 90
94keystone user-get cinder 91# Parse the command line parameters in an map
95if [ $? -eq 1 ]; then 92parse_param () {
96 CINDER_USER=$(keystone user-create --name=cinder --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=cinder@domain.com | grep " id " | get_field 2) 93 while [ $# -ne 0 ]; do
97else 94 param=$1
98 CINDER_USER=$(keystone user-get cinder | grep " id " | get_field 2) 95 shift
99fi 96
100keystone user-get ceilometer 97 key=`echo $param | cut -d '=' -f 1`
101if [ $? -eq 1 ]; then 98 key=`echo $key | tr -d '[-*2]'`
102 CEILOMETER_USER=$(keystone user-create --name=ceilometer --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=ceilometer@domain.com | grep " id " | get_field 2) 99 PARAMS[$key]=`echo $param | cut -d '=' -f 2`
103else 100 done
104 CEILOMETER_USER=$(keystone user-get ceilometer | grep " id " | get_field 2) 101}
105fi 102
106keystone user-get heat 103# Create tenant/role/user, and add user to the tenant as role
107if [ $? -eq 1 ]; then 104user-create () {
108 HEAT_USER=$(keystone user-create --name=heat --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=heat@domain.com | grep " id " | get_field 2) 105 # validation checking
109else 106 if [[ "$@" =~ ^--name=.*\ --pass=.*\ --tenant=.*\ --role=.*\ --email=.*$ ]]; then
110 HEAT_USER=$(keystone user-get heat | grep " id " | get_field 2) 107 params=`echo "$@" | sed -e 's%--name=\(.*\) --pass=\(.*\) --tenant=\(.*\) --role=\(.*\) --email=\(.*\)%--name=\1|--pass=\2|--tenant=\3|--role=\4|--email=\5%g'`
111fi 108 else
112keystone user-get swift 109 help
113if [ $? -eq 1 ]; then 110 exit 1
114 SWIFT_USER=$(keystone user-create --name=swift --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=swift@domain.com | grep " id " | get_field 2) 111 fi
115else 112
116 SWIFT_USER=$(keystone user-get swift | grep " id " | get_field 2) 113 # parse the cmdline parameters
117fi 114 IFS="|"
118keystone user-get barbican 115 parse_param $params
119if [ $? -eq 1 ]; then 116 unset IFS
120 BARBICAN_USER=$(keystone user-create --name=barbican --pass="$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT --email=barbican@domain.com | grep " id " | get_field 2) 117
121else 118 echo "Adding user in keystone ..."
122 BARBICAN_USER=$(keystone user-get barbican | grep " id " | get_field 2) 119
123fi 120 if [ "x${PARAMS["tenant"]}" != "x" ]; then
124 121 # check if tenant exist, create it if not
125# Roles 122 TENANT_ID=$(keystone tenant-get ${PARAMS["tenant"]} | grep " id " | get_field 2)
126keystone role-get admin 123 if [ "x$TENANT_ID" == "x" ]; then
127if [ $? -eq 1 ]; then 124 echo "Creating tenant ${PARAMS["tenant"]} in keystone ..."
128 ADMIN_ROLE=$(keystone role-create --name=admin | grep " id " | get_field 2) 125 TENANT_ID=$(keystone tenant-create --name=${PARAMS["tenant"]} | grep " id " | get_field 2)
129else 126 fi
130 ADMIN_ROLE=$(keystone role-get admin | grep " id " | get_field 2) 127 echo "Tenant list:"
131fi 128 keystone tenant-list
132keystone role-get Member 129 fi
133if [ $? -eq 1 ]; then 130
134 MEMBER_ROLE=$(keystone role-create --name=Member | grep " id " | get_field 2) 131 if [ "x${PARAMS["role"]}" != "x" ]; then
135else 132 # check if role exist, create it if not
136 MEMBER_ROLE=$(keystone role-get Member | grep " id " | get_field 2) 133 ROLE_ID=$(keystone role-get ${PARAMS["role"]} | grep " id " | get_field 2)
137fi 134 if [ "x$ROLE_ID" == "x" ]; then
138keystone role-get ResellerAdmin 135 echo "Creating role ${PARAMS["role"]} in keystone ..."
139if [ $? -eq 1 ]; then 136 ROLE_ID=$(keystone role-create --name=${PARAMS["role"]} | grep " id " | get_field 2)
140 RESELLER_ADMIN_ROLE=$(keystone role-create --name=ResellerAdmin | grep " id " | get_field 2) 137 fi
141else 138 echo "Role list:"
142 RESELLER_ADMIN_ROLE=$(keystone role-get ResellerAdmin | grep " id " | get_field 2) 139 keystone role-list
143fi 140 fi
144# heat stack template user role 141
145keystone role-create --name heat_stack_user 142 if [ "x${PARAMS["name"]}" != "x" ]; then
146 143 # check if user exist, create it if not
147# Add Roles to Users in Tenants 144 USER_ID=$(keystone user-get ${PARAMS["name"]} | grep " id " | get_field 2)
148keystone user-role-list --user-id $ADMIN_USER --tenant-id $ADMIN_TENANT &> /dev/null 145 if [ "x$USER_ID" == "x" ]; then
149keystone user-role-add --tenant-id $ADMIN_TENANT --user-id $ADMIN_USER --role-id $ADMIN_ROLE 146 echo "Creating user ${PARAMS["name"]} in keystone ..."
150keystone user-role-add --tenant-id $DEMO_TENANT --user-id $ADMIN_USER --role-id $ADMIN_ROLE 147 USER_ID=$(keystone user-create --name=${PARAMS["name"]} --pass=${PARAMS["pass"]} --tenant-id $TENANT_ID --email=${PARAMS["email"]} | grep " id " | get_field 2)
151 148 fi
152keystone user-role-list --user-id $NOVA_USER --tenant-id $SERVICE_TENANT &> /dev/null 149 echo "User list:"
153keystone user-role-add --tenant-id $SERVICE_TENANT --user-id $NOVA_USER --role-id $ADMIN_ROLE 150 keystone user-list
154 151 fi
155keystone user-role-list --user-id $GLANCE_USER --tenant-id $SERVICE_TENANT &> /dev/null 152
156keystone user-role-add --tenant-id $SERVICE_TENANT --user-id $GLANCE_USER --role-id $ADMIN_ROLE 153 if [ "x$USER_ID" != "x" ] && [ "x$TENANT_ID" != "x" ] && [ "x$ROLE_ID" != "x" ]; then
157 154 # add the user to the tenant as role
158keystone user-role-list --user-id $NEUTRON_USER --tenant-id $SERVICE_TENANT &> /dev/null 155 keystone user-role-list --user-id $USER_ID --tenant-id $TENANT_ID | grep $ROLE_ID &> /dev/null
159keystone user-role-add --tenant-id $SERVICE_TENANT --user-id $NEUTRON_USER --role-id $ADMIN_ROLE 156 if [ $? -eq 1 ]; then
160 157 echo "Adding user ${PARAMS["name"]} in tenant ${PARAMS["tenant"]} as ${PARAMS["role"]} ..."
161keystone user-role-list --user-id $CINDER_USER --tenant-id $SERVICE_TENANT &> /dev/null 158 keystone user-role-add --tenant-id $TENANT_ID --user-id $USER_ID --role-id $ROLE_ID
162keystone user-role-add --tenant-id $SERVICE_TENANT --user-id $CINDER_USER --role-id $ADMIN_ROLE 159 fi
163 160 fi
164keystone user-role-list --user-id $DEMO_USER --tenant-id $DEMO_TENANT &> /dev/null 161
165keystone user-role-add --tenant-id $DEMO_TENANT --user-id $DEMO_USER --role-id $MEMBER_ROLE 162 if [ "x$USER_ID" != "x" ] && [ "x$TENANT_ID" != "x" ]; then
166 163 echo "User ${PARAMS["name"]} in Tenant ${PARAMS["tenant"]} role list:"
167keystone user-role-list --user-id $ALT_DEMO_USER --tenant-id $ALT_DEMO_TENANT &> /dev/null 164 keystone user-role-list --user-id $USER_ID --tenant-id $TENANT_ID
168keystone user-role-add --tenant-id $ALT_DEMO_TENANT --user-id $ALT_DEMO_USER --role-id $MEMBER_ROLE 165 fi
169 166}
170keystone user-role-list --user-id $CEILOMETER_USER --tenant_id $SERVICE_TENANT &> /dev/null 167
171keystone user-role-add --tenant-id $SERVICE_TENANT --user-id $CEILOMETER_USER --role-id $ADMIN_ROLE 168# Create service and its endpoint
172keystone user-role-add --tenant_id $SERVICE_TENANT --user_id $CEILOMETER_USER --role-id $RESELLER_ADMIN_ROLE 169service-create () {
173 170 # validation checking
174keystone user-role-add --tenant_id $SERVICE_TENANT --user-id $HEAT_USER --role-id $ADMIN_ROLE 171 if [[ "$@" =~ ^--name=.*\ --type=.*\ --description=.*\ --region=.*\ --publicurl=.*\ --adminurl=.*\ --internalurl=.*$ ]]; then
175 172 params=`echo "$@" | sed -e 's%--name=\(.*\) --type=\(.*\) --description=\(.*\) --region=\(.*\) --publicurl=\(.*\) --adminurl=\(.*\) --internalurl=\(.*\)%--name=\1|--type=\2|--description=\3|--region=\4|--publicurl=\5|--adminurl=\6|--internalurl=\7%g'`
176keystone user-role-list --user-id $SWIFT_USER --tenant_id $SERVICE_TENANT &> /dev/null 173 else
177keystone user-role-add --tenant-id $SERVICE_TENANT --user-id $SWIFT_USER --role-id $ADMIN_ROLE 174 help
178 175 exit 1
179keystone user-role-list --user-id $BARBICAN_USER --tenant_id $SERVICE_TENANT &> /dev/null 176 fi
180keystone user-role-add --tenant-id $SERVICE_TENANT --user-id $BARBICAN_USER --role-id $ADMIN_ROLE 177
181 178 # parse the cmdline parameters
182# Create services 179 IFS=$"|"
183COMPUTE_SERVICE=$(keystone service-create --name nova --type compute --description 'OpenStack Compute Service' | grep " id " | get_field 2) 180 parse_param $params
184VOLUME_SERVICE=$(keystone service-create --name cinder --type volume --description 'OpenStack Volume Service' | grep " id " | get_field 2) 181 unset IFS
185IMAGE_SERVICE=$(keystone service-create --name glance --type image --description 'OpenStack Image Service' | grep " id " | get_field 2) 182
186IDENTITY_SERVICE=$(keystone service-create --name keystone --type identity --description 'OpenStack Identity' | grep " id " | get_field 2) 183 echo "Creating service in keystone ..."
187EC2_SERVICE=$(keystone service-create --name ec2 --type ec2 --description 'OpenStack EC2 service' | grep " id " | get_field 2) 184
188NETWORK_SERVICE=$(keystone service-create --name neutron --type network --description 'OpenStack Networking service' | grep " id " | get_field 2) 185 if [ "x${PARAMS["name"]}" != "x" ]; then
189METERING_SERVICE=$(keystone service-create --name ceilometer --type=metering --description='OpenStack Metering Service' | grep " id " | get_field 2) 186 # check if service already created, create it if not
190ORCHESTRATION_SERVICE=$(keystone service-create --name heat --type=orchestration --description='OpenStack Orchestration Service' | grep " id " | get_field 2) 187 SERVICE_ID=$(keystone service-get ${PARAMS["name"]} | grep " id " | get_field 2)
191CLOUDFORMATION_SERVICE=$(keystone service-create --name heat-cfn --type=cloudformation --description='OpenStack Cloudformation Service' | grep " id " | get_field 2) 188 if [ "x$SERVICE_ID" == "x" ]; then
192SWIFT_SERVICE=$(keystone service-create --name swift --type=object-store --description='OpenStack object-store' | grep " id " | get_field 2) 189 echo "Adding service ${PARAMS["name"]} in keystone ..."
193BARBICAN_SERVICE=$(keystone service-create --name barbican --type=keystore --description='Barbican Key Management Service' | grep " id " | get_field 2) 190 SERVICE_ID=$(keystone service-create --name ${PARAMS["name"]} --type ${PARAMS["type"]} --description "${PARAMS["description"]}" | grep " id " | get_field 2)
194 191 fi
195# Create endpoints 192 echo "Service list:"
196keystone endpoint-create --region $KEYSTONE_REGION --service-id $COMPUTE_SERVICE --publicurl 'http://'"$KEYSTONE_HOST"':8774/v2/$(tenant_id)s' --adminurl 'http://'"$KEYSTONE_HOST"':8774/v2/$(tenant_id)s' --internalurl 'http://'"$KEYSTONE_HOST"':8774/v2/$(tenant_id)s' 193 keystone service-list
197keystone endpoint-create --region $KEYSTONE_REGION --service-id $VOLUME_SERVICE --publicurl 'http://'"$KEYSTONE_HOST"':8776/v1/$(tenant_id)s' --adminurl 'http://'"$KEYSTONE_HOST"':8776/v1/$(tenant_id)s' --internalurl 'http://'"$KEYSTONE_HOST"':8776/v1/$(tenant_id)s' 194 fi
198keystone endpoint-create --region $KEYSTONE_REGION --service-id $IMAGE_SERVICE --publicurl 'http://'"$KEYSTONE_HOST"':9292/v2' --adminurl 'http://'"$KEYSTONE_HOST"':9292/v2' --internalurl 'http://'"$KEYSTONE_HOST"':9292/v2' 195
199keystone endpoint-create --region $KEYSTONE_REGION --service-id $IDENTITY_SERVICE --publicurl 'http://'"$KEYSTONE_HOST"':5000/v2.0' --adminurl 'http://'"$KEYSTONE_HOST"':35357/v2.0' --internalurl 'http://'"$KEYSTONE_HOST"':5000/v2.0' 196 if [ "x$SERVICE_ID" != "x" ]; then
200keystone endpoint-create --region $KEYSTONE_REGION --service-id $EC2_SERVICE --publicurl 'http://'"$KEYSTONE_HOST"':8773/services/Cloud' --adminurl 'http://'"$KEYSTONE_HOST"':8773/services/Admin' --internalurl 'http://'"$KEYSTONE_HOST"':8773/services/Cloud' 197 # create its endpoint
201keystone endpoint-create --region $KEYSTONE_REGION --service-id $NETWORK_SERVICE --publicurl 'http://'"$KEYSTONE_HOST"':9696/' --adminurl 'http://'"$KEYSTONE_HOST"':9696/' --internalurl 'http://'"$KEYSTONE_HOST"':9696/' 198 keystone endpoint-list | grep $SERVICE_ID | grep ${PARAMS["region"]} | grep ${PARAMS["publicurl"]} | grep ${PARAMS["adminurl"]} | grep ${PARAMS["internalurl"]}
202keystone endpoint-create --region $KEYSTONE_REGION --service_id $METERING_SERVICE --publicurl 'http://'"$KEYSTONE_HOST"':8777/' --adminurl 'http://'"$KEYSTONE_HOST"':8777/' --internalurl 'http://'"$KEYSTONE_HOST"':8777/' 199 if [ $? -eq 1 ]; then
203keystone endpoint-create --region $KEYSTONE_REGION --service_id $ORCHESTRATION_SERVICE --publicurl 'http://'"$KEYSTONE_HOST"':8004/v1/%(tenant_id)s' --adminurl 'http://'"$KEYSTONE_HOST"':8004/v1/%(tenant_id)s' --internalurl 'http://'"$KEYSTONE_HOST"':8004/v1/%(tenant_id)s' 200 echo "Creating endpoint for ${PARAMS["name"]} in keystone ..."
204keystone endpoint-create --region $KEYSTONE_REGION --service_id $CLOUDFORMATION_SERVICE --publicurl 'http://'"$KEYSTONE_HOST"':8000/v1' --adminurl 'http://'"$KEYSTONE_HOST"':8000/v1' --internalurl 'http://'"$KEYSTONE_HOST"':8000/v1' 201 keystone endpoint-create --region ${PARAMS["region"]} --service-id $SERVICE_ID --publicurl ${PARAMS["publicurl"]} --adminurl ${PARAMS["adminurl"]} --internalurl ${PARAMS["internalurl"]}
205keystone endpoint-create --region $KEYSTONE_REGION --service_id $SWIFT_SERVICE --publicurl 'http://'"$KEYSTONE_HOST"':8888/v1/AUTH_%(tenant_id)s' --adminurl 'http://'"$KEYSTONE_HOST"':8888/v1' --internalurl 'http://'"$KEYSTONE_HOST"':8888/v1/AUTH_%(tenant_id)s' 202 fi
206keystone endpoint-create --region $KEYSTONE_REGION --service_id $BARBICAN_SERVICE --publicurl 'http://'"$KEYSTONE_HOST"':9311/v1' --adminurl 'http://'"$KEYSTONE_HOST"':9312/v1' --internalurl 'http://'"$KEYSTONE_HOST"':9313/v1' 203 echo "Endpoints list:"
204 keystone endpoint-list
205 fi
206}
207
208case "$1" in
209 service-create)
210 shift
211 service-create $@
212 ;;
213 user-create)
214 shift
215 user-create $@
216 ;;
217 help)
218 help $@
219 ;;
220 *)
221 help
222 exit 0
223 ;;
224esac
225
226exit 0