diff --git a/teeth_agent/base.py b/teeth_agent/base.py index d07348654..f10af431f 100644 --- a/teeth_agent/base.py +++ b/teeth_agent/base.py @@ -142,6 +142,7 @@ class TeethAgentHeartbeater(threading.Thread): backoff_factor = 2.7 def __init__(self, agent): + super(TeethAgentHeartbeater, self).__init__() self.agent = agent self.api = overlord_agent_api.APIClient(agent.api_url) self.stop_event = threading.Event() @@ -172,6 +173,10 @@ class TeethAgentHeartbeater(threading.Thread): return deadline + def stop(self): + self.stop_event.set() + return self.join() + class BaseTeethAgent(object): def __init__(self, listen_host, listen_port, api_url, mode): @@ -233,3 +238,4 @@ class BaseTeethAgent(object): self.started_at = time.time() self.heartbeater.start() serving.run_simple(self.listen_host, self.listen_port, self.api) + self.heartbeater.stop()