Supports the coming HA/proxy configuration for Nova
Change-Id: I2baf1f51486537a1489f1376d38f5710bd96c314
... | ... |
@@ -5,7 +5,6 @@ |
5 | 5 |
# Tenant User Roles |
6 | 6 |
# ------------------------------------------------------------------ |
7 | 7 |
# service glance admin |
8 |
-# service nova admin, [ResellerAdmin (swift only)] |
|
9 | 8 |
# service quantum admin # if enabled |
10 | 9 |
# service swift admin # if enabled |
11 | 10 |
# service cinder admin # if enabled |
... | ... |
@@ -53,29 +52,8 @@ RESELLER_ROLE=$(get_id keystone role-create --name=ResellerAdmin) |
53 | 53 |
# Services |
54 | 54 |
# -------- |
55 | 55 |
|
56 |
-# Nova |
|
57 |
-if [[ "$ENABLED_SERVICES" =~ "n-api" ]]; then |
|
58 |
- NOVA_USER=$(get_id keystone user-create \ |
|
59 |
- --name=nova \ |
|
60 |
- --pass="$SERVICE_PASSWORD" \ |
|
61 |
- --tenant_id $SERVICE_TENANT \ |
|
62 |
- --email=nova@example.com) |
|
63 |
- keystone user-role-add \ |
|
64 |
- --tenant_id $SERVICE_TENANT \ |
|
65 |
- --user_id $NOVA_USER \ |
|
66 |
- --role_id $ADMIN_ROLE |
|
67 |
- if [[ "$KEYSTONE_CATALOG_BACKEND" = 'sql' ]]; then |
|
68 |
- NOVA_SERVICE=$(get_id keystone service-create \ |
|
69 |
- --name=nova \ |
|
70 |
- --type=compute \ |
|
71 |
- --description="Nova Compute Service") |
|
72 |
- keystone endpoint-create \ |
|
73 |
- --region RegionOne \ |
|
74 |
- --service_id $NOVA_SERVICE \ |
|
75 |
- --publicurl "http://$SERVICE_HOST:\$(compute_port)s/v2/\$(tenant_id)s" \ |
|
76 |
- --adminurl "http://$SERVICE_HOST:\$(compute_port)s/v2/\$(tenant_id)s" \ |
|
77 |
- --internalurl "http://$SERVICE_HOST:\$(compute_port)s/v2/\$(tenant_id)s" |
|
78 |
- fi |
|
56 |
+if [[ "$ENABLED_SERVICES" =~ "n-api" ]] && [[ "$ENABLED_SERVICES" =~ "swift" ]]; then |
|
57 |
+ NOVA_USER=$(keystone user-list | awk "/ nova / { print \$2 }") |
|
79 | 58 |
# Nova needs ResellerAdmin role to download images when accessing |
80 | 59 |
# swift through the s3 api. |
81 | 60 |
keystone user-role-add \ |
... | ... |
@@ -277,6 +277,46 @@ EOF' |
277 | 277 |
fi |
278 | 278 |
} |
279 | 279 |
|
280 |
+# create_nova_accounts() - Set up common required nova accounts |
|
281 |
+ |
|
282 |
+# Tenant User Roles |
|
283 |
+# ------------------------------------------------------------------ |
|
284 |
+# service nova admin, [ResellerAdmin (swift only)] |
|
285 |
+ |
|
286 |
+# Migrated from keystone_data.sh |
|
287 |
+create_nova_accounts() { |
|
288 |
+ |
|
289 |
+ SERVICE_TENANT=$(keystone tenant-list | awk "/ $SERVICE_TENANT_NAME / { print \$2 }") |
|
290 |
+ ADMIN_ROLE=$(keystone role-list | awk "/ admin / { print \$2 }") |
|
291 |
+ |
|
292 |
+ # Nova |
|
293 |
+ if [[ "$ENABLED_SERVICES" =~ "n-api" ]]; then |
|
294 |
+ NOVA_USER=$(keystone user-create \ |
|
295 |
+ --name=nova \ |
|
296 |
+ --pass="$SERVICE_PASSWORD" \ |
|
297 |
+ --tenant_id $SERVICE_TENANT \ |
|
298 |
+ --email=nova@example.com \ |
|
299 |
+ | grep " id " | get_field 2) |
|
300 |
+ keystone user-role-add \ |
|
301 |
+ --tenant_id $SERVICE_TENANT \ |
|
302 |
+ --user_id $NOVA_USER \ |
|
303 |
+ --role_id $ADMIN_ROLE |
|
304 |
+ if [[ "$KEYSTONE_CATALOG_BACKEND" = 'sql' ]]; then |
|
305 |
+ NOVA_SERVICE=$(keystone service-create \ |
|
306 |
+ --name=nova \ |
|
307 |
+ --type=compute \ |
|
308 |
+ --description="Nova Compute Service" \ |
|
309 |
+ | grep " id " | get_field 2) |
|
310 |
+ keystone endpoint-create \ |
|
311 |
+ --region RegionOne \ |
|
312 |
+ --service_id $NOVA_SERVICE \ |
|
313 |
+ --publicurl "http://$SERVICE_HOST:\$(compute_port)s/v2/\$(tenant_id)s" \ |
|
314 |
+ --adminurl "http://$SERVICE_HOST:\$(compute_port)s/v2/\$(tenant_id)s" \ |
|
315 |
+ --internalurl "http://$SERVICE_HOST:\$(compute_port)s/v2/\$(tenant_id)s" |
|
316 |
+ fi |
|
317 |
+ fi |
|
318 |
+} |
|
319 |
+ |
|
280 | 320 |
# create_nova_conf() - Create a new nova.conf file |
281 | 321 |
function create_nova_conf() { |
282 | 322 |
# Remove legacy ``nova.conf`` |
... | ... |
@@ -934,6 +934,7 @@ if is_service_enabled key; then |
934 | 934 |
export OS_SERVICE_TOKEN=$SERVICE_TOKEN |
935 | 935 |
export OS_SERVICE_ENDPOINT=$SERVICE_ENDPOINT |
936 | 936 |
create_keystone_accounts |
937 |
+ create_nova_accounts |
|
937 | 938 |
|
938 | 939 |
# ``keystone_data.sh`` creates services, admin and demo users, and roles. |
939 | 940 |
ADMIN_PASSWORD=$ADMIN_PASSWORD SERVICE_TENANT_NAME=$SERVICE_TENANT_NAME SERVICE_PASSWORD=$SERVICE_PASSWORD \ |