def start(self): if self.interrupted: self.failed(Failure(Exception('Interrupted'))) return self.current_attempt += 1 if self.current_attempt > self.attempts: if len(self.servers) < 1: self.failed( Failure(Exception('No more signing servers to try.'))) else: self.current_attempt = 1 if self.current_attempt == 1: uri, self.username, self.password, _ = self.servers.pop() self.uri = 'https://%s/token' % uri slaveName = self.getSlaveName() slaveIP = self.buildslave.slave.broker.transport.getPeer().host if not self.stdio_log: self.stdio_log = self.addLog('output') self.stdio_log.addHeader("Slave: %s\n" % slaveName) self.stdio_log.addHeader("IP: %s\n" % slaveIP) self.stdio_log.addHeader("Duration: %s\n" % self.duration) self.stdio_log.addStdout("URI: %s\n" % self.uri) method = 'POST' postdata = { 'slave_ip': slaveIP, 'duration': self.duration, } headers = self.generateHeaders(method=method, credentials=(self.username, self.password)) contextFactory = HTTPSVerifyingContextFactory( URLPath(self.uri).netloc, self.server_cert) d = getPage(self.uri, method=method, headers=headers, postdata=urlencode(postdata), contextFactory=contextFactory) d.addCallbacks(self.downloadSignature, self.requestFailed)
def getFrackResource(reactor): return ReverseProxyResource( UNIXClientEndpoint(reactor, path='/var/run/frack/json.sock'), URLPath("http://twistedmatrix.com/"))