Пример #1
0
    def saveJob(self, status, frameworkJobId, scheduledJob):
        now = datetime.now()
        newJob = None

        #create new job
        if frameworkJobId is not None:
            newJob, created = Job.objects.get_or_create( frameworkid=frameworkJobId )
            newJob.name = scheduledJob.job_name
            newJob.started = now
            newJob.workflow = scheduledJob.workflow
            newJob.is_public = scheduledJob.is_public
            newJob.owner = scheduledJob.created_by
            newJob.schedule = scheduledJob
            newJob.status = status
        else:
            newJob = Job(
                        name=scheduledJob.job_name,
                        started = now,
                        workflow = scheduledJob.workflow,
                        is_public = scheduledJob.is_public,
                        owner = scheduledJob.created_by,
                        schedule = scheduledJob,
                        status = status
                        )
        newJob.save()
Пример #2
0
    def onNotification(self, eventType, body):
        if eventType == 'JobFinished':
            
            # sleep is added, because a failing job can be quicker than 
            # Django save the frameworkid of that job
            time.sleep(1) 
            event = JobFinished()
            event.ParseFromString(body)
            
            self.logger.debug('Job with ID %s is finished with status %s', str(event.job), str(event.status))

            Job.objects.update()
            finishedJob = Job.objects.get(frameworkid=event.job)
            finishedJob.status = event.status
            finishedJob.finished = datetime.now()
            finishedJob.save()
        return True