From 5d04db20ec5a89c6f04df7c798efa41a4259d22e Mon Sep 17 00:00:00 2001 From: Brian Haley Date: Tue, 16 Jun 2015 13:14:31 -0400 Subject: [PATCH] Add IPv6 support to openrc files Assumes devstack was configured with SERVICE_IP_VERSION in local.conf SERVICE_IP_VERSION is stored in .stackenv and checked in openrc. If SERVICE_IP_VERSION is set to 6, openrc will use IPv6. NOTE: At first, I added a '-6' option to the openrc call which would set the HOSTS accordingly. I then simplified the code by saving SERVICE_IP_VERSION to the .stackenv file which is sourced by openrc. After that, I simplified the code even more by removing an extra, unnecessary, variable. Change-Id: I5d46d5438d3e56fea788720ca17f0010caef3df1 --- functions-common | 2 +- openrc | 24 ++++++++++++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/functions-common b/functions-common index 39c1bfc4d7..fc17d42422 100644 --- a/functions-common +++ b/functions-common @@ -47,7 +47,7 @@ TRACK_DEPENDS=${TRACK_DEPENDS:-False} STACK_ENV_VARS="BASE_SQL_CONN DATA_DIR DEST ENABLED_SERVICES HOST_IP \ KEYSTONE_AUTH_PROTOCOL KEYSTONE_AUTH_URI KEYSTONE_SERVICE_URI \ LOGFILE OS_CACERT SERVICE_HOST SERVICE_PROTOCOL STACK_USER TLS_IP \ - HOST_IPV6" + HOST_IPV6 SERVICE_IP_VERSION" # Saves significant environment variables to .stackenv for later use diff --git a/openrc b/openrc index 64faa58a3a..71ba5a6ea5 100644 --- a/openrc +++ b/openrc @@ -56,18 +56,26 @@ export OS_NO_CACHE=${OS_NO_CACHE:-1} # Region export OS_REGION_NAME=${REGION_NAME:-RegionOne} -# Set api HOST_IP endpoint. SERVICE_HOST may also be used to specify the endpoint, -# which is convenient for some localrc configurations. -HOST_IP=${HOST_IP:-127.0.0.1} -SERVICE_HOST=${SERVICE_HOST:-$HOST_IP} +# Set the host API endpoint. This will default to HOST_IP if SERVICE_IP_VERSION +# is 4, else HOST_IPV6 if it's 6. SERVICE_HOST may also be used to specify the +# endpoint, which is convenient for some localrc configurations. Additionally, +# some exercises call Glance directly. On a single-node installation, Glance +# should be listening on a local IP address, depending on the setting of +# SERVICE_IP_VERSION. If its running elsewhere, it can be set here. +if [[ $SERVICE_IP_VERSION == 6 ]]; then + HOST_IPV6=${HOST_IPV6:-::1} + SERVICE_HOST=${SERVICE_HOST:-[$HOST_IPV6]} + GLANCE_HOST=${GLANCE_HOST:-[$HOST_IPV6]} +else + HOST_IP=${HOST_IP:-127.0.0.1} + SERVICE_HOST=${SERVICE_HOST:-$HOST_IP} + GLANCE_HOST=${GLANCE_HOST:-$HOST_IP} +fi + SERVICE_PROTOCOL=${SERVICE_PROTOCOL:-http} KEYSTONE_AUTH_PROTOCOL=${KEYSTONE_AUTH_PROTOCOL:-$SERVICE_PROTOCOL} KEYSTONE_AUTH_HOST=${KEYSTONE_AUTH_HOST:-$SERVICE_HOST} -# Some exercises call glance directly. On a single-node installation, Glance -# should be listening on HOST_IP. If its running elsewhere, it can be set here -GLANCE_HOST=${GLANCE_HOST:-$HOST_IP} - # Identity API version export OS_IDENTITY_API_VERSION=${IDENTITY_API_VERSION:-2.0}