diff --git a/glanceclient/common/http.py b/glanceclient/common/http.py index 8e80fe01..e8f1d4de 100644 --- a/glanceclient/common/http.py +++ b/glanceclient/common/http.py @@ -125,6 +125,7 @@ class HTTPClient(_BaseHTTPClient): self.endpoint = endpoint self.identity_headers = kwargs.get('identity_headers') self.auth_token = kwargs.get('token') + self.language_header = kwargs.get('language_header') if self.identity_headers: if self.identity_headers.get('X-Auth-Token'): self.auth_token = self.identity_headers.get('X-Auth-Token') @@ -136,6 +137,9 @@ class HTTPClient(_BaseHTTPClient): if self.auth_token: self.session.headers["X-Auth-Token"] = self.auth_token + if self.language_header: + self.session.headers["Accept-Language"] = self.language_header + self.timeout = float(kwargs.get('timeout', 600)) if self.endpoint.startswith("https"): diff --git a/glanceclient/tests/unit/test_http.py b/glanceclient/tests/unit/test_http.py index bab91e5c..f7830b7e 100644 --- a/glanceclient/tests/unit/test_http.py +++ b/glanceclient/tests/unit/test_http.py @@ -137,6 +137,28 @@ class TestClient(testtools.TestCase): for k, v in six.iteritems(identity_headers): self.assertEqual(v, headers[k]) + def test_language_header_passed(self): + kwargs = {'language_header': 'nb_NO'} + http_client = http.HTTPClient(self.endpoint, **kwargs) + + path = '/v2/images/my-image' + self.mock.get(self.endpoint + path) + http_client.get(path) + + headers = self.mock.last_request.headers + self.assertEqual(kwargs['language_header'], headers['Accept-Language']) + + def test_language_header_not_passed_no_language(self): + kwargs = {} + http_client = http.HTTPClient(self.endpoint, **kwargs) + + path = '/v2/images/my-image' + self.mock.get(self.endpoint + path) + http_client.get(path) + + headers = self.mock.last_request.headers + self.assertTrue('Accept-Language' not in headers) + def test_connection_timeout(self): """Should receive an InvalidEndpoint if connection timeout.""" def cb(request, context): diff --git a/glanceclient/v1/client.py b/glanceclient/v1/client.py index 066867dd..cc6fa6a5 100644 --- a/glanceclient/v1/client.py +++ b/glanceclient/v1/client.py @@ -27,6 +27,8 @@ class Client(object): :param string token: Token for authentication. :param integer timeout: Allows customization of the timeout for client http requests. (optional) + :param string language_header: Set Accept-Language header to be sent in + requests to glance. """ def __init__(self, endpoint=None, **kwargs): diff --git a/glanceclient/v2/client.py b/glanceclient/v2/client.py index e8f280ca..bca8318b 100644 --- a/glanceclient/v2/client.py +++ b/glanceclient/v2/client.py @@ -32,6 +32,8 @@ class Client(object): :param string token: Token for authentication. :param integer timeout: Allows customization of the timeout for client http requests. (optional) + :param string language_header: Set Accept-Language header to be sent in + requests to glance. """ def __init__(self, endpoint=None, **kwargs):