xref: /aosp_15_r20/external/autotest/site_utils/clear.sh (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
1*9c5db199SXin Li#!/bin/bash
2*9c5db199SXin Li#
3*9c5db199SXin Li# Copyright 2014 The Chromium OS Authors. All rights reserved.
4*9c5db199SXin Li# Use of this source code is governed by a BSD-style license that can be
5*9c5db199SXin Li# found in the LICENSE file.
6*9c5db199SXin Li
7*9c5db199SXin Li# The purpose of this script is to be able to reset an autotest instance.
8*9c5db199SXin Li# This means cleaning up the database and all log and results files.
9*9c5db199SXin Li# The main use case for this is if the master ever fails and all shards need to
10*9c5db199SXin Li# be reset.
11*9c5db199SXin Li
12*9c5db199SXin Lideclare -a SERVICES=("apache2" "scheduler" "host-scheduler" "shard-client"
13*9c5db199SXin Li                     "gs_offloader" "gs_offloader_s")
14*9c5db199SXin LiAUTOTEST_DIR=$(dirname $(dirname $0))
15*9c5db199SXin Li
16*9c5db199SXin Lifunction service_action {
17*9c5db199SXin Li  local s
18*9c5db199SXin Li  for s in "${SERVICES[@]}"; do
19*9c5db199SXin Li    if [[ -e "/etc/init/$s.conf" || -e "/etc/init.d/$s" ]]; then
20*9c5db199SXin Li      sudo service $s $1
21*9c5db199SXin Li    fi
22*9c5db199SXin Li  done
23*9c5db199SXin Li}
24*9c5db199SXin Li
25*9c5db199SXin Liservice_action stop
26*9c5db199SXin Li
27*9c5db199SXin Li${AUTOTEST_DIR}/frontend/manage.py dbshell <<END
28*9c5db199SXin LiDROP DATABASE chromeos_autotest_db;
29*9c5db199SXin LiCREATE DATABASE chromeos_autotest_db;
30*9c5db199SXin LiEND
31*9c5db199SXin Li
32*9c5db199SXin Li${AUTOTEST_DIR}/database/migrate.py sync -f
33*9c5db199SXin Li${AUTOTEST_DIR}/frontend/manage.py syncdb --noinput
34*9c5db199SXin Li${AUTOTEST_DIR}/frontend/manage.py syncdb --noinput
35*9c5db199SXin Li
36*9c5db199SXin Lisudo rm -rf ${AUTOTEST_DIR}/results/*
37*9c5db199SXin Lisudo rm -rf ${AUTOTEST_DIR}/logs/*
38*9c5db199SXin Li
39*9c5db199SXin Liservice_action start
40