Beispiel #1
0
    def create(self, context_lib_name, payload):
        context = self.creator(kind='context',
                               lib_name=context_lib_name,
                               name='Context',
                               payload=payload)
        kwargs = {'context': context}
        logging.info(
            f'create new job for {context.name}, event {context.event}')
        try:
            with open(JOB_CONFIG) as f:
                kwargs.update(json.load(f)[context.name][context.event])
        except:
            logging.info(f'use default job')
            pass

        job = Job(**kwargs)

        runner = self.creator(kind='runner',
                              lib_name=job.runner_lib,
                              name='Runner')
        job.set_runner(runner)

        payload_provider = self.creator(kind='job_payload',
                                        lib_name=job.payload_lib,
                                        name='JobPayloadProvider')
        job.set_payload_provider(payload_provider)

        return job