diff --git a/keystoneclient/tests/unit/v3/test_auth.py b/keystoneclient/tests/unit/v3/test_auth.py index 177eb3b77..5928f8e15 100644 --- a/keystoneclient/tests/unit/v3/test_auth.py +++ b/keystoneclient/tests/unit/v3/test_auth.py @@ -232,7 +232,7 @@ class AuthenticateAgainstKeystoneTests(utils.TestCase): self.stub_auth(json=self.TEST_RESPONSE_DICT) self.stub_url('GET', [fake_url], json=fake_resp, - base_url=self.TEST_ADMIN_IDENTITY_ENDPOINT) + base_url=self.TEST_PUBLIC_IDENTITY_ENDPOINT) # Creating a HTTPClient not using session is deprecated. with self.deprecations.expect_deprecations_here(): @@ -336,7 +336,7 @@ class AuthenticateAgainstKeystoneTests(utils.TestCase): self.stub_auth(json=self.TEST_RESPONSE_DICT) self.stub_url('GET', [fake_url], json=fake_resp, - base_url=self.TEST_ADMIN_IDENTITY_ENDPOINT) + base_url=self.TEST_PUBLIC_IDENTITY_ENDPOINT) # Creating a HTTPClient not using session is deprecated. with self.deprecations.expect_deprecations_here(): diff --git a/keystoneclient/tests/unit/v3/test_client.py b/keystoneclient/tests/unit/v3/test_client.py index e35810e57..902881f11 100644 --- a/keystoneclient/tests/unit/v3/test_client.py +++ b/keystoneclient/tests/unit/v3/test_client.py @@ -257,3 +257,13 @@ class KeystoneClientTest(utils.TestCase): self.assertEqual('identity', cl._adapter.service_type) self.assertEqual((3, 0), cl._adapter.version) + + def test_client_params_default_interface(self): + opts = {'auth': token_endpoint.Token('a', 'b'), + 'service_name': uuid.uuid4().hex, + } + + sess = session.Session() + cl = client.Client(session=sess, **opts) + + self.assertEqual('public', cl._adapter.interface) diff --git a/keystoneclient/tests/unit/v3/utils.py b/keystoneclient/tests/unit/v3/utils.py index 1705e9d7a..c7e71c9bd 100644 --- a/keystoneclient/tests/unit/v3/utils.py +++ b/keystoneclient/tests/unit/v3/utils.py @@ -48,6 +48,7 @@ class UnauthenticatedTestCase(utils.TestCase): class TestCase(UnauthenticatedTestCase): TEST_ADMIN_IDENTITY_ENDPOINT = "http://127.0.0.1:35357/v3" + TEST_PUBLIC_IDENTITY_ENDPOINT = "http://127.0.0.1:5000/v3" TEST_SERVICE_CATALOG = [{ "endpoints": [{ @@ -97,7 +98,7 @@ class TestCase(UnauthenticatedTestCase): "name": "glance" }, { "endpoints": [{ - "url": "http://127.0.0.1:5000/v3", + "url": TEST_PUBLIC_IDENTITY_ENDPOINT, "region": "RegionOne", "interface": "public" }, { diff --git a/keystoneclient/v3/client.py b/keystoneclient/v3/client.py index 38be932eb..84b6ad7f7 100644 --- a/keystoneclient/v3/client.py +++ b/keystoneclient/v3/client.py @@ -187,6 +187,11 @@ EndpointPolicyManager` def __init__(self, **kwargs): """Initialize a new client for the Keystone v3 API.""" + # NOTE(Roxana Gherle): Keystone V3 APIs has no admin versus public + # distinction. They are both going through the same endpoint, so + # set a public default here instead of picking up an admin default in + # httpclient.HTTPClient + kwargs.setdefault('interface', 'public') super(Client, self).__init__(**kwargs) if not kwargs.get('session'):