Flower client authentication

This commit is contained in:
Nikita P. Shupeyko 2018-06-10 21:24:18 +03:00
parent a954162baf
commit 55d1457895
3 changed files with 57 additions and 8 deletions

View File

@ -162,8 +162,12 @@ def set_django_admin_url(file_path):
return django_admin_url
def generate_random_user():
return generate_random_string(length=32, using_ascii_letters=True)
def generate_postgres_user(debug=False):
return DEBUG_VALUE if debug else generate_random_string(length=32, using_ascii_letters=True)
return DEBUG_VALUE if debug else generate_random_user()
def set_postgres_user(file_path, value):
@ -187,16 +191,47 @@ def set_postgres_password(file_path, value=None):
return postgres_password
def set_celery_flower_user(file_path, value):
celery_flower_user = set_flag(
file_path,
"!!!SET CELERY_FLOWER_USER!!!",
value=value,
)
return celery_flower_user
def set_celery_flower_password(file_path, value=None):
celery_flower_password = set_flag(
file_path,
"!!!SET CELERY_FLOWER_PASSWORD!!!",
value=value,
length=64,
using_digits=True,
using_ascii_letters=True,
)
return celery_flower_password
def append_to_gitignore_file(s):
with open(".gitignore", "a") as gitignore_file:
gitignore_file.write(s)
gitignore_file.write(os.linesep)
def set_flags_in_envs(postgres_user, debug=False):
def set_flags_in_envs(
postgres_user,
celery_flower_user,
debug=False,
):
password = DEBUG_VALUE if debug else None
local_django_envs_path = os.path.join(".envs", ".local", ".django")
set_celery_flower_user(local_django_envs_path, value=celery_flower_user)
set_celery_flower_password(local_django_envs_path, value=password)
local_postgres_envs_path = os.path.join(".envs", ".local", ".postgres")
set_postgres_user(local_postgres_envs_path, value=postgres_user)
set_postgres_password(local_postgres_envs_path, value=DEBUG_VALUE if debug else None)
set_postgres_password(local_postgres_envs_path, value=password)
production_django_envs_path = os.path.join(".envs", ".production", ".django")
set_django_secret_key(production_django_envs_path)
@ -204,7 +239,7 @@ def set_flags_in_envs(postgres_user, debug=False):
production_postgres_envs_path = os.path.join(".envs", ".production", ".postgres")
set_postgres_user(production_postgres_envs_path, value=postgres_user)
set_postgres_password(production_postgres_envs_path, value=DEBUG_VALUE if debug else None)
set_postgres_password(production_postgres_envs_path, value=password)
def set_flags_in_settings_files():
@ -223,8 +258,13 @@ def remove_celery_compose_dirs():
def main():
postgres_user = generate_postgres_user(debug="{{ cookiecutter.debug }}".lower() == "y")
set_flags_in_envs(postgres_user, debug="{{ cookiecutter.debug }}".lower() == "y")
debug = "{{ cookiecutter.debug }}".lower() == "y"
set_flags_in_envs(
DEBUG_VALUE if debug else generate_random_user(),
DEBUG_VALUE if debug else generate_random_user(),
debug=debug,
)
set_flags_in_settings_files()
if "{{ cookiecutter.open_source_license }}" == "Not open source":

View File

@ -5,3 +5,10 @@ USE_DOCKER=yes
# Redis
# ------------------------------------------------------------------------------
REDIS_URL=redis://redis:6379/0
{% if cookiecutter.use_celery == 'y' %}
# Celery
# ------------------------------------------------------------------------------
# Flower
CELERY_FLOWER_USER=!!!SET CELERY_FLOWER_USER!!!
CELERY_FLOWER_PASSWORD=!!!SET CELERY_FLOWER_PASSWORD!!!
{% endif %}

View File

@ -2,7 +2,9 @@
set -o errexit
set -o nounset
set -o xtrace
celery flower -A {{cookiecutter.project_slug}}.taskapp --broker="${CELERY_BROKER_URL}"
celery flower \
--app {{cookiecutter.project_slug}}.taskapp \
--broker="${CELERY_BROKER_URL}" \
--basic_auth="${CELERY_FLOWER_USER}:${CELERY_FLOWER_PASSWORD}"