Honor the flag for Identity v3 API only jobs
When the property ENABLE_IDENTITY_V2 is set to
False in the local.conf file, devstack will:
* Disable the v2 API in Keystone paste config;
* Set Tempest to skip Identity v2 tests and use
v3 auth tokens to run all the other tests;
* Set Horizon to use v3 API and v3 auth tokens;
* Register the Identity endpoint as v3.
Change-Id: I2575a516244b848e5ed461e7f488c59edc41068d
diff --git a/lib/horizon b/lib/horizon
index f953f5c..ab6e758 100644
--- a/lib/horizon
+++ b/lib/horizon
@@ -97,7 +97,14 @@
_horizon_config_set $local_settings "" OPENSTACK_KEYSTONE_DEFAULT_ROLE \"Member\"
_horizon_config_set $local_settings "" OPENSTACK_HOST \"${KEYSTONE_SERVICE_HOST}\"
- _horizon_config_set $local_settings "" OPENSTACK_KEYSTONE_URL "\"${KEYSTONE_SERVICE_PROTOCOL}://${KEYSTONE_SERVICE_HOST}:${KEYSTONE_SERVICE_PORT}/v2.0\""
+
+ if [ "$ENABLE_IDENTITY_V2" == "False" ]; then
+ # Only Identity v3 API is available; then use it with v3 auth tokens
+ _horizon_config_set $local_settings "" OPENSTACK_API_VERSIONS {\"identity\":\"v3\"}
+ _horizon_config_set $local_settings "" OPENSTACK_KEYSTONE_URL "\"${KEYSTONE_SERVICE_PROTOCOL}://${KEYSTONE_SERVICE_HOST}:${KEYSTONE_SERVICE_PORT}/v3\""
+ else
+ _horizon_config_set $local_settings "" OPENSTACK_KEYSTONE_URL "\"${KEYSTONE_SERVICE_PROTOCOL}://${KEYSTONE_SERVICE_HOST}:${KEYSTONE_SERVICE_PORT}/v2.0\""
+ fi
if [ -f $SSL_BUNDLE_FILE ]; then
_horizon_config_set $local_settings "" OPENSTACK_SSL_CACERT \"${SSL_BUNDLE_FILE}\"
diff --git a/lib/keystone b/lib/keystone
index 997bb14..de2d2ca 100644
--- a/lib/keystone
+++ b/lib/keystone
@@ -204,6 +204,12 @@
KEYSTONE_PASTE_INI="$KEYSTONE_CONF"
fi
+ if [ "$ENABLE_IDENTITY_V2" == "False" ]; then
+ # Only Identity v3 API should be available; then disable v2 pipelines
+ inidelete $KEYSTONE_PASTE_INI composite:main \\/v2.0
+ inidelete $KEYSTONE_PASTE_INI composite:admin \\/v2.0
+ fi
+
configure_keystone_extensions
# Rewrite stock ``keystone.conf``
diff --git a/lib/tempest b/lib/tempest
index cd8fbd7..18e3703 100644
--- a/lib/tempest
+++ b/lib/tempest
@@ -311,7 +311,15 @@
iniset $TEMPEST_CONFIG identity admin_tenant_id $ADMIN_TENANT_ID
iniset $TEMPEST_CONFIG identity admin_domain_name $ADMIN_DOMAIN_NAME
fi
- iniset $TEMPEST_CONFIG identity auth_version ${TEMPEST_AUTH_VERSION:-v2}
+ if [ "$ENABLE_IDENTITY_V2" == "False" ]; then
+ # Only Identity v3 is available; then skip Identity API v2 tests
+ iniset $TEMPEST_CONFIG identity-feature-enabled v2_api False
+ # In addition, use v3 auth tokens for running all Tempest tests
+ iniset $TEMPEST_CONFIG identity auth_version v3
+ else
+ iniset $TEMPEST_CONFIG identity auth_version ${TEMPEST_AUTH_VERSION:-v2}
+ fi
+
if is_ssl_enabled_service "key" || is_service_enabled tls-proxy; then
iniset $TEMPEST_CONFIG identity ca_certificates_file $SSL_BUNDLE_FILE
fi