class WorkerCommand(SettingsCommand): def set_settings(self, settings, *args, **kwargs): super(WorkerCommand, self).set_settings(settings, *args, **kwargs) if self.settings.worker_is_foreman: self.worker = Foreman(self.settings) else: self.worker = Worker(self.settings) def setup_parser(self, subparsers, config, verbose): worker_parser = subparsers.add_parser( 'run', help="""run the worker and/or foreman agent""", description="Command line switches overwrite config file settings." ) worker_parser.add_argument(*config['args'], **config['kwargs']) worker_parser.add_argument(*verbose['args'], **verbose['kwargs']) worker_parser.add_argument( "-o", "--run_once", dest="worker_daemon", help="run only once not as daemon", action="store_false", default=True ) worker_parser.add_argument( "-u", "--couchdb_uri", dest="couchdb_uri", metavar="URI", help="connection url of the server" ) worker_parser.add_argument( "-d", "--couchdb_db", dest="couchdb_db", metavar="NAME", help="database of the server" ) worker_parser.add_argument( "-f", "--foreman", dest="worker_is_foreman", help="be the foreman and a worker", action="store_true" ) return worker_parser def run(self): if self.settings.worker_daemon: self.worker.run() else: self.worker.run_once()
def set_settings(self, settings, *args, **kwargs): super(WorkerCommand, self).set_settings(settings, *args, **kwargs) if self.settings.worker_is_foreman: self.worker = Foreman(self.settings) else: self.worker = Worker(self.settings)