Remove the leftovers of the old testbed cleanup 65/23365/2
authorVratko Polak <vrpolak@cisco.com>
Mon, 11 Nov 2019 17:19:30 +0000 (18:19 +0100)
committerVratko Polak <vrpolak@cisco.com>
Mon, 11 Nov 2019 17:19:30 +0000 (18:19 +0100)
Change-Id: I464db6fb6c220f23f2fe69df2c793175975d7b72
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
resources/libraries/bash/entry/per_patch_perf.sh
resources/libraries/bash/function/common.sh
resources/tools/scripts/topo_cleanup.py [deleted file]

index 8c9d7d2..95b067b 100644 (file)
@@ -68,7 +68,7 @@ for ((iter=0; iter<iterations; iter++)); do
     if ((iter)); then
         # Function reserve_and_cleanup_testbed has already cleaned it once,
         # but we need to clean it explicitly on subsequent iterations.
     if ((iter)); then
         # Function reserve_and_cleanup_testbed has already cleaned it once,
         # but we need to clean it explicitly on subsequent iterations.
-        cleanup_topo
+        ansible_hosts "cleanup" || die
     fi
     # Testing current first. Good for early failures or for API changes.
     select_build "build_current" || die
     fi
     # Testing current first. Good for early failures or for API changes.
     select_build "build_current" || die
@@ -78,7 +78,7 @@ for ((iter=0; iter<iterations; iter++)); do
     archive_parse_test_results "csit_current/${iter}" || die
     die_on_pybot_error || die
     # TODO: Use less heavy way to avoid apt remove failures.
     archive_parse_test_results "csit_current/${iter}" || die
     die_on_pybot_error || die
     # TODO: Use less heavy way to avoid apt remove failures.
-    cleanup_topo
+    ansible_hosts "cleanup" || die
     select_build "build_parent" || die
     check_download_dir || die
     run_pybot || die
     select_build "build_parent" || die
     check_download_dir || die
     run_pybot || die
index 93adda7..491b47f 100644 (file)
@@ -182,19 +182,6 @@ function check_prerequisites () {
     fi
 }
 
     fi
 }
 
-function cleanup_topo () {
-
-    # Variables read:
-    # - WORKING_TOPOLOGY - Path to topology yaml file of the reserved testbed.
-    # - PYTHON_SCRIPTS_DIR - Path to directory holding the reservation script.
-
-    set -exuo pipefail
-
-    python "${PYTHON_SCRIPTS_DIR}/topo_cleanup.py" -t "${WORKING_TOPOLOGY}"
-    # Not using "|| die" as some callers might want to ignore errors,
-    # e.g. in teardowns, such as unreserve.
-}
-
 
 function common_dirs () {
 
 
 function common_dirs () {
 
diff --git a/resources/tools/scripts/topo_cleanup.py b/resources/tools/scripts/topo_cleanup.py
deleted file mode 100755 (executable)
index 8905594..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""This script provides cleanup routines on all DUTs."""
-
-import argparse
-import sys
-from platform import dist
-from yaml import load
-
-from resources.libraries.python.ssh import SSH
-
-
-def execute_command_ssh(ssh, cmd, sudo=False):
-    """Execute a command over ssh channel, and print outputs.
-
-    :param ssh: SSH() object connected to a node.
-    :param cmd: Command line to execute on remote node.
-    :param sudo: Run command with sudo privilege level..
-    :type ssh: SSH() object
-    :type cmd: str
-    :type sudo: bool
-    :returns return_code, stdout, stderr
-    :rtype: tuple(int, str, str)
-    """
-    if sudo:
-        ret, stdout, stderr = ssh.exec_command_sudo(cmd, timeout=60)
-    else:
-        ret, stdout, stderr = ssh.exec_command(cmd, timeout=60)
-
-    print 'Executing: {cmd}'.format(cmd=cmd)
-    print '({ret}) {stdout} {stderr}'.format(ret=ret, stdout=stdout,
-                                             stderr=stderr)
-
-    return ret, stdout, stdout
-
-
-def uninstall_package(ssh, package):
-    """If there are packages installed, clean them up.
-
-    :param ssh: SSH() object connected to a node.
-    :param package: Package name.
-    :type ssh: SSH() object
-    :type package: str
-    """
-    if dist()[0] == 'Ubuntu':
-        ret, _, _ = ssh.exec_command("dpkg -l | grep {package}".format(
-            package=package))
-        if ret == 0:
-            # Try to fix interrupted installations first.
-            execute_command_ssh(ssh, 'dpkg --configure -a', sudo=True)
-            # Try to remove installed packages
-            execute_command_ssh(ssh, 'apt-get purge -y "*{package}*"'.format(
-                package=package), sudo=True)
-
-
-def kill_process(ssh, process):
-    """If there are running processes, kill them.
-
-    :param ssh: SSH() object connected to a node.
-    :param process: Process name.
-    :type ssh: SSH() object
-    :type process: str
-    """
-    execute_command_ssh(ssh, 'killall -v -s 9 {process}'.format(
-        process=process), sudo=True)
-
-
-def main():
-    """Testbed cleanup."""
-
-    parser = argparse.ArgumentParser()
-    parser.add_argument("-t", "--topo", required=True, help="Topology file")
-
-    args = parser.parse_args()
-    topology_file = args.topo
-
-    topology = load(open(topology_file).read())['nodes']
-
-    ssh = SSH()
-    for node in topology:
-        if topology[node]['type'] == "DUT":
-            print "###TI host: {}".format(topology[node]['host'])
-            ssh.connect(topology[node])
-
-            # Kill processes.
-            kill_process(ssh, 'qemu')
-            kill_process(ssh, 'l3fwd')
-            kill_process(ssh, 'testpmd')
-
-            # Uninstall packages
-            uninstall_package(ssh, 'vpp')
-            uninstall_package(ssh, 'honeycomb')
-
-            # Remove HC logs.
-            execute_command_ssh(
-                ssh, 'rm -rf /var/log/honeycomb', sudo=True)
-
-            # Kill all containers.
-            execute_command_ssh(
-                ssh, 'docker rm --force $(sudo docker ps -q)', sudo=True)
-
-            # Destroy kubernetes.
-            execute_command_ssh(
-                ssh, 'kubeadm reset --force', sudo=True)
-
-            # Remove corefiles leftovers.
-            execute_command_ssh(
-                ssh, 'rm -f /tmp/*tar.lzo.lrz.xz*', sudo=True)
-
-            # Remove corefiles leftovers.
-            execute_command_ssh(
-                ssh, 'rm -f /tmp/*core*', sudo=True)
-
-            # Set interfaces in topology down.
-            for interface in topology[node]['interfaces']:
-                pci = topology[node]['interfaces'][interface]['pci_address']
-                execute_command_ssh(
-                    ssh, "[[ -d {path}/{pci}/net ]] && "
-                    "sudo ip link set $(basename {path}/{pci}/net/*) down".
-                    format(pci=pci, path='/sys/bus/pci/devices'))
-
-
-if __name__ == "__main__":
-    sys.exit(main())