Exemple #1
0
    def create(self):
        request = RestApiClient.POST(self.url + "/job",
                                     postdata=self.jobSpec.toJson(),
                                     credentials=self.credentials)
        yield request

        print request.result
        self.jobId = json.loads(request.result)
        if self.jobId != False:
            self.jobId = int(self.jobId)
            returnValue(self.jobId)
        else:
            raise Exception
Exemple #2
0
def startServer(port):
    logging.basicConfig(level=eval("logging.%s" %
                                   config.parameter("log", "level")))
    log = logging.getLogger("main")
    twistedLog.startLogging(sys.stderr)

    # since master servers will ping back to the slave upon connection,
    # start listening for HTTP requests before trying to connect up to the master
    log.debug("Listening on port %s, starting reactor" %
              config.parameter("network", "port"))
    reactor.listenTCP(config.parameter("network", "port", type=int),
                      createRestApi())

    if config.parameter("misc", "standalone", type=bool) != True:
        # connect to master server in INI file
        scheme = config.parameter("master", "scheme")
        host = config.parameter("master", "host")
        port = config.parameter("master", "port", type=int)
        path = config.parameter("master", "path")

        slaveSpec = SlaveSpec()
        slaveSpec.host = socket.gethostname()
        slaveSpec.port = config.parameter("network", "port", type=int)
        slaveSpec.path = ""
        slaveSpec.maxRequestsPerSec = config.parameter("network",
                                                       "clients.max",
                                                       type=int)

        masterUrl = "%s://%s:%d/%s/slave" % (scheme, host, port, path)

        log.info("Connecting to master: %s" % masterUrl)

        try:
            request = RestApiClient.POST(str(masterUrl),
                                         slaveSpec.toJson(),
                                         timeout=10,
                                         credentials=("slave", "slave"))
            yield request
        except:
            log.error("Could not connect to master.  Exiting")
            reactor.stop()
            return

        slaveId = int(request.result)
        log.info("Connected to master.  This server is slave ID %d" % slaveId)
Exemple #3
0
 def start(self):
     request = RestApiClient.POST(self.url + "/job/%d/start" % self.jobId,
                                  credentials=self.credentials)
     yield request
     returnValue(request.result)
Exemple #4
0
 def stopJob(self, jobId):
     return RestApiClient.POST(self.url("/job/%d/stop" % jobId))
Exemple #5
0
 def resumeJob(self, jobId):
     return RestApiClient.POST(self.url("/job/%d/resume" % jobId))
Exemple #6
0
 def pauseJob(self, jobId):
     return RestApiClient.POST(self.url("/job/%d/pause" % jobId))
Exemple #7
0
 def createJob(self, jobSpec):
     log.debug("Creating job with spec %s" % jobSpec)
     return RestApiClient.POST(self.url("/job"), postdata=jobSpec.toJson())