diff options
-rwxr-xr-x | bin/toaster | 2 | ||||
-rw-r--r-- | lib/bb/ui/buildinfohelper.py | 20 | ||||
-rw-r--r-- | lib/toaster/toastermain/management/commands/get-dburl.py | 9 | ||||
-rw-r--r-- | lib/toaster/toastermain/settings.py | 67 |
4 files changed, 20 insertions, 78 deletions
diff --git a/bin/toaster b/bin/toaster index 921164c47..05b7935dd 100755 --- a/bin/toaster +++ b/bin/toaster @@ -100,7 +100,6 @@ stop_system() fi webserverKillAll # unset exported variables - unset DATABASE_URL unset TOASTER_CONF unset TOASTER_DIR unset BITBAKE_UI @@ -278,7 +277,6 @@ case $CMD in return 4 fi export BITBAKE_UI='toasterui' - export DATABASE_URL=`$MANAGE get-dburl` $MANAGE runbuilds & echo $! >${BUILDDIR}/.runbuilds.pid # set fail safe stop system on terminal exit trap stop_system SIGHUP diff --git a/lib/bb/ui/buildinfohelper.py b/lib/bb/ui/buildinfohelper.py index c5368f63b..cea53e053 100644 --- a/lib/bb/ui/buildinfohelper.py +++ b/lib/bb/ui/buildinfohelper.py @@ -21,19 +21,19 @@ import bb import re import os -os.environ["DJANGO_SETTINGS_MODULE"] = "toaster.toastermain.settings" - - import django from django.utils import timezone +import toaster +# Add toaster module to the search path to help django.setup() find the right +# modules +sys.path.insert(0, os.path.dirname(toaster.__file__)) -def _configure_toaster(): - """ Add toaster to sys path for importing modules - """ - sys.path.append(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), 'toaster')) -_configure_toaster() - +#Set the DJANGO_SETTINGS_MODULE if it's not already set +os.environ["DJANGO_SETTINGS_MODULE"] =\ + os.environ.get("DJANGO_SETTINGS_MODULE", + "toaster.toastermain.settings") +# Setup django framework (needs to be done before importing modules) django.setup() from orm.models import Build, Task, Recipe, Layer_Version, Layer, Target, LogMessage, HelpText @@ -54,11 +54,11 @@ from datetime import datetime, timedelta from django.db import transaction, connection + # pylint: disable=invalid-name # the logger name is standard throughout BitBake logger = logging.getLogger("ToasterLogger") - class NotExisting(Exception): pass diff --git a/lib/toaster/toastermain/management/commands/get-dburl.py b/lib/toaster/toastermain/management/commands/get-dburl.py deleted file mode 100644 index 911296f71..000000000 --- a/lib/toaster/toastermain/management/commands/get-dburl.py +++ /dev/null @@ -1,9 +0,0 @@ -from toastermain.settings import getDATABASE_URL -from django.core.management.base import NoArgsCommand - -class Command(NoArgsCommand): - args = "" - help = "get database url" - - def handle_noargs(self,**options): - print(getDATABASE_URL()) diff --git a/lib/toaster/toastermain/settings.py b/lib/toaster/toastermain/settings.py index 78702fa59..c7edff2f6 100644 --- a/lib/toaster/toastermain/settings.py +++ b/lib/toaster/toastermain/settings.py @@ -21,7 +21,7 @@ # Django settings for Toaster project. -import os, re +import os DEBUG = True TEMPLATE_DEBUG = DEBUG @@ -38,14 +38,19 @@ ADMINS = ( MANAGERS = ADMINS +TOASTER_SQLITE_DEFAULT_DIR = os.path.join(os.environ.get('TOASTER_DIR', ''), + 'build') + DATABASES = { 'default': { - 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. - 'NAME': 'toaster.sqlite', # Or path to database file if using sqlite3. + # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. + 'ENGINE': 'django.db.backends.sqlite3', + # DB name or full path to database file if using sqlite3. + 'NAME': "%s/toaster.sqlite" % TOASTER_SQLITE_DEFAULT_DIR, 'USER': '', 'PASSWORD': '', - 'HOST': '127.0.0.1', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP. - 'PORT': '3306', # Set to empty string for default. + #'HOST': '127.0.0.1', # e.g. mysql server + #'PORT': '3306', # e.g. mysql port } } @@ -55,58 +60,6 @@ DATABASES = { if 'sqlite' in DATABASES['default']['ENGINE']: DATABASES['default']['OPTIONS'] = { 'timeout': 20 } -# Reinterpret database settings if we have DATABASE_URL environment variable defined - -if 'DATABASE_URL' in os.environ: - dburl = os.environ['DATABASE_URL'] - - if dburl.startswith('sqlite3://'): - result = re.match('sqlite3://(.*)', dburl) - if result is None: - raise Exception("ERROR: Could not read sqlite database url: %s" % dburl) - DATABASES['default'] = { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': result.group(1), - 'USER': '', - 'PASSWORD': '', - 'HOST': '', - 'PORT': '', - } - elif dburl.startswith('mysql://'): - # URL must be in this form: mysql://user:pass@host:port/name - result = re.match(r"mysql://([^:]*):([^@]*)@([^:]*):(\d*)/([^/]*)", dburl) - if result is None: - raise Exception("ERROR: Could not read mysql database url: %s" % dburl) - DATABASES['default'] = { - 'ENGINE': 'django.db.backends.mysql', - 'NAME': result.group(5), - 'USER': result.group(1), - 'PASSWORD': result.group(2), - 'HOST': result.group(3), - 'PORT': result.group(4), - } - else: - raise Exception("FIXME: Please implement missing database url schema for url: %s" % dburl) - - -# Allows current database settings to be exported as a DATABASE_URL environment variable value - -def getDATABASE_URL(): - d = DATABASES['default'] - if d['ENGINE'] == 'django.db.backends.sqlite3': - if d['NAME'] == ':memory:': - return 'sqlite3://:memory:' - elif d['NAME'].startswith("/"): - return 'sqlite3://' + d['NAME'] - return "sqlite3://" + os.path.join(os.getcwd(), d['NAME']) - - elif d['ENGINE'] == 'django.db.backends.mysql': - return "mysql://" + d['USER'] + ":" + d['PASSWORD'] + "@" + d['HOST'] + ":" + d['PORT'] + "/" + d['NAME'] - - raise Exception("FIXME: Please implement missing database url schema for engine: %s" % d['ENGINE']) - - - # 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 = [] |