示例#1
0
 def load(self, jobStoreID):
     self._checkJobStoreId(jobStoreID)
     # Load a valid version of the job
     jobFile = self._getJobFileName(jobStoreID)
     with open(jobFile, 'r') as fileHandle:
         job = JobWrapper.fromDict(pickler.load(fileHandle))
     # The following cleans up any issues resulting from the failure of the
     # job during writing by the batch system.
     if os.path.isfile(jobFile + ".new"):
         logger.warn("There was a .new file for the job: %s", jobStoreID)
         os.remove(jobFile + ".new")
         job.setupJobAfterFailure(self.config)
     return job
示例#2
0
 def testJob(self):       
     """
     Tests functions of a job.
     """ 
 
     command = "by your command"
     memory = 2^32
     disk = 2^32
     cores = 1
     jobStoreID = 100
     remainingRetryCount = 5
     predecessorNumber = 0
     updateID = 1000
     
     j = JobWrapper(command, memory, cores, disk, jobStoreID, remainingRetryCount,
               updateID, predecessorNumber)
     
     #Check attributes
     #
     self.assertEquals(j.command, command)
     self.assertEquals(j.memory, memory)
     self.assertEquals(j.disk, disk)
     self.assertEquals(j.cores, cores)
     self.assertEquals(j.jobStoreID, jobStoreID)
     self.assertEquals(j.remainingRetryCount, remainingRetryCount)
     self.assertEquals(j.predecessorNumber, predecessorNumber)
     self.assertEquals(j.updateID, updateID)
     self.assertEquals(j.stack, [])
     self.assertEquals(j.predecessorsFinished, set())
     self.assertEquals(j.logJobStoreFileID, None)
     
     #Check equals function
     j2 = JobWrapper(command, memory, cores, disk, jobStoreID, remainingRetryCount,
               updateID, predecessorNumber)
     self.assertEquals(j, j2)
     #Change an attribute and check not equal
     j.predecessorsFinished = set(("1", "2"))
     self.assertNotEquals(j, j2)
示例#3
0
    def testJob(self):
        """
        Tests functions of a job.
        """

        command = "by your command"
        memory = 2 ^ 32
        disk = 2 ^ 32
        cores = 1
        preemptable = 1
        jobStoreID = 100
        remainingRetryCount = 5
        predecessorNumber = 0

        j = JobWrapper(command, memory, cores, disk, preemptable, jobStoreID,
                       remainingRetryCount, predecessorNumber)

        #Check attributes
        #
        self.assertEquals(j.command, command)
        self.assertEquals(j.memory, memory)
        self.assertEquals(j.disk, disk)
        self.assertEquals(j.cores, cores)
        self.assertEquals(j.preemptable, preemptable)
        self.assertEquals(j.jobStoreID, jobStoreID)
        self.assertEquals(j.remainingRetryCount, remainingRetryCount)
        self.assertEquals(j.predecessorNumber, predecessorNumber)
        self.assertEquals(j.stack, [])
        self.assertEquals(j.predecessorsFinished, set())
        self.assertEquals(j.logJobStoreFileID, None)

        #Check equals function
        j2 = JobWrapper(command, memory, cores, disk, preemptable, jobStoreID,
                        remainingRetryCount, predecessorNumber)
        self.assertEquals(j, j2)
        #Change an attribute and check not equal
        j.predecessorsFinished = {"1", "2"}
        self.assertNotEquals(j, j2)
示例#4
0
 def create(self, command, memory, cores, disk,
            predecessorNumber=0):
     #The absolute path to the job directory.
     absJobDir = tempfile.mkdtemp(prefix="job", dir=self._getTempSharedDir())
     #Sub directory to put temporary files associated with the job in
     os.mkdir(os.path.join(absJobDir, "g"))
     #Make the job
     job = JobWrapper(command=command, memory=memory, cores=cores, disk=disk,
               jobStoreID=self._getRelativePath(absJobDir),
               remainingRetryCount=self._defaultTryCount( ),
               predecessorNumber=predecessorNumber)
     #Write job file to disk
     self.update(job)
     return job
示例#5
0
 def create(self,
            command,
            memory,
            cores,
            disk,
            preemptable,
            predecessorNumber=0):
     jobStoreID = self._newID()
     job = JobWrapper(jobStoreID=jobStoreID,
                      command=command,
                      memory=memory,
                      cores=cores,
                      disk=disk,
                      remainingRetryCount=self._defaultTryCount(),
                      logJobStoreFileID=None,
                      preemptable=preemptable,
                      predecessorNumber=predecessorNumber)
     self._writeString(jobStoreID, cPickle.dumps(job))
     return job