Browse code

Move cinder account creation out of keystone_data.sh

Supports the coming HA/proxy configuration for Cinder

Change-Id: If2e08e45430dce895ed6bb1070612517a38ca4bc

Dean Troyer authored on 2012/12/14 07:22:38
Showing 3 changed files
... ...
@@ -7,7 +7,6 @@
7 7
 # service              glance     admin
8 8
 # service              quantum    admin        # if enabled
9 9
 # service              swift      admin        # if enabled
10
-# service              cinder     admin        # if enabled
11 10
 # service              heat       admin        # if enabled
12 11
 # service              ceilometer admin        # if enabled
13 12
 # Tempest Only:
... ...
@@ -38,6 +37,7 @@ function get_id () {
38 38
 # Lookups
39 39
 SERVICE_TENANT=$(keystone tenant-list | awk "/ $SERVICE_TENANT_NAME / { print \$2 }")
40 40
 ADMIN_ROLE=$(keystone role-list | awk "/ admin / { print \$2 }")
41
+MEMBER_ROLE=$(keystone role-list | awk "/ Member / { print \$2 }")
41 42
 
42 43
 
43 44
 # Roles
... ...
@@ -49,6 +49,7 @@ ADMIN_ROLE=$(keystone role-list | awk "/ admin / { print \$2 }")
49 49
 # role is also configurable in swift-proxy.conf
50 50
 RESELLER_ROLE=$(get_id keystone role-create --name=ResellerAdmin)
51 51
 
52
+
52 53
 # Services
53 54
 # --------
54 55
 
... ...
@@ -243,25 +244,3 @@ if [[ "$ENABLED_SERVICES" =~ "tempest" ]]; then
243 243
         --user_id $ALT_DEMO_USER \
244 244
         --role_id $MEMBER_ROLE
245 245
 fi
246
-
247
-if [[ "$ENABLED_SERVICES" =~ "c-api" ]]; then
248
-    CINDER_USER=$(get_id keystone user-create --name=cinder \
249
-                                              --pass="$SERVICE_PASSWORD" \
250
-                                              --tenant_id $SERVICE_TENANT \
251
-                                              --email=cinder@example.com)
252
-    keystone user-role-add --tenant_id $SERVICE_TENANT \
253
-                           --user_id $CINDER_USER \
254
-                           --role_id $ADMIN_ROLE
255
-    if [[ "$KEYSTONE_CATALOG_BACKEND" = 'sql' ]]; then
256
-        CINDER_SERVICE=$(get_id keystone service-create \
257
-            --name=cinder \
258
-            --type=volume \
259
-            --description="Cinder Service")
260
-        keystone endpoint-create \
261
-            --region RegionOne \
262
-            --service_id $CINDER_SERVICE \
263
-            --publicurl "http://$SERVICE_HOST:8776/v1/\$(tenant_id)s" \
264
-            --adminurl "http://$SERVICE_HOST:8776/v1/\$(tenant_id)s" \
265
-            --internalurl "http://$SERVICE_HOST:8776/v1/\$(tenant_id)s"
266
-    fi
267
-fi
... ...
@@ -31,9 +31,11 @@ CINDER_DRIVER=${CINDER_DRIVER:-default}
31 31
 CINDER_DIR=$DEST/cinder
32 32
 CINDERCLIENT_DIR=$DEST/python-cinderclient
33 33
 CINDER_STATE_PATH=${CINDER_STATE_PATH:=$DATA_DIR/cinder}
34
+CINDER_AUTH_CACHE_DIR=${CINDER_AUTH_CACHE_DIR:-/var/cache/cinder}
35
+
34 36
 CINDER_CONF_DIR=/etc/cinder
35 37
 CINDER_CONF=$CINDER_CONF_DIR/cinder.conf
36
-CINDER_AUTH_CACHE_DIR=${CINDER_AUTH_CACHE_DIR:-/var/cache/cinder}
38
+CINDER_API_PASTE_INI=$CINDER_CONF_DIR/api-paste.ini
37 39
 
38 40
 # Support entry points installation of console scripts
39 41
 if [[ -d $CINDER_DIR/bin ]]; then
... ...
@@ -97,7 +99,6 @@ function configure_cinder() {
97 97
     sudo chown root:root $TEMPFILE
98 98
     sudo mv $TEMPFILE /etc/sudoers.d/cinder-rootwrap
99 99
 
100
-    CINDER_API_PASTE_INI=$CINDER_CONF_DIR/api-paste.ini
101 100
     cp $CINDER_DIR/etc/cinder/api-paste.ini $CINDER_API_PASTE_INI
102 101
     iniset $CINDER_API_PASTE_INI filter:authtoken auth_host $KEYSTONE_AUTH_HOST
103 102
     iniset $CINDER_API_PASTE_INI filter:authtoken auth_port $KEYSTONE_AUTH_PORT
... ...
@@ -159,6 +160,46 @@ function configure_cinder() {
159 159
     fi
160 160
 }
161 161
 
162
+# create_cinder_accounts() - Set up common required cinder accounts
163
+
164
+# Tenant               User       Roles
165
+# ------------------------------------------------------------------
166
+# service              cinder     admin        # if enabled
167
+
168
+# Migrated from keystone_data.sh
169
+create_cinder_accounts() {
170
+
171
+    SERVICE_TENANT=$(keystone tenant-list | awk "/ $SERVICE_TENANT_NAME / { print \$2 }")
172
+    ADMIN_ROLE=$(keystone role-list | awk "/ admin / { print \$2 }")
173
+
174
+    # Cinder
175
+    if [[ "$ENABLED_SERVICES" =~ "c-api" ]]; then
176
+        CINDER_USER=$(keystone user-create \
177
+            --name=cinder \
178
+            --pass="$SERVICE_PASSWORD" \
179
+            --tenant_id $SERVICE_TENANT \
180
+            --email=cinder@example.com \
181
+            | grep " id " | get_field 2)
182
+        keystone user-role-add \
183
+            --tenant_id $SERVICE_TENANT \
184
+            --user_id $CINDER_USER \
185
+            --role_id $ADMIN_ROLE
186
+        if [[ "$KEYSTONE_CATALOG_BACKEND" = 'sql' ]]; then
187
+            CINDER_SERVICE=$(keystone service-create \
188
+                --name=cinder \
189
+                --type=volume \
190
+                --description="Cinder Volume Service" \
191
+                | grep " id " | get_field 2)
192
+            keystone endpoint-create \
193
+                --region RegionOne \
194
+                --service_id $CINDER_SERVICE \
195
+                --publicurl "http://$SERVICE_HOST:8776/v1/\$(tenant_id)s" \
196
+                --adminurl "http://$SERVICE_HOST:8776/v1/\$(tenant_id)s" \
197
+                --internalurl "http://$SERVICE_HOST:8776/v1/\$(tenant_id)s"
198
+        fi
199
+    fi
200
+}
201
+
162 202
 # init_cinder() - Initialize database and volume group
163 203
 function init_cinder() {
164 204
     # Force nova volumes off
... ...
@@ -956,6 +956,7 @@ if is_service_enabled key; then
956 956
     export OS_SERVICE_ENDPOINT=$SERVICE_ENDPOINT
957 957
     create_keystone_accounts
958 958
     create_nova_accounts
959
+    create_cinder_accounts
959 960
 
960 961
     # ``keystone_data.sh`` creates services, admin and demo users, and roles.
961 962
     ADMIN_PASSWORD=$ADMIN_PASSWORD SERVICE_TENANT_NAME=$SERVICE_TENANT_NAME SERVICE_PASSWORD=$SERVICE_PASSWORD \