Przeglądaj źródła

Remove test images after benchmark (#7182)

Nate 3 lat temu
rodzic
commit
92d88cd42c

+ 5 - 1
toolset/benchmark/benchmarker.py

@@ -96,10 +96,14 @@ class Benchmarker:
                 file=file,
                 color=Fore.RED if success else '')
         self.time_logger.log_test_end(log_prefix=prefix, file=file)
-        if self.config.mode == "benchmark" and not self.last_test:
+        if self.config.mode == "benchmark":
             # Sleep for 60 seconds to ensure all host connects are closed
             log("Clean up: Sleep 60 seconds...", prefix=prefix, file=file)
             time.sleep(60)
+            # After benchmarks are complete for all test types in this test,
+            # let's clean up leftover test images (techempower/tfb.test.test-name)
+            self.docker_helper.clean()
+
         return success
 
     def __run_test(self, test, benchmark_log):

+ 0 - 10
toolset/run-tests.py

@@ -6,7 +6,6 @@ import traceback
 from toolset.benchmark.benchmarker import Benchmarker
 from toolset.utils.scaffolding import Scaffolding
 from toolset.utils.audit import Audit
-from toolset.utils import cleaner
 from toolset.utils.benchmark_config import BenchmarkConfig
 from toolset.utils.output_helper import log
 
@@ -73,11 +72,6 @@ def main(argv=None):
         action='store_true',
         default=False,
         help='Audits framework tests for inconsistencies')
-    parser.add_argument(
-        '--clean',
-        action='store_true',
-        default=False,
-        help='Removes the results directory')
     parser.add_argument(
         '--new',
         action='store_true',
@@ -215,10 +209,6 @@ def main(argv=None):
         elif config.audit:
             Audit(benchmarker).start_audit()
 
-        elif config.clean:
-            cleaner.clean(benchmarker.results)
-            benchmarker.docker_helper.clean()
-
         elif config.list_tests:
             all_tests = benchmarker.metadata.gather_tests()
 

+ 0 - 1
toolset/utils/benchmark_config.py

@@ -30,7 +30,6 @@ class BenchmarkConfig:
         self.client_host = args.client_host
         self.audit = args.audit
         self.new = args.new
-        self.clean = args.clean
         self.mode = args.mode
         self.list_tests = args.list_tests
         self.list_tag = args.list_tag

+ 0 - 15
toolset/utils/cleaner.py

@@ -1,15 +0,0 @@
-import os
-import shutil
-
-
-def clean(results):
-    '''
-    Cleans the given directory of all files and folders
-    '''
-    results_dir = os.path.dirname(results.directory)
-    if os.path.exists(results_dir):
-        for file in os.listdir(results_dir):
-            if not os.path.exists(os.path.dirname(file)):
-                shutil.rmtree(os.path.join(results_dir, file))
-            else:
-                os.remove(os.path.join(results_dir, file))

+ 6 - 15
toolset/utils/docker_helper.py

@@ -93,25 +93,16 @@ class DockerHelper:
 
     def clean(self):
         '''
-        Cleans all the docker images from the system
+        Cleans all the docker test images from the system and prunes
         '''
-
-        self.server.images.prune()
         for image in self.server.images.list():
             if len(image.tags) > 0:
-                # 'techempower/tfb.test.gemini:0.1' -> 'techempower/tfb.test.gemini'
-                image_tag = image.tags[0].split(':')[0]
-                if image_tag != 'techempower/tfb' and 'techempower' in image_tag:
-                    self.server.images.remove(image.id, force=True)
+                if 'tfb.test.'  in image.tags[0]:
+                    try:
+                        self.server.images.remove(image.id, force=True)
+                    except Exception:
+                        pass
         self.server.images.prune()
-
-        self.database.images.prune()
-        for image in self.database.images.list():
-            if len(image.tags) > 0:
-                # 'techempower/tfb.test.gemini:0.1' -> 'techempower/tfb.test.gemini'
-                image_tag = image.tags[0].split(':')[0]
-                if image_tag != 'techempower/tfb' and 'techempower' in image_tag:
-                    self.database.images.remove(image.id, force=True)
         self.database.images.prune()
 
     def build(self, test, build_log_dir=os.devnull):