Merge branch 'release/0.2.0' into production
* release/0.2.0: set release version document new task in changelog implement new task osusers.tasks.delete_ldap_group define celery timezone, restrict celery content to json add missing django bootstrap for documentation building use celery routers from gvacommon initial version
This commit is contained in:
		
						commit
						8891a33b7c
					
				
					 7 changed files with 62 additions and 25 deletions
				
			
		|  | @ -1,6 +1,10 @@ | |||
| Changelog | ||||
| ========= | ||||
| 
 | ||||
| * :release:`0.2.0 <2014-12-29>` | ||||
| * :feature:`-` add task :py:func:`osusers.tasks.delete_ldap_group` | ||||
| * :support:`-` use celery routers from gvacommon | ||||
| 
 | ||||
| * :release:`0.1.3 <2014-12-26>` | ||||
| * :support:`-` add celery routing for file server tasks | ||||
| 
 | ||||
|  |  | |||
|  | @ -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. | ||||
|  | @ -57,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. | ||||
|  |  | |||
							
								
								
									
										2
									
								
								gvaldap/gvacommon/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								gvaldap/gvacommon/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | |||
| .*.swp | ||||
| *.pyc | ||||
							
								
								
									
										0
									
								
								gvaldap/gvacommon/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								gvaldap/gvacommon/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										24
									
								
								gvaldap/gvacommon/celeryrouters.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								gvaldap/gvacommon/celeryrouters.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -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 | ||||
| 
 | ||||
| 
 | ||||
|  | @ -291,10 +291,12 @@ 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_TIMEZONE = 'Europe/Berlin' | ||||
| CELERY_ENABLE_UTC = True | ||||
| CELERY_ACCEPT_CONTENT = ['json'] | ||||
| CELERY_TASK_SERAILIZER = 'json' | ||||
| CELERY_RESULT_SERIALIZER = 'json' | ||||
| ########## END CELERY CONFIGURATION | ||||
|  |  | |||
|  | @ -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): | ||||
|     """ | ||||
|  | @ -237,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 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue