diff --git a/CHANGES b/CHANGES index 2906006..f687fcd 100644 --- a/CHANGES +++ b/CHANGES @@ -4,7 +4,8 @@ Released 2.4.46 2017-11-xx Changes since 2.4.45: Lib/ -* +* slapdtest.SlapdObject.restart() just restarts slapd + without cleaning any data Tests/ * diff --git a/Lib/slapdtest.py b/Lib/slapdtest.py index 8346040..5c4a83f 100644 --- a/Lib/slapdtest.py +++ b/Lib/slapdtest.py @@ -285,7 +285,9 @@ def start(self): ) def stop(self): - """Stops the slapd server, and waits for it to terminate""" + """ + Stops the slapd server, and waits for it to terminate and cleans up + """ if self._proc is not None: self._log.debug('stopping slapd with pid %d', self._proc.pid) self._proc.terminate() @@ -294,11 +296,11 @@ def stop(self): def restart(self): """ - Restarts the slapd server; ERASING previous content. - Starts the server even it if isn't already running. + Restarts the slapd server with same data """ - self.stop() - self.start() + self._proc.terminate() + self.wait() + self._start_slapd() def wait(self): """Waits for the slapd process to terminate by itself.""" @@ -309,7 +311,7 @@ def wait(self): def _stopped(self): """Called when the slapd server is known to have terminated""" if self._proc is not None: - self._log.info('slapd terminated') + self._log.info('slapd[%d] terminated', self._proc.pid) self._proc = None def _cli_auth_args(self):