diff --git a/novaclient/client.py b/novaclient/client.py index a04a92e47..790489c99 100644 --- a/novaclient/client.py +++ b/novaclient/client.py @@ -720,11 +720,11 @@ def _construct_http_client(username=None, password=None, project_id=None, auth_token=None, cacert=None, tenant_id=None, user_id=None, connection_pool=False, session=None, auth=None, user_agent='python-novaclient', - **kwargs): + interface=None, **kwargs): if session: return SessionClient(session=session, auth=auth, - interface=endpoint_type, + interface=interface or endpoint_type, service_type=service_type, region_name=region_name, service_name=service_name, diff --git a/novaclient/tests/v1_1/test_client.py b/novaclient/tests/v1_1/test_client.py new file mode 100644 index 000000000..fa0ed3af6 --- /dev/null +++ b/novaclient/tests/v1_1/test_client.py @@ -0,0 +1,45 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import uuid + +from keystoneclient import session + +from novaclient.tests import utils +from novaclient.v1_1 import client + + +class ClientTest(utils.TestCase): + + def test_adapter_properties(self): + # sample of properties, there are many more + user_agent = uuid.uuid4().hex + endpoint_override = uuid.uuid4().hex + + s = session.Session() + c = client.Client(session=s, + user_agent=user_agent, + endpoint_override=endpoint_override) + + self.assertEqual(user_agent, c.client.user_agent) + self.assertEqual(endpoint_override, c.client.endpoint_override) + + def test_passing_interface(self): + endpoint_type = uuid.uuid4().hex + interface = uuid.uuid4().hex + + s = session.Session() + c = client.Client(session=s, + interface=interface, + endpoint_type=endpoint_type) + + self.assertEqual(interface, c.client.interface) diff --git a/novaclient/v1_1/client.py b/novaclient/v1_1/client.py index 70d5298dc..5e26ddd64 100644 --- a/novaclient/v1_1/client.py +++ b/novaclient/v1_1/client.py @@ -103,7 +103,7 @@ class Client(object): auth_system='keystone', auth_plugin=None, auth_token=None, cacert=None, tenant_id=None, user_id=None, connection_pool=False, session=None, auth=None, - completion_cache=None): + completion_cache=None, **kwargs): # FIXME(comstud): Rename the api_key argument above when we # know it's not being used as keyword argument @@ -192,7 +192,8 @@ class Client(object): cacert=cacert, connection_pool=connection_pool, session=session, - auth=auth) + auth=auth, + **kwargs) self.completion_cache = completion_cache