xref: /aosp_15_r20/external/autotest/site_utils/lxc/unittest_cleanup.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
1*9c5db199SXin Li#!/usr/bin/python3
2*9c5db199SXin Li# Copyright 2017 The Chromium OS Authors. All rights reserved.
3*9c5db199SXin Li# Use of this source code is governed by a BSD-style license that can be
4*9c5db199SXin Li# found in the LICENSE file.
5*9c5db199SXin Li
6*9c5db199SXin Liimport os
7*9c5db199SXin Li
8*9c5db199SXin Liimport common
9*9c5db199SXin Lifrom autotest_lib.client.bin import utils
10*9c5db199SXin Lifrom autotest_lib.client.common_lib import error
11*9c5db199SXin Lifrom autotest_lib.site_utils import lxc
12*9c5db199SXin Lifrom autotest_lib.site_utils.lxc import utils as lxc_utils
13*9c5db199SXin Li
14*9c5db199SXin Li
15*9c5db199SXin LiTEST_CONTAINER_PATH = os.path.join(lxc.DEFAULT_CONTAINER_PATH, 'test')
16*9c5db199SXin LiTEST_HOST_PATH = os.path.join(TEST_CONTAINER_PATH, 'host')
17*9c5db199SXin Li
18*9c5db199SXin Lidef main():
19*9c5db199SXin Li    """Clean up the remnants from any old aborted unit tests."""
20*9c5db199SXin Li    # Manually clean out the host dir.
21*9c5db199SXin Li    if lxc_utils.path_exists(TEST_HOST_PATH):
22*9c5db199SXin Li        for host_dir in os.listdir(TEST_HOST_PATH):
23*9c5db199SXin Li            host_dir = os.path.realpath(os.path.join(TEST_HOST_PATH, host_dir))
24*9c5db199SXin Li            try:
25*9c5db199SXin Li                utils.run('sudo umount %s' % host_dir)
26*9c5db199SXin Li            except error.CmdError:
27*9c5db199SXin Li                pass
28*9c5db199SXin Li            utils.run('sudo rm -r %s' % host_dir)
29*9c5db199SXin Li
30*9c5db199SXin Li    # Utilize the container_bucket to clear out old test containers.
31*9c5db199SXin Li    bucket = lxc.ContainerBucket(TEST_CONTAINER_PATH, TEST_HOST_PATH)
32*9c5db199SXin Li    bucket.destroy_all()
33*9c5db199SXin Li
34*9c5db199SXin Li
35*9c5db199SXin Liif __name__ == '__main__':
36*9c5db199SXin Li    main()
37