Files
@ 6d9b3ade3051
Branch filter:
Location: kallithea/rhodecode/lib/celerypylons/commands.py - annotation
6d9b3ade3051
2.9 KiB
text/x-python
Allowing multiple issue servers to be autolinked in the changeset view;
linking is now contingent on issue_server_link, issue_pat and issue_prefix
being defined; multiple servers can be used by specifying a common suffix on all
the above variables, ie ..
issue_server_link_1
issue_pat_1
issue_prefix_1
.. and ..
issue_server_link_other
issue_pat_other
issue_prefix_other
.. would be treated as two distinct servers, but ..
issue_pat_thing
.. would be ignored (since the other two requisite vars aren't present).
This patch is backwards compatible with existing variables (as a suffix
isn't needed).
linking is now contingent on issue_server_link, issue_pat and issue_prefix
being defined; multiple servers can be used by specifying a common suffix on all
the above variables, ie ..
issue_server_link_1
issue_pat_1
issue_prefix_1
.. and ..
issue_server_link_other
issue_pat_other
issue_prefix_other
.. would be treated as two distinct servers, but ..
issue_pat_thing
.. would be ignored (since the other two requisite vars aren't present).
This patch is backwards compatible with existing variables (as a suffix
isn't needed).
07e56179633e 8ecfed1d8f8b 3a7f5b1a19dd 3a7f5b1a19dd fe8c2e881403 8ecfed1d8f8b f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd fe8c2e881403 13d6da57b0cf 13d6da57b0cf 13d6da57b0cf 13d6da57b0cf 13d6da57b0cf 13d6da57b0cf 13d6da57b0cf 13d6da57b0cf 07e56179633e 8ecfed1d8f8b 3a7f5b1a19dd 3a7f5b1a19dd 3a7f5b1a19dd 8ecfed1d8f8b 3a7f5b1a19dd f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 3a7f5b1a19dd f6c613fba757 f6c613fba757 3a7f5b1a19dd f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 3a7f5b1a19dd f6c613fba757 f6c613fba757 3a7f5b1a19dd f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 3a7f5b1a19dd f6c613fba757 8ecfed1d8f8b 3a7f5b1a19dd 3a7f5b1a19dd f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 f6c613fba757 3a7f5b1a19dd | import rhodecode
from rhodecode.lib.utils import BasePasterCommand, Command, load_rcextensions
from celery.app import app_or_default
from celery.bin import camqadm, celerybeat, celeryd, celeryev
from rhodecode.lib.utils2 import str2bool
__all__ = ['CeleryDaemonCommand', 'CeleryBeatCommand',
'CAMQPAdminCommand', 'CeleryEventCommand']
class CeleryCommand(BasePasterCommand):
"""Abstract class implements run methods needed for celery
Starts the celery worker that uses a paste.deploy configuration
file.
"""
def update_parser(self):
"""
Abstract method. Allows for the class's parser to be updated
before the superclass's `run` method is called. Necessary to
allow options/arguments to be passed through to the underlying
celery command.
"""
cmd = self.celery_command(app_or_default())
for x in cmd.get_options():
self.parser.add_option(x)
def command(self):
from pylons import config
try:
CELERY_ON = str2bool(config['app_conf'].get('use_celery'))
except KeyError:
CELERY_ON = False
if CELERY_ON == False:
raise Exception('Please enable celery_on in .ini config '
'file before running celeryd')
rhodecode.CELERY_ON = CELERY_ON
load_rcextensions(config['here'])
cmd = self.celery_command(app_or_default())
return cmd.run(**vars(self.options))
class CeleryDaemonCommand(CeleryCommand):
"""Start the celery worker
Starts the celery worker that uses a paste.deploy configuration
file.
"""
usage = 'CONFIG_FILE [celeryd options...]'
summary = __doc__.splitlines()[0]
description = "".join(__doc__.splitlines()[2:])
parser = Command.standard_parser(quiet=True)
celery_command = celeryd.WorkerCommand
class CeleryBeatCommand(CeleryCommand):
"""Start the celery beat server
Starts the celery beat server using a paste.deploy configuration
file.
"""
usage = 'CONFIG_FILE [celerybeat options...]'
summary = __doc__.splitlines()[0]
description = "".join(__doc__.splitlines()[2:])
parser = Command.standard_parser(quiet=True)
celery_command = celerybeat.BeatCommand
class CAMQPAdminCommand(CeleryCommand):
"""CAMQP Admin
CAMQP celery admin tool.
"""
usage = 'CONFIG_FILE [camqadm options...]'
summary = __doc__.splitlines()[0]
description = "".join(__doc__.splitlines()[2:])
parser = Command.standard_parser(quiet=True)
celery_command = camqadm.AMQPAdminCommand
class CeleryEventCommand(CeleryCommand):
"""Celery event command.
Capture celery events.
"""
usage = 'CONFIG_FILE [celeryev options...]'
summary = __doc__.splitlines()[0]
description = "".join(__doc__.splitlines()[2:])
parser = Command.standard_parser(quiet=True)
celery_command = celeryev.EvCommand
|