diff --git a/config/settings/base.py b/config/settings/base.py index 220919192487f2e61b1125e9a82515fa2f254a92..539c3179a2111928dfdc9315af2436c61f7ba91f 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -12,10 +12,6 @@ PROJECT_ROOT = join(BASE_DIR, "gracedb") # Other useful paths PROJECT_DATA_DIR = join(BASE_DIR, "..", "project_data") -# Server hostname and FQDN -SERVER_HOSTNAME = socket.gethostname() -SERVER_FQDN = socket.getfqdn() - # Unauthenticated access ------------------------------------------------------ # This variable controls whether unauthenticated access is allowed *ANYWHERE* # on this service, except the home page, which is always public. @@ -68,8 +64,7 @@ USE_TZ = True # Allow this site to be served on localhost, the FQDN of this server, and # hostname.ligo.org. Security measure for preventing cache poisoning and # stopping requests submitted with a fake HTTP Host header. -ALLOWED_HOSTS = ['localhost', '127.0.0.1', SERVER_FQDN, - '{0}.ligo.org'.format(SERVER_HOSTNAME)] +ALLOWED_HOSTS = ['localhost', '127.0.0.1'] # Sessions settings ----------------------------------------------------------- SESSION_COOKIE_AGE = 3600*23 @@ -99,20 +94,6 @@ LVALERT_OVERSEER_PORTS = { "lvalert-test.cgca.uwm.edu": 8001, } -# Email settings -------------------------------------------------------------- -EMAIL_HOST = 'localhost' -SERVER_EMAIL = 'GraceDB <gracedb@{fqdn}>'.format(fqdn=SERVER_FQDN) -ALERT_EMAIL_FROM = SERVER_EMAIL -ALERT_EMAIL_TO = [] -ALERT_EMAIL_BCC = [] -ALERT_TEST_EMAIL_FROM = SERVER_EMAIL -ALERT_TEST_EMAIL_TO = [] -# EMBB email settings -EMBB_MAIL_ADDRESS = 'embb@{fqdn}.ligo.org'.format(fqdn=SERVER_FQDN) -EMBB_SMTP_SERVER = 'localhost' -EMBB_MAIL_ADMINS = [admin[1] for admin in ADMINS] -EMBB_IGNORE_ADDRESSES = ['Mailer-Daemon@{fqdn}'.format(fqdn=SERVER_FQDN)] - # Access and authorization ---------------------------------------------------- # Some proper names related to authorization LVC_GROUP = 'Communities:LSCVirgoLIGOGroupMembers' diff --git a/config/settings/container.py b/config/settings/container.py index 03ff8a9ace9d43a5b39d43a98681061c43e51c5f..778653b06caff910525b7a2977f75b2d7c288802 100644 --- a/config/settings/container.py +++ b/config/settings/container.py @@ -5,6 +5,7 @@ import os from django.core.exceptions import ImproperlyConfigured from .base import * +# Get required variables from environment variables --------------------------- # Get database password from environment and check DB_PASSWORD = os.environ.get('DJANGO_DB_PASSWORD', None) if DB_PASSWORD is None: @@ -15,12 +16,17 @@ SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', None) if SECRET_KEY is None: raise ImproperlyConfigured('Could not get secret key from envvars.') +# Get primary FQDN +SERVER_FQDN = os.environ.get('DJANGO_PRIMARY_FQDN', None) +if SERVER_FQDN is None: + raise ImproperlyConfigured('Could not get FQDN from envvars.') + # Get Twilio account information from environment # FIXME TWILIO_ACCOUNT_SID = os.environ.get('DJANGO_TWILIO_ACCOUNT_SID', 'abcd') TWILIO_AUTH_TOKEN = os.environ.get('DJANGO_TWILIO_AUTH_TOKEN', 'abcd') -# Database settings +# Database settings ----------------------------------------------------------- DATABASES = { 'default' : { 'NAME': 'gracedb', @@ -35,4 +41,22 @@ DATABASES = { } } +# Update allowed hosts from environment variables ----------------------------- +hosts_from_env = os.environ.get('DJANGO_ALLOWED_HOSTS', None) +if hosts_from_env is not None: + ALLOWED_HOSTS += hosts_from_env.split(',') +ALLOWED_HOSTS += [SERVER_FQDN] +# Email settings - dependent on server hostname and FQDN ---------------------- +EMAIL_HOST = 'localhost' +SERVER_EMAIL = 'GraceDB <gracedb@{fqdn}>'.format(fqdn=SERVER_FQDN) +ALERT_EMAIL_FROM = SERVER_EMAIL +ALERT_EMAIL_TO = [] +ALERT_EMAIL_BCC = [] +ALERT_TEST_EMAIL_FROM = SERVER_EMAIL +ALERT_TEST_EMAIL_TO = [] +# EMBB email settings +EMBB_MAIL_ADDRESS = 'embb@{fqdn}.ligo.org'.format(fqdn=SERVER_FQDN) +EMBB_SMTP_SERVER = 'localhost' +EMBB_MAIL_ADMINS = [admin[1] for admin in ADMINS] +EMBB_IGNORE_ADDRESSES = ['Mailer-Daemon@{fqdn}'.format(fqdn=SERVER_FQDN)] diff --git a/config/settings/vm.py b/config/settings/vm.py index 7f823d3de4455771dedaf03d99ebb977834eefc5..cac36987809f666756bd5004fbeb6b0847043a5a 100644 --- a/config/settings/vm.py +++ b/config/settings/vm.py @@ -1,11 +1,12 @@ -# For running a VM that is provisioned by Puppet with -# a secret.py file for secret settings +# For running a VM that is provisioned by Puppet with a secret.py file +# for secret settings # Get secret settings: # DEFAULT_DB_PASSWORD, DEFAULT_SECRET_KEY, TWILIO_ACCOUNT_SID, # TWILIO_AUTH_TOKEN from .base import * from .secret import * +import socket # Nested dict of settings for all databases DATABASES = { @@ -22,3 +23,23 @@ DATABASES = { # Secret key for a Django installation SECRET_KEY = DEFAULT_SECRET_KEY + +# Set up allowed hosts +SERVER_FQDN = socket.getfqdn() +SERVER_HOSTNAME = socket.gethostname() +ALLOWED_HOSTS += [SERVER_FQDN, '{hostname}.ligo.org'.format( + hostname=SERVER_HOSTNAME)] + +# Email settings - dependent on server hostname and FQDN ---------------------- +EMAIL_HOST = 'localhost' +SERVER_EMAIL = 'GraceDB <gracedb@{fqdn}>'.format(fqdn=SERVER_FQDN) +ALERT_EMAIL_FROM = SERVER_EMAIL +ALERT_EMAIL_TO = [] +ALERT_EMAIL_BCC = [] +ALERT_TEST_EMAIL_FROM = SERVER_EMAIL +ALERT_TEST_EMAIL_TO = [] +# EMBB email settings +EMBB_MAIL_ADDRESS = 'embb@{fqdn}.ligo.org'.format(fqdn=SERVER_FQDN) +EMBB_SMTP_SERVER = 'localhost' +EMBB_MAIL_ADMINS = [admin[1] for admin in ADMINS] +EMBB_IGNORE_ADDRESSES = ['Mailer-Daemon@{fqdn}'.format(fqdn=SERVER_FQDN)]