def build_tor_opener(guard, hops_count=3, debuglevel=0): opener = OpenerDirector() default_classes = [ ProxyHandler, UnknownHandler, HTTPDefaultErrorHandler, HTTPRedirectHandler, HTTPErrorProcessor ] for cls in default_classes: opener.add_handler(cls()) opener.add_handler(TorHTTPHandler(guard, hops_count, debuglevel=debuglevel)) opener.add_handler( TorHTTPSHandler(guard, hops_count, debuglevel=debuglevel)) opener.addheaders = [] return opener
self.sock = socket.socket(family=socket.AF_UNIX, type=socket.SOCK_STREAM, proto=0, fileno=None) self.sock.settimeout(self.timeout) self.sock.connect(self.socket_file) def socket_open(self, req): socket_file, path = req.selector.split(':', 1) req.host = socket_file req.selector = path return self.do_open(self.SocketFileToHttpConnectionAdaptor, req) better_urllib_get = OpenerDirector() better_urllib_get.addheaders = DEFAULT_HEADERS.copy() better_urllib_get.add_handler(HTTPHandler()) better_urllib_get.add_handler(HTTPSHandler()) better_urllib_get.add_handler(SocketFileHandler()) # Util functions ############################################################################################# @lru_cache() def get_url(url): response = better_urllib_get.open(url, timeout=timeout) return process_urllib_response(response), response.status def process_urllib_response(response):
self.sock = socket.socket(family=socket.AF_UNIX, type=socket.SOCK_STREAM, proto=0, fileno=None) self.sock.settimeout(self.timeout) self.sock.connect(self.socket_file) def socket_open(self, req): socket_file, path = req.selector.split(':') req.host = socket_file req.selector = path return self.do_open(self.SocketFileToHttpConnectionAdaptor, req) better_urllib = OpenerDirector() better_urllib.addheaders = [DEFAULT_HEADERS] better_urllib.add_handler(HTTPHandler()) better_urllib.add_handler(HTTPSHandler()) better_urllib.add_handler(SocketFileHandler()) # Util functions ############################################################################################# def parse_thresholds(spec): """ Given a spec string break it up into ':' separated chunks. Convert strings to ints as it makes sense :param spec: :return: The thresholds, as intergers """ parts = spec.split(':')
response.headers, response) auth_token = self._get_outh2_token(www_authenticate_header) request.add_unredirected_header('Authorization', 'Bearer ' + auth_token) return self.parent.open(request, timeout=request.timeout) # Got some help from this example https://gist.github.com/FiloSottile/2077115 class HeadRequest(Request): def get_method(self): return "HEAD" better_urllib_get = OpenerDirector() better_urllib_get.addheaders = DEFAULT_HEADERS.copy() better_urllib_get.add_handler(HTTPHandler()) better_urllib_get.add_handler(HTTPSHandler()) better_urllib_get.add_handler(HTTPRedirectHandler()) better_urllib_get.add_handler(SocketFileHandler()) better_urllib_get.add_handler(Oauth2TokenAuthHandler()) class RegistryError(Exception): def __init__(self, response): self.response_obj = response # Util functions ############################################################################################# def parse_thresholds(spec, include_units=True, units_required=True):
self.socket_file = socket_file def connect(self): self.sock = socket.socket(family=socket.AF_UNIX, type=socket.SOCK_STREAM, proto=0, fileno=None) self.sock.settimeout(self.timeout) self.sock.connect(self.socket_file) def socket_open(self, req): socket_file, path = req.selector.split(':') req.host = socket_file req.selector = path return self.do_open(self.SocketFileToHttpConnectionAdaptor, req) better_urllib = OpenerDirector() better_urllib.addheaders = [DEFAULT_HEADERS] better_urllib.add_handler(HTTPHandler()) better_urllib.add_handler(HTTPSHandler()) better_urllib.add_handler(SocketFileHandler()) # Util functions ############################################################################################# def parse_thresholds(spec): """ Given a spec string break it up into ':' separated chunks. Convert strings to ints as it makes sense :param spec: :return: The thresholds, as intergers """ parts = spec.split(':') warn = int(parts[0])