From e29646a94714d516d52272fc83d9a15bbc21e488 Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Sat, 27 Dec 2014 13:52:45 +0100 Subject: [PATCH 1/7] initial version --- .gitignore | 2 ++ __init__.py | 0 celeryrouters.py | 24 ++++++++++++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 .gitignore create mode 100644 __init__.py create mode 100644 celeryrouters.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3bb2efd --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.*.swp +*.pyc diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/celeryrouters.py b/celeryrouters.py new file mode 100644 index 0000000..e468813 --- /dev/null +++ b/celeryrouters.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + + +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 + + From 672a3bb622d1145ef385cc34c6bc03509db37139 Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Sat, 27 Dec 2014 14:06:26 +0100 Subject: [PATCH 2/7] use celery routers from gvacommon --- docs/changelog.rst | 2 ++ gvaldap/gvaldap/settings/base.py | 4 ++-- gvaldap/osusers/tasks.py | 20 -------------------- 3 files changed, 4 insertions(+), 22 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 01ebe81..571a6e0 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,6 +1,8 @@ Changelog ========= +* :support:`-` use celery routers from gvacommon + * :release:`0.1.3 <2014-12-26>` * :support:`-` add celery routing for file server tasks diff --git a/gvaldap/gvaldap/settings/base.py b/gvaldap/gvaldap/settings/base.py index d115c34..2027ebb 100644 --- a/gvaldap/gvaldap/settings/base.py +++ b/gvaldap/gvaldap/settings/base.py @@ -291,8 +291,8 @@ CELERY_RESULT_BACKEND = 'amqp' CELERY_RESULT_PERSISTENT = True CELERY_TASK_RESULT_EXPIRES = None CELERY_ROUTES = ( - 'osusers.tasks.LdapRouter', - 'osusers.tasks.FileRouter', + 'gvacommon.celeryrouters.LdapRouter', + 'gvacommon.celeryrouters.FileRouter', ) CELERY_ACCEPT_CONTENT = ['pickle', 'yaml', 'json'] CELERY_TASK_SERAILIZER = 'json' diff --git a/gvaldap/osusers/tasks.py b/gvaldap/osusers/tasks.py index 29e07e3..591d22a 100644 --- a/gvaldap/osusers/tasks.py +++ b/gvaldap/osusers/tasks.py @@ -21,26 +21,6 @@ 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): """ From c0ab9de3f714546dc2ea1ca03d7d8b36cb37ebfe Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Sat, 27 Dec 2014 14:15:27 +0100 Subject: [PATCH 3/7] add missing django bootstrap for documentation building --- docs/conf.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/conf.py b/docs/conf.py index 0e168f4..c6901bc 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -14,6 +14,7 @@ import sys import os +import django # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the @@ -23,6 +24,8 @@ sys.path.insert(0, os.path.abspath(os.path.join('..', 'gvaldap'))) os.environ['GVALDAP_ALLOWED_HOSTS'] = 'localhost' os.environ['GVALDAP_SERVER_EMAIL'] = 'root@localhost' +django.setup() + # -- General configuration ----------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. From cdbaa3ca36fa21640cd4c50d34084cb279705eea Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Mon, 29 Dec 2014 13:00:19 +0100 Subject: [PATCH 4/7] define celery timezone, restrict celery content to json --- gvaldap/gvaldap/settings/base.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gvaldap/gvaldap/settings/base.py b/gvaldap/gvaldap/settings/base.py index 2027ebb..de70798 100644 --- a/gvaldap/gvaldap/settings/base.py +++ b/gvaldap/gvaldap/settings/base.py @@ -294,7 +294,9 @@ CELERY_ROUTES = ( 'gvacommon.celeryrouters.LdapRouter', 'gvacommon.celeryrouters.FileRouter', ) -CELERY_ACCEPT_CONTENT = ['pickle', 'yaml', 'json'] +CELERY_TIMEZONE = 'Europe/Berlin' +CELERY_ENABLE_UTC = True +CELERY_ACCEPT_CONTENT = ['json'] CELERY_TASK_SERAILIZER = 'json' CELERY_RESULT_SERIALIZER = 'json' ########## END CELERY CONFIGURATION From 93a27a83aa5300c66a70fac844f93705c9c3816f Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Mon, 29 Dec 2014 15:04:00 +0100 Subject: [PATCH 5/7] implement new task osusers.tasks.delete_ldap_group --- gvaldap/osusers/tasks.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gvaldap/osusers/tasks.py b/gvaldap/osusers/tasks.py index 591d22a..1bd5c75 100644 --- a/gvaldap/osusers/tasks.py +++ b/gvaldap/osusers/tasks.py @@ -217,3 +217,25 @@ def delete_ldap_group_if_empty(groupname): ldapgroup.dn, len(ldapgroup.members)) ) return False + + +@shared_task +def delete_ldap_group(groupname): + """ + This taks deletes the given group. + + :param str groupname: the group name + :return: True if the user has been deleted, False otherwise + :rtype: boolean + + """ + try: + ldapgroup = LdapGroup.objects.get(name=groupname) + except LdapGroup.DoesNotExist: + _logger.info('ldap group with name {0} does not exist'.format( + groupname) + ) + else: + ldapgroup.delete() + return True + return False From ad595bd658e4d254e05d2b308499d83b21218549 Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Mon, 29 Dec 2014 15:17:05 +0100 Subject: [PATCH 6/7] document new task in changelog --- docs/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/changelog.rst b/docs/changelog.rst index 571a6e0..5dcbd38 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,6 +1,7 @@ Changelog ========= +* :feature:`-` add task :py:func:`osusers.tasks.delete_ldap_group` * :support:`-` use celery routers from gvacommon * :release:`0.1.3 <2014-12-26>` From f9d1b52c3c7ff98c169837f05b2e49fc6fa2e118 Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Mon, 29 Dec 2014 15:18:34 +0100 Subject: [PATCH 7/7] set release version --- docs/changelog.rst | 1 + docs/conf.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 5dcbd38..3935cb1 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,6 +1,7 @@ Changelog ========= +* :release:`0.2.0 <2014-12-29>` * :feature:`-` add task :py:func:`osusers.tasks.delete_ldap_group` * :support:`-` use celery routers from gvacommon diff --git a/docs/conf.py b/docs/conf.py index c6901bc..a02f850 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -60,9 +60,9 @@ copyright = u'2014, Jan Dittberner' # built documents. # # The short X.Y version. -version = '0.1.3' +version = '0.2' # The full version, including alpha/beta/rc tags. -release = '0.1.3' +release = '0.2.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages.