Support multiple Cinder backend types

This is the first step in supporting multiple Cinder backend types at
once.  It initially converts the existing hard-coded multi-lvm support
to a new cinder_backends driver form.  Eventually the cinder_plugins
will be converted to this form so they can be enabled more than just
one at a time using CINDER_ENABLED_BACKENDS.

The default configuration should be identical to the previous defaults,
including for both True and False values of CINDER_MULTI_LVM_BACKEND.

The existing cinder_plugins are expected to be removed when this is
complete. They should continue to work until they have been converted.

Add wait for c-api to ensure it is started before continuing.

Change-Id: I93b8ef32832269d730c76a6dc24ddb4f20c6d9df
diff --git a/stack.sh b/stack.sh
index d095063..6d81691 100755
--- a/stack.sh
+++ b/stack.sh
@@ -1245,6 +1245,7 @@
 if is_service_enabled cinder; then
     echo_summary "Starting Cinder"
     start_cinder
+    create_volume_types
 fi
 if is_service_enabled ceilometer; then
     echo_summary "Starting Ceilometer"
@@ -1501,6 +1502,19 @@
     done
 fi
 
+# TODO(dtroyer): Remove CINDER_MULTI_LVM_BACKEND after stable/juno branch is cut
+if [[ "$CINDER_MULTI_LVM_BACKEND" = "True" ]]; then
+    echo ""
+    echo_summary "WARNING: CINDER_MULTI_LVM_BACKEND is used"
+    echo "You are using CINDER_MULTI_LVM_BACKEND to configure Cinder's multiple LVM backends"
+    echo "Please convert that configuration in local.conf to use CINDER_ENABLED_BACKENDS."
+    echo "CINDER_ENABLED_BACKENDS will be removed early in the 'K' development cycle"
+    echo "
+[[local|localrc]]
+CINDER_ENABLED_BACKENDS=lvm:lvmdriver-1,lvm:lvmdriver-2
+"
+fi
+
 # Indicate how long this took to run (bash maintained variable ``SECONDS``)
 echo_summary "stack.sh completed in $SECONDS seconds."