diff --git a/gvaldap/gvaldap/settings/base.py b/gvaldap/gvaldap/settings/base.py index 4106419..fa4467c 100644 --- a/gvaldap/gvaldap/settings/base.py +++ b/gvaldap/gvaldap/settings/base.py @@ -290,6 +290,10 @@ BROKER_URL = get_env_setting('GVALDAP_BROKER_URL') CELERY_RESULT_BACKEND = 'amqp' CELERY_RESULT_PERSISTENT = True CELERY_TASK_RESULT_EXPIRES = None +CELERY_ROUTES = ( + 'osusers.tasks.LdapRouter', + 'osusers.tasks.FileRouter', +) CELERY_ACCEPT_CONTENT = ['yaml', 'json'] CELERY_TASK_SERAILIZER = 'json' CELERY_RESULT_SERIALIZER = 'json' diff --git a/gvaldap/osusers/tasks.py b/gvaldap/osusers/tasks.py index 591d22a..29e07e3 100644 --- a/gvaldap/osusers/tasks.py +++ b/gvaldap/osusers/tasks.py @@ -21,6 +21,26 @@ from ldapentities.models import ( _logger = get_task_logger(__name__) +class LdapRouter(object): + + def route_for_task(self, task, args=None, kwargs=None): + if 'ldap' in task: + return {'exchange': 'ldap', + 'exchange_type': 'direct', + 'queue': 'ldap'} + return None + + +class FileRouter(object): + + def route_for_task(self, task, args=None, kwargs=None): + if 'file' in task: + return {'exchange': 'file', + 'exchange_type': 'direct', + 'queue': 'file'} + return None + + @shared_task def create_ldap_group(groupname, gid, descr): """