Rev 46: Fix lighttpd shutdown some more. in http://bazaar.launchpad.net/%7Evila/bzr/local-test-server
Vincent Ladeuil
v.ladeuil+lp at free.fr
Mon Sep 1 14:04:51 BST 2008
At http://bazaar.launchpad.net/%7Evila/bzr/local-test-server
------------------------------------------------------------
revno: 46
revision-id: v.ladeuil+lp at free.fr-20080901130447-dn4cgeb29krpf3is
parent: v.ladeuil+lp at free.fr-20080901120048-66fowizci07wkphp
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: local_test_server
timestamp: Mon 2008-09-01 15:04:47 +0200
message:
Fix lighttpd shutdown some more.
* server.py:
(Lighttpd._stop): lighttpd is weird, sometimes he fails to delete
its pid file.
modified:
server.py server.py-20080524160639-rqhbexqatjqbwypw-1
tests/test_utils.py test_utils.py-20080603162150-w01001l902j0gu95-1
-------------- next part --------------
=== modified file 'server.py'
--- a/server.py 2008-09-01 12:00:48 +0000
+++ b/server.py 2008-09-01 13:04:47 +0000
@@ -207,7 +207,7 @@
:param verified: A callable retuning True if the desired condition is
verified.
:param delay: How long to try (in seconds).
- :param interval: How often to try (in miliseconds) intially.
+ :param interval: How often to try (in miliseconds) initially.
:return: True if the condition is verified, False if the delay expires.
@@ -279,11 +279,14 @@
raise
return False
- def _wait_for_server_process_death(self, sig=None, kill=None):
+ def _wait_for_server_process_death(self, sig=None, kill=None,
+ interval=None):
if sig is None:
sig = signal.SIGTERM
if kill is None:
kill = self._kill_server
+ if interval is None:
+ interval = 500.0
def server_is_dead():
pid = self.get_pid()
if pid is None:
@@ -292,7 +295,7 @@
killed = kill(pid, sig)
return killed
- return self._hk_poll(server_is_dead, interval=500.0)
+ return self._hk_poll(server_is_dead, interval=interval)
def _get_log_content(self):
return self._get_file_content(self.get_config_value('log_file'))
@@ -487,12 +490,13 @@
self, extra='Did not create pid file %s'
% self.get_config_value('pid_file'))
-
def _stop(self):
if not self._wait_for_server_process_death():
raise LTSCantStopError(self)
- # We need to delete the pid file ourselves
- osutils.delete_any(self.get_config_value('pid_file'))
+ # Sometimes the pid_file is left behind even if the server process is
+ # dead
+ if self.get_pid() is not None:
+ osutils.delete_any(self.get_config_value('pid_file'))
def _wait_for_server_start_in_log(self):
"""Reliably check that the server is started.
=== modified file 'tests/test_utils.py'
--- a/tests/test_utils.py 2008-06-27 17:38:32 +0000
+++ b/tests/test_utils.py 2008-09-01 13:04:47 +0000
@@ -52,6 +52,10 @@
klass = self._server_class
if klass._server_command_name is not None:
if server.locate_program(klass._server_command_name) is None:
+ # Don't even try to start the server if its associated command
+ # can't be found.
+ # FIXME: we should handle that as part as installation
+ # verification.
raise tests.UnavailableFeature(klass)
return klass(server._get_available_port(), self._get_config())
More information about the bazaar-commits
mailing list