summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/toaster2
-rw-r--r--lib/bb/ui/buildinfohelper.py20
-rw-r--r--lib/toaster/toastermain/management/commands/get-dburl.py9
-rw-r--r--lib/toaster/toastermain/settings.py67
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 = []