| # Copyright 2017-present Open Networking Foundation |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| |
| from django import VERSION as DJANGO_VERSION |
| import os |
| import warnings |
| |
| # Initializing xosconfig module |
| from xosconfig import Config |
| from xosconfig.config import INITIALIZED as CONFIG_INITIALIZED |
| |
| # this really shouldn't be called from settings.py. |
| if not CONFIG_INITIALIZED: |
| Config.init() |
| |
| GEOIP_PATH = "/usr/share/GeoIP" |
| XOS_DIR = Config.get("xos_dir") |
| |
| DEBUG = True |
| TEMPLATE_DEBUG = DEBUG |
| |
| # Enable CORS requests, needed to enable layered XOS |
| CORS_ORIGIN_ALLOW_ALL = True |
| |
| ADMINS = ( |
| # ('Your Name', 'your_email@example.com'), |
| ) |
| |
| # LOGIN_REDIRECT_URL = '/admin/core/user' |
| LOGIN_REDIRECT_URL = "/admin/loggedin/" |
| |
| MANAGERS = ADMINS |
| |
| DB = { |
| "ENGINE": "django.db.backends.postgresql_psycopg2", |
| "NAME": Config.get("database.name"), |
| "USER": Config.get("database.username"), |
| "PASSWORD": Config.get("database.password"), |
| "HOST": "xos-db", |
| "PORT": 5432, |
| } |
| |
| if "MIGRATIONS" in os.environ and os.environ["MIGRATIONS"] == "true": |
| DB = { |
| 'ENGINE': 'django.db.backends.dummy', |
| } |
| |
| DATABASES = { |
| 'default': DB |
| } |
| |
| AUTH_USER_MODEL = "core.User" |
| |
| # Hosts/domain names that are valid for this site; required if DEBUG is False |
| # See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts |
| ALLOWED_HOSTS = ["*"] |
| |
| # Local time zone for this installation. Choices can be found here: |
| # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name |
| # although not all choices may be available on all operating systems. |
| # In a Windows environment this must be set to your system time zone. |
| TIME_ZONE = "America/New_York" |
| |
| # Verbose warnings when a naive datetime is used, gives a traceback |
| # from: https://docs.djangoproject.com/en/1.9/topics/i18n/timezones/#code |
| warnings.filterwarnings( |
| "error", |
| r"DateTimeField .* received a naive datetime", |
| RuntimeWarning, |
| r"django\.db\.models\.fields", |
| ) |
| |
| # Language code for this installation. All choices can be found here: |
| # http://www.i18nguy.com/unicode/language-identifiers.html |
| LANGUAGE_CODE = "en-us" |
| |
| SITE_ID = 1 |
| |
| # If you set this to False, Django will make some optimizations so as not |
| # to load the internationalization machinery. |
| USE_I18N = True |
| |
| # If you set this to False, Django will not format dates, numbers and |
| # calendars according to the current locale. |
| USE_L10N = True |
| |
| # If you set this to False, Django will not use timezone-aware datetimes. |
| USE_TZ = True |
| |
| # Absolute filesystem path to the directory that will hold user-uploaded files. |
| # Example: "/var/www/example.com/media/" |
| MEDIA_ROOT = "/var/www/html/files/" |
| |
| # URL that handles the media served from MEDIA_ROOT. Make sure to use a |
| # trailing slash. |
| # Examples: "http://example.com/media/", "http://media.example.com/" |
| MEDIA_URL = "/files/" |
| |
| # Absolute path to the directory static files should be collected to. |
| # Don't put anything in this directory yourself; store your static files |
| # in apps' "static/" subdirectories and in STATICFILES_DIRS. |
| # Example: "/var/www/example.com/static/" |
| STATIC_ROOT = "" |
| |
| # URL prefix for static files. |
| # Example: "http://example.com/static/", "http://static.example.com/" |
| STATIC_URL = "/static/" |
| |
| # Additional locations of static files |
| STATICFILES_DIRS = (XOS_DIR + "/core/static/", XOS_DIR + "/core/xoslib/static/") |
| |
| # List of finder classes that know how to find static files in |
| # various locations. |
| STATICFILES_FINDERS = ( |
| "django.contrib.staticfiles.finders.FileSystemFinder", |
| "django.contrib.staticfiles.finders.AppDirectoriesFinder", |
| # 'django.contrib.staticfiles.finders.DefaultStorageFinder', |
| ) |
| |
| # Make this unique, and don't share it with anybody. |
| SECRET_KEY = "i0=a)c7_#2)5m%k_fu#%53xap$tlqc+#&z5as+bl7&)(@be_f9" |
| |
| # List of callables that know how to import templates from various sources. |
| TEMPLATE_LOADERS = ( |
| "django.template.loaders.filesystem.Loader", |
| "django.template.loaders.app_directories.Loader", |
| # 'django.template.loaders.eggs.Loader', |
| ) |
| |
| MIDDLEWARE_CLASSES = ( |
| "django.middleware.common.CommonMiddleware", |
| "django.contrib.sessions.middleware.SessionMiddleware", |
| "django.middleware.csrf.CsrfViewMiddleware", |
| "django.contrib.auth.middleware.AuthenticationMiddleware", |
| "django.contrib.messages.middleware.MessageMiddleware", |
| "core.middleware.GlobalRequestMiddleware", |
| # Uncomment the next line for simple clickjacking protection: |
| # 'django.middleware.clickjacking.XFrameOptionsMiddleware', |
| ) |
| |
| ROOT_URLCONF = "xos.urls" |
| |
| # Python dotted path to the WSGI application used by Django's runserver. |
| WSGI_APPLICATION = "xos.wsgi.application" |
| # Default: 'csrftoken' |
| CSRF_COOKIE_NAME = "xoscsrftoken" |
| # Default: 'django_language' |
| LANGUAGE_COOKIE_NAME = "xos_django_language" |
| # Default: 'sessionid' |
| SESSION_COOKIE_NAME = "xossessionid" |
| |
| TEMPLATE_DIRS = ( |
| # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". |
| # Always use forward slashes, even on Windows. |
| # Don't forget to use absolute paths, not relative paths. |
| XOS_DIR + "/templates", |
| # XOS_DIR + "/core/xoslib/templates", |
| ) |
| |
| INSTALLED_APPS = ( |
| "django.contrib.auth", |
| "django.contrib.contenttypes", |
| "django.contrib.sessions", |
| "django.contrib.messages", |
| "django_extensions", |
| "core", |
| ) |
| |
| # add services that were configured by xosbuilder to INSTALLED_APPS |
| if os.path.exists("/opt/xos/xos/xosbuilder_app_list"): |
| for line in file("/opt/xos/xos/xosbuilder_app_list").readlines(): |
| line = line.strip() |
| if line: |
| INSTALLED_APPS = list(INSTALLED_APPS) + [line] |
| |
| # add services that needs to be migrated to INSTALLED_APPS |
| # this is used by xos-migrate.py |
| if "INSTALLED_APPS" in os.environ: |
| apps = os.environ["INSTALLED_APPS"].split(',') |
| for app in apps: |
| INSTALLED_APPS = list(INSTALLED_APPS) + [app] |
| |
| # A sample logging configuration. The only tangible logging |
| # performed by this configuration is to send an email to |
| # the site admins on every HTTP 500 error when DEBUG=False. |
| # See http://docs.djangoproject.com/en/dev/topics/logging for |
| # more details on how to customize your logging configuration. |
| LOG_FILE = "/var/log/django_debug.log" |
| if "LOG_FILE" in os.environ: |
| LOG_FILE = os.environ["LOG_FILE"] |
| LOGGING = { |
| "version": 1, |
| "disable_existing_loggers": False, |
| "filters": {"require_debug_false": {"()": "django.utils.log.RequireDebugFalse"}}, |
| "handlers": { |
| "file": { |
| "level": "DEBUG", |
| "class": "logging.FileHandler", |
| "filename": LOG_FILE, |
| }, |
| "mail_admins": { |
| "level": "ERROR", |
| "filters": ["require_debug_false"], |
| "class": "django.utils.log.AdminEmailHandler", |
| }, |
| }, |
| "loggers": { |
| "django": {"handlers": ["file"], "level": "DEBUG", "propagate": True}, |
| "django.request": { |
| "handlers": ["mail_admins"], |
| "level": "ERROR", |
| "propagate": True, |
| }, |
| "django.db.backends": {"level": "WARNING"}, |
| }, |
| } |
| |
| XOS_BRANDING_NAME = "OpenCloud" |
| XOS_BRANDING_CSS = None |
| XOS_BRANDING_ICON = "/static/logo.png" |
| XOS_BRANDING_FAVICON = "/static/favicon.png" |
| XOS_BRANDING_BG = "/static/bg.png" |
| |
| DISABLE_MINIDASHBOARD = False |
| ENCRYPTED_FIELDS_KEYDIR = XOS_DIR + "/private_keys" |
| ENCRYPTED_FIELD_MODE = "ENCRYPT" |
| |
| STATISTICS_DRIVER = "statistics_driver" |
| |
| # prevents warnings on django 1.7 |
| TEST_RUNNER = "django.test.runner.DiscoverRunner" |
| |
| # API key for Google Maps, created by zdw on 2016-06-29. Testing only, not for production |
| GEOPOSITION_GOOGLE_MAPS_API_KEY = "AIzaSyBWAHP9mvLqWLRkVqK8o5wMskaIe9w7DaM" |