diff options
| author | Florian Fischer <florian.fl.fischer@fau.de> | 2019-10-13 20:28:10 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fl.fischer@fau.de> | 2019-10-13 20:28:10 +0200 |
| commit | 3eab997097f23be22deb99614ee4fbc6e34ff903 (patch) | |
| tree | 816661b4b99c69bce2cc639e3b85b276ce06f90a | |
| parent | 1d50a146ea0c7a517564bf3ec2a79cd2bb3c8c79 (diff) | |
| download | allocbench-3eab997097f23be22deb99614ee4fbc6e34ff903.tar.gz allocbench-3eab997097f23be22deb99614ee4fbc6e34ff903.zip | |
support substitutions in server shutdown_cmds
| -rw-r--r-- | src/benchmark.py | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/benchmark.py b/src/benchmark.py index 4dfaa78..5530750 100644 --- a/src/benchmark.py +++ b/src/benchmark.py @@ -263,7 +263,7 @@ class Benchmark: raise Exception(f"Starting {server_name} failed with exit code: {ret}") server["popen"] = proc # Register termination of the server - atexit.register(Benchmark.shutdown_server, server=server) + atexit.register(Benchmark.shutdown_server, self=self, server=server) if not "prepare_cmds" in server: continue @@ -280,17 +280,21 @@ class Benchmark: print_debug("Stderr:", proc.stderr) - @staticmethod - def shutdown_server(server): + def shutdown_server(self, server): """Terminate a started server running its shutdown_cmds in advance""" + if server["popen"].poll(): + return + server_name = server.get("name", "Server") print_info(f"Shutting down {server_name}") - if server["popen"].poll(): - return + substitutions = {} + substitutions.update(self.__dict__) + substitutions.update(server) if "shutdown_cmds" in server: for shutdown_cmd in server["shutdown_cmds"]: + shutdown_cmd = shutdown_cmd.format(**substitutions) print_debug(shutdown_cmd) proc = subprocess.run(shutdown_cmd.split(), universal_newlines=True, @@ -305,7 +309,7 @@ class Benchmark: """Terminate all started servers""" print_info("Shutting down servers") for server in self.servers: - Benchmark.shutdown_server(server) + self.shutdown_server(server) def run(self, runs=3): """generic run implementation""" |
