Reconfiguring named using RNDC is a common action in BIND 9 system
tests. It involves sending the "reconfig" RNDC command to a named
instance and waiting until it is fully processed. Add a reconfigure()
method to the NamedInstance class in order to simplify and standardize
named reconfiguration using RNDC in Python-based system tests.
TODO:
- full reconfiguration support (w/templating *.in files)
- add an "rndc null" before every reconfiguration to show which file
is used (NamedInstance.add_mark_to_log() as it may be generically
useful?)
"""
return WatchLogFromHere(self._log_file)
+ def reconfigure(self) -> None:
+ """
+ Reconfigure this named `instance` and wait until reconfiguration is
+ finished. Raise an `RNDCException` if reconfiguration fails.
+ """
+ with self.watch_log_from_here() as watcher:
+ self.rndc("reconfig")
+ watcher.wait_for_line("any newly configured zones are now loaded")
+
def _rndc_log(self, command: str, response: str) -> None:
"""
Log an `rndc` invocation (and its output) to the `rndc.log` file in the