Merge "Add X-Region-Name parameter in HTTP request"

This commit is contained in:
Jenkins
2013-08-27 15:35:58 +00:00
committed by Gerrit Code Review
2 changed files with 27 additions and 0 deletions

View File

@@ -53,6 +53,7 @@ class HTTPClient(object):
self.auth_token = kwargs.get('token')
self.username = kwargs.get('username')
self.password = kwargs.get('password')
self.region_name = kwargs.get('region_name')
self.connection_params = self.get_connection_params(endpoint, **kwargs)
@staticmethod
@@ -135,6 +136,8 @@ class HTTPClient(object):
kwargs['headers'].update(self.credentials_headers())
if self.auth_url:
kwargs['headers'].setdefault('X-Auth-Url', self.auth_url)
if self.region_name:
kwargs['headers'].setdefault('X-Region-Name', self.region_name)
self.log_curl_request(method, url, kwargs)
conn = self.get_connection()

View File

@@ -100,6 +100,30 @@ class HttpClientTest(testtools.TestCase):
self.assertEqual(resp.status, 200)
self.m.VerifyAll()
def test_region_name(self):
# Record a 200
fake200 = fakes.FakeHTTPResponse(
200, 'OK',
{'content-type': 'application/octet-stream'},
'')
# Specify region name
mock_conn = http.httplib.HTTPConnection('example.com', 8004,
timeout=600.0)
mock_conn.request('GET', '/',
headers={'Content-Type': 'application/octet-stream',
'X-Region-Name': 'RegionOne',
'User-Agent': 'python-heatclient'})
mock_conn.getresponse().AndReturn(fake200)
# Replay, create client, assert
self.m.ReplayAll()
client = http.HTTPClient('http://example.com:8004')
client.region_name = 'RegionOne'
resp, body = client.raw_request('GET', '')
self.assertEqual(resp.status, 200)
self.m.VerifyAll()
def test_http_json_request(self):
# Record a 200
mock_conn = http.httplib.HTTPConnection('example.com', 8004,