summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorElliot Smith <elliot.smith@intel.com>2015-10-14 15:43:43 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-10-16 14:13:22 +0100
commit1feeb8e4991dc2f2a2b85b4b544ad36e96dc4a0b (patch)
tree79ee018a41946b86433c7891fc139ceb62e67210 /bitbake
parentae82d778e67dc35a9a2a54d9893b0ae5f00bb197 (diff)
downloadpoky-1feeb8e4991dc2f2a2b85b4b544ad36e96dc4a0b.tar.gz
bitbake: toaster: Always run bldcontrol migrations
The toaster startup script conditionally migrates the database tables depending on whether you are in managed mode or not. This means that if you are in analysis mode, some of the bldcontrol* database tables used by managed mode are not available. As a consequence, some of the code in toaster which refers to those tables can break in analysis mode, as there's no clean isolation of the two modes. To prevent this from happening, always run the migrations for managed mode and create the bldcontrol* tables, even if in analysis mode. Also clean up the function which starts up toaster so the logic is easier to follow. [YOCTO #8277] (Bitbake rev: b1fc592131286ebbede2693be8c86636f0039011) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rwxr-xr-xbitbake/bin/toaster56
1 files changed, 39 insertions, 17 deletions
diff --git a/bitbake/bin/toaster b/bitbake/bin/toaster
index bc439e6d3a..e976604c5c 100755
--- a/bitbake/bin/toaster
+++ b/bitbake/bin/toaster
@@ -59,29 +59,50 @@ webserverStartAll()
59 python $BBBASEDIR/lib/toaster/manage.py syncdb --noinput || retval=1 59 python $BBBASEDIR/lib/toaster/manage.py syncdb --noinput || retval=1
60 60
61 python $BBBASEDIR/lib/toaster/manage.py migrate orm || retval=2 61 python $BBBASEDIR/lib/toaster/manage.py migrate orm || retval=2
62
62 if [ $retval -eq 1 ]; then 63 if [ $retval -eq 1 ]; then
63 echo "Failed db sync, stopping system start" 1>&2 64 echo "Failed db sync, aborting system start" 1>&2
64 elif [ $retval -eq 2 ]; then 65 return $retval
65 printf "\nError on migration, trying to recover... \n" 66 fi
67
68 python $BBBASEDIR/lib/toaster/manage.py migrate orm || retval=1
69
70 if [ $retval -eq 1 ]; then
71 printf "\nError on orm migration, rolling back...\n"
66 python $BBBASEDIR/lib/toaster/manage.py migrate orm 0001_initial --fake 72 python $BBBASEDIR/lib/toaster/manage.py migrate orm 0001_initial --fake
67 retval=0 73 return $retval
68 python $BBBASEDIR/lib/toaster/manage.py migrate orm || retval=1
69 fi 74 fi
75
76 python $BBBASEDIR/lib/toaster/manage.py migrate bldcontrol || retval=1
77
78 if [ $retval -eq 1 ]; then
79 printf "\nError on bldcontrol migration, rolling back...\n"
80 python $BBBASEDIR/lib/toaster/manage.py migrate bldcontrol 0001_initial --fake
81 return $retval
82 fi
83
70 if [ "$TOASTER_MANAGED" = '1' ]; then 84 if [ "$TOASTER_MANAGED" = '1' ]; then
71 python $BBBASEDIR/lib/toaster/manage.py migrate bldcontrol || retval=1 85 python $BBBASEDIR/lib/toaster/manage.py checksettings --traceback || retval=1
72 python $BBBASEDIR/lib/toaster/manage.py checksettings --traceback || retval=1
73 fi 86 fi
74 if [ $retval -eq 0 ]; then 87
75 echo "Starting webserver..." 88 if [ $retval -eq 1 ]; then
76 python $BBBASEDIR/lib/toaster/manage.py runserver "0.0.0.0:$WEB_PORT" </dev/null >>${BUILDDIR}/toaster_web.log 2>&1 & echo $! >${BUILDDIR}/.toastermain.pid 89 printf "\nError while checking settings; aborting\n"
77 sleep 1 90 return $retval
78 if ! cat "${BUILDDIR}/.toastermain.pid" | xargs -I{} kill -0 {} ; then 91 fi
79 retval=1 92
80 rm "${BUILDDIR}/.toastermain.pid" 93 echo "Starting webserver..."
81 else 94
82 echo "Webserver address: http://0.0.0.0:$WEB_PORT/" 95 python $BBBASEDIR/lib/toaster/manage.py runserver "0.0.0.0:$WEB_PORT" </dev/null >>${BUILDDIR}/toaster_web.log 2>&1 & echo $! >${BUILDDIR}/.toastermain.pid
83 fi 96
97 sleep 1
98
99 if ! cat "${BUILDDIR}/.toastermain.pid" | xargs -I{} kill -0 {} ; then
100 retval=1
101 rm "${BUILDDIR}/.toastermain.pid"
102 else
103 echo "Webserver address: http://0.0.0.0:$WEB_PORT/"
84 fi 104 fi
105
85 return $retval 106 return $retval
86} 107}
87 108
@@ -375,3 +396,4 @@ case $CMD in
375 echo "Successful ${CMD}." 396 echo "Successful ${CMD}."
376 ;; 397 ;;
377esac 398esac
399