Beispiel #1
0
    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)
Beispiel #2
0
def getFrackResource(reactor):
    return ReverseProxyResource(
        UNIXClientEndpoint(reactor, path='/var/run/frack/json.sock'),
        URLPath("http://twistedmatrix.com/"))