aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fl.fischer@fau.de>2019-10-13 20:28:10 +0200
committerFlorian Fischer <florian.fl.fischer@fau.de>2019-10-13 20:28:10 +0200
commit3eab997097f23be22deb99614ee4fbc6e34ff903 (patch)
tree816661b4b99c69bce2cc639e3b85b276ce06f90a
parent1d50a146ea0c7a517564bf3ec2a79cd2bb3c8c79 (diff)
downloadallocbench-3eab997097f23be22deb99614ee4fbc6e34ff903.tar.gz
allocbench-3eab997097f23be22deb99614ee4fbc6e34ff903.zip
support substitutions in server shutdown_cmds
-rw-r--r--src/benchmark.py16
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"""