def startService(self):
        log.msg("Starting VumiService")
        vumi_options = {}
        for opt in [i[0] for i in Options.optParameters]:
            vumi_options[opt] = self.options.pop(opt)

        worker_creator = WorkerCreator(vumi_options)

        # We need an initial worker. This would either be a normal
        # worker class (if we're using the old one-per-process model)
        # or a worker that loads new workers.
        worker_class = self.options.pop("worker-class")
        if worker_class is None:
            # fallback to deprecated --worker_class option
            worker_class = self.options.pop('worker_class')

        if not worker_class:
            raise VumiError("please specify --worker-class")

        config = {}
        # load the config file if specified
        config_file = self.options.pop('config')
        if config_file:
            with file(config_file, 'r') as stream:
                config.update(yaml.safe_load(stream))

        # add options set with --set-option
        config.update(self.options.set_options)

        self.worker = worker_creator.create_worker(worker_class, config)
        return self.worker.startService()
Beispiel #2
0
    def makeService(self, options):
        sentry_dsn = options.vumi_options.pop('sentry', None)
        class_name = options.worker_class.rpartition('.')[2].lower()
        logger_name = options.worker_config.get('worker_name', class_name)
        system_id = options.vumi_options.get('system-id', 'global')
        worker_id = generate_worker_id(system_id, logger_name)

        worker_creator = WorkerCreator(options.vumi_options)
        worker = worker_creator.create_worker(options.worker_class,
                                              options.worker_config)

        if sentry_dsn is not None:
            sentry_service = SentryLoggerService(sentry_dsn, logger_name,
                                                 worker_id)
            worker.addService(sentry_service)

        return worker
Beispiel #3
0
    def makeService(self, options):
        sentry_dsn = options.vumi_options.pop('sentry', None)
        class_name = options.worker_class.rpartition('.')[2].lower()
        logger_name = options.worker_config.get('worker_name', class_name)
        system_id = options.vumi_options.get('system-id', 'global')
        worker_id = generate_worker_id(system_id, logger_name)

        worker_creator = WorkerCreator(options.vumi_options)
        worker = worker_creator.create_worker(options.worker_class,
                                              options.worker_config)

        if sentry_dsn is not None:
            sentry_service = SentryLoggerService(sentry_dsn,
                                                 logger_name,
                                                 worker_id)
            worker.addService(sentry_service)

        return worker
Beispiel #4
0
 def _create_worker(self, cls_name, config):
     creator = WorkerCreator(self.options)
     worker = creator.create_worker(cls_name, config)
     return worker
Beispiel #5
0
 def load_worker(self, worker_class, config, vumi_options_override=None):
     options = deepcopy(self.vumi_options)
     if vumi_options_override:
         options.update(vumi_options_override)
     creator = WorkerCreator(options)
     creator.create_worker(worker_class, config)
Beispiel #6
0
 def makeService(self, options):
     worker_creator = WorkerCreator(options.vumi_options)
     worker = worker_creator.create_worker(options.worker_class,
                                           options.worker_config)
     return worker
Beispiel #7
0
 def makeService(self, options):
     worker_creator = WorkerCreator(options.vumi_options)
     worker = worker_creator.create_worker(options.worker_class,
                                           options.worker_config)
     return worker