Example #1
0
 def createJob(self, username, jobSpec):
     jobNo = self._getJobNo()
     job = JobPerspective(jobNo, jobSpec)
     self.jobs[jobNo] = job
     
     user = yield UserManager.get(username)
     log.debug("Creating job %d for user %s... connecting slave servers" % (jobNo, user.userSpec.username))
     
     # allocate a bunch of slaves here
     slaves = yield SlaveAllocator.allocate(jobSpec)
     log.debug("Using slaves: %s" % slaves)
     
     # divide the client function to spread the load over all slaves in the set
     clientFunctionPerSlave = "(%s)/%s" % (jobSpec.clientFunction, len(slaves))
     transferLimitPerSlave = jobSpec.transferLimit / len(slaves)
     modifiedJobSpec = JobSpec(jobSpec.toJson())
     modifiedJobSpec.clientFunction = clientFunctionPerSlave
     modifiedJobSpec.transferLimit = transferLimitPerSlave
     
     deferred = Deferred()
     slaveRequests = []
     for slave in slaves:
         request = slave.createJob(modifiedJobSpec)
         request.addCallback(self._createJobSlaveCallback, slave)
         slaveRequests.append(request)
     
     deferredList = DeferredList(slaveRequests)
     deferredList.addCallback(self._createJobCallback, jobNo, user, deferred)
     yield deferredList
     returnValue(jobNo)    
Example #2
0
    def POST(self, request):
        request.content.seek(0, 0)
        jobSpecObj = JobSpec(json.loads(request.content.read()))
        if not jobSpecObj.validate():
            raise Http400, "Invalid request"

        jobId = Controller.createJob(jobSpecObj)
        self.putChild("%d" % jobId, JobNode())
        return jobId
Example #3
0
 def POST(self, request):
     request.content.seek(0, 0)
     jobSpecObj = JobSpec(json.loads(request.content.read()))
     if not jobSpecObj.validate():
         raise Http400, "Invalid request"
     
     jobId = Controller.createJob(jobSpecObj)
     self.putChild("%d" % jobId, JobNode())
     return jobId
Example #4
0
 def POST(self, request):
     request.content.seek(0, 0)
     jobSpecObj = JobSpec(json.loads(request.content.read()))
     if not jobSpecObj.validate():
         raise Http400, "Invalid request"
     
     log.debug("Creating job, user: %s" % request.getUser())
     deferred = Orchestrator.createJob(request.getUser(), jobSpecObj)
     deferred.addCallback(self.postCallback, request)
     deferred.addErrback(self.postErrback, request)
     return NOT_DONE_YET
Example #5
0
    def POST(self, request):
        request.content.seek(0, 0)
        jobSpecObj = JobSpec(json.loads(request.content.read()))
        if not jobSpecObj.validate():
            raise Http400, "Invalid request"

        log.debug("Creating job, user: %s" % request.getUser())
        deferred = Orchestrator.createJob(request.getUser(), jobSpecObj)
        deferred.addCallback(self.postCallback, request)
        deferred.addErrback(self.postErrback, request)
        return NOT_DONE_YET
 def createJobSpec(self):
     jobSpec = JobSpec()
     jobSpec.profile = JobSpec.JobProfile.HAMMER
     jobSpec.requests = { "http://localhost:80/foo": { "method": "GET", "postdata": None, "cookies": {}} }
     jobSpec.duration = 60
     jobSpec.transferLimit = 1024**3
     jobSpec.statsInterval = 1
     jobSpec.timeout = 10
     jobSpec.clientFunction = "100"
     return jobSpec
Example #7
0
 def createJobSpec(self):
     jobSpec = JobSpec()
     jobSpec.profile = JobSpec.JobProfile.HAMMER
     jobSpec.requests = {
         "http://localhost:80/foo": {
             "method": "GET",
             "postdata": None,
             "cookies": {}
         }
     }
     jobSpec.duration = 60
     jobSpec.transferLimit = 1024**3
     jobSpec.statsInterval = 1
     jobSpec.timeout = 10
     jobSpec.clientFunction = "100"
     return jobSpec
Example #8
0
def runClient(options):
    @inlineCallbacks
    def results():
        r = client.results()
        yield r
        print r.result
        print "Length of result is %.2fKB" % (len(str(r.result)) / 1024)
        reactor.stop()

    print "Running client"

    jobSpec = JobSpec()
    jobSpec.requests = {
        options.target: {
            "method": "GET",
            "postdata": None,
            "cookies": {},
        },
    }
    jobSpec.duration = options.duration
    jobSpec.transferLimit = 1024**3
    jobSpec.profile = options.profile
    jobSpec.clientFunction = options.function
    jobSpec.statsInterval = 1
    jobSpec.timeout = 10
    print jobSpec

    client = BasicClient(options.url,
                         jobSpec,
                         username=options.username,
                         password=options.password,
                         callback=results,
                         errback=reactor.stop)
    try:
        r = client.create()
        yield r
        r = client.start()
        yield r
        r = client.poll()
        yield r
    except:
        reactor.stop()
Example #9
0
def runClient(options):
    
    @inlineCallbacks
    def results():
        r = client.results()
        yield r
        print r.result
        print "Length of result is %.2fKB" % (len(str(r.result))/1024)
        reactor.stop()
    
    print "Running client"

    jobSpec = JobSpec()
    jobSpec.requests = {
        options.target: {
            "method": "GET",
            "postdata": None,
            "cookies": {},
        },
    }
    jobSpec.duration = options.duration
    jobSpec.transferLimit = 1024**3
    jobSpec.profile = options.profile
    jobSpec.clientFunction = options.function
    jobSpec.statsInterval = 1
    jobSpec.timeout = 10
    print jobSpec
    
    client = BasicClient(options.url, 
                         jobSpec, 
                         username=options.username, 
                         password=options.password, 
                         callback=results, 
                         errback=reactor.stop)
    try:
        r = client.create()
        yield r
        r = client.start()
        yield r
        r = client.poll()
        yield r 
    except:
        reactor.stop()