1101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich#!/bin/bash
2101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich#
3101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich# Copyright 2014 The Chromium OS Authors. All rights reserved.
4101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich# Use of this source code is governed by a BSD-style license that can be
5101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich# found in the LICENSE file.
6101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich
7101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich# The purpose of this script is to be able to reset an autotest instance.
8101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich# This means cleaning up the database and all log and results files.
9101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich# The main use case for this is if the master ever fails and all shards need to
10101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich# be reset.
11101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich
12101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelichdeclare -a SERVICES=("apache2" "scheduler" "host-scheduler" "shard-client"
13101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich                     "gs_offloader" "gs_offloader_s")
14101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob JuelichAUTOTEST_DIR=$(dirname $(dirname $0))
15101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich
16101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelichfunction service_action {
17101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich  local s
18101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich  for s in "${SERVICES[@]}"; do
19101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich    if [[ -e "/etc/init/$s.conf" || -e "/etc/init.d/$s" ]]; then
20101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich      sudo service $s $1
21101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich    fi
22101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich  done
23101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich}
24101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich
25101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelichservice_action stop
26101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich
27101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich${AUTOTEST_DIR}/frontend/manage.py dbshell <<END
28101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob JuelichDROP DATABASE chromeos_autotest_db;
29101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob JuelichCREATE DATABASE chromeos_autotest_db;
30101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob JuelichEND
31101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich
32101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich${AUTOTEST_DIR}/database/migrate.py sync -f
33101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich${AUTOTEST_DIR}/frontend/manage.py syncdb --noinput
34101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich${AUTOTEST_DIR}/frontend/manage.py syncdb --noinput
35101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich
36101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelichsudo rm -rf ${AUTOTEST_DIR}/results/*
37101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelichsudo rm -rf ${AUTOTEST_DIR}/logs/*
38101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelich
39101a9aa4be51e59acf41b48d6518fdfe975f21d9Jakob Juelichservice_action start
40