Refactor module structure
Move pgsqltasks to top level to keep the task names when using Python 3
This commit is contained in:
		
							parent
							
								
									acf2b171a9
								
							
						
					
					
						commit
						68f0834954
					
				
					 12 changed files with 67 additions and 84 deletions
				
			
		|  | @ -1,6 +1,8 @@ | |||
| Changelog | ||||
| ========= | ||||
| 
 | ||||
| * :support:`-` move pgsqltasks to top level to keep the task names when | ||||
|   using Python 3 | ||||
| * :support:`-` use Pipenv for dependency management | ||||
| 
 | ||||
| * :release:`0.2.0 <2018-11-21>` | ||||
|  |  | |||
|  | @ -7,30 +7,24 @@ gvapgsql is implemented as `Celery`_ app. | |||
| .. _Celery: http://www.celeryproject.org/ | ||||
| 
 | ||||
| 
 | ||||
| The project module :py:mod:`gvapgsql` | ||||
| ===================================== | ||||
| 
 | ||||
| .. automodule:: gvapgsql | ||||
| 
 | ||||
| 
 | ||||
| :py:mod:`gvapgsql.celery` | ||||
| ------------------------- | ||||
| 
 | ||||
| .. automodule:: gvapgsql.celery | ||||
|    :members: | ||||
| 
 | ||||
| 
 | ||||
| :py:mod:`gvapgsql.settings` | ||||
| --------------------------- | ||||
| 
 | ||||
| .. automodule:: gvapgsql.settings | ||||
| 
 | ||||
| 
 | ||||
| :py:mod:`pgsqltasks` app | ||||
| ======================== | ||||
| 
 | ||||
| :py:mod:`pgsqltasks.celery` | ||||
| --------------------------- | ||||
| 
 | ||||
| .. automodule:: pgsqltasks | ||||
| 
 | ||||
| .. automodule:: pgsqltasks.celery | ||||
|    :members: | ||||
| 
 | ||||
| 
 | ||||
| :py:mod:`pgsqltasks.settings` | ||||
| ----------------------------- | ||||
| 
 | ||||
| .. automodule:: pgsqltasks.settings | ||||
| 
 | ||||
| 
 | ||||
| :py:mod:`pgsqltasks.tasks` | ||||
| -------------------------- | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										21
									
								
								docs/conf.py
									
										
									
									
									
								
							
							
						
						
									
										21
									
								
								docs/conf.py
									
										
									
									
									
								
							|  | @ -1,7 +1,7 @@ | |||
| # -*- coding: utf-8 -*- | ||||
| # pymode:lint_ignore=E501 | ||||
| # | ||||
| # gvamysql documentation build configuration file, created by | ||||
| # gvapgsql documentation build configuration file, created by | ||||
| # sphinx-quickstart on Sun Feb 17 11:46:20 2013. | ||||
| # | ||||
| # This file is execfile()d with the current directory set to its containing dir. | ||||
|  | @ -35,13 +35,13 @@ os.environ['GVAPGSQL_DBADMIN_PASSWORD'] = 'gvapgsql' | |||
| # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. | ||||
| extensions = ['releases', 'sphinx.ext.autodoc', 'celery.contrib.sphinx'] | ||||
| 
 | ||||
| # configuration for releases extension | ||||
| releases_issue_uri = 'https://git.dittberner.info/gnuviech/gvapgsql/issues/%s' | ||||
| releases_release_uri = 'https://git.dittberner.info/gnuviech/gvapgsql/stc/tag/%s' | ||||
| 
 | ||||
| # Add any paths that contain templates here, relative to this directory. | ||||
| templates_path = ['_templates'] | ||||
| 
 | ||||
| releases_issue_uri = 'https://dev.gnuviech-server.de/gvapgsql/ticket/%s' | ||||
| 
 | ||||
| releases_release_uri = 'https://dev.gnuviech-server.de/gvapgsql/milestone/%s' | ||||
| 
 | ||||
| # The suffix of source filenames. | ||||
| source_suffix = '.rst' | ||||
| 
 | ||||
|  | @ -53,16 +53,17 @@ master_doc = 'index' | |||
| 
 | ||||
| # General information about the project. | ||||
| project = u'gvapgsql' | ||||
| copyright = u'2015-2018 Jan Dittberner' | ||||
| copyright = u'2015-2020 Jan Dittberner' | ||||
| 
 | ||||
| # The version info for the project you're documenting, acts as replacement for | ||||
| # |version| and |release|, also used in various other places throughout the | ||||
| # built documents. | ||||
| # | ||||
| # The short X.Y version. | ||||
| version = '0.2' | ||||
| # The full version, including alpha/beta/rc tags. | ||||
| release = '0.2.0' | ||||
| from pgsqltasks import __version__ as release | ||||
| 
 | ||||
| # The short X.Y version. | ||||
| version = ".".join(release.split('.')[:2]) | ||||
| 
 | ||||
| # The language for content autogenerated by Sphinx. Refer to documentation | ||||
| # for a list of supported languages. | ||||
|  | @ -103,7 +104,7 @@ pygments_style = 'sphinx' | |||
| 
 | ||||
| # The theme to use for HTML and HTML Help pages.  See the documentation for | ||||
| # a list of builtin themes. | ||||
| html_theme = 'default' | ||||
| html_theme = 'alabaster' | ||||
| 
 | ||||
| # Theme options are theme-specific and customize the look and feel of a theme | ||||
| # further.  For a list of options available for each theme, see the | ||||
|  |  | |||
							
								
								
									
										3
									
								
								gvapgsql/gvacommon/.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								gvapgsql/gvacommon/.gitignore
									
										
									
									
										vendored
									
									
								
							|  | @ -1,3 +0,0 @@ | |||
| .*.swp | ||||
| *.pyc | ||||
| .ropeproject/ | ||||
|  | @ -3,13 +3,8 @@ from __future__ import unicode_literals | |||
| 
 | ||||
| 
 | ||||
| class GvaRouter(object): | ||||
| 
 | ||||
|     def route_for_task(self, task, args=None, kwargs=None): | ||||
|         for route in ['ldap', 'file', 'mysql', 'pgsql']: | ||||
|         for route in ["ldap", "file", "mysql", "pgsql"]: | ||||
|             if route in task: | ||||
|                 return { | ||||
|                     'exchange': route, | ||||
|                     'exchange_type': 'direct', | ||||
|                     'queue': route, | ||||
|                 } | ||||
|                 return {"exchange": route, "exchange_type": "direct", "queue": route} | ||||
|         return None | ||||
|  |  | |||
|  | @ -1,15 +0,0 @@ | |||
| """ | ||||
| This module defines the Celery_ app for gvapgsql. | ||||
| 
 | ||||
| .. _Celery: http://www.celeryproject.org/ | ||||
| 
 | ||||
| """ | ||||
| from __future__ import absolute_import | ||||
| 
 | ||||
| from celery import Celery | ||||
| 
 | ||||
| #: The Celery application | ||||
| app = Celery('gvapgsql') | ||||
| 
 | ||||
| app.config_from_object('gvapgsql.settings') | ||||
| app.autodiscover_tasks(['pgsqltasks'], force=True) | ||||
|  | @ -2,3 +2,9 @@ | |||
| This module contains :py:mod:`pgsqltasks.tasks`. | ||||
| 
 | ||||
| """ | ||||
| 
 | ||||
| __version__ = "0.3.0" | ||||
| 
 | ||||
| from pgsqltasks.celery import app as celery_app | ||||
| 
 | ||||
| __all__ = ("celery_app",) | ||||
|  |  | |||
							
								
								
									
										13
									
								
								gvapgsql/pgsqltasks/celery.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								gvapgsql/pgsqltasks/celery.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | |||
| """ | ||||
| This module defines the Celery_ app for gvapgsql. | ||||
| 
 | ||||
| .. _Celery: http://www.celeryproject.org/ | ||||
| 
 | ||||
| """ | ||||
| from celery import Celery | ||||
| 
 | ||||
| #: The Celery application | ||||
| app = Celery("pgsqltasks") | ||||
| 
 | ||||
| app.config_from_object("pgsqltasks.settings") | ||||
| app.autodiscover_tasks(["pgsqltasks.tasks"], force=True) | ||||
|  | @ -1,4 +0,0 @@ | |||
| """ | ||||
| Empty models to make Django accept pgsqltasks as an app. | ||||
| 
 | ||||
| """ | ||||
|  | @ -25,23 +25,21 @@ def get_env_setting(setting): | |||
| 
 | ||||
| 
 | ||||
| ########## CELERY CONFIGURATION | ||||
| CELERY_TIMEZONE = 'Europe/Berlin' | ||||
| CELERY_ENABLE_UTC = True | ||||
| CELERY_RESULT_BACKEND = 'amqp' | ||||
| CELERY_RESULT_PERSISTENT = True | ||||
| CELERY_BROKER_URL = get_env_setting("GVAPGSQL_BROKER_URL") | ||||
| CELERY_RESULT_BACKEND = get_env_setting("GVAPGSQL_RESULTS_REDIS_URL") | ||||
| CELERY_TASK_RESULT_EXPIRES = None | ||||
| CELERY_ROUTES = ( | ||||
|     'gvacommon.celeryrouters.GvaRouter', | ||||
| ) | ||||
| CELERY_ACCEPT_CONTENT = ['json'] | ||||
| CELERY_TASK_SERIALIZER = 'json' | ||||
| CELERY_RESULT_SERIALIZER = 'json' | ||||
| BROKER_URL = get_env_setting('GVAPGSQL_BROKER_URL') | ||||
| CELERY_ROUTES = ("gvacommon.celeryrouters.GvaRouter",) | ||||
| CELERY_TIMEZONE = "Europe/Berlin" | ||||
| CELERY_ENABLE_UTC = True | ||||
| CELERY_RESULT_PERSISTENT = True | ||||
| CELERY_ACCEPT_CONTENT = ["json"] | ||||
| CELERY_TASK_SERIALIZER = "json" | ||||
| CELERY_RESULT_SERIALIZER = "json" | ||||
| ########## END CELERY CONFIGURATION | ||||
| 
 | ||||
| ########## GVAPGSQL CONFIGURATION | ||||
| GVAPGSQL_DBADMIN_HOST = get_env_setting('GVAPGSQL_DBADMIN_HOST') | ||||
| GVAPGSQL_DBADMIN_PORT = int(get_env_setting('GVAPGSQL_DBADMIN_PORT')) | ||||
| GVAPGSQL_DBADMIN_USER = get_env_setting('GVAPGSQL_DBADMIN_USER') | ||||
| GVAPGSQL_DBADMIN_PASSWORD = get_env_setting('GVAPGSQL_DBADMIN_PASSWORD') | ||||
| GVAPGSQL_DBADMIN_HOST = get_env_setting("GVAPGSQL_DBADMIN_HOST") | ||||
| GVAPGSQL_DBADMIN_PORT = int(get_env_setting("GVAPGSQL_DBADMIN_PORT")) | ||||
| GVAPGSQL_DBADMIN_USER = get_env_setting("GVAPGSQL_DBADMIN_USER") | ||||
| GVAPGSQL_DBADMIN_PASSWORD = get_env_setting("GVAPGSQL_DBADMIN_PASSWORD") | ||||
| ########## END GVAPGSQL CONFIGURATION | ||||
|  | @ -2,15 +2,12 @@ | |||
| This module defines Celery_ tasks to manage PostgreSQL users and databases. | ||||
| 
 | ||||
| """ | ||||
| from __future__ import absolute_import | ||||
| 
 | ||||
| from celery import shared_task | ||||
| from celery.utils.log import get_task_logger | ||||
| 
 | ||||
| from gvapgsql import settings | ||||
| from psycopg2 import connect | ||||
| from psycopg2.extensions import ISQLQuote | ||||
| 
 | ||||
| from pgsqltasks import settings | ||||
| 
 | ||||
| _LOGGER = get_task_logger(__name__) | ||||
| 
 | ||||
|  | @ -56,7 +53,7 @@ def _get_connection(): | |||
|         port=settings.GVAPGSQL_DBADMIN_PORT, | ||||
|         user=settings.GVAPGSQL_DBADMIN_USER, | ||||
|         password=settings.GVAPGSQL_DBADMIN_PASSWORD, | ||||
|         database='postgres', | ||||
|         database="postgres", | ||||
|     ) | ||||
| 
 | ||||
| 
 | ||||
|  | @ -77,11 +74,10 @@ def create_pgsql_user(username, password): | |||
|                 """ | ||||
|                 CREATE USER %(username)s WITH PASSWORD %(password)s | ||||
|                 """, | ||||
|                 {'username': Ident(username), 'password': password} | ||||
|                 {"username": Ident(username), "password": password}, | ||||
|             ) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @shared_task | ||||
| def set_pgsql_userpassword(username, password): | ||||
|     """ | ||||
|  | @ -99,7 +95,7 @@ def set_pgsql_userpassword(username, password): | |||
|                 """ | ||||
|                 ALTER ROLE %(username)s WITH PASSWORD %(password)s | ||||
|                 """, | ||||
|                 {'username': Ident(username), 'password': password} | ||||
|                 {"username": Ident(username), "password": password}, | ||||
|             ) | ||||
| 
 | ||||
| 
 | ||||
|  | @ -119,7 +115,7 @@ def delete_pgsql_user(username): | |||
|                 """ | ||||
|                 DROP ROLE %(username)s | ||||
|                 """, | ||||
|                 {'username': Ident(username)} | ||||
|                 {"username": Ident(username)}, | ||||
|             ) | ||||
| 
 | ||||
| 
 | ||||
|  | @ -142,7 +138,7 @@ def create_pgsql_database(dbname, username): | |||
|             CREATE DATABASE %(dbname)s OWNER %(username)s | ||||
|             TEMPLATE template0 ENCODING 'UTF8' | ||||
|             """, | ||||
|             {'dbname': Ident(dbname), 'username': Ident(username)} | ||||
|             {"dbname": Ident(dbname), "username": Ident(username)}, | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
|  | @ -163,5 +159,5 @@ def delete_pgsql_database(dbname): | |||
|             """ | ||||
|             DROP DATABASE %(dbname)s | ||||
|             """, | ||||
|             {'dbname': Ident(dbname)} | ||||
|             {"dbname": Ident(dbname)}, | ||||
|         ) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue