1"""Django settings for frontend project.
2
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.
12"""
13
14import common
15from autotest_lib.client.common_lib import global_config
16from autotest_lib.frontend import database_settings_helper
17
18c = 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)
24
25FULL_ADMIN = False
26
27ADMINS = (
28    # ('Your Name', 'your_email@domain.com'),
29)
30
31MANAGERS = ADMINS
32
33AUTOTEST_DEFAULT = database_settings_helper.get_default_db_config()
34AUTOTEST_GLOBAL = database_settings_helper.get_global_db_config()
35AUTOTEST_READONLY = database_settings_helper.get_readonly_db_config()
36AUTOTEST_SERVER = database_settings_helper.get_server_db_config()
37
38ALLOWED_HOSTS = '*'
39
40DATABASES = {'default': AUTOTEST_DEFAULT,
41             'global': AUTOTEST_GLOBAL,
42             'readonly': AUTOTEST_READONLY,
43             'server': AUTOTEST_SERVER,}
44
45# 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'
50
51# 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
56# 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/'
59TKO_URL_PREFIX = 'new_tko/server/'
60
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
87# URL prefix of static file. Only used by the admin interface.
88STATIC_URL = '/' + URL_PREFIX + 'admin/'
89
90# 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
95# List of callables that know how to import templates from various sources.
96TEMPLATE_LOADERS = (
97    'django.template.loaders.filesystem.Loader',
98    'django.template.loaders.app_directories.Loader',
99#     'django.template.loaders.eggs.Loader',
100)
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',
108    'django.contrib.messages.middleware.MessageMiddleware',
109    'frontend.shared.json_html_formatter.JsonToHtmlMiddleware',
110)
111
112ROOT_URLCONF = 'frontend.urls'
113
114INSTALLED_APPS = (
115    'frontend.afe',
116    'frontend.tko',
117    'django.contrib.admin',
118    'django.contrib.auth',
119    'django.contrib.contenttypes',
120    'django.contrib.sessions',
121    'django.contrib.sites',
122)
123
124AUTHENTICATION_BACKENDS = (
125    'frontend.apache_auth.SimpleAuthBackend',
126)
127# TODO(scottz): Temporary addition until time can be spent untangling middleware
128# session crosbug.com/31608
129SESSION_COOKIE_AGE = 1200
130
131AUTOTEST_CREATE_ADMIN_GROUPS = True
132