def action_get(request): keys = ['url', 'target', 'method', 'scheme', 'port'] kwargs = {k: request[k] for k in keys if k in request} response = http.request(**kwargs) if request.get('json', False): response_message = { 'status': response.status, 'reason': response.reason } if request.get('headers', True): response_message['headers'] = { k: v for (k, v) in response.getheaders() } if request.get('raw', False): response_message['raw'] = response.read(raw=True) elif request.get('body', True): response_message['body'] = response.read() return response_message else: if request.get('raw', False): return response.get_raw(), ResponseOptions(send_json=False) else: return response.body, ResponseOptions(send_json=False)
def _request(self, path): response = request(os.path.join(self.server_url, path)) if response.status == 404: return None elif response.status != 200: raise BootstrapSourceError('Remote bootstrapper request failed: %d' % response.status) try: return json.loads(response.read()) except ValueError: raise BootstrapSourceError('Invalid JSON response from remote bootstrap server')
def _request(self, path): response = request(os.path.join(self.server_url, path)) if response.status == 404: return None elif response.status != 200: raise BootstrapSourceError( 'Remote bootstrapper request failed: %d' % response.status) try: return json.loads(response.read()) except ValueError: raise BootstrapSourceError( 'Invalid JSON response from remote bootstrap server')
def _start_remote(self): http_request = self.request_builder.http_request url = http_request.path parsed_url = urlparse.urlparse(url) try: host = Host.get(Host.hostname==parsed_url.hostname) if host.uses_ssl: url = url.replace('http', 'https') self.cachebrowsed = True except Host.DoesNotExist: pass logger.info("[%s] %s %s" % (http_request.method, url, '<CACHEBROWSED>' if self.cachebrowsed else '')) request = http_request.get_raw() # request = re.sub(r'^(GET|POST|PUT|DELETE|HEAD) http[s]?://[^/]+/(.+) (\w+)', r'\1 /\2 \3', request) response = http.request(url, raw_request=request) self._connection.start_remote(response)
def _start_remote(self): http_request = self.request_builder.http_request url = http_request.path parsed_url = urlparse.urlparse(url) try: host = Host.get(url=parsed_url.hostname) if host.ssl: url = url.replace('http', 'https') self.cachebrowsed = True except Host.DoesNotExist: pass logging.info("[%s] %s %s" % (http_request.method, url, '<CACHEBROWSED>' if self.cachebrowsed else '')) request = http_request.get_raw() # request = re.sub(r'^(GET|POST|PUT|DELETE|HEAD) http[s]?://[^/]+/(.+) (\w+)', r'\1 /\2 \3', request) response = http.request(url, raw_request=request) self._connection.start_remote(response)
def action_get(request): keys = ['url', 'target', 'method', 'scheme', 'port'] kwargs = {k: request[k] for k in keys if k in request} response = http.request(**kwargs) if request.get('json', False): response_message = { 'status': response.status, 'reason': response.reason } if request.get('headers', True): response_message['headers'] = {k: v for (k, v) in response.getheaders()} if request.get('raw', False): response_message['raw'] = response.read(raw=True) elif request.get('body', True): response_message['body'] = response.read() return response_message else: if request.get('raw', False): return response.get_raw(), ResponseOptions(send_json=False) else: return response.body, ResponseOptions(send_json=False)
def make_request(self, url, target=None, *args): """ Make a http request using CacheBrowser """ response = http.request(url, target=target) self.send_line(response.read())