3 # steps to take following a release of new code to keep things working.
5 # the following scripts may be created to customize behavior:
7 # site_utils/site_sync_code
9 # - pull code from a source repository
11 # site_utils/site_install_cli
13 # - install or update client code (new "atest" build?)
15 # site_utils/site_restart_apache
17 # - suid helper or similar?
19 # site_utils/site_restart_final
21 # - any finishing touches you may require.
25 INIT_SCR
=/etc
/init.d
/autotest
36 echo "*** Fatal error. Giving up."
44 if (! test -f $INIT_SCR)
46 echo "Error: $INIT_SCR must be installed."
50 BECOME_USER
=`grep ^BECOME_USER= $INIT_SCR`
52 if (test "$BECOME_USER" == "")
54 echo "Error: BECOME_USER not defined in $INIT_SCR"
58 BASE_DIR
=`grep ^BASE_DIR= $INIT_SCR`
60 if (test "$BASE_DIR" == "")
62 echo "Error: BASE_DIR not defined in $INIT_SCR"
69 # --- stop autotest persistent code
71 print_status
"Stopping autotest persistent code"
74 # --- sync code (site-specific)
76 if (test -x $BASE_DIR/site_utils
/site_sync_code
)
78 print_status
"Syncing code"
79 su
$BECOME_USER -c $BASE_DIR/site_utils
/site_sync_code ||
exit 1
82 # --- run database migrations
86 print_status
"Running AFE migrations"
87 ( cd $BASE_DIR/frontend
&&
88 su
$BECOME_USER -c "python ../database/migrate.py \
89 --database=AUTOTEST_WEB safesync"
90 su
$BECOME_USER -c "python manage.py syncdb --noinput"
91 su
$BECOME_USER -c "python manage.py syncdb --noinput"
96 print_status
"Running TKO migrations"
98 su
$BECOME_USER -c "python ../database/migrate.py \
99 --database=TKO safesync"
104 print_status
"Running site_db migrations"
105 ( cd $BASE_DIR/site_db
&&
106 su
$BECOME_USER -c "python ../database/migrate.py \
107 --database=TKO safesync"
112 print_status
"Running syncdb on Django interface"
113 # Due to the way Django creates permissions objects, we sometimes need
114 # to run syncdb twice.
116 ( cd $BASE_DIR/frontend
&&
117 su
$BECOME_USER -c "python manage.py syncdb --noinput"
123 print_status
"Compiling GWT code."
125 su
$BECOME_USER -c "$BASE_DIR/utils/compile_gwt_clients.py -a" || fatal
128 # --- fix gwt permissions
130 print_status
"Fixing permissions"
131 ( cd $BASE_DIR/frontend
/client
&&
132 find |
xargs chmod o
+r
&&
133 find -type d |
xargs chmod o
+rx
) || fatal
135 # --- update cli repository (site-specific)
137 if (test -x $BASE_DIR/site_utils
/site_install_cli
)
139 print_status
"Updating cli repository"
140 su
$BECOME_USER -c $BASE_DIR/site_utils
/site_install_cli || fatal
143 # --- restart autotest persistent code
145 print_status
"Restarting autotest persistent code"
146 $INIT_SCR start || fatal
148 # --- possibly restart Apache (site-specific)
150 if (test -x $BASE_DIR/site_utils
/site_restart_apache
)
152 print_status
"Restarting Apache"
153 su
$BECOME_USER -c $BASE_DIR/site_utils
/site_restart_apache || fatal
156 # --- do any site-specific finalization
158 if (test -x $BASE_DIR/site_utils
/site_restart_final
)
160 print_status
"Finalizing release"
161 su
$BECOME_USER -c $BASE_DIR/site_utils
/site_restart_final || fatal