Skip to content

Commit 1dcc9d0

Browse files
committed
Add default headers option in constructor
1 parent d633e95 commit 1dcc9d0

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@ build
22
dist
33
*.egg-info
44
*.pyc
5+
*.swp
6+
*swo

environment_manager/api.py

+8-6
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,16 @@
1212
class EMApi(object):
1313
"""Defines all api calls and treats them like an object to give proper interfacing"""
1414

15-
def __init__(self, server=None, user=None, password=None, retries=5):
15+
def __init__(self, server=None, user=None, password=None, retries=5, default_headers={}):
1616
""" Initialise new API object """
1717
self.server = server
1818
self.user = user
1919
self.password = password
2020
self.retries = retries
21+
self.default_headers = {'Accept': 'application/json', 'Content-Type': 'application/json'}
22+
self.default_headers.update(default_headers)
2123
self.token = None
24+
2225
# Sanitise input
2326
if server is None or user is None or password is None:
2427
raise ValueError('EMApi(server=SERVERNAME, user=USERNAME, password=PASSWORD, [retries=N])')
@@ -39,8 +42,7 @@ def _api_auth(self):
3942
retries = 0
4043
while no_token and retries < self.retries:
4144
em_token_url = '%s/api/v1/token' % base_url
42-
headers = {'Accept': 'application/json', 'Content-Type': 'application/json'}
43-
em_token = requests.post(em_token_url, data=json_encode(token_payload), headers=headers, timeout=5, verify=False)
45+
em_token = requests.post(em_token_url, data=json_encode(token_payload), headers=self.default_headers, timeout=5, verify=False)
4446
if int(str(em_token.status_code)[:1]) == 2:
4547
token = em_token.text
4648
no_token = False
@@ -74,10 +76,10 @@ def query(self, query_endpoint=None, data=None, headers={}, query_type='get', re
7476
base_url = 'https://%s' % self.server
7577
request_url = '%s%s' % (base_url, query_endpoint)
7678
log.debug('Calling URL %s' % request_url)
77-
query_headers = {'Accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': token}
79+
query_headers = self.default_headers.copy()
80+
query_headers.update({'Authorization': token})
7881
if isinstance(headers, dict):
79-
for header in headers:
80-
query_headers.update(header)
82+
query_headers.update(headers)
8183

8284
request_values = {'url':request_url, 'headers':query_headers, 'timeout':30, 'verify':False}
8385
if data is not None:

0 commit comments

Comments
 (0)