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