Don't send X-Auth- headers in requests

From looking through monasca server code there is nowhere that is
actuall reading the X-Auth-User, X-Auth-Key, X-Auth-Url or X-Auth-Region
headers. The shell also enforces that a user provide keystone
authentication. This means we are sending the server a user's password
for no reason. They were initially added in the very first monascaclient
commit so assume they were unneeded and remove it.

Change-Id: Ic6e6dd1a14474537ab9180bb4af1a3fae09fc8a6
This commit is contained in:
Jamie Lennox 2016-09-12 22:27:47 +10:00 committed by Kaiyan Sheng
parent d50f05a60b
commit 6105dddba8
7 changed files with 23 additions and 88 deletions

View File

@ -68,7 +68,6 @@ class HTTPClient(object):
self.user_domain_id = kwargs.get('user_domain_id')
self.user_domain_name = kwargs.get('user_domain_name')
self.region_name = kwargs.get('region_name')
self.include_pass = kwargs.get('include_pass')
self.endpoint_url = endpoint
# adding for re-authenticate
self.project_name = kwargs.get('project_name')
@ -130,7 +129,7 @@ class HTTPClient(object):
curl = ['curl -i -X %s' % method]
for (key, value) in kwargs['headers'].items():
if key in ('X-Auth-Token', 'X-Auth-Key'):
if key in ('X-Auth-Token'):
value = '*****'
header = '-H \'%s: %s\'' % (encodeutils.safe_decode(key),
encodeutils.safe_decode(value))
@ -179,14 +178,6 @@ class HTTPClient(object):
kwargs['headers'].setdefault('User-Agent', USER_AGENT)
if self.auth_token:
kwargs['headers'].setdefault('X-Auth-Token', self.auth_token)
else:
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)
if self.include_pass and 'X-Auth-Key' not in kwargs['headers']:
kwargs['headers'].update(self.credentials_headers())
self.log_curl_request(method, url, kwargs)
@ -283,14 +274,6 @@ class HTTPClient(object):
self.log_http_response(resp)
return resp
def credentials_headers(self):
creds = {}
if self.username:
creds['X-Auth-User'] = self.username
if self.password:
creds['X-Auth-Key'] = self.password
return creds
def json_request(self, method, url, **kwargs):
kwargs.setdefault('headers', {})
kwargs['headers'].setdefault('Content-Type', 'application/json')

View File

@ -37,7 +37,6 @@ class MonascaManager(base.BaseManager):
def _list(self, path, dim_key=None, **kwargs):
"""Get a list of metrics."""
url_str = self.base_url + path
newheaders = self.get_headers()
if dim_key and dim_key in kwargs:
dimstr = self.get_dimensions_url_string(kwargs[dim_key])
kwargs[dim_key] = dimstr
@ -45,13 +44,9 @@ class MonascaManager(base.BaseManager):
if kwargs:
url_str += '?%s' % parse.urlencode(kwargs, True)
resp, body = self.client.json_request(
'GET', url_str, headers=newheaders)
'GET', url_str)
return self._parse_body(body)
def get_headers(self):
headers = self.client.credentials_headers()
return headers
def get_dimensions_url_string(self, dimdict):
dim_list = list()
for k, v in dimdict.items():

View File

@ -154,8 +154,6 @@ class ShellTestMonascaCommands(ShellBase):
if not req:
req = self.requests_mock.last_request
self.assertEqual('password', req.headers['X-Auth-Key'])
self.assertEqual('username', req.headers['X-Auth-User'])
self.assertEqual('abcd1234', req.headers['X-Auth-Token'])
self.assertEqual('python-monascaclient', req.headers['User-Agent'])

View File

@ -29,18 +29,14 @@ class AlarmDefinitionsManager(monasca_manager.MonascaManager):
def create(self, **kwargs):
"""Create an alarm definition."""
newheaders = self.get_headers()
resp, body = self.client.json_request('POST', self.base_url,
data=kwargs,
headers=newheaders)
data=kwargs)
return body
def get(self, **kwargs):
"""Get the details for a specific alarm definition."""
newheaders = self.get_headers()
url_str = self.base_url + '/%s' % kwargs['alarm_id']
resp, body = self.client.json_request('GET', url_str,
headers=newheaders)
resp, body = self.client.json_request('GET', url_str)
return body
def list(self, **kwargs):
@ -49,28 +45,20 @@ class AlarmDefinitionsManager(monasca_manager.MonascaManager):
def delete(self, **kwargs):
"""Delete a specific alarm definition."""
newheaders = self.get_headers()
url_str = self.base_url + '/%s' % kwargs['alarm_id']
resp, body = self.client.json_request('DELETE', url_str,
headers=newheaders)
resp, body = self.client.json_request('DELETE', url_str)
return resp
def update(self, **kwargs):
"""Update a specific alarm definition."""
newheaders = self.get_headers()
url_str = self.base_url + '/%s' % kwargs['alarm_id']
del kwargs['alarm_id']
resp, body = self.client.json_request('PUT', url_str,
data=kwargs,
headers=newheaders)
resp, body = self.client.json_request('PUT', url_str, data=kwargs)
return body
def patch(self, **kwargs):
"""Patch a specific alarm definition."""
newheaders = self.get_headers()
url_str = self.base_url + '/%s' % kwargs['alarm_id']
del kwargs['alarm_id']
resp, body = self.client.json_request('PATCH', url_str,
data=kwargs,
headers=newheaders)
resp, body = self.client.json_request('PATCH', url_str, data=kwargs)
return body

View File

@ -31,10 +31,8 @@ class AlarmsManager(monasca_manager.MonascaManager):
def get(self, **kwargs):
"""Get the details for a specific alarm."""
newheaders = self.get_headers()
url_str = self.base_url + '/%s' % kwargs['alarm_id']
resp, body = self.client.json_request('GET', url_str,
headers=newheaders)
resp, body = self.client.json_request('GET', url_str)
return body
def list(self, **kwargs):
@ -43,34 +41,27 @@ class AlarmsManager(monasca_manager.MonascaManager):
def delete(self, **kwargs):
"""Delete a specific alarm."""
newheaders = self.get_headers()
url_str = self.base_url + '/%s' % kwargs['alarm_id']
resp, body = self.client.json_request('DELETE', url_str,
headers=newheaders)
resp, body = self.client.json_request('DELETE', url_str)
return resp
def update(self, **kwargs):
"""Update a specific alarm."""
newheaders = self.get_headers()
url_str = self.base_url + '/%s' % kwargs['alarm_id']
del kwargs['alarm_id']
resp, body = self.client.json_request('PUT', url_str,
data=kwargs,
headers=newheaders)
data=kwargs)
return body
def patch(self, **kwargs):
"""Patch a specific alarm."""
newheaders = self.get_headers()
url_str = self.base_url + '/%s' % kwargs['alarm_id']
del kwargs['alarm_id']
resp, body = self.client.json_request('PATCH', url_str,
data=kwargs,
headers=newheaders)
data=kwargs)
return body
def count(self, **kwargs):
newheaders = self.get_headers()
url_str = self.base_url + '/count'
if 'metric_dimensions' in kwargs:
dimstr = self.get_dimensions_url_string(kwargs['metric_dimensions'])
@ -78,30 +69,25 @@ class AlarmsManager(monasca_manager.MonascaManager):
if kwargs:
url_str = url_str + '?%s' % parse.urlencode(kwargs, True)
resp, body = self.client.json_request('GET', url_str,
headers=newheaders)
resp, body = self.client.json_request('GET', url_str)
return body
def history(self, **kwargs):
"""History of a specific alarm."""
newheaders = self.get_headers()
url_str = self.base_url + '/%s/state-history' % kwargs['alarm_id']
del kwargs['alarm_id']
if kwargs:
url_str = url_str + '?%s' % parse.urlencode(kwargs, True)
resp, body = self.client.json_request('GET', url_str,
headers=newheaders)
resp, body = self.client.json_request('GET', url_str)
return body['elements'] if type(body) is dict else body
def history_list(self, **kwargs):
"""History list of alarm state."""
url_str = self.base_url + '/state-history/'
newheaders = self.get_headers()
if 'dimensions' in kwargs:
dimstr = self.get_dimensions_url_string(kwargs['dimensions'])
kwargs['dimensions'] = dimstr
if kwargs:
url_str = url_str + '?%s' % parse.urlencode(kwargs, True)
resp, body = self.client.json_request('GET', url_str,
headers=newheaders)
resp, body = self.client.json_request('GET', url_str)
return body['elements'] if type(body) is dict else body

View File

@ -33,18 +33,15 @@ class MetricsManager(monasca_manager.MonascaManager):
local_kwargs = deepcopy(kwargs)
"""Create a metric."""
url_str = self.base_url
newheaders = self.get_headers()
if 'tenant_id' in local_kwargs:
url_str = url_str + '?tenant_id=%s' % local_kwargs['tenant_id']
del local_kwargs['tenant_id']
if 'jsonbody' in local_kwargs:
resp, body = self.client.json_request('POST', url_str,
data=local_kwargs['jsonbody'],
headers=newheaders)
data=local_kwargs['jsonbody'])
else:
resp, body = self.client.json_request('POST', url_str,
data=local_kwargs,
headers=newheaders)
data=local_kwargs)
return resp
def list(self, **kwargs):

View File

@ -31,18 +31,14 @@ class NotificationsManager(monasca_manager.MonascaManager):
def create(self, **kwargs):
"""Create a notification."""
newheaders = self.get_headers()
resp, body = self.client.json_request('POST', self.base_url,
data=kwargs,
headers=newheaders)
data=kwargs)
return body
def get(self, **kwargs):
"""Get the details for a specific notification."""
newheaders = self.get_headers()
url_str = self.base_url + '/%s' % kwargs['notification_id']
resp, body = self.client.json_request('GET', url_str,
headers=newheaders)
resp, body = self.client.json_request('GET', url_str)
return body
def list(self, **kwargs):
@ -51,32 +47,24 @@ class NotificationsManager(monasca_manager.MonascaManager):
def delete(self, **kwargs):
"""Delete a notification."""
newheaders = self.get_headers()
url_str = self.base_url + '/%s' % kwargs['notification_id']
resp, body = self.client.json_request(
'DELETE', url_str, headers=newheaders)
resp, body = self.client.json_request('DELETE', url_str)
return resp
def update(self, **kwargs):
local_kwargs = deepcopy(kwargs)
"""Update a notification."""
newheaders = self.get_headers()
url_str = self.base_url + '/%s' % local_kwargs['notification_id']
del local_kwargs['notification_id']
resp, body = self.client.json_request(
'PUT', url_str,
data=local_kwargs,
headers=newheaders)
resp, body = self.client.json_request('PUT', url_str,
data=local_kwargs)
return body
def patch(self, **kwargs):
local_kwargs = deepcopy(kwargs)
"""Patch a notification."""
newheaders = self.get_headers()
url_str = self.base_url + '/%s' % local_kwargs['notification_id']
del local_kwargs['notification_id']
resp, body = self.client.json_request(
'PATCH', url_str,
data=local_kwargs,
headers=newheaders)
resp, body = self.client.json_request('PATCH', url_str,
data=local_kwargs)
return body