From ad74424768463cd6ad02dd9d6fdf64fc7b3bbafb Mon Sep 17 00:00:00 2001 From: David Subiros Date: Fri, 5 Aug 2011 16:35:56 +0100 Subject: Improve the liveness checking for services With this modification both nova-manage and scheduler use the flag service_down_time and check positive and negative values in a correct way. Fixes bug: 867674. Change-Id: I15c48d80cafa2089cd228c09c61b0a1e513730e8 --- nova/scheduler/driver.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'nova/scheduler') diff --git a/nova/scheduler/driver.py b/nova/scheduler/driver.py index 7bf26cfdf..577503cd8 100644 --- a/nova/scheduler/driver.py +++ b/nova/scheduler/driver.py @@ -21,8 +21,6 @@ Scheduler base class that all Schedulers should inherit from """ -import datetime - from nova import db from nova import exception from nova import flags @@ -143,8 +141,8 @@ class Scheduler(object): """Check whether a service is up based on last heartbeat.""" last_heartbeat = service['updated_at'] or service['created_at'] # Timestamps in DB are UTC. - elapsed = utils.utcnow() - last_heartbeat - return elapsed < datetime.timedelta(seconds=FLAGS.service_down_time) + elapsed = utils.total_seconds(utils.utcnow() - last_heartbeat) + return abs(elapsed) <= FLAGS.service_down_time def hosts_up(self, context, topic): """Return the list of hosts that have a running service for topic.""" -- cgit