Bash程序  |  40行  |  1.13 KB

#!/bin/bash
#
# Copyright 2014 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# The purpose of this script is to be able to reset an autotest instance.
# This means cleaning up the database and all log and results files.
# The main use case for this is if the master ever fails and all shards need to
# be reset.

declare -a SERVICES=("apache2" "scheduler" "host-scheduler" "shard-client"
                     "gs_offloader" "gs_offloader_s")
AUTOTEST_DIR=$(dirname $(dirname $0))

function service_action {
  local s
  for s in "${SERVICES[@]}"; do
    if [[ -e "/etc/init/$s.conf" || -e "/etc/init.d/$s" ]]; then
      sudo service $s $1
    fi
  done
}

service_action stop

${AUTOTEST_DIR}/frontend/manage.py dbshell <<END
DROP DATABASE chromeos_autotest_db;
CREATE DATABASE chromeos_autotest_db;
END

${AUTOTEST_DIR}/database/migrate.py sync -f
${AUTOTEST_DIR}/frontend/manage.py syncdb --noinput
${AUTOTEST_DIR}/frontend/manage.py syncdb --noinput

sudo rm -rf ${AUTOTEST_DIR}/results/*
sudo rm -rf ${AUTOTEST_DIR}/logs/*

service_action start