From ab6ec55a836df73b98a73258e0b3ed55a5299e95 Mon Sep 17 00:00:00 2001 From: David Ormsbee Date: Tue, 3 Apr 2012 12:54:02 -0400 Subject: [PATCH] Convert AWS settings to pull values from JSON files --- envs/aws.py | 63 ++++++++++++++++++++++++++++++++++++++++++++++---- envs/common.py | 4 ---- 2 files changed, 58 insertions(+), 9 deletions(-) diff --git a/envs/aws.py b/envs/aws.py index 138f52c255..45f170e184 100644 --- a/envs/aws.py +++ b/envs/aws.py @@ -1,12 +1,36 @@ +""" +This is the default template for our main set of AWS servers. This does NOT +cover the content machines, which use content.py + +Common traits: +* Use memcached, and cache-backed sessions +* Use a MySQL 5.1 database +""" +import json + from common import * +############################### ALWAYS THE SAME ################################ +DEBUG = False +TEMPLATE_DEBUG = False + EMAIL_BACKEND = 'django_ses.SESBackend' SESSION_ENGINE = 'django.contrib.sessions.backends.cache' DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' -CSRF_COOKIE_DOMAIN = '.mitx.mit.edu' -LIB_URL = 'https://mitxstatic.s3.amazonaws.com/js/' -BOOK_URL = 'https://mitxstatic.s3.amazonaws.com/book_images/' +########################### NON-SECURE ENV CONFIG ############################## +# Things like server locations, ports, etc. +with open(BASE_DIR / "env.json") as env_file: + ENV_TOKENS = json.load(env_file) + +SITE_NAME = ENV_TOKENS['SITE_NAME'] # "extstage.mitx.mit.edu" +CSRF_COOKIE_DOMAIN = ENV_TOKENS['CSRF_COOKIE_DOMAIN'] # '.mitx.mit.edu' + +BOOK_URL = ENV_TOKENS['BOOK_URL'] # 'https://mitxstatic.s3.amazonaws.com/book_images/' +LIB_URL = ENV_TOKENS['LIB_URL'] # 'https://mitxstatic.s3.amazonaws.com/js/' +MEDIA_URL = ENV_TOKENS['MEDIA_URL'] # 'http://s3.amazonaws.com/mitx_askbot_stage/' + +LOG_DIR = ENV_TOKENS['LOG_DIR'] # "/mnt/logs/" CACHES = { 'default': { @@ -14,5 +38,34 @@ CACHES = { } } -DEBUG = False -TEMPLATE_DEBUG = False +CACHES = { + 'default': { + 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', + 'LOCATION': '127.0.0.1:11211', + }, + 'general': { + 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', + 'LOCATION': '127.0.0.1:11211', + 'KEY_PREFIX' : 'general', + 'VERSION' : 5, + } +} + +############################## SECURE AUTH ITEMS ############################### +# Secret things: passwords, access keys, etc. +with open(BASE_DIR / "auth.json") as auth_file: + AUTH_TOKENS = json.load(auth_file) + +AWS_ACCESS_KEY_ID = AUTH_TOKENS["AWS_ACCESS_KEY_ID"] +AWS_SECRET_ACCESS_KEY = AUTH_TOKENS["AWS_SECRET_ACCESS_KEY"] + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.mysql', + 'NAME': 'wwc', + 'USER': 'root', + 'PASSWORD': authtokens["PASSWORD"], + 'HOST': '***REMOVED***', + 'PORT': '3306', + } +} \ No newline at end of file diff --git a/envs/common.py b/envs/common.py index 6b1ebb430d..88e14ec302 100644 --- a/envs/common.py +++ b/envs/common.py @@ -10,10 +10,6 @@ We should make a method that calls all these config methods so that you just make one call at the end of your site-specific dev file to reset all the dependent variables (like INSTALLED_APPS) for you. -IMMEDIATE TODO: -1. Fix logging() -2. - Longer TODO: 1. Right now our treatment of static content in general and in particular course-specific static content is haphazard.