From 3935cbafa31c1eb6da396c678876b4b3a3141e2a Mon Sep 17 00:00:00 2001
From: Ryan Hallisey <rhallise@redhat.com>
Date: Fri, 26 Jun 2015 09:38:05 -0400
Subject: [PATCH] Liberty requires Cinder to use the v2 API

The Liberty release of Cinder will remove the v1 api so we
need to disable it in the cinder_api container and use v2.

Change-Id: I5dab7214d4d39afdf92555e3ffbd7f4a6194cd45
Closes-bug: #1469177
---
 docker/common/cinder-app/cinder-api/start.sh          | 8 ++++----
 docker/common/cinder-app/cinder-base/config-cinder.sh | 3 ++-
 docs/integration-guide.md                             | 1 +
 docs/minimal-environment-vars.md                      | 6 +-----
 tools/genenv                                          | 6 +++++-
 5 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/docker/common/cinder-app/cinder-api/start.sh b/docker/common/cinder-app/cinder-api/start.sh
index 860308e625..cbf0159e5e 100755
--- a/docker/common/cinder-app/cinder-api/start.sh
+++ b/docker/common/cinder-app/cinder-api/start.sh
@@ -30,9 +30,9 @@ crux user-create --update \
 crux endpoint-create --remove-all \
     -n cinder \
     -t volume \
-    -P "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v1/\$(tenant_id)s" \
-    -A "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v1/\$(tenant_id)s" \
-    -I "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v1/\$(tenant_id)s"
+    -P "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v2/\$(tenant_id)s" \
+    -A "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v2/\$(tenant_id)s" \
+    -I "http://${CINDER_API_SERVICE_HOST}:${CINDER_API_SERVICE_PORT}/v2/\$(tenant_id)s"
 
 crux endpoint-create --remove-all \
     -n cinderv2 \
@@ -61,7 +61,7 @@ crudini --set $cfg \
 crudini --set $cfg \
         DEFAULT \
         enable_v1_api \
-        "true"
+        "false"
 
 crudini --set $cfg \
         DEFAULT \
diff --git a/docker/common/cinder-app/cinder-base/config-cinder.sh b/docker/common/cinder-app/cinder-base/config-cinder.sh
index 37a5f2a4b9..62deafb9ea 100644
--- a/docker/common/cinder-app/cinder-base/config-cinder.sh
+++ b/docker/common/cinder-app/cinder-base/config-cinder.sh
@@ -11,7 +11,7 @@ check_required_vars CINDER_DB_PASSWORD CINDER_KEYSTONE_PASSWORD \
                     RABBIT_USERID RABBIT_PASSWORD GLANCE_API_SERVICE_HOST \
                     GLANCE_API_SERVICE_PORT ADMIN_TENANT_NAME \
                     CINDER_DB_NAME CINDER_DB_USER CINDER_KEYSTONE_USER \
-                    PUBLIC_IP KEYSTONE_AUTH_PROTOCOL
+                    PUBLIC_IP KEYSTONE_AUTH_PROTOCOL CINDER_API_VERSION
 
 dump_vars
 
@@ -20,6 +20,7 @@ export OS_AUTH_URL="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:
 export OS_USERNAME="${CINDER_KEYSTONE_USER}"
 export OS_PASSWORD="${CINDER_KEYSTONE_PASSWORD}"
 export OS_TENANT_NAME="${ADMIN_TENANT_NAME}"
+export OS_VOLUME_API_VERSION=$CINDER_API_VERSION
 EOF
 
 cfg=/etc/cinder/cinder.conf
diff --git a/docs/integration-guide.md b/docs/integration-guide.md
index c2bfe3c612..7461f506e7 100755
--- a/docs/integration-guide.md
+++ b/docs/integration-guide.md
@@ -175,6 +175,7 @@ all containers.  This allows a simple method of ensuring every type of node
     CINDER_ENABLED_BACKEND=<lvm57> - A list of backend names to use
     INIT_CINDER_DB=<true|false> - Initialize or update the cinder db
     KEEPALIVED_HOST_PRIORITIES=<host1:100,host2:99> - Map of priorities per node. Priorities have to be unique.
+    CINDER_API_VERSION=<2> - The API version for Cinder
 
 [Minimum environment variable setup guide.](https://github.com/stackforge/kolla/blob/master/docs/minimal-environment-vars.md)
 
diff --git a/docs/minimal-environment-vars.md b/docs/minimal-environment-vars.md
index 2ce6556fd7..6578248619 100644
--- a/docs/minimal-environment-vars.md
+++ b/docs/minimal-environment-vars.md
@@ -68,10 +68,8 @@ In order for each service to function, there is a minimum set of required variab
     KEYSTONE_ADMIN_SERVICE_PORT
     CINDER_KEYSTONE_USER
     CINDER_KEYSTONE_PASSWORD
-    CINDER_API_LOG_FILE
     CINDER_API_SERVICE_LISTEN
     CINDER_API_SERVICE_PORT
-    CINDER_API_SERVICE_LISTEN
 
 # Cinder-backup
 
@@ -100,7 +98,7 @@ In order for each service to function, there is a minimum set of required variab
     CINDER_KEYSTONE_USER
     PUBLIC_IP
     KEYSTONE_AUTH_PROTOCOL
-    CINDER_LOG_DIR
+    CINDER_API_VERSION
 
 # Cinder-scheduler
 
@@ -109,7 +107,6 @@ In order for each service to function, there is a minimum set of required variab
     CINDER_DB_NAME
     CINDER_DB_USER
     CINDER_DB_PASSWORD
-    CINDER_SCHEDULER_LOG_FILE
     INIT_CINDER_DB
 
 # Cinder-volume
@@ -122,7 +119,6 @@ In order for each service to function, there is a minimum set of required variab
     CINDER_VOLUME_BACKEND_NAME
     CINDER_VOLUME_DRIVER
     CINDER_ENABLED_BACKEND
-    CINDER_VOLUME_LOG_FILE
     CINDER_LVM_LO_VOLUME_SIZE
     CINDER_VOLUME_GROUP
 
diff --git a/tools/genenv b/tools/genenv
index 535d7356cc..4cfbbf9c9e 100755
--- a/tools/genenv
+++ b/tools/genenv
@@ -39,6 +39,9 @@ MY_DEV=$(ip route get $(ip route | awk '$1 == "default" {print $3}') |
 echo MY_IP=$MY_IP
 echo MY_DEV=$MY_DEV
 
+# API versions
+CINDER_API_VERSION=2
+
 # Admin user password
 ADMIN_USER_PASSWORD=steakfordinner
 
@@ -54,7 +57,6 @@ MARIADB_ROOT_PASSWORD=kolla
 MARIADB_MAX_CONNECTIONS=151
 PASSWORD=12345
 
-
 # Galera
 DB_CLUSTER_BIND_ADDRESS=0.0.0.0
 DB_CLUSTER_INIT_DB=false
@@ -234,6 +236,7 @@ export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0"
 export OS_USERNAME=$ADMIN_TENANT_NAME
 export OS_PASSWORD=$ADMIN_USER_PASSWORD
 export OS_TENANT_NAME=$ADMIN_TENANT_NAME
+export OS_VOLUME_API_VERSION=$CINDER_API_VERSION
 EOF
 
 cat > ./compose/openstack.env <<EOF
@@ -377,6 +380,7 @@ CINDER_VOLUME_DRIVER=$CINDER_VOLUME_DRIVER
 CINDER_ENABLED_BACKEND=$CINDER_ENABLED_BACKEND
 CINDER_LOG_DIR=$CINDER_LOG_DIR
 CINDER_API_LOG_FILE=$CINDER_API_LOG_FILE
+CINDER_API_VERSION=$CINDER_API_VERSION
 CINDER_VOLUME_LOG_FILE=$CINDER_VOLUME_LOG_FILE
 CINDER_BACKUP_LOG_FILE=$CINDER_BACKUP_LOG_FILE
 CINDER_SCHEDULER_LOG_FILE=$CINDER_SCHEDULER_LOG_FILE