summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Reyna <David.Reyna@windriver.com>2017-06-14 21:57:29 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-07-27 22:33:07 +0100
commit4966a56bea7e404c574c197bdaaeb12ead895021 (patch)
treea909ca1cff3998f0e6879a24eaeb225ee46fd6b8
parent98e424c2cd3ce8bc7df247263e44a6d6d9ede3e6 (diff)
downloadbitbake-4966a56bea7e404c574c197bdaaeb12ead895021.tar.gz
toaster: noweb should init database
When the 'noweb' option for Toaster is used, perform the database check/create if the Toaster database does not yet exist. This will allow Toaster to not fail if the first use is with 'noweb'. This avoids potentially clashing database updates if there are multiple overlaping 'noweb' sessions (for example with a CI system). If the user wished to update the database, they can either use the explicit "lsupdate" command or (re)start a web hosted Toaster session (which is gated by the webserver's PID). [YOCTO #11378] Signed-off-by: David Reyna <David.Reyna@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xbin/toaster50
1 files changed, 35 insertions, 15 deletions
diff --git a/bin/toaster b/bin/toaster
index fd6cabf37..61a4a0f85 100755
--- a/bin/toaster
+++ b/bin/toaster
@@ -24,6 +24,29 @@ Usage: source toaster start|stop [webport=<address:port>] [noweb]
[webport] Set the development server (default: localhost:8000)
"
+databaseCheck()
+{
+ retval=0
+ # you can always add a superuser later via
+ # ../bitbake/lib/toaster/manage.py createsuperuser --username=<ME>
+ $MANAGE migrate --noinput || retval=1
+
+ if [ $retval -eq 1 ]; then
+ echo "Failed migrations, aborting system start" 1>&2
+ return $retval
+ fi
+ # Make sure that checksettings can pick up any value for TEMPLATECONF
+ export TEMPLATECONF
+ $MANAGE checksettings --traceback || retval=1
+
+ if [ $retval -eq 1 ]; then
+ printf "\nError while checking settings; aborting\n"
+ return $retval
+ fi
+
+ return $retval
+}
+
webserverKillAll()
{
local pidfile
@@ -48,22 +71,9 @@ webserverStartAll()
fi
retval=0
- # you can always add a superuser later via
- # ../bitbake/lib/toaster/manage.py createsuperuser --username=<ME>
- $MANAGE migrate --noinput || retval=1
- if [ $retval -eq 1 ]; then
- echo "Failed migrations, aborting system start" 1>&2
- return $retval
- fi
- # Make sure that checksettings can pick up any value for TEMPLATECONF
- export TEMPLATECONF
- $MANAGE checksettings --traceback || retval=1
-
- if [ $retval -eq 1 ]; then
- printf "\nError while checking settings; aborting\n"
- return $retval
- fi
+ # check the database
+ databaseCheck || return 1
echo "Starting webserver..."
@@ -240,6 +250,16 @@ case $CMD in
line='INHERIT+="toaster buildhistory"'
grep -q "$line" $conf || echo $line >> $conf
+ if [ $WEBSERVER -eq 0 ] ; then
+ # Do not update the database for "noweb" unless
+ # it does not yet exist
+ if [ ! -f "$TOASTER_DIR/toaster.sqlite" ] ; then
+ if ! databaseCheck; then
+ echo "Failed ${CMD}."
+ return 4
+ fi
+ fi
+ fi
if [ $WEBSERVER -gt 0 ] && ! webserverStartAll; then
echo "Failed ${CMD}."
return 4