def requestAvatarId(self, c): creds = credentials.IUsernamePassword(c, None) if creds is not None: locks = [] pool = HTTPConnectionPool(reactor, persistent=False) pool.cachedConnectionTimeout = self.timeout if self.max_concurrency: pool.persistent = True pool.maxPersistentPerHost = self.max_concurrency locks.append( defer.DeferredSemaphore(self.max_concurrency)) if self.global_max_concurrency: locks.append( defer.DeferredSemaphore(self.global_max_concurrency)) conn = ThrottledSwiftConnection( locks, self.auth_url, creds.username, creds.password, pool=pool, extra_headers=self.extra_headers, verbose=self.verbose, ceph_compatible=self.ceph_compatible ) conn.user_agent = USER_AGENT d = conn.authenticate() d.addCallback(self._after_auth, conn) d.addErrback(eb_failed_auth) return d return defer.fail(error.UnauthorizedLogin())
def requestAvatarId(self, c): creds = credentials.IUsernamePassword(c, None) if creds is not None: locks = [] pool = HTTPConnectionPool(reactor, persistent=False) pool.cachedConnectionTimeout = self.timeout if self.max_concurrency: pool.persistent = True pool.maxPersistentPerHost = self.max_concurrency locks.append(defer.DeferredSemaphore(self.max_concurrency)) if self.global_max_concurrency: locks.append( defer.DeferredSemaphore(self.global_max_concurrency)) conn = ThrottledSwiftConnection(locks, self.auth_url, creds.username, creds.password, pool=pool, extra_headers=self.extra_headers, verbose=self.verbose) conn.user_agent = USER_AGENT d = conn.authenticate() d.addCallback(self._after_auth, conn) d.addErrback(eb_failed_auth) return d return defer.fail(error.UnauthorizedLogin())
def agent(self, scheme='http'): if not self._agents: pool = HTTPConnectionPool(reactor) pool.maxPersistentPerHost = 10 pool.cachedConnectionTimeout = 15 contextFactory = PermissiveBrowserLikePolicyForHTTPS() proxies = getproxies() if 'http' in proxies or 'https' in proxies: # I've noticed some intermittent failures (ResponseNeverReceived) to # POST request through a proxy when persistent connections are enabled. pool.persistent = False if 'https' in proxies: proxy = urlparse(proxies.get('https')) if proxy: # Note- this isn't going to work completely. It's not being # passed the modified contextFactory, and in fact it doesn't # even work properly for other reasons (ZPS-2061) log.info("Creating https proxy (%s:%s)" % (proxy.hostname, proxy.port)) endpoint = TCP4ClientEndpoint(reactor, proxy.hostname, proxy.port, timeout=CONNECT_TIMEOUT) SessionManager._agents['https'] = \ ProxyAgent(endpoint, reactor, pool=pool) else: SessionManager._agents['https'] = \ Agent(reactor, pool=pool, connectTimeout=CONNECT_TIMEOUT, contextFactory=contextFactory) if 'http' in proxies: proxy = urlparse(proxies.get('http')) if proxy: log.info("Creating http proxy (%s:%s)" % (proxy.hostname, proxy.port)) endpoint = TCP4ClientEndpoint(reactor, proxy.hostname, proxy.port, timeout=CONNECT_TIMEOUT) SessionManager._agents['http'] = \ ProxyAgent(endpoint, reactor, pool=pool) else: SessionManager._agents['http'] = \ Agent(reactor, pool=pool, connectTimeout=CONNECT_TIMEOUT) return SessionManager._agents[scheme]