diff --git a/dumpdata.json b/cluster_insert.json similarity index 81% rename from dumpdata.json rename to cluster_insert.json index 3dd989e..1540144 100644 --- a/dumpdata.json +++ b/cluster_insert.json @@ -1,18 +1,18 @@ [ { "fields": { - "description": "", + "description": "ganeti docker container", "disable_instance_creation": false, "disabled": false, "fast_create": false, "hostname": "172.17.0.230", "password": "test", "port": 5080, - "slug": "172170230", + "slug": "container", "use_gnt_network": true, "username": "ganeti" }, "model": "ganeti.cluster", "pk": 1 } ] diff --git a/settings.py b/settings.py index c067e8e..084170d 100644 --- a/settings.py +++ b/settings.py @@ -1,308 +1,308 @@ # -*- coding: utf-8 -*- vim:fileencoding=utf-8: # shortcuts to create relative paths import os BASE_DIR = os.path.dirname(os.path.dirname(__file__)) PROJECT_DIR = os.path.join(BASE_DIR, 'ganetimgr') # helper function to get database connection from env.var import dj_database_url DATABASES= {} DATABASES['default'] = dj_database_url.config(default='sqlite:////%s' % os.path.join(BASE_DIR, 'db.sqlite3')) # DEBUG = os.environ.get('DJANGO_DEBUG', True) TIME_ZONE = os.environ.get('DJANGO_TIMEZONE','Europe/Athens') +BEANSTALK_TUBE = os.environ.get('BEANSTALK_TUBE', None) ALLOWED_HOSTS=["*"] TEMPLATE_DEBUG = DEBUG SITE_ID = 1 ADMINS = ( ('John Doe', 'john@example.com'),) MANAGERS = ADMINS SECRET_KEY = '' # Locale settings # We provide English and Greek translations _ = lambda s: s #LANGUAGE_CODE = 'en-us' LANGUAGES = ( # ('el', u'Ελληνικά'), ('en', _('English')), ) LOCALE_PATHS = ( os.path.join(BASE_DIR, 'locale'), ) DATE_FORMAT = "d/m/Y H:i" DATETIME_FORMAT = "d/m/Y H:i" # If you set this to False, Django will make some optimizations so as not # to load the internationalization machinery. USE_I18N = True USE_L10N = True MEDIA_ROOT = '' MEDIA_URL = '' # 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', ) MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'middleware.ForceLogout.ForceLogoutMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', 'middleware.UserMessages.UserMessageMiddleware', ) STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static') STATICFILES_DIRS = () STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', ) ROOT_URLCONF = 'ganetimgr.urls' TEMPLATE_DIRS = ( os.path.join(BASE_DIR, 'templates'), ) INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.flatpages', 'django.contrib.messages', 'django.contrib.admin', 'django.contrib.staticfiles', 'registration', - 'django_markdown', 'accounts', 'south', 'ganeti', 'apply', 'notifications', 'stats', 'auditlog', ) # Caching is a vital part of ganetimgr. # If you deploy more than one ganetimgr instances on the same server, # and want to use Redis for both, make sure you select a different db for each instance # Warning!!! Redis db should ALWAYS be an integer, denoting db index. # If memcache is your preferred cache, then select: #CACHE_BACKEND="redis_cache.cache://127.0.0.1:6379?timeout=1500" #CACHES = { # 'default': { # 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', # } # 'default': { # 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', # 'LOCATION': '127.0.0.1:11211', # 'TIMEOUT': 1, # } #} LOGIN_URL = '/user/login' LOGIN_REDIRECT_URL = '/' TEMPLATE_CONTEXT_PROCESSORS = ( "django.contrib.auth.context_processors.auth", "django.core.context_processors.debug", "django.core.context_processors.i18n", "django.core.context_processors.media", "context.pending_notifications.notify", "context.session_remaining.seconds", "context.global_vars.settings_vars", "django.core.context_processors.request", "django.contrib.messages.context_processors.messages" ) #EMAIL_HOST = "127.0.0.1" #EMAIL_PORT = 25 USE_X_FORWARDED_HOST = True # Auth stuff # If you plan to deploy LDAP modify according to your needs AUTHENTICATION_BACKENDS = ( #'django_auth_ldap.backend.LDAPBackend', 'django.contrib.auth.backends.ModelBackend', ) #import ldap #from django_auth_ldap.config import LDAPSearch #AUTH_LDAP_BIND_DN = "" #AUTH_LDAP_BIND_PASSWORD = "" #AUTH_LDAP_SERVER_URI = "ldap://ldap.example.com" #AUTH_LDAP_START_TLS = True #AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=People,dc=dept,dc=example,dc=com", # ldap.SCOPE_SUBTREE, "(uid=%(user)s)") #AUTH_LDAP_USER_ATTR_MAP = { # "first_name": "givenName", # "last_name": "sn", # "email": "mail" # } ACCOUNT_ACTIVATION_DAYS = 10 AUTH_PROFILE_MODULE = 'accounts.UserProfile' SESSION_EXPIRE_AT_BROWSER_CLOSE = True #SESSION_ENGINE = "django.contrib.sessions.backends.cache" SESSION_COOKIE_AGE = 10800 IDLE_ACCOUNT_NOTIFICATION_DAYS = '180' # Number of days that hash verification is active INSTANCE_ACTION_ACTIVE_DAYS = 7 # This works for our GRNET NOC Jira installation. Default is False HELPDESK_INTEGRATION_JAVASCRIPT_URL = "" HELPDESK_INTEGRATION_JAVASCRIPT_PARAMS = { 'customfield_11551': 'tier-1' } COLLECTD_URL = "http://stats.example.com" # Graphs nodata image NODATA_IMAGE = 'static/nodata.gif' SERVER_MONITORING_URL = 'https://monitoring.example.com' import _version SW_VERSION = _version.VERSION NODATA_IMAGE = 'static/nodata.gif' WHITELIST_IP_MAX_SUBNET_V4 = 26 WHITELIST_IP_MAX_SUBNET_V6 = 64 # RSS Feed for the login page FEED_URL = "" # Choose whether to support websockets console or not. WEBSOCK_VNC_ENABLED = True # This is meant to be used with twistednovncauthproxy # twistd --pidfile=/tmp/proxy.pid -n vncap -c tcp:8888:interface=0.0.0.0 NOVNC_PROXY = "vnc.proxy.com:8888" NOVNC_USE_TLS = True BRANDING = { "SERVICE_PROVIDED_BY": { "NAME": "EXAMPLE", "URL": "//example.dot.com", "SOCIAL_NETWORKS": [ { "URL": "https://facebook.com/", "FONT_AWESOME_NAME": "fa-facebook", "FONT_COLOR": "#3b5998" }, { "URL": "https://twitter.com/", "FONT_AWESOME_NAME": "fa-twitter", "FONT_COLOR": "#00acee" } ] }, "VIDEO": "", # iframe url "LOGO": "/static/ganetimgr/img/logo.png", "FAVICON": "/static/ganetimgr/img/favicon.ico", "MOTTO": "virtual private servers", "FOOTER_ICONS_IFRAME": False, # show the administrative contact # option when creating a new vm "SHOW_ADMINISTRATIVE_FORM": True, "SHOW_ORGANIZATION_FORM": True, "TITLE": "GanetiMGR", } # Set the email subject prefix: EMAIL_SUBJECT_PREFIX = "[GANETIMGR SERVICE] " SERVER_EMAIL = "no-reply@example.com" DEFAULT_FROM_EMAIL = "no-reply@example.com" # Flatpages manipulation. Show or hide flatpages links in page. FLATPAGES = { "INFO": True, "TOS": True, "FAQ": True, } # Get a recaptcha key RECAPTCHA_PUBLIC_KEY = '' RECAPTCHA_PRIVATE_KEY = '' RECAPTCHA_USE_SSL = True MARKDOWN_EDITOR_SKIN = 'simple' ######################### # # # Ganeti # # # ######################### # Select your ganetimgr prefix. This is applied in the tags # of the instances. You could leave it as it is or set your own, # eg. GANETI_TAG_PREFIX = "vmservice" GANETI_TAG_PREFIX = "ganetimgr" RAPI_CONNECT_TIMEOUT = 8 RAPI_RESPONSE_TIMEOUT = 15 # List of operating system images you provide... OPERATING_SYSTEMS = { "none": { "description": "No operating system", "provider": "noop", "osparams": {}, "ssh_key_param": "", }, - "debootstrap": { + "debootstrap+default": { "description": "Debootstrap", "provider": "debootstrap+default", "osparams": {}, "ssh_key_param": "", }, } # the urls of the available os images OPERATING_SYSTEMS_URLS = ['http://example.com/images'] SNF_OPERATING_SYSTEMS_URLS = ['http://example.com/snf-images/'] # the provider and ssh key param # We assume that they have the same configuration OPERATING_SYSTEMS_PROVIDER = 'image+default' OPERATING_SYSTEMS_SSH_KEY_PARAM = 'img_ssh_key_url' SNF_IMG_PROPERTIES = { "SWAP": "2:512" } SNF_IMG_PASSWD = "example-passphrase" ######################### # # # Auditlog # # # ######################### # this option sets the amount of days old an audit entry has to be # in order to be shown in audit log page # '0' means show all entries AUDIT_ENTRIES_LAST_X_DAYS = 10 diff --git a/watcher/Dockerfile b/watcher-Dockerfile similarity index 100% rename from watcher/Dockerfile rename to watcher-Dockerfile diff --git a/watcher/entrypoint.sh b/watcher-entrypoint.sh similarity index 90% rename from watcher/entrypoint.sh rename to watcher-entrypoint.sh index 796ce7a..12a8d36 100755 --- a/watcher/entrypoint.sh +++ b/watcher-entrypoint.sh @@ -1,15 +1,15 @@ #!/bin/bash # Create a dummy file, until this is no longer needed -touch templates/includes/analytics.html +#touch templates/includes/analytics.html mkdir /var/log/ganetimgr/ # Django init commands python manage.py syncdb --noinput -v0 --migrate python manage.py collectstatic --noinput -v0 -l # Start background services sed -i 's/#START=yes/START=yes/' /etc/default/beanstalkd /etc/init.d/beanstalkd start > /dev/null /srv/ganetimgr/watcher.py --foreground --log-file - diff --git a/watcher/dj_database_url.py b/watcher/dj_database_url.py deleted file mode 100644 index e269e9e..0000000 --- a/watcher/dj_database_url.py +++ /dev/null @@ -1,129 +0,0 @@ -# -*- coding: utf-8 -*- - -import os - -try: - import urlparse -except ImportError: - import urllib.parse as urlparse - - -# Register database schemes in URLs. -urlparse.uses_netloc.append('postgres') -urlparse.uses_netloc.append('postgresql') -urlparse.uses_netloc.append('pgsql') -urlparse.uses_netloc.append('postgis') -urlparse.uses_netloc.append('mysql') -urlparse.uses_netloc.append('mysql2') -urlparse.uses_netloc.append('mysqlgis') -urlparse.uses_netloc.append('mysql-connector') -urlparse.uses_netloc.append('spatialite') -urlparse.uses_netloc.append('sqlite') -urlparse.uses_netloc.append('oracle') -urlparse.uses_netloc.append('oraclegis') -urlparse.uses_netloc.append('redshift') - -DEFAULT_ENV = 'DATABASE_URL' - -SCHEMES = { - 'postgres': 'django.db.backends.postgresql_psycopg2', - 'postgresql': 'django.db.backends.postgresql_psycopg2', - 'pgsql': 'django.db.backends.postgresql_psycopg2', - 'postgis': 'django.contrib.gis.db.backends.postgis', - 'mysql': 'django.db.backends.mysql', - 'mysql2': 'django.db.backends.mysql', - 'mysqlgis': 'django.contrib.gis.db.backends.mysql', - 'mysql-connector': 'mysql.connector.django', - 'spatialite': 'django.contrib.gis.db.backends.spatialite', - 'sqlite': 'django.db.backends.sqlite3', - 'oracle': 'django.db.backends.oracle', - 'oraclegis': 'django.contrib.gis.db.backends.oracle', - 'redshift': 'django_redshift_backend', -} - - -def config(env=DEFAULT_ENV, default=None, engine=None, conn_max_age=0): - """Returns configured DATABASE dictionary from DATABASE_URL.""" - - config = {} - - s = os.environ.get(env, default) - - if s: - config = parse(s, engine, conn_max_age) - - return config - - -def parse(url, engine=None, conn_max_age=0): - """Parses a database URL.""" - - if url == 'sqlite://:memory:': - # this is a special case, because if we pass this URL into - # urlparse, urlparse will choke trying to interpret "memory" - # as a port number - return { - 'ENGINE': SCHEMES['sqlite'], - 'NAME': ':memory:' - } - # note: no other settings are required for sqlite - - # otherwise parse the url as normal - config = {} - - url = urlparse.urlparse(url) - - # Split query strings from path. - path = url.path[1:] - if '?' in path and not url.query: - path, query = path.split('?', 2) - else: - path, query = path, url.query - query = urlparse.parse_qs(query) - - # If we are using sqlite and we have no path, then assume we - # want an in-memory database (this is the behaviour of sqlalchemy) - if url.scheme == 'sqlite' and path == '': - path = ':memory:' - - # Handle postgres percent-encoded paths. - hostname = url.hostname or '' - if '%2f' in hostname.lower(): - hostname = hostname.replace('%2f', '/').replace('%2F', '/') - - # Update with environment configuration. - config.update({ - 'NAME': urlparse.unquote(path or ''), - 'USER': urlparse.unquote(url.username or ''), - 'PASSWORD': urlparse.unquote(url.password or ''), - 'HOST': hostname, - 'PORT': url.port or '', - 'CONN_MAX_AGE': conn_max_age, - }) - - # Lookup specified engine. - engine = SCHEMES[url.scheme] if engine is None else engine - - # Pass the query string into OPTIONS. - options = {} - for key, values in query.items(): - if url.scheme == 'mysql' and key == 'ssl-ca': - options['ssl'] = {'ca': values[-1]} - continue - - options[key] = values[-1] - - # Support for Postgres Schema URLs - if 'currentSchema' in options and engine in ( - 'django.db.backends.postgresql_psycopg2', - 'django_redshift_backend', - ): - options['options'] = '-c search_path={0}'.format(options.pop('currentSchema')) - - if options: - config['OPTIONS'] = options - - if engine: - config['ENGINE'] = engine - - return config diff --git a/watcher/python-django-markdown_0.6.1-1_all.deb b/watcher/python-django-markdown_0.6.1-1_all.deb deleted file mode 100644 index 1ad0720..0000000 Binary files a/watcher/python-django-markdown_0.6.1-1_all.deb and /dev/null differ diff --git a/watcher/settings.py b/watcher/settings.py deleted file mode 100644 index a759146..0000000 --- a/watcher/settings.py +++ /dev/null @@ -1,308 +0,0 @@ -# -*- coding: utf-8 -*- vim:fileencoding=utf-8: - -# shortcuts to create relative paths -import os -BASE_DIR = os.path.dirname(os.path.dirname(__file__)) -PROJECT_DIR = os.path.join(BASE_DIR, 'ganetimgr') - -# helper function to get database connection from env.var -import dj_database_url -DATABASES= {} -DATABASES['default'] = dj_database_url.config(default='sqlite:////%s' % os.path.join(BASE_DIR, 'db.sqlite3')) - -# -DEBUG = os.environ.get('DJANGO_DEBUG', True) -TIME_ZONE = os.environ.get('DJANGO_TIMEZONE','Europe/Athens') -ALLOWED_HOSTS=["*"] -TEMPLATE_DEBUG = DEBUG -SITE_ID = 1 -ADMINS = ( ('John Doe', 'john@example.com'),) -MANAGERS = ADMINS -SECRET_KEY = '' - - -# Locale settings -# We provide English and Greek translations -_ = lambda s: s -#LANGUAGE_CODE = 'en-us' -LANGUAGES = ( -# ('el', u'Ελληνικά'), - ('en', _('English')), -) -LOCALE_PATHS = ( - os.path.join(BASE_DIR, 'locale'), -) - - -DATE_FORMAT = "d/m/Y H:i" -DATETIME_FORMAT = "d/m/Y H:i" - - -# If you set this to False, Django will make some optimizations so as not -# to load the internationalization machinery. -USE_I18N = True -USE_L10N = True - -MEDIA_ROOT = '' -MEDIA_URL = '' - -# 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', -) - - -MIDDLEWARE_CLASSES = ( - 'django.middleware.common.CommonMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'middleware.ForceLogout.ForceLogoutMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.middleware.locale.LocaleMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', - 'middleware.UserMessages.UserMessageMiddleware', -) - -STATIC_URL = '/static/' -STATIC_ROOT = os.path.join(BASE_DIR, 'static') -STATICFILES_DIRS = () -STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', -) - -ROOT_URLCONF = 'ganetimgr.urls' - -TEMPLATE_DIRS = ( - os.path.join(BASE_DIR, 'templates'), -) - -INSTALLED_APPS = ( - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.sites', - 'django.contrib.flatpages', - 'django.contrib.messages', - 'django.contrib.admin', - 'django.contrib.staticfiles', - 'registration', - 'django_markdown', - 'accounts', - 'south', - 'ganeti', - 'apply', - 'notifications', - 'stats', - 'auditlog', -) - -# Caching is a vital part of ganetimgr. -# If you deploy more than one ganetimgr instances on the same server, -# and want to use Redis for both, make sure you select a different db for each instance -# Warning!!! Redis db should ALWAYS be an integer, denoting db index. -# If memcache is your preferred cache, then select: -#CACHE_BACKEND="redis_cache.cache://127.0.0.1:6379?timeout=1500" -#CACHES = { -# 'default': { -# 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', -# } - # 'default': { - # 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', - # 'LOCATION': '127.0.0.1:11211', - # 'TIMEOUT': 1, - # } -#} - -LOGIN_URL = '/user/login' -LOGIN_REDIRECT_URL = '/' - -TEMPLATE_CONTEXT_PROCESSORS = ( - "django.contrib.auth.context_processors.auth", - "django.core.context_processors.debug", - "django.core.context_processors.i18n", - "django.core.context_processors.media", - "context.pending_notifications.notify", - "context.session_remaining.seconds", - "context.global_vars.settings_vars", - "django.core.context_processors.request", - "django.contrib.messages.context_processors.messages" -) - -#EMAIL_HOST = "127.0.0.1" -#EMAIL_PORT = 25 -USE_X_FORWARDED_HOST = True - -# Auth stuff -# If you plan to deploy LDAP modify according to your needs -AUTHENTICATION_BACKENDS = ( - #'django_auth_ldap.backend.LDAPBackend', - 'django.contrib.auth.backends.ModelBackend', -) - -#import ldap -#from django_auth_ldap.config import LDAPSearch - -#AUTH_LDAP_BIND_DN = "" -#AUTH_LDAP_BIND_PASSWORD = "" -#AUTH_LDAP_SERVER_URI = "ldap://ldap.example.com" -#AUTH_LDAP_START_TLS = True -#AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=People,dc=dept,dc=example,dc=com", -# ldap.SCOPE_SUBTREE, "(uid=%(user)s)") -#AUTH_LDAP_USER_ATTR_MAP = { -# "first_name": "givenName", -# "last_name": "sn", -# "email": "mail" -# } - -ACCOUNT_ACTIVATION_DAYS = 10 - -AUTH_PROFILE_MODULE = 'accounts.UserProfile' - -SESSION_EXPIRE_AT_BROWSER_CLOSE = True -#SESSION_ENGINE = "django.contrib.sessions.backends.cache" -SESSION_COOKIE_AGE = 10800 - -IDLE_ACCOUNT_NOTIFICATION_DAYS = '180' - -# Number of days that hash verification is active -INSTANCE_ACTION_ACTIVE_DAYS = 7 - -# This works for our GRNET NOC Jira installation. Default is False -HELPDESK_INTEGRATION_JAVASCRIPT_URL = "" -HELPDESK_INTEGRATION_JAVASCRIPT_PARAMS = { - 'customfield_11551': 'tier-1' -} - -COLLECTD_URL = "http://stats.example.com" -# Graphs nodata image -NODATA_IMAGE = 'static/nodata.gif' - -SERVER_MONITORING_URL = 'https://monitoring.example.com' - -import _version -SW_VERSION = _version.VERSION - -NODATA_IMAGE = 'static/nodata.gif' - - -WHITELIST_IP_MAX_SUBNET_V4 = 26 -WHITELIST_IP_MAX_SUBNET_V6 = 64 - -# RSS Feed for the login page -FEED_URL = "" - -# Choose whether to support websockets console or not. -WEBSOCK_VNC_ENABLED = True -# This is meant to be used with twistednovncauthproxy -# twistd --pidfile=/tmp/proxy.pid -n vncap -c tcp:8888:interface=0.0.0.0 -NOVNC_PROXY = "vnc.proxy.com:8888" -NOVNC_USE_TLS = True - -BRANDING = { - "SERVICE_PROVIDED_BY": { - "NAME": "EXAMPLE", - "URL": "//example.dot.com", - "SOCIAL_NETWORKS": [ - { - "URL": "https://facebook.com/", - "FONT_AWESOME_NAME": "fa-facebook", - "FONT_COLOR": "#3b5998" - }, - { - "URL": "https://twitter.com/", - "FONT_AWESOME_NAME": "fa-twitter", - "FONT_COLOR": "#00acee" - } - ] - }, - "VIDEO": "", # iframe url - "LOGO": "/static/ganetimgr/img/logo.png", - "FAVICON": "/static/ganetimgr/img/favicon.ico", - "MOTTO": "virtual private servers", - "FOOTER_ICONS_IFRAME": False, - # show the administrative contact - # option when creating a new vm - "SHOW_ADMINISTRATIVE_FORM": True, - "SHOW_ORGANIZATION_FORM": True, - "TITLE": "GanetiMGR", -} - -# Set the email subject prefix: -EMAIL_SUBJECT_PREFIX = "[GANETIMGR SERVICE] " -SERVER_EMAIL = "no-reply@example.com" -DEFAULT_FROM_EMAIL = "no-reply@example.com" - -# Flatpages manipulation. Show or hide flatpages links in page. -FLATPAGES = { - "INFO": True, - "TOS": True, - "FAQ": True, -} -# Get a recaptcha key -RECAPTCHA_PUBLIC_KEY = '' -RECAPTCHA_PRIVATE_KEY = '' -RECAPTCHA_USE_SSL = True - -MARKDOWN_EDITOR_SKIN = 'simple' - - -######################### -# # -# Ganeti # -# # -######################### -# Select your ganetimgr prefix. This is applied in the tags -# of the instances. You could leave it as it is or set your own, -# eg. GANETI_TAG_PREFIX = "vmservice" -GANETI_TAG_PREFIX = "ganetimgr" -RAPI_CONNECT_TIMEOUT = 8 -RAPI_RESPONSE_TIMEOUT = 15 -# List of operating system images you provide... -OPERATING_SYSTEMS = { - "none": { - "description": "No operating system", - "provider": "noop", - "osparams": {}, - "ssh_key_param": "", - }, - "debootstrap": { - "description": "Debootstrap", - "provider": "debootstrap+default", - "osparams": { }, - "ssh_key_param": "", - }, - -} - - -# the urls of the available os images -OPERATING_SYSTEMS_URLS = ['http://example.com/images'] -SNF_OPERATING_SYSTEMS_URLS = ['http://example.com/snf-images/'] - - -# the provider and ssh key param -# We assume that they have the same configuration -OPERATING_SYSTEMS_PROVIDER = 'image+default' -OPERATING_SYSTEMS_SSH_KEY_PARAM = 'img_ssh_key_url' - -SNF_IMG_PROPERTIES = { - "SWAP": "2:512" -} -SNF_IMG_PASSWD = "example-passphrase" - -######################### -# # -# Auditlog # -# # -######################### - -# this option sets the amount of days old an audit entry has to be -# in order to be shown in audit log page -# '0' means show all entries - -AUDIT_ENTRIES_LAST_X_DAYS = 10 - -