Skip to content

Commit

Permalink
Merge branch 'feature/log-renders-on-auth' into develop
Browse files Browse the repository at this point in the history
 [SVCS-674]
 Closes: #343
  • Loading branch information
felliott committed Jun 12, 2018
2 parents cadecfe + 6a149da commit 7304d3b
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 6 deletions.
3 changes: 2 additions & 1 deletion mfr/core/provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class BaseProvider(metaclass=abc.ABCMeta):
`mfr.server.settings.ALLOWED_PROVIDER_DOMAINS`.
"""

def __init__(self, request, url):
def __init__(self, request, url, action=None):
self.request = request
url_netloc = furl.furl(url).netloc
if url_netloc not in settings.ALLOWED_PROVIDER_NETLOCS:
Expand All @@ -25,6 +25,7 @@ def __init__(self, request, url):
code=400
)
self.url = url
self.action = action
self.provider_metrics = MetricsRecord('provider')
self.metrics = self.provider_metrics.new_subrecord(self.NAME)

Expand Down
3 changes: 2 additions & 1 deletion mfr/core/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from mfr.core import exceptions


def make_provider(name, request, url):
def make_provider(name, request, url, action=None):
"""Returns an instance of :class:`mfr.core.provider.BaseProvider`
:param str name: The name of the provider to instantiate. (osf)
Expand All @@ -19,6 +19,7 @@ def make_provider(name, request, url):
name=name.lower(),
invoke_on_load=True,
invoke_args=(request, url, ),
invoke_kwds={'action': action},
).driver
except RuntimeError:
raise exceptions.MakeProviderError(
Expand Down
10 changes: 7 additions & 3 deletions mfr/providers/osf/provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ class OsfProvider(provider.BaseProvider):
UNNEEDED_URL_PARAMS = ('_', 'token', 'action', 'mode', 'displayName')
NAME = 'osf'

def __init__(self, request, url):
super().__init__(request, url)
def __init__(self, request, url, action=None):
super().__init__(request, url, action)
self.download_url = None
self.headers = {}

Expand Down Expand Up @@ -69,7 +69,11 @@ async def metadata(self):
else:
# URL is for WaterButler v1 API
self.metrics.add('metadata.wb_api', 'v1')
metadata_response = await self._make_request('HEAD', download_url)
metadata_response = await self._make_request(
'HEAD',
download_url,
headers={settings.MFR_ACTION_HEADER: self.action or ''}
)
response_code = metadata_response.status
response_reason = metadata_response.reason
response_headers = metadata_response.headers
Expand Down
1 change: 1 addition & 0 deletions mfr/providers/osf/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@
config = settings.child('OSF_PROVIDER_CONFIG')

MFR_IDENTIFYING_HEADER = config.get('MFR_IDENTIFYING_HEADER', 'X-Cos-Mfr-Render-Request')
MFR_ACTION_HEADER = config.get('MFR_ACTION_HEADER', 'X-Cos-Mfr-Request-Action')
3 changes: 2 additions & 1 deletion mfr/server/handlers/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,8 @@ async def prepare(self):
self.provider = utils.make_provider(
settings.PROVIDER_NAME,
self.request,
self.url
self.url,
action=self.NAME,
)

self.metadata = await self.provider.metadata()
Expand Down

0 comments on commit 7304d3b

Please sign in to comment.