def get_data_uri(bucket, sibling=None, more_params=None): """ Compute uri to data source as sibling to the current path. Add "from" and "to" query parameters from bucket. """ more_params = more_params or {} forward_parameters = [u'from', u'to', u'exclude', u'include', u'pad', u'backfill', u'interpolate'] request = bucket.request # Honor X-Forwarded-Proto request header if behind SSL-terminating HTTP proxy twisted_honor_reverse_proxy(request) url = URL() for param in forward_parameters: if param in bucket.tdata: url = url.add(unicode(param), unicode(bucket.tdata[param])) for param, value in more_params.iteritems(): # Special rule: Don't add any of "pad" or "backfill", if "interpolate" is true do_interpolate = 'interpolate' in bucket.tdata and asbool(bucket.tdata.interpolate) if do_interpolate and param in ['pad', 'backfill']: continue url = url.add(unicode(param), unicode(value)) data_uri = str(request.URLPath().sibling(sibling).click(url.asText())) return data_uri
def get_data_uri(bucket, sibling=None, more_params=None): """ Compute uri to data source as sibling to the current path. Add "from" and "to" query parameters from bucket. """ more_params = more_params or {} forward_parameters = [ u'from', u'to', u'exclude', u'include', u'pad', u'backfill', u'interpolate' ] request = bucket.request # Honor X-Forwarded-Proto request header if behind SSL-terminating HTTP proxy twisted_honor_reverse_proxy(request) url = URL() for param in forward_parameters: if param in bucket.tdata: url = url.add(unicode(param), unicode(bucket.tdata[param])) for param, value in more_params.iteritems(): # Special rule: Don't add any of "pad" or "backfill", if "interpolate" is true do_interpolate = 'interpolate' in bucket.tdata and asbool( bucket.tdata.interpolate) if do_interpolate and param in ['pad', 'backfill']: continue url = url.add(unicode(param), unicode(value)) data_uri = str(request.URLPath().sibling(sibling).click(url.asText())) return data_uri
def render(self, request): # request.args can include URL encoded bodies, so extract the # query from request.uri _, _, query = request.uri.partition(b'?') # Assume HTTPS is served over 443 httpsURL = URL( scheme=u'https', # I'm sure ASCII will be fine. host=request.getRequestHostname().decode('ascii'), path=tuple(segment.decode('ascii') for segment in request.prepath + request.postpath), ) httpsLocation = httpsURL.asText().encode('ascii') if query: httpsLocation += (b'?' + query) return movedTo(request, httpsLocation)
def render(self, request): # request.args can include URL encoded bodies, so extract the # query from request.uri _, _, query = request.uri.partition(b'?') # Assume HTTPS is served over 443 httpsURL = URL( scheme=u'https', # I'm sure ASCII will be fine. host=request.getRequestHostname().decode('ascii'), path=tuple( segment.decode('ascii') for segment in request.prepath + request.postpath), ) httpsLocation = httpsURL.asText().encode('ascii') if query: httpsLocation += (b'?' + query) return movedTo(request, httpsLocation)