From 5fa5f9c51d196c4c046c28eee865f6f34d8750a1 Mon Sep 17 00:00:00 2001 From: yatin Date: Wed, 25 Oct 2017 18:07:02 +0530 Subject: [PATCH] Fix api_discovery with keystone v3 With keystone v3 to get a public endpoint for a service, we need to check for interface="public". Change-Id: I36de9adf04352073c9727bd3cc88379fbc353aa8 --- config_tempest/api_discovery.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/config_tempest/api_discovery.py b/config_tempest/api_discovery.py index 1440ad2c..14050e52 100644 --- a/config_tempest/api_discovery.py +++ b/config_tempest/api_discovery.py @@ -245,9 +245,14 @@ def discover(auth_provider, region, object_store_discovery=True, name = entry['type'] services[name] = dict() for _ep in entry['endpoints']: - if _ep['region'] == region: - ep = _ep - break + if api_version == 3: + if _ep['region'] == region and _ep['interface'] == 'public': + ep = _ep + break + else: + if _ep['region'] == region: + ep = _ep + break else: ep = entry['endpoints'][0] if 'identity' in ep[public_url]: