From 251760300905493108e9f9a7ae5894459d163499 Mon Sep 17 00:00:00 2001 From: Rahul Gupta Date: Tue, 29 Nov 2022 09:20:48 -0800 Subject: [PATCH] Update naming, add link --- cookiecutter.json | 2 +- docs/project-generation-options.rst | 3 ++- docs/settings.rst | 4 ++-- hooks/pre_gen_project.py | 14 ++--------- tests/test_cookiecutter_generation.py | 24 +++++++++---------- .../.envs/.production/.django | 8 +++---- .../config/settings/production.py | 12 +++++----- .../requirements/production.txt | 2 +- .../utils/storages.py | 2 +- 9 files changed, 31 insertions(+), 40 deletions(-) diff --git a/cookiecutter.json b/cookiecutter.json index 9844e7121..970411013 100644 --- a/cookiecutter.json +++ b/cookiecutter.json @@ -27,7 +27,7 @@ "cloud_provider": [ "AWS", "GCP", - "AZURE", + "Azure", "None" ], "mail_service": [ diff --git a/docs/project-generation-options.rst b/docs/project-generation-options.rst index 67c68fa4a..0560badd3 100644 --- a/docs/project-generation-options.rst +++ b/docs/project-generation-options.rst @@ -66,7 +66,7 @@ cloud_provider: 1. AWS_ 2. GCP_ - 3. AZURE_ + 3. Azure_ 4. None Note that if you choose no cloud provider, media files won't work. @@ -148,6 +148,7 @@ debug: .. _AWS: https://aws.amazon.com/s3/ .. _GCP: https://cloud.google.com/storage/ +.. _Azure: https://azure.microsoft.com/en-us/products/storage/blobs/ .. _Amazon SES: https://aws.amazon.com/ses/ .. _Mailgun: https://www.mailgun.com diff --git a/docs/settings.rst b/docs/settings.rst index 0f35495ce..4691adbbd 100644 --- a/docs/settings.rst +++ b/docs/settings.rst @@ -49,8 +49,8 @@ DJANGO_AWS_S3_CUSTOM_DOMAIN AWS_S3_CUSTOM_DOMAIN n/a DJANGO_AWS_S3_MAX_MEMORY_SIZE AWS_S3_MAX_MEMORY_SIZE n/a 100_000_000 DJANGO_GCP_STORAGE_BUCKET_NAME GS_BUCKET_NAME n/a raises error GOOGLE_APPLICATION_CREDENTIALS n/a n/a raises error -DJANGO_AZURE_STORAGE_ACCOUNT_KEY AZURE_ACCOUNT_KEY n/a raises error -DJANGO_AZURE_STORAGE_ACCOUNT_NAME AZURE_ACCOUNT_NAME n/a raises error +DJANGO_AZURE_ACCOUNT_KEY AZURE_ACCOUNT_KEY n/a raises error +DJANGO_AZURE_ACCOUNT_NAME AZURE_ACCOUNT_NAME n/a raises error DJANGO_AZURE_CONTAINER_NAME AZURE_CONTAINER n/a raises error SENTRY_DSN SENTRY_DSN n/a raises error SENTRY_ENVIRONMENT n/a n/a production diff --git a/hooks/pre_gen_project.py b/hooks/pre_gen_project.py index 527e74f50..c3eef1e43 100644 --- a/hooks/pre_gen_project.py +++ b/hooks/pre_gen_project.py @@ -72,18 +72,8 @@ if ( sys.exit(1) if ( - ( - "{{ cookiecutter.cloud_provider }}" == "GCP" - and "{{ cookiecutter.mail_service }}" == "Amazon SES" - ) - or ( - "{{ cookiecutter.cloud_provider }}" == "AZURE" - and "{{ cookiecutter.mail_service }}" == "Amazon SES" - ) - or ( - "{{ cookiecutter.cloud_provider }}" == "None" - and "{{ cookiecutter.mail_service }}" == "Amazon SES" - ) + "{{ cookiecutter.mail_service }}" == "Amazon SES" + and "{{ cookiecutter.cloud_provider }}" != "AWS" ): print( "You should either use AWS or select a different " diff --git a/tests/test_cookiecutter_generation.py b/tests/test_cookiecutter_generation.py index f4ff14c3c..6219f75ef 100755 --- a/tests/test_cookiecutter_generation.py +++ b/tests/test_cookiecutter_generation.py @@ -56,8 +56,8 @@ SUPPORTED_COMBINATIONS = [ {"cloud_provider": "AWS", "use_whitenoise": "n"}, {"cloud_provider": "GCP", "use_whitenoise": "y"}, {"cloud_provider": "GCP", "use_whitenoise": "n"}, - {"cloud_provider": "AZURE", "use_whitenoise": "y"}, - {"cloud_provider": "AZURE", "use_whitenoise": "n"}, + {"cloud_provider": "Azure", "use_whitenoise": "y"}, + {"cloud_provider": "Azure", "use_whitenoise": "n"}, {"cloud_provider": "None", "use_whitenoise": "y", "mail_service": "Mailgun"}, {"cloud_provider": "None", "use_whitenoise": "y", "mail_service": "Mailjet"}, {"cloud_provider": "None", "use_whitenoise": "y", "mail_service": "Mandrill"}, @@ -84,15 +84,15 @@ SUPPORTED_COMBINATIONS = [ {"cloud_provider": "GCP", "mail_service": "SendinBlue"}, {"cloud_provider": "GCP", "mail_service": "SparkPost"}, {"cloud_provider": "GCP", "mail_service": "Other SMTP"}, - {"cloud_provider": "AZURE", "mail_service": "Mailgun"}, - {"cloud_provider": "AZURE", "mail_service": "Mailjet"}, - {"cloud_provider": "AZURE", "mail_service": "Mandrill"}, - {"cloud_provider": "AZURE", "mail_service": "Postmark"}, - {"cloud_provider": "AZURE", "mail_service": "Sendgrid"}, - {"cloud_provider": "AZURE", "mail_service": "SendinBlue"}, - {"cloud_provider": "AZURE", "mail_service": "SparkPost"}, - {"cloud_provider": "AZURE", "mail_service": "Other SMTP"}, - # Note: cloud_providers GCP, AZURE, and None + {"cloud_provider": "Azure", "mail_service": "Mailgun"}, + {"cloud_provider": "Azure", "mail_service": "Mailjet"}, + {"cloud_provider": "Azure", "mail_service": "Mandrill"}, + {"cloud_provider": "Azure", "mail_service": "Postmark"}, + {"cloud_provider": "Azure", "mail_service": "Sendgrid"}, + {"cloud_provider": "Azure", "mail_service": "SendinBlue"}, + {"cloud_provider": "Azure", "mail_service": "SparkPost"}, + {"cloud_provider": "Azure", "mail_service": "Other SMTP"}, + # Note: cloud_providers GCP, Azure, and None # with mail_service Amazon SES is not supported {"use_async": "y"}, {"use_async": "n"}, @@ -124,7 +124,7 @@ SUPPORTED_COMBINATIONS = [ UNSUPPORTED_COMBINATIONS = [ {"cloud_provider": "None", "use_whitenoise": "n"}, {"cloud_provider": "GCP", "mail_service": "Amazon SES"}, - {"cloud_provider": "AZURE", "mail_service": "Amazon SES"}, + {"cloud_provider": "Azure", "mail_service": "Amazon SES"}, {"cloud_provider": "None", "mail_service": "Amazon SES"}, ] diff --git a/{{cookiecutter.project_slug}}/.envs/.production/.django b/{{cookiecutter.project_slug}}/.envs/.production/.django index 8eb9b38bf..ad652c9ad 100644 --- a/{{cookiecutter.project_slug}}/.envs/.production/.django +++ b/{{cookiecutter.project_slug}}/.envs/.production/.django @@ -44,11 +44,11 @@ DJANGO_AWS_STORAGE_BUCKET_NAME= # ------------------------------------------------------------------------------ GOOGLE_APPLICATION_CREDENTIALS= DJANGO_GCP_STORAGE_BUCKET_NAME= -{% elif cookiecutter.cloud_provider == 'AZURE' %} -# AZURE +{% elif cookiecutter.cloud_provider == 'Azure' %} +# Azure # ------------------------------------------------------------------------------ -DJANGO_AZURE_STORAGE_ACCOUNT_KEY= -DJANGO_AZURE_STORAGE_ACCOUNT_NAME= +DJANGO_AZURE_ACCOUNT_KEY= +DJANGO_AZURE_ACCOUNT_NAME= DJANGO_AZURE_CONTAINER_NAME= {% endif %} # django-allauth diff --git a/{{cookiecutter.project_slug}}/config/settings/production.py b/{{cookiecutter.project_slug}}/config/settings/production.py index 308eecd5b..40d3f19cc 100644 --- a/{{cookiecutter.project_slug}}/config/settings/production.py +++ b/{{cookiecutter.project_slug}}/config/settings/production.py @@ -100,9 +100,9 @@ aws_s3_domain = AWS_S3_CUSTOM_DOMAIN or f"{AWS_STORAGE_BUCKET_NAME}.s3.amazonaws {% elif cookiecutter.cloud_provider == 'GCP' %} GS_BUCKET_NAME = env("DJANGO_GCP_STORAGE_BUCKET_NAME") GS_DEFAULT_ACL = "publicRead" -{% elif cookiecutter.cloud_provider == 'AZURE' %} -AZURE_ACCOUNT_KEY = env("DJANGO_AZURE_STORAGE_ACCOUNT_KEY") -AZURE_ACCOUNT_NAME = env("DJANGO_AZURE_STORAGE_ACCOUNT_NAME") +{% elif cookiecutter.cloud_provider == 'Azure' %} +AZURE_ACCOUNT_KEY = env("DJANGO_AZURE_ACCOUNT_KEY") +AZURE_ACCOUNT_NAME = env("DJANGO_AZURE_ACCOUNT_NAME") AZURE_CONTAINER = env("DJANGO_AZURE_CONTAINER_NAME") {% endif -%} @@ -120,7 +120,7 @@ STATIC_URL = f"https://{aws_s3_domain}/static/" STATICFILES_STORAGE = "{{cookiecutter.project_slug}}.utils.storages.StaticRootGoogleCloudStorage" COLLECTFAST_STRATEGY = "collectfast.strategies.gcloud.GoogleCloudStrategy" STATIC_URL = f"https://storage.googleapis.com/{GS_BUCKET_NAME}/static/" -{% elif cookiecutter.cloud_provider == 'AZURE' -%} +{% elif cookiecutter.cloud_provider == 'Azure' -%} STATICFILES_STORAGE = "{{cookiecutter.project_slug}}.utils.storages.StaticRootAzureStorage" STATIC_URL = f"https://{AZURE_ACCOUNT_NAME}.blob.core.windows.net/static/" {% endif -%} @@ -133,7 +133,7 @@ MEDIA_URL = f"https://{aws_s3_domain}/media/" {%- elif cookiecutter.cloud_provider == 'GCP' %} DEFAULT_FILE_STORAGE = "{{cookiecutter.project_slug}}.utils.storages.MediaRootGoogleCloudStorage" MEDIA_URL = f"https://storage.googleapis.com/{GS_BUCKET_NAME}/media/" -{%- elif cookiecutter.cloud_provider == 'AZURE' %} +{%- elif cookiecutter.cloud_provider == 'Azure' %} DEFAULT_FILE_STORAGE = "{{cookiecutter.project_slug}}.utils.storages.MediaRootAzureStorage" MEDIA_URL = f"https://{AZURE_ACCOUNT_NAME}.blob.core.windows.net/media/" {%- endif %} @@ -238,7 +238,7 @@ COMPRESS_ENABLED = env.bool("COMPRESS_ENABLED", default=True) {%- if cookiecutter.cloud_provider == 'None' %} # https://django-compressor.readthedocs.io/en/latest/settings/#django.conf.settings.COMPRESS_STORAGE COMPRESS_STORAGE = "compressor.storage.GzipCompressorFileStorage" -{%- elif cookiecutter.cloud_provider in ('AWS', 'GCP', 'AZURE') and cookiecutter.use_whitenoise == 'n' %} +{%- elif cookiecutter.cloud_provider in ('AWS', 'GCP', 'Azure') and cookiecutter.use_whitenoise == 'n' %} # https://django-compressor.readthedocs.io/en/latest/settings/#django.conf.settings.COMPRESS_STORAGE COMPRESS_STORAGE = STATICFILES_STORAGE {%- endif %} diff --git a/{{cookiecutter.project_slug}}/requirements/production.txt b/{{cookiecutter.project_slug}}/requirements/production.txt index fbaaaaec1..c9b5b88a7 100644 --- a/{{cookiecutter.project_slug}}/requirements/production.txt +++ b/{{cookiecutter.project_slug}}/requirements/production.txt @@ -20,7 +20,7 @@ hiredis==2.0.0 # https://github.com/redis/hiredis-py django-storages[boto3]==1.13.1 # https://github.com/jschneier/django-storages {%- elif cookiecutter.cloud_provider == 'GCP' %} django-storages[google]==1.13.1 # https://github.com/jschneier/django-storages -{%- elif cookiecutter.cloud_provider == 'AZURE' %} +{%- elif cookiecutter.cloud_provider == 'Azure' %} django-storages[azure]==1.13.1 # https://github.com/jschneier/django-storages {%- endif %} {%- if cookiecutter.mail_service == 'Mailgun' %} diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/utils/storages.py b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/utils/storages.py index 25db7011a..27595ad1a 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/utils/storages.py +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/utils/storages.py @@ -22,7 +22,7 @@ class StaticRootGoogleCloudStorage(GoogleCloudStorage): class MediaRootGoogleCloudStorage(GoogleCloudStorage): location = "media" file_overwrite = False -{%- elif cookiecutter.cloud_provider == 'AZURE' -%} +{%- elif cookiecutter.cloud_provider == 'Azure' -%} from storages.backends.azure_storage import AzureStorage