Skip to content

Commit 1d52332

Browse files
authored
Saimon/include postman when enabled (#284)
1 parent f6b056e commit 1d52332

File tree

4 files changed

+27
-14
lines changed

4 files changed

+27
-14
lines changed

cterasdk/audit/postman.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import re
22
import uuid
33
import atexit
4+
import logging
45
import cterasdk.settings
56
from ..lib import FileSystem
67
from ..common import Object, utf8_decode, utf8_encode
@@ -93,7 +94,7 @@ def deserialize(self, mime_type):
9394
elif mime_type == 'text/plain':
9495
return Raw.xml(toxmlstr(fromxmlstr(self.data), no_log=True))
9596
elif mime_type == 'application/json':
96-
return Raw.json(tojsonstr(fromjsonstr(self.data)))
97+
return Raw.json(tojsonstr(fromjsonstr(self.data), False))
9798
elif mime_type.startswith('multipart/form-data'):
9899
return form_data_generator(self.data, mime_type)
99100
return None
@@ -199,7 +200,7 @@ class Raw(Body):
199200

200201
def __init__(self, body, language):
201202
super().__init__('raw')
202-
self.raw = utf8_decode(body)
203+
self.raw = body if language == 'json' else utf8_decode(body)
203204
self.options = Object()
204205
self.options.raw = Object()
205206
self.options.language = language
@@ -230,6 +231,10 @@ def audit():
230231
fs = FileSystem.instance()
231232
collection = Collection.instance()
232233
name = cterasdk.settings.sessions.management.audit.postman.name
233-
if name is not None:
234-
collection.info.name = name
235-
fs.save(fs.downloads_directory(), f'{name}.json', utf8_encode(collection.serialize()))
234+
collection.info.name = name if name is not None else str(uuid.uuid4())
235+
filename = f'{collection.info.name}.json'
236+
logging.getLogger('cterasdk.http.trace').info('Saving Postman audit file. %s', {
237+
'directory': fs.downloads_directory(),
238+
'name': filename
239+
})
240+
fs.save(fs.downloads_directory(), filename, utf8_encode(collection.serialize()))

cterasdk/clients/async_requests.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
import aiohttp
55

66
from yarl import URL
7-
from . import tracers
87

98

109
def session_parameters(client_settings):
1110
return {
1211
'timeout': aiohttp.ClientTimeout(**client_settings.timeout.kwargs),
1312
'connector': aiohttp.TCPConnector(**client_settings.connector.kwargs),
14-
'cookie_jar': aiohttp.CookieJar(**client_settings.cookie_jar.kwargs)
13+
'cookie_jar': aiohttp.CookieJar(**client_settings.cookie_jar.kwargs),
14+
'trace_configs': client_settings.trace_configs
1515
}
1616

1717

@@ -25,12 +25,7 @@ def __init__(self, settings):
2525
@property
2626
def session(self):
2727
if self.closed:
28-
trace_configs = [
29-
tracers.logger.trace_config(),
30-
tracers.session.trace_config(),
31-
tracers.postman.trace_config()
32-
]
33-
self._session = aiohttp.ClientSession(trace_configs=trace_configs, **session_parameters(self._settings))
28+
self._session = aiohttp.ClientSession(**session_parameters(self._settings))
3429
return self._session
3530

3631
@property

cterasdk/clients/settings.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
1+
import logging
2+
import cterasdk.settings
3+
from . import tracers
14
from ..common import Object
25

36

7+
logger = logging.getLogger('cterasdk.http.trace')
8+
9+
410
class ClientSettings(Object):
511
"""
612
Asynchronous HTTP Client Session Settings
@@ -10,6 +16,13 @@ def __init__(self, connector=None, timeout=None, cookie_jar=None):
1016
self.connector = connector if connector else TCPConnector(True)
1117
self.timeout = timeout if timeout else ClientTimeout(None, None)
1218
self.cookie_jar = cookie_jar if cookie_jar else CookieJar(False)
19+
self.trace_configs = [
20+
tracers.logger.trace_config(),
21+
tracers.session.trace_config()
22+
]
23+
if cterasdk.settings.sessions.management.audit.postman.enabled:
24+
logger.info('Enabling Postman Auditing.')
25+
self.trace_configs.append(tracers.postman.trace_config())
1326

1427

1528
class TCPConnector(Object):

cterasdk/settings.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ sessions:
1111
ssl: prompt
1212
audit:
1313
postman:
14-
name: null
14+
name: ~
1515
enabled: false
1616
ctera_direct:
1717
api:

0 commit comments

Comments
 (0)