+from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP
+from django import VERSION as DJANGO_VERSION
+
# Django settings for planetstack project.
+from config import Config
+config = Config()
+GEOIP_PATH = "/usr/share/GeoIP"
+
DEBUG = True
TEMPLATE_DEBUG = DEBUG
# ('Your Name', 'your_email@example.com'),
)
+LOGIN_REDIRECT_URL = '/admin/core/user'
+
MANAGERS = ADMINS
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
- 'NAME': 'planetstack', # Or path to database file if using sqlite3.
+ 'NAME': config.db_name, # Or path to database file if using sqlite3.
# The following settings are not used with sqlite3:
- 'USER': 'postgres',
- 'PASSWORD': 'admin',
- 'HOST': 'localhost', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
+ 'USER': config.db_user,
+ 'PASSWORD': config.db_password,
+ 'HOST': config.db_host, # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
'PORT': '', # Set to empty string for default.
}
}
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 = []
# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/var/www/example.com/media/"
-MEDIA_ROOT = ''
+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 = ''
+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
STATIC_URL = '/static/'
# Additional locations of static files
-STATICFILES_DIRS = (
+STATICFILES_DIRS = ( "/opt/planetstack/core/static/",
+ "/opt/planetstack/core/xoslib/static/",
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
'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',
)
# 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.
- "/opt/planetstack/templates"
+ "/opt/planetstack/templates",
+ "/opt/planetstack/core/xoslib/templates",
)
INSTALLED_APPS = (
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
+ 'suit',
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
'django.contrib.admindocs',
'rest_framework',
'django_extensions',
- 'core',
'django_evolution',
+ 'core',
+ 'hpc',
+ 'requestrouter',
+ 'cassandra',
+ 'kairos',
+ 'nagios',
+# 'urlfilter',
+ 'servcomp',
+ 'syndicate_storage',
+ 'geoposition',
)
+if DJANGO_VERSION[1]>=7:
+ # if django >= 1.7, then remove evolution and change the admin module
+ INSTALLED_APPS = list(INSTALLED_APPS)
+ INSTALLED_APPS[INSTALLED_APPS.index('django.contrib.admin')] = 'django.contrib.admin.apps.SimpleAdminConfig'
+ INSTALLED_APPS.remove('django_evolution')
+ INSTALLED_APPS = tuple(INSTALLED_APPS)
+
+# Added for django-suit form
+TEMPLATE_CONTEXT_PROCESSORS = TCP + (
+ 'django.core.context_processors.request',
+ 'core.context_processors.planetstack',
+)
+
+# Django Suit configuration example
+SUIT_CONFIG = {
+ # header
+ 'ADMIN_NAME': 'OpenCloud',
+ # 'HEADER_DATE_FORMAT': 'l, j. F Y',
+ # 'HEADER_TIME_FORMAT': 'H:i',
+
+ # forms
+ #'SHOW_REQUIRED_ASTERISK': True, # Default True
+ 'CONFIRM_UNSAVED_CHANGES': True, # Default True
+
+ # menu
+ # 'SEARCH_URL': '/admin/auth/user/',
+ # 'MENU_ICONS': {
+ # 'sites': 'icon-leaf',
+ # 'auth': 'icon-lock',
+ # },
+ # 'MENU_OPEN_FIRST_CHILD': True, # Default True
+ 'MENU_EXCLUDE': (
+ 'auth.group',
+ 'auth',
+ 'core.network',
+ 'core.sliver',
+ 'core.node',
+ 'core.image',
+ 'core.deploymentrole',
+ 'core.siterole',
+ 'core.slicerole',
+ 'core.planetstackrole',
+ 'core.networktemplate',
+ 'core.networkparametertype',
+ 'core.router',
+ 'core.tag',
+ 'core.account',
+ 'core.invoice',
+ 'core.serviceclass',
+ ),
+ 'MENU': (
+ #{'app': 'core', 'icon':'icon-lock'},
+ #{'app': 'core', 'icon': 'icon-lock', 'models': ('core.site', 'core.deployment', 'core.service', 'core.slice', 'core.user', 'core.reservation', 'core.account', 'core.invoice', 'core.payment', 'core.usableobject')},
+ {'label': 'Deployments', 'icon':'icon-deployment', 'url': '/admin/core/deployment/'},
+ {'label': 'Sites', 'icon':'icon-site', 'url': '/admin/core/site/'},
+ {'label': 'Slices', 'icon':'icon-slice', 'url': '/admin/core/slice/'},
+ {'label': 'Users', 'icon':'icon-user', 'url': '/admin/core/user/'},
+ {'label': 'RequestRouter', 'icon':'icon-cog', 'app': 'requestrouter'},
+ {'label': 'HyperCache', 'icon':'icon-cog', 'app': 'hpc'},
+ {'label': 'Syndicate', 'icon':'icon-cog', 'app': 'syndicate_storage'},
+# {'label': 'Cassandra', 'icon':'icon-cog', 'app': 'cassandra'},
+# {'label': 'KairosDB', 'icon':'icon-cog', 'app': 'kairos'},
+# {'label': 'Nagios', 'icon':'icon-cog', 'app': 'nagios'},
+# {'label': 'URL Filter', 'icon': 'icon-cog', 'app': 'urlfilter'},
+ {'label': 'Service Comp', 'icon': 'icon-cog', 'app': 'servcomp'},
+
+ #{'label': 'Configured Services', 'icon':'icon-cog', 'models': [{'label': 'Content Delivery Network', 'app':'hpc'}]},
+ # 'sites',
+ # {'app': 'auth', 'icon':'icon-lock', 'models': ('user', 'group')},
+ # {'label': 'Support', 'icon':'icon-question-sign', 'url': '/support/'},
+ # {'label': 'Settings', 'icon':'icon-cog', 'models': ('core.user', 'core.site')},
+ # ),
+ ),
+
+ # misc
+ # 'LIST_PER_PAGE': 15
+}
+
# 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.
},
}
}
+
+BIGQUERY_TABLE = getattr(config, "bigquery_table", "demoevents")
+
+DISABLE_MINIDASHBOARD = getattr(config, "gui_disable_minidashboard", False)
+ENCRYPTED_FIELDS_KEYDIR = '/opt/planetstack/private_keys'
+ENCRYPTED_FIELD_MODE = 'ENCRYPT'
+
+STATISTICS_DRIVER = getattr(config, "statistics_driver", "ceilometer")
+
+# prevents warnings on django 1.7
+TEST_RUNNER = 'django.test.runner.DiscoverRunner'