From 4dc1f63df2f8cce521064fb2e2a688d1210dd42c Mon Sep 17 00:00:00 2001 From: Adam Harwell Date: Fri, 12 Jan 2018 15:40:55 -0800 Subject: [PATCH] Healthmanager health_check timer config fix The periodics health_check job was reading its timing config before oslo.config had actually loaded real values, so it would always use the default. Now it sets up the periodic at runtime, which loads the real config value. Change-Id: I85c6ff0e698c6c5899c78f8c3a5b119e80bb972a --- octavia/cmd/health_manager.py | 13 ++++++++++--- octavia/controller/healthmanager/health_manager.py | 3 --- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/octavia/cmd/health_manager.py b/octavia/cmd/health_manager.py index cd5c4a750e..98b306b557 100644 --- a/octavia/cmd/health_manager.py +++ b/octavia/cmd/health_manager.py @@ -18,7 +18,7 @@ import os import signal import sys -from futurist.periodics import PeriodicWorker +from futurist import periodics from oslo_config import cfg from oslo_log import log as logging @@ -47,8 +47,15 @@ def hm_listener(exit_event): def hm_health_check(exit_event): hm = health_manager.HealthManager(exit_event) - health_check = PeriodicWorker([(hm.health_check, None, None)], - schedule_strategy='aligned_last_finished') + + @periodics.periodic(CONF.health_manager.health_check_interval, + run_immediately=True) + def periodic_health_check(): + hm.health_check() + + health_check = periodics.PeriodicWorker( + [(periodic_health_check, None, None)], + schedule_strategy='aligned_last_finished') def hm_exit(*args, **kwargs): health_check.stop() diff --git a/octavia/controller/healthmanager/health_manager.py b/octavia/controller/healthmanager/health_manager.py index 639195bded..bb99969966 100644 --- a/octavia/controller/healthmanager/health_manager.py +++ b/octavia/controller/healthmanager/health_manager.py @@ -16,7 +16,6 @@ from concurrent import futures import functools -from futurist import periodics from oslo_config import cfg from oslo_db import exception as db_exc from oslo_log import log as logging @@ -62,8 +61,6 @@ class HealthManager(object): self.amp_health_repo = repo.AmphoraHealthRepository() self.dead = exit_event - @periodics.periodic(CONF.health_manager.health_check_interval, - run_immediately=True) def health_check(self): stats = { 'failover_attempted': 0,