blob: e13e84d5ae88d419a121e6ed35565ad102a132e3 [file] [log] [blame]
Dennis Jeffreyb95ba5a2012-11-12 17:55:18 -08001"""Django settings for frontend project.
Jakob Juelich8a764d12014-10-14 19:24:21 -07002
3Two databases are configured for the use with django here. One for tko tables,
4which will always be the same database for all instances (the global database),
5and one for everything else, which will be the same as the global database for
6the master, but a local database for shards.
7Additionally there is a third database connection for read only access to the
8global database.
9
10This is implemented using a Django database router.
11For more details on how the routing works, see db_router.py.
Dennis Jeffreyb95ba5a2012-11-12 17:55:18 -080012"""
mblighe8819cd2008-02-15 16:48:40 +000013
mbligh437c3a62008-04-07 00:42:57 +000014import common
15from autotest_lib.client.common_lib import global_config
Jakob Juelich934f0dc2014-10-14 18:21:13 -070016from autotest_lib.frontend import database_settings_helper
showardfa7ef632008-03-26 00:02:30 +000017
Dale Curtis74a314b2011-06-23 14:55:46 -070018c = global_config.global_config
19_section = 'AUTOTEST_WEB'
20
21DEBUG = c.get_config_value(_section, "sql_debug_mode", type=bool, default=False)
22TEMPLATE_DEBUG = c.get_config_value(_section, "template_debug_mode", type=bool,
23 default=False)
mblighe8819cd2008-02-15 16:48:40 +000024
25FULL_ADMIN = False
26
27ADMINS = (
28 # ('Your Name', 'your_email@domain.com'),
29)
30
31MANAGERS = ADMINS
32
Jakob Juelich934f0dc2014-10-14 18:21:13 -070033AUTOTEST_DEFAULT = database_settings_helper.get_default_db_config()
Jakob Juelich7bef8412014-10-14 19:11:54 -070034AUTOTEST_GLOBAL = database_settings_helper.get_global_db_config()
35AUTOTEST_READONLY = database_settings_helper.get_readonly_db_config()
Dan Shi9a535c92014-11-24 08:52:40 -080036AUTOTEST_SERVER = database_settings_helper.get_server_db_config()
Alex Miller47d61282013-04-17 13:53:58 -070037
38ALLOWED_HOSTS = '*'
showard09096d82008-07-07 23:20:49 +000039
Jakob Juelich7bef8412014-10-14 19:11:54 -070040DATABASES = {'default': AUTOTEST_DEFAULT,
Jakob Juelich8a764d12014-10-14 19:24:21 -070041 'global': AUTOTEST_GLOBAL,
Dan Shi9a535c92014-11-24 08:52:40 -080042 'readonly': AUTOTEST_READONLY,
43 'server': AUTOTEST_SERVER,}
Mike Truty3536b982011-08-29 13:05:16 -070044
Jakob Juelich934f0dc2014-10-14 18:21:13 -070045# Have to set SECRET_KEY before importing connections because of this bug:
46# https://code.djangoproject.com/ticket/20704
47# TODO: Order this again after an upgrade to Django 1.6 or higher.
48# Make this unique, and don't share it with anybody.
49SECRET_KEY = 'pn-t15u(epetamdflb%dqaaxw+5u&2#0u-jah70w1l*_9*)=n7'
mblighe8819cd2008-02-15 16:48:40 +000050
Jakob Juelich8a764d12014-10-14 19:24:21 -070051# Do not do this here or from the router, or most unit tests will fail.
52# from django.db import connection
53
54DATABASE_ROUTERS = ['autotest_lib.frontend.db_router.Router']
55
mblighe8819cd2008-02-15 16:48:40 +000056# prefix applied to all URLs - useful if requests are coming through apache,
57# and you need this app to coexist with others
58URL_PREFIX = 'afe/server/'
showard250d84d2010-01-12 21:59:48 +000059TKO_URL_PREFIX = 'new_tko/server/'
mblighe8819cd2008-02-15 16:48:40 +000060
61# Local time zone for this installation. Choices can be found here:
62# http://www.postgresql.org/docs/8.1/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE
63# although not all variations may be possible on all operating systems.
64# If running in a Windows environment this must be set to the same as your
65# system time zone.
66TIME_ZONE = 'America/Los_Angeles'
67
68# Language code for this installation. All choices can be found here:
69# http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes
70# http://blogs.law.harvard.edu/tech/stories/storyReader$15
71LANGUAGE_CODE = 'en-us'
72
73SITE_ID = 1
74
75# If you set this to False, Django will make some optimizations so as not
76# to load the internationalization machinery.
77USE_I18N = True
78
79# Absolute path to the directory that holds media.
80# Example: "/home/media/media.lawrence.com/"
81MEDIA_ROOT = ''
82
83# URL that handles the media served from MEDIA_ROOT.
84# Example: "http://media.lawrence.com"
85MEDIA_URL = ''
86
Jiaxi Luoc342f9f2014-05-19 16:22:03 -070087# URL prefix of static file. Only used by the admin interface.
88STATIC_URL = '/' + URL_PREFIX + 'admin/'
89
mblighe8819cd2008-02-15 16:48:40 +000090# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
91# trailing slash.
92# Examples: "http://foo.com/media/", "/media/".
93ADMIN_MEDIA_PREFIX = '/media/'
94
mblighe8819cd2008-02-15 16:48:40 +000095# List of callables that know how to import templates from various sources.
96TEMPLATE_LOADERS = (
Mike Trutyf5814ba2011-08-29 18:27:46 -070097 'django.template.loaders.filesystem.Loader',
98 'django.template.loaders.app_directories.Loader',
99# 'django.template.loaders.eggs.Loader',
mblighe8819cd2008-02-15 16:48:40 +0000100)
101
102MIDDLEWARE_CLASSES = (
103 'django.middleware.common.CommonMiddleware',
104 'django.contrib.sessions.middleware.SessionMiddleware',
105 'frontend.apache_auth.ApacheAuthMiddleware',
106 'django.contrib.auth.middleware.AuthenticationMiddleware',
107 'django.middleware.doc.XViewMiddleware',
Jiaxi Luo76a11d32014-05-08 19:03:28 -0700108 'django.contrib.messages.middleware.MessageMiddleware',
mblighe8819cd2008-02-15 16:48:40 +0000109)
110
111ROOT_URLCONF = 'frontend.urls'
112
mblighe8819cd2008-02-15 16:48:40 +0000113INSTALLED_APPS = (
114 'frontend.afe',
showard250d84d2010-01-12 21:59:48 +0000115 'frontend.tko',
mblighe8819cd2008-02-15 16:48:40 +0000116 'django.contrib.admin',
117 'django.contrib.auth',
118 'django.contrib.contenttypes',
119 'django.contrib.sessions',
120 'django.contrib.sites',
121)
122
mblighe8819cd2008-02-15 16:48:40 +0000123AUTHENTICATION_BACKENDS = (
124 'frontend.apache_auth.SimpleAuthBackend',
125)
Scott Zawalski38428ef2012-07-10 15:29:10 -0400126# TODO(scottz): Temporary addition until time can be spent untangling middleware
127# session crosbug.com/31608
128SESSION_COOKIE_AGE = 1200
Aviv Keshet62cf0472013-05-04 22:40:17 -0700129
Dan Shi9a535c92014-11-24 08:52:40 -0800130AUTOTEST_CREATE_ADMIN_GROUPS = True