Browse code

Merge "Refactor init functions to simplify Grenade upgrades"

Jenkins authored on 2013/02/17 05:25:54
Showing 3 changed files
... ...
@@ -254,37 +254,55 @@ create_cinder_accounts() {
254 254
     fi
255 255
 }
256 256
 
257
+# create_cinder_cache_dir() - Part of the init_cinder() process
258
+function create_cinder_cache_dir() {
259
+    # Create cache dir
260
+    sudo mkdir -p $CINDER_AUTH_CACHE_DIR
261
+    sudo chown $STACK_USER $CINDER_AUTH_CACHE_DIR
262
+    rm -f $CINDER_AUTH_CACHE_DIR/*
263
+}
264
+
265
+create_cinder_volume_group() {
266
+    # Configure a default volume group called '`stack-volumes`' for the volume
267
+    # service if it does not yet exist.  If you don't wish to use a file backed
268
+    # volume group, create your own volume group called ``stack-volumes`` before
269
+    # invoking ``stack.sh``.
270
+    #
271
+    # By default, the backing file is 5G in size, and is stored in ``/opt/stack/data``.
272
+
273
+    if ! sudo vgs $VOLUME_GROUP; then
274
+        VOLUME_BACKING_FILE=${VOLUME_BACKING_FILE:-$DATA_DIR/${VOLUME_GROUP}-backing-file}
275
+
276
+        # Only create if the file doesn't already exists
277
+        [[ -f $VOLUME_BACKING_FILE ]] || truncate -s $VOLUME_BACKING_FILE_SIZE $VOLUME_BACKING_FILE
278
+
279
+        DEV=`sudo losetup -f --show $VOLUME_BACKING_FILE`
280
+
281
+        # Only create if the loopback device doesn't contain $VOLUME_GROUP
282
+        if ! sudo vgs $VOLUME_GROUP; then
283
+            sudo vgcreate $VOLUME_GROUP $DEV
284
+        fi
285
+    fi
286
+
287
+    mkdir -p $CINDER_STATE_PATH/volumes
288
+}
289
+
257 290
 # init_cinder() - Initialize database and volume group
258 291
 function init_cinder() {
259 292
     # Force nova volumes off
260 293
     NOVA_ENABLED_APIS=$(echo $NOVA_ENABLED_APIS | sed "s/osapi_volume,//")
261 294
 
262 295
     if is_service_enabled $DATABASE_BACKENDS; then
263
-        # (re)create cinder database
296
+        # (Re)create cinder database
264 297
         recreate_database cinder utf8
265 298
 
266
-        # (re)create cinder database
299
+        # Migrate cinder database
267 300
         $CINDER_BIN_DIR/cinder-manage db sync
268 301
     fi
269 302
 
270 303
     if is_service_enabled c-vol; then
271
-        # Configure a default volume group called '`stack-volumes`' for the volume
272
-        # service if it does not yet exist.  If you don't wish to use a file backed
273
-        # volume group, create your own volume group called ``stack-volumes`` before
274
-        # invoking ``stack.sh``.
275
-        #
276
-        # By default, the backing file is 5G in size, and is stored in ``/opt/stack/data``.
277 304
 
278
-        if ! sudo vgs $VOLUME_GROUP; then
279
-            VOLUME_BACKING_FILE=${VOLUME_BACKING_FILE:-$DATA_DIR/${VOLUME_GROUP}-backing-file}
280
-            # Only create if the file doesn't already exists
281
-            [[ -f $VOLUME_BACKING_FILE ]] || truncate -s $VOLUME_BACKING_FILE_SIZE $VOLUME_BACKING_FILE
282
-            DEV=`sudo losetup -f --show $VOLUME_BACKING_FILE`
283
-            # Only create if the loopback device doesn't contain $VOLUME_GROUP
284
-            if ! sudo vgs $VOLUME_GROUP; then sudo vgcreate $VOLUME_GROUP $DEV; fi
285
-        fi
286
-
287
-        mkdir -p $CINDER_STATE_PATH/volumes
305
+        create_cinder_volume_group
288 306
 
289 307
         if sudo vgs $VOLUME_GROUP; then
290 308
             if is_fedora || is_suse; then
... ...
@@ -299,10 +317,7 @@ function init_cinder() {
299 299
         fi
300 300
     fi
301 301
 
302
-    # Create cache dir
303
-    sudo mkdir -p $CINDER_AUTH_CACHE_DIR
304
-    sudo chown $STACK_USER $CINDER_AUTH_CACHE_DIR
305
-    rm -f $CINDER_AUTH_CACHE_DIR/*
302
+    create_cinder_cache_dir
306 303
 }
307 304
 
308 305
 # install_cinder() - Collect source and prepare
... ...
@@ -141,6 +141,17 @@ function configure_glance() {
141 141
     cp -p $GLANCE_DIR/etc/policy.json $GLANCE_POLICY_JSON
142 142
 }
143 143
 
144
+# create_glance_cache_dir() - Part of the init_glance() process
145
+function create_glance_cache_dir() {
146
+    # Create cache dir
147
+    sudo mkdir -p $GLANCE_AUTH_CACHE_DIR/api
148
+    sudo chown $STACK_USER $GLANCE_AUTH_CACHE_DIR/api
149
+    rm -f $GLANCE_AUTH_CACHE_DIR/api/*
150
+    sudo mkdir -p $GLANCE_AUTH_CACHE_DIR/registry
151
+    sudo chown $STACK_USER $GLANCE_AUTH_CACHE_DIR/registry
152
+    rm -f $GLANCE_AUTH_CACHE_DIR/registry/*
153
+}
154
+
144 155
 # init_glance() - Initialize databases, etc.
145 156
 function init_glance() {
146 157
     # Delete existing images
... ...
@@ -151,18 +162,13 @@ function init_glance() {
151 151
     rm -rf $GLANCE_CACHE_DIR
152 152
     mkdir -p $GLANCE_CACHE_DIR
153 153
 
154
-    # (re)create glance database
154
+    # (Re)create glance database
155 155
     recreate_database glance utf8
156 156
 
157
+    # Migrate glance database
157 158
     $GLANCE_BIN_DIR/glance-manage db_sync
158 159
 
159
-    # Create cache dir
160
-    sudo mkdir -p $GLANCE_AUTH_CACHE_DIR/api
161
-    sudo chown $STACK_USER $GLANCE_AUTH_CACHE_DIR/api
162
-    rm -f $GLANCE_AUTH_CACHE_DIR/api/*
163
-    sudo mkdir -p $GLANCE_AUTH_CACHE_DIR/registry
164
-    sudo chown $STACK_USER $GLANCE_AUTH_CACHE_DIR/registry
165
-    rm -f $GLANCE_AUTH_CACHE_DIR/registry/*
160
+    create_glance_cache_dir
166 161
 }
167 162
 
168 163
 # install_glanceclient() - Collect source and prepare
... ...
@@ -446,6 +446,14 @@ function create_nova_conf() {
446 446
     done
447 447
 }
448 448
 
449
+# create_nova_cache_dir() - Part of the init_nova() process
450
+function create_nova_cache_dir() {
451
+    # Create cache dir
452
+    sudo mkdir -p $NOVA_AUTH_CACHE_DIR
453
+    sudo chown $STACK_USER $NOVA_AUTH_CACHE_DIR
454
+    rm -f $NOVA_AUTH_CACHE_DIR/*
455
+}
456
+
449 457
 function create_nova_conf_nova_network() {
450 458
     iniset $NOVA_CONF DEFAULT network_manager "nova.network.manager.$NET_MAN"
451 459
     iniset $NOVA_CONF DEFAULT public_interface "$PUBLIC_INTERFACE"
... ...
@@ -456,14 +464,17 @@ function create_nova_conf_nova_network() {
456 456
     fi
457 457
 }
458 458
 
459
+# create_nova_keys_dir() - Part of the init_nova() process
460
+function create_nova_keys_dir() {
461
+    # Create keys dir
462
+    sudo mkdir -p ${NOVA_STATE_PATH}/keys
463
+    sudo chown -R $STACK_USER ${NOVA_STATE_PATH}
464
+}
465
+
459 466
 # init_nova() - Initialize databases, etc.
460 467
 function init_nova() {
461
-    # Nova Database
462
-    # -------------
463
-
464
-    # All nova components talk to a central database.  We will need to do this step
465
-    # only once for an entire cluster.
466
-
468
+    # All nova components talk to a central database.
469
+    # Only do this step once on the API node for an entire cluster.
467 470
     if is_service_enabled $DATABASE_BACKENDS && is_service_enabled n-api; then
468 471
         # (Re)create nova database
469 472
         # Explicitly use latin1: to avoid lp#829209, nova expects the database to
... ...
@@ -471,7 +482,7 @@ function init_nova() {
471 471
         # 082_essex.py in nova)
472 472
         recreate_database nova latin1
473 473
 
474
-        # (Re)create nova database
474
+        # Migrate nova database
475 475
         $NOVA_BIN_DIR/nova-manage db sync
476 476
 
477 477
         # (Re)create nova baremetal database
... ...
@@ -481,15 +492,8 @@ function init_nova() {
481 481
         fi
482 482
     fi
483 483
 
484
-    # Create cache dir
485
-    sudo mkdir -p $NOVA_AUTH_CACHE_DIR
486
-    sudo chown $STACK_USER $NOVA_AUTH_CACHE_DIR
487
-    rm -f $NOVA_AUTH_CACHE_DIR/*
488
-
489
-    # Create the keys folder
490
-    sudo mkdir -p ${NOVA_STATE_PATH}/keys
491
-    # make sure we own NOVA_STATE_PATH and all subdirs
492
-    sudo chown -R $STACK_USER ${NOVA_STATE_PATH}
484
+    create_nova_cache_dir
485
+    create_nova_keys_dir
493 486
 }
494 487
 
495 488
 # install_novaclient() - Collect source and prepare