Skip to content

Commit a3ee4ee

Browse files
authored
Merge pull request #31 from Azure/hooksmsrest
Add requests hooks
2 parents db9934f + fe8a2e9 commit a3ee4ee

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

msrest/configuration.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,11 @@ def __init__(self, base_url, filepath=None):
7474
requests.__version__,
7575
msrest_version)
7676

77+
# Requests hooks. Must respect requests hook callback signature
78+
# Note that we will inject the following parameters:
79+
# - kwargs['msrest']['session'] with the current session
80+
self.hooks = []
81+
7782
self._config = configparser.ConfigParser()
7883
self._config.optionxform = str
7984

msrest/service_client.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,15 @@ def log_hook(r, *args, **kwargs):
131131
log_response(None, r.request, r, result=r)
132132
session.hooks['response'].append(log_hook)
133133

134+
def make_user_hook_cb(user_hook, session):
135+
def user_hook_cb(r, *args, **kwargs):
136+
kwargs.setdefault("msrest", {})['session'] = session
137+
return user_hook(r, *args, **kwargs)
138+
return user_hook_cb
139+
140+
for user_hook in self.config.hooks:
141+
session.hooks['response'].append(make_user_hook_cb(user_hook, session))
142+
134143
max_retries = config.get(
135144
'retries', self.config.retry_policy())
136145
for protocol in self._protocols:

0 commit comments

Comments
 (0)