diff --git a/docs/changelog.rst b/docs/changelog.rst index 15f7f1f..3f1b589 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,6 +1,9 @@ Changelog ========= +* :release:`0.1.0 <2014-12-26>` +* :support:`-` configure celery task serialization, add routing for ldap tasks + * :release:`0.0.2 <2014-12-26>` * :feature:`-` implement tasks for creating and deleting SFTP and mail base directories diff --git a/docs/conf.py b/docs/conf.py index 7738860..4b944cd 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -62,9 +62,9 @@ copyright = u'2014, Jan Dittberner' # built documents. # # The short X.Y version. -version = '0.0.2' +version = '0.1.0' # The full version, including alpha/beta/rc tags. -release = '0.0.2' +release = '0.1.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/gvafile/gvafile/settings/base.py b/gvafile/gvafile/settings/base.py index ccdea65..c204589 100644 --- a/gvafile/gvafile/settings/base.py +++ b/gvafile/gvafile/settings/base.py @@ -282,6 +282,11 @@ BROKER_URL = get_env_setting('GVAFILE_BROKER_URL') CELERY_RESULT_BACKEND = 'amqp' CELERY_RESULT_PERSISTENT = True CELERY_TASK_RESULT_EXPIRES = None -CELERY_ACCEPT_CONTENT = ['yaml'] -CELERY_RESULT_SERIALIZER = 'yaml' +CELERY_ROUTES = ( + 'osusers.tasks.LdapRouter', + 'osusers.tasks.FileRouter', +) +CELERY_ACCEPT_CONTENT = ['pickle', 'yaml', 'json'] +CELERY_TASK_SERIALIZER = 'json' +CELERY_RESULT_SERIALIZER = 'json' ########## END CELERY CONFIGURATION diff --git a/gvafile/osusers/tasks.py b/gvafile/osusers/tasks.py index e386a99..ada2e84 100644 --- a/gvafile/osusers/tasks.py +++ b/gvafile/osusers/tasks.py @@ -25,6 +25,26 @@ SETFACL_CMD = '/usr/bin/setfacl' RM_CMD = '/bin/rm' +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 + + def _build_sftp_directory_name(username): """ Constructs the SFTP directory name for a given username.