Allow setting client_name, client_version on adapter
You can pass client_name and client_version to Adapter.__init__ but for most clients this means overriding Adapter.__init__ and setdefault()-ing the client_name and version. As most clients already override the Adapter object it'd be easier if they could just set these values on the class as they are not going to change between instances. Change-Id: I301a7f77c8cf423bc1d45e3dcbb2325f6853b9a9
This commit is contained in:
parent
31b9d125b0
commit
57f8d2cde5
|
@ -56,6 +56,9 @@ class Adapter(object):
|
|||
user_agent.
|
||||
"""
|
||||
|
||||
client_name = None
|
||||
client_version = None
|
||||
|
||||
@positional()
|
||||
def __init__(self, session, service_type=None, service_name=None,
|
||||
interface=None, region_name=None, endpoint_override=None,
|
||||
|
@ -80,10 +83,13 @@ class Adapter(object):
|
|||
self.connect_retries = connect_retries
|
||||
self.logger = logger
|
||||
self.allow = allow
|
||||
self.client_name = client_name
|
||||
self.client_version = client_version
|
||||
self.additional_headers = additional_headers or {}
|
||||
|
||||
if client_name:
|
||||
self.client_name = client_name
|
||||
if client_version:
|
||||
self.client_version = client_version
|
||||
|
||||
def _set_endpoint_filter_kwargs(self, kwargs):
|
||||
if self.service_type:
|
||||
kwargs.setdefault('service_type', self.service_type)
|
||||
|
|
|
@ -1039,6 +1039,25 @@ class AdapterTest(utils.TestCase):
|
|||
self.assertEqual(agent + ' ' + client_session.DEFAULT_USER_AGENT,
|
||||
self.requests_mock.last_request.headers['User-Agent'])
|
||||
|
||||
def test_adapter_user_agent_session_version_on_adapter(self):
|
||||
|
||||
class TestAdapter(adapter.Adapter):
|
||||
|
||||
client_name = 'testclient'
|
||||
client_version = '4.5.6'
|
||||
|
||||
sess = client_session.Session(app_name='ksatest', app_version='1.2.3')
|
||||
adap = TestAdapter(session=sess)
|
||||
|
||||
url = 'http://keystone.test.com'
|
||||
self.requests_mock.get(url)
|
||||
|
||||
adap.get(url)
|
||||
|
||||
agent = 'ksatest/1.2.3 testclient/4.5.6'
|
||||
self.assertEqual(agent + ' ' + client_session.DEFAULT_USER_AGENT,
|
||||
self.requests_mock.last_request.headers['User-Agent'])
|
||||
|
||||
def test_adapter_user_agent_session_adapter_no_app_version(self):
|
||||
sess = client_session.Session(app_name='ksatest')
|
||||
adap = adapter.Adapter(client_name='testclient',
|
||||
|
|
Loading…
Reference in New Issue