Browse code

Glance changes to stack.sh for https://review.openstack.org/3092

* Handle before/after upcoming Glance configuration file changes
* Add configuration vars for Keystone URIs to configure Glance
and other services

Change-Id: I465065592ade11fb86c40cd04d29c4ae3f1706d7

Dean Troyer authored on 2012/01/17 13:27:20
Showing 2 changed files
... ...
@@ -39,7 +39,7 @@ fi
39 39
 $BIN_DIR/keystone-manage $* endpointTemplates add RegionOne nova http://%SERVICE_HOST%:8774/v1.1/%tenant_id% http://%SERVICE_HOST%:8774/v1.1/%tenant_id%  http://%SERVICE_HOST%:8774/v1.1/%tenant_id% 1 1
40 40
 $BIN_DIR/keystone-manage $* endpointTemplates add RegionOne ec2 http://%SERVICE_HOST%:8773/services/Cloud http://%SERVICE_HOST%:8773/services/Admin http://%SERVICE_HOST%:8773/services/Cloud 1 1
41 41
 $BIN_DIR/keystone-manage $* endpointTemplates add RegionOne glance http://%SERVICE_HOST%:9292/v1 http://%SERVICE_HOST%:9292/v1 http://%SERVICE_HOST%:9292/v1 1 1
42
-$BIN_DIR/keystone-manage $* endpointTemplates add RegionOne keystone http://%SERVICE_HOST%:5000/v2.0 http://%SERVICE_HOST%:35357/v2.0 http://%SERVICE_HOST%:5000/v2.0 1 1
42
+$BIN_DIR/keystone-manage $* endpointTemplates add RegionOne keystone %KEYSTONE_SERVICE_PROTOCOL%://%KEYSTONE_SERVICE_HOST%:%KEYSTONE_SERVICE_PORT%/v2.0 %KEYSTONE_AUTH_PROTOCOL%://%KEYSTONE_AUTH_HOST%:%KEYSTONE_AUTH_PORT%/v2.0 %KEYSTONE_SERVICE_PROTOCOL%://%KEYSTONE_SERVICE_HOST%:%KEYSTONE_SERVICE_PORT%/v2.0 1 1
43 43
 if [[ "$ENABLED_SERVICES" =~ "swift" ]]; then
44 44
     $BIN_DIR/keystone-manage $* endpointTemplates add RegionOne swift http://%SERVICE_HOST%:8080/v1/AUTH_%tenant_id% http://%SERVICE_HOST%:8080/ http://%SERVICE_HOST%:8080/v1/AUTH_%tenant_id% 1 1
45 45
 fi
... ...
@@ -395,6 +395,14 @@ read_password SERVICE_TOKEN "ENTER A SERVICE_TOKEN TO USE FOR THE SERVICE ADMIN
395 395
 # Horizon currently truncates usernames and passwords at 20 characters
396 396
 read_password ADMIN_PASSWORD "ENTER A PASSWORD TO USE FOR HORIZON AND KEYSTONE (20 CHARS OR LESS)."
397 397
 
398
+# Set Keystone interface configuration
399
+KEYSTONE_AUTH_HOST=${KEYSTONE_AUTH_HOST:-$SERVICE_HOST}
400
+KEYSTONE_AUTH_PORT=${KEYSTONE_AUTH_PORT:-35357}
401
+KEYSTONE_AUTH_PROTOCOL=${KEYSTONE_AUTH_PROTOCOL:-http}
402
+KEYSTONE_SERVICE_HOST=${KEYSTONE_SERVICE_HOST:-$SERVICE_HOST}
403
+KEYSTONE_SERVICE_PORT=${KEYSTONE_SERVICE_PORT:-5000}
404
+KEYSTONE_SERVICE_PROTOCOL=${KEYSTONE_SERVICE_PROTOCOL:-http}
405
+
398 406
 # Log files
399 407
 # ---------
400 408
 
... ...
@@ -765,19 +773,47 @@ if [[ "$ENABLED_SERVICES" =~ "g-reg" ]]; then
765 765
     mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'DROP DATABASE IF EXISTS glance;'
766 766
     mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e 'CREATE DATABASE glance;'
767 767
 
768
+    function glance_config {
769
+        sudo sed -e "
770
+            s,%KEYSTONE_AUTH_HOST%,$KEYSTONE_AUTH_HOST,g;
771
+            s,%KEYSTONE_AUTH_PORT%,$KEYSTONE_AUTH_PORT,g;
772
+            s,%KEYSTONE_AUTH_PROTOCOL%,$KEYSTONE_AUTH_PROTOCOL,g;
773
+            s,%KEYSTONE_SERVICE_HOST%,$KEYSTONE_SERVICE_HOST,g;
774
+            s,%KEYSTONE_SERVICE_PORT%,$KEYSTONE_SERVICE_PORT,g;
775
+            s,%KEYSTONE_SERVICE_PROTOCOL%,$KEYSTONE_SERVICE_PROTOCOL,g;
776
+            s,%SQL_CONN%,$BASE_SQL_CONN/glance,g;
777
+            s,%SERVICE_TOKEN%,$SERVICE_TOKEN,g;
778
+            s,%DEST%,$DEST,g;
779
+            s,%SYSLOG%,$SYSLOG,g;
780
+        " -i $1
781
+    }
782
+
768 783
     # Copy over our glance configurations and update them
769
-    GLANCE_CONF=$GLANCE_DIR/etc/glance-registry.conf
770
-    cp $FILES/glance-registry.conf $GLANCE_CONF
771
-    sudo sed -e "s,%SQL_CONN%,$BASE_SQL_CONN/glance,g" -i $GLANCE_CONF
772
-    sudo sed -e "s,%SERVICE_TOKEN%,$SERVICE_TOKEN,g" -i $GLANCE_CONF
773
-    sudo sed -e "s,%DEST%,$DEST,g" -i $GLANCE_CONF
774
-    sudo sed -e "s,%SYSLOG%,$SYSLOG,g" -i $GLANCE_CONF
784
+    GLANCE_REGISTRY_CONF=$GLANCE_DIR/etc/glance-registry.conf
785
+    cp $FILES/glance-registry.conf $GLANCE_REGISTRY_CONF
786
+    glance_config $GLANCE_REGISTRY_CONF
787
+
788
+    if [[ -e $FILES/glance-registry-paste.ini ]]; then
789
+        GLANCE_REGISTRY_PASTE_INI=$GLANCE_DIR/etc/glance-registry-paste.ini
790
+        cp $FILES/glance-registry-paste.ini $GLANCE_REGISTRY_PASTE_INI
791
+        glance_config $GLANCE_REGISTRY_PASTE_INI
792
+        # During the transition for Glance to the split config files
793
+        # we cat them together to handle both pre- and post-merge
794
+        cat $GLANCE_REGISTRY_PASTE_INI >>$GLANCE_REGISTRY_CONF
795
+    fi
775 796
 
776 797
     GLANCE_API_CONF=$GLANCE_DIR/etc/glance-api.conf
777 798
     cp $FILES/glance-api.conf $GLANCE_API_CONF
778
-    sudo sed -e "s,%DEST%,$DEST,g" -i $GLANCE_API_CONF
779
-    sudo sed -e "s,%SERVICE_TOKEN%,$SERVICE_TOKEN,g" -i $GLANCE_API_CONF
780
-    sudo sed -e "s,%SYSLOG%,$SYSLOG,g" -i $GLANCE_API_CONF
799
+    glance_config $GLANCE_API_CONF
800
+
801
+    if [[ -e $FILES/glance-api-paste.ini ]]; then
802
+        GLANCE_API_PASTE_INI=$GLANCE_DIR/etc/glance-api-paste.ini
803
+        cp $FILES/glance-api-paste.ini $GLANCE_API_PASTE_INI
804
+        glance_config $GLANCE_API_PASTE_INI
805
+        # During the transition for Glance to the split config files
806
+        # we cat them together to handle both pre- and post-merge
807
+        cat $GLANCE_API_PASTE_INI >>$GLANCE_API_CONF
808
+    fi
781 809
 fi
782 810
 
783 811
 # Nova
... ...
@@ -1209,9 +1245,17 @@ if [[ "$ENABLED_SERVICES" =~ "key" ]]; then
1209 1209
     # keystone_data.sh creates our admin user and our ``SERVICE_TOKEN``.
1210 1210
     KEYSTONE_DATA=$KEYSTONE_DIR/bin/keystone_data.sh
1211 1211
     cp $FILES/keystone_data.sh $KEYSTONE_DATA
1212
-    sudo sed -e "s,%SERVICE_HOST%,$SERVICE_HOST,g" -i $KEYSTONE_DATA
1213
-    sudo sed -e "s,%SERVICE_TOKEN%,$SERVICE_TOKEN,g" -i $KEYSTONE_DATA
1214
-    sudo sed -e "s,%ADMIN_PASSWORD%,$ADMIN_PASSWORD,g" -i $KEYSTONE_DATA
1212
+    sudo sed -e "
1213
+        s,%KEYSTONE_AUTH_HOST%,$KEYSTONE_AUTH_HOST,g;
1214
+        s,%KEYSTONE_AUTH_PORT%,$KEYSTONE_AUTH_PORT,g;
1215
+        s,%KEYSTONE_AUTH_PROTOCOL%,$KEYSTONE_AUTH_PROTOCOL,g;
1216
+        s,%KEYSTONE_SERVICE_HOST%,$KEYSTONE_SERVICE_HOST,g;
1217
+        s,%KEYSTONE_SERVICE_PORT%,$KEYSTONE_SERVICE_PORT,g;
1218
+        s,%KEYSTONE_SERVICE_PROTOCOL%,$KEYSTONE_SERVICE_PROTOCOL,g;
1219
+        s,%SERVICE_HOST%,$SERVICE_HOST,g;
1220
+        s,%SERVICE_TOKEN%,$SERVICE_TOKEN,g;
1221
+        s,%ADMIN_PASSWORD%,$ADMIN_PASSWORD,g;
1222
+    " -i $KEYSTONE_DATA
1215 1223
     # initialize keystone with default users/endpoints
1216 1224
     ENABLED_SERVICES=$ENABLED_SERVICES BIN_DIR=$KEYSTONE_DIR/bin bash $KEYSTONE_DATA
1217 1225
 
... ...
@@ -1275,7 +1319,7 @@ fi
1275 1275
 if [[ "$ENABLED_SERVICES" =~ "key" ]]; then
1276 1276
     screen_it key "cd $KEYSTONE_DIR && $KEYSTONE_DIR/bin/keystone --config-file $KEYSTONE_CONF $KEYSTONE_LOG_CONFIG -d"
1277 1277
     echo "Waiting for keystone to start..."
1278
-    if ! timeout $SERVICE_TIMEOUT sh -c "while ! wget -q -O- http://127.0.0.1:5000; do sleep 1; done"; then
1278
+    if ! timeout $SERVICE_TIMEOUT sh -c "while ! wget -q -O- $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT; do sleep 1; done"; then
1279 1279
       echo "keystone did not start"
1280 1280
       exit 1
1281 1281
     fi
... ...
@@ -1470,7 +1514,7 @@ fi
1470 1470
 
1471 1471
 # If keystone is present, you can point nova cli to this server
1472 1472
 if [[ "$ENABLED_SERVICES" =~ "key" ]]; then
1473
-    echo "keystone is serving at http://$SERVICE_HOST:5000/v2.0/"
1473
+    echo "keystone is serving at $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v2.0/"
1474 1474
     echo "examples on using novaclient command line is in exercise.sh"
1475 1475
     echo "the default users are: admin and demo"
1476 1476
     echo "the password: $ADMIN_PASSWORD"