Browse code

Setup user and endpoints for Savanna

* create savanna user with admin role for auth token checks
* create service data_processing
* create savanna endpoint
* use savanna user for auth token checks

It's needed for running tempest tests.

Change-Id: Iff26960746e36012c275f43c0de0dedcaebc8b0a

Sergey Lukjanov authored on 2013/12/04 23:03:25
Showing 2 changed files
... ...
@@ -14,6 +14,7 @@ if is_service_enabled savanna; then
14 14
     elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
15 15
         echo_summary "Configuring Savanna"
16 16
         configure_savanna
17
+        create_savanna_accounts
17 18
         if is_service_enabled horizon; then
18 19
             configure_savanna_dashboard
19 20
         fi
... ...
@@ -3,7 +3,6 @@
3 3
 # Dependencies:
4 4
 # ``functions`` file
5 5
 # ``DEST``, ``DATA_DIR``, ``STACK_USER`` must be defined
6
-# ``ADMIN_{TENANT_NAME|PASSWORD}`` must be defined
7 6
 
8 7
 # ``stack.sh`` calls the entry points in this order:
9 8
 #
... ...
@@ -28,11 +27,12 @@ SAVANNA_BRANCH=${SAVANNA_BRANCH:-master}
28 28
 SAVANNA_DIR=$DEST/savanna
29 29
 SAVANNA_CONF_DIR=${SAVANNA_CONF_DIR:-/etc/savanna}
30 30
 SAVANNA_CONF_FILE=savanna.conf
31
-ADMIN_TENANT_NAME=${ADMIN_TENANT_NAME:-admin}
32
-ADMIN_NAME=${ADMIN_NAME:-admin}
33
-ADMIN_PASSWORD=${ADMIN_PASSWORD:-nova}
34 31
 SAVANNA_DEBUG=${SAVANNA_DEBUG:-True}
35 32
 
33
+SAVANNA_SERVICE_HOST=${SAVANNA_SERVICE_HOST:-$SERVICE_HOST}
34
+SAVANNA_SERVICE_PORT=${SAVANNA_SERVICE_PORT:-8386}
35
+SAVANNA_SERVICE_PROTOCOL=${SAVANNA_SERVICE_PROTOCOL:-$SERVICE_PROTOCOL}
36
+
36 37
 # Support entry points installation of console scripts
37 38
 if [[ -d $SAVANNA_DIR/bin ]]; then
38 39
     SAVANNA_BIN_DIR=$SAVANNA_DIR/bin
... ...
@@ -43,6 +43,42 @@ fi
43 43
 # Functions
44 44
 # ---------
45 45
 
46
+# create_savanna_accounts() - Set up common required savanna accounts
47
+#
48
+# Tenant      User       Roles
49
+# ------------------------------
50
+# service     savanna    admin
51
+function create_savanna_accounts() {
52
+
53
+    SERVICE_TENANT=$(keystone tenant-list | awk "/ $SERVICE_TENANT_NAME / { print \$2 }")
54
+    ADMIN_ROLE=$(keystone role-list | awk "/ admin / { print \$2 }")
55
+
56
+    SAVANNA_USER=$(keystone user-create \
57
+        --name=savanna \
58
+        --pass="$SERVICE_PASSWORD" \
59
+        --tenant_id $SERVICE_TENANT \
60
+        --email=savanna@example.com \
61
+        | grep " id " | get_field 2)
62
+    keystone user-role-add \
63
+        --tenant-id $SERVICE_TENANT \
64
+        --user-id $SAVANNA_USER \
65
+        --role-id $ADMIN_ROLE
66
+
67
+    if [[ "$KEYSTONE_CATALOG_BACKEND" = 'sql' ]]; then
68
+        SAVANNA_SERVICE=$(keystone service-create \
69
+            --name=savanna \
70
+            --type=data_processing \
71
+            --description="Savanna Data Processing" \
72
+            | grep " id " | get_field 2)
73
+        keystone endpoint-create \
74
+            --region RegionOne \
75
+            --service_id $SAVANNA_SERVICE \
76
+            --publicurl "$SAVANNA_SERVICE_PROTOCOL://$SAVANNA_SERVICE_HOST:$SAVANNA_SERVICE_PORT/v1.1/\$(tenant_id)s" \
77
+            --adminurl "$SAVANNA_SERVICE_PROTOCOL://$SAVANNA_SERVICE_HOST:$SAVANNA_SERVICE_PORT/v1.1/\$(tenant_id)s" \
78
+            --internalurl "$SAVANNA_SERVICE_PROTOCOL://$SAVANNA_SERVICE_HOST:$SAVANNA_SERVICE_PORT/v1.1/\$(tenant_id)s"
79
+    fi
80
+}
81
+
46 82
 # configure_savanna() - Set config files, create data dirs, etc
47 83
 function configure_savanna() {
48 84
 
... ...
@@ -54,9 +90,9 @@ function configure_savanna() {
54 54
     # Copy over savanna configuration file and configure common parameters.
55 55
     cp $SAVANNA_DIR/etc/savanna/savanna.conf.sample $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE
56 56
 
57
-    iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT os_admin_password $ADMIN_PASSWORD
58
-    iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT os_admin_username $ADMIN_NAME
59
-    iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT os_admin_tenant_name $ADMIN_TENANT_NAME
57
+    iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT os_admin_password $SERVICE_PASSWORD
58
+    iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT os_admin_username savanna
59
+    iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT os_admin_tenant_name $SERVICE_TENANT_NAME
60 60
     iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT debug $SAVANNA_DEBUG
61 61
 
62 62
     recreate_database savanna utf8