コード例 #1
0
ファイル: resources.py プロジェクト: CloudRift/Rift
 def on_get(self, req, resp, tenant_id, job_id, run_number):
     job_execution = JobExecution.get_job(run_number)
     JobExecution.save_job(job_execution)
     if job_execution:
         resp.body = self.format_response_body(job_execution.as_dict())
     else:
         msg = 'Cannot find run number: {id}'.format(id=run_number)
         resp.status = falcon.HTTP_404
         resp.body = json.dumps({'description': msg})
コード例 #2
0
ファイル: job_execution.py プロジェクト: CloudRift/Rift
        def can_deserialize_from_a_dictionary(self):
            job_ex = JobExecution.build_job_from_dict(self.job_dict)

            expect(job_ex.job_id).to.equal(self.job_dict['id'])
            expect(job_ex.tenant_id).to.equal(self.job_dict['tenant_id'])
            expect(job_ex.run_number).to.equal(self.job_dict['run_number'])
            expect(job_ex.status).to.equal('in-progress')
コード例 #3
0
ファイル: job_execution.py プロジェクト: CloudRift/Rift
 def before_all(self):
     self.job_ex = JobExecution(
         tenant_id='123',
         job_id='1001',
         run_number='2012',
         status='in-progress'
     )
コード例 #4
0
ファイル: resources.py プロジェクト: CloudRift/Rift
    def on_head(self, req, resp, tenant_id, job_id):
        job = Job.get_job(job_id)
        job_ex = JobExecution.build_job_from_dict(job.as_dict())

        if job:
            # TODO(jmv): Figure out scheduling of jobs
            JobExecution.save_job(job_ex)
            job.run_numbers.append(job_ex.run_number)
            Job.update_job(job)
            job = Job.get_job(job_id)

            execute_job.delay(job.id)
            resp.status = falcon.HTTP_200
        else:
            msg = 'Cannot find job: {job_id}'.format(job_id=job_id)
            resp.status = falcon.HTTP_404
            resp.body = json.dumps({'description': msg})
コード例 #5
0
ファイル: actions.py プロジェクト: CloudRift/Rift
def execute_job(job_id, run_number):
    job = Job.get_job(job_id)
    if not job:
        return

    job_execution = JobExecution.get_job(run_number)

    for action in job.actions:
        plugin = get_action_plugin(ACTION_PLUGINS, action.action_type)

        if plugin:
            plugin.execute_action(job, action)
        else:
            job_execution.status = 'error'
            JobExecution.update_job(job_execution)
            print('Failed to execute action: {0}'.format(action.action_type))

    if job_execution.status == 'in-progress':
        job_execution.status = 'complete'
        JobExecution.update_job(job_execution)
コード例 #6
0
ファイル: job_execution.py プロジェクト: CloudRift/Rift
    class Serialization(Spec):
        def before_all(self):
            self.job_ex = JobExecution(
                tenant_id='123',
                job_id='1001',
                run_number='2012',
                status='in-progress'
            )

        def can_serialize_to_a_dictionary(self):
            job_dict = self.job_ex.as_dict()

            expect(job_dict['id']).to.equal(self.job_ex.job_id)
            expect(job_dict['tenant_id']).to.equal(self.job_ex.tenant_id)
            expect(job_dict['run_number']).to.equal(self.job_ex.run_number)
            expect(job_dict['status']).to.equal(self.job_ex.status)
コード例 #7
0
ファイル: job_execution.py プロジェクト: CloudRift/Rift
 def can_delete(self):
     JobExecution.delete_job(self.job_ex.run_number,
                             handler=self.handler)
     expect(len(self.handler.delete_document.calls)).to.equal(1)
コード例 #8
0
ファイル: job_execution.py プロジェクト: CloudRift/Rift
        def can_get_a_job_execution(self):
            retrieved_job = JobExecution.get_job(self.job_ex.run_number,
                                                 handler=self.handler)

            expect(len(self.handler.get_document.calls)).to.equal(1)
            expect(retrieved_job.run_number).to.equal(self.job_ex.run_number)
コード例 #9
0
ファイル: job_execution.py プロジェクト: CloudRift/Rift
 def can_update(self):
     JobExecution.update_job(self.job_ex, handler=self.handler)
     expect(len(self.handler.update_document.calls)).to.equal(1)
コード例 #10
0
ファイル: job_execution.py プロジェクト: CloudRift/Rift
 def can_save(self):
     JobExecution.save_job(self.job_ex, handler=self.handler)
     expect(len(self.handler.insert_document.calls)).to.equal(1)
コード例 #11
0
ファイル: job_execution.py プロジェクト: CloudRift/Rift
 def before_all(self):
     self.job_dict = example_job_dict
     self.job_ex = JobExecution.build_job_from_dict(self.job_dict)