Skip to content

Commit 7304d3b

Browse files
committed
Merge branch 'feature/log-renders-on-auth' into develop
[SVCS-674] Closes: #343
2 parents cadecfe + 6a149da commit 7304d3b

File tree

5 files changed

+14
-6
lines changed

5 files changed

+14
-6
lines changed

mfr/core/provider.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class BaseProvider(metaclass=abc.ABCMeta):
1414
`mfr.server.settings.ALLOWED_PROVIDER_DOMAINS`.
1515
"""
1616

17-
def __init__(self, request, url):
17+
def __init__(self, request, url, action=None):
1818
self.request = request
1919
url_netloc = furl.furl(url).netloc
2020
if url_netloc not in settings.ALLOWED_PROVIDER_NETLOCS:
@@ -25,6 +25,7 @@ def __init__(self, request, url):
2525
code=400
2626
)
2727
self.url = url
28+
self.action = action
2829
self.provider_metrics = MetricsRecord('provider')
2930
self.metrics = self.provider_metrics.new_subrecord(self.NAME)
3031

mfr/core/utils.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from mfr.core import exceptions
55

66

7-
def make_provider(name, request, url):
7+
def make_provider(name, request, url, action=None):
88
"""Returns an instance of :class:`mfr.core.provider.BaseProvider`
99
1010
:param str name: The name of the provider to instantiate. (osf)
@@ -19,6 +19,7 @@ def make_provider(name, request, url):
1919
name=name.lower(),
2020
invoke_on_load=True,
2121
invoke_args=(request, url, ),
22+
invoke_kwds={'action': action},
2223
).driver
2324
except RuntimeError:
2425
raise exceptions.MakeProviderError(

mfr/providers/osf/provider.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ class OsfProvider(provider.BaseProvider):
3030
UNNEEDED_URL_PARAMS = ('_', 'token', 'action', 'mode', 'displayName')
3131
NAME = 'osf'
3232

33-
def __init__(self, request, url):
34-
super().__init__(request, url)
33+
def __init__(self, request, url, action=None):
34+
super().__init__(request, url, action)
3535
self.download_url = None
3636
self.headers = {}
3737

@@ -69,7 +69,11 @@ async def metadata(self):
6969
else:
7070
# URL is for WaterButler v1 API
7171
self.metrics.add('metadata.wb_api', 'v1')
72-
metadata_response = await self._make_request('HEAD', download_url)
72+
metadata_response = await self._make_request(
73+
'HEAD',
74+
download_url,
75+
headers={settings.MFR_ACTION_HEADER: self.action or ''}
76+
)
7377
response_code = metadata_response.status
7478
response_reason = metadata_response.reason
7579
response_headers = metadata_response.headers

mfr/providers/osf/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
config = settings.child('OSF_PROVIDER_CONFIG')
55

66
MFR_IDENTIFYING_HEADER = config.get('MFR_IDENTIFYING_HEADER', 'X-Cos-Mfr-Render-Request')
7+
MFR_ACTION_HEADER = config.get('MFR_ACTION_HEADER', 'X-Cos-Mfr-Request-Action')

mfr/server/handlers/core.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,8 @@ async def prepare(self):
114114
self.provider = utils.make_provider(
115115
settings.PROVIDER_NAME,
116116
self.request,
117-
self.url
117+
self.url,
118+
action=self.NAME,
118119
)
119120

120121
self.metadata = await self.provider.metadata()

0 commit comments

Comments
 (0)