Merge "Make sure report_interval is less than service_down_time"

This commit is contained in:
Jenkins 2014-02-06 12:59:44 +00:00 committed by Gerrit Code Review
commit 357ec96502
4 changed files with 34 additions and 4 deletions

View File

@ -73,6 +73,26 @@ class API(object):
# check_isinstance does it
return super(API, cls).__new__(cls)
def __init__(self, *args, **kwargs):
self.basic_config_check()
super(API, self).__init__(*args, **kwargs)
def basic_config_check(self):
"""Perform basic config check."""
# Make sure report interval is less than service down time
report_interval = CONF.report_interval
if CONF.service_down_time <= report_interval:
new_service_down_time = int(report_interval * 2.5)
LOG.warn(_("Report interval must be less than service down "
"time. Current config: <service_down_time: "
"%(service_down_time)s, report_interval: "
"%(report_interval)s>. Setting service_down_time to: "
"%(new_service_down_time)s"),
{'service_down_time': CONF.service_down_time,
'report_interval': report_interval,
'new_service_down_time': new_service_down_time})
CONF.set_override('service_down_time', new_service_down_time)
def join(self, member_id, group_id, service=None):
"""Add a new member to the ServiceGroup

View File

@ -49,7 +49,7 @@ class DBServiceGroupTestCase(test.TestCase):
super(DBServiceGroupTestCase, self).setUp()
servicegroup.API._driver = None
self.flags(servicegroup_driver='db')
self.down_time = 3
self.down_time = 15
self.flags(enable_new_services=True)
self.flags(service_down_time=self.down_time)
self.servicegroup_api = servicegroup.API()
@ -112,7 +112,7 @@ class DBServiceGroupTestCase(test.TestCase):
def test_service_is_up(self):
fts_func = datetime.datetime.fromtimestamp
fake_now = 1000
down_time = 5
down_time = 15
self.flags(service_down_time=down_time)
self.mox.StubOutWithMock(timeutils, 'utcnow')
self.servicegroup_api = servicegroup.API()

View File

@ -50,7 +50,7 @@ class MemcachedServiceGroupTestCase(test.TestCase):
super(MemcachedServiceGroupTestCase, self).setUp()
servicegroup.API._driver = None
self.flags(servicegroup_driver='mc')
self.down_time = 3
self.down_time = 15
self.flags(enable_new_services=True)
self.flags(service_down_time=self.down_time)
self.servicegroup_api = servicegroup.API(test=True)
@ -138,7 +138,7 @@ class MemcachedServiceGroupTestCase(test.TestCase):
self._host,
self._binary)
fake_now = 1000
down_time = 5
down_time = 15
self.flags(service_down_time=down_time)
self.mox.StubOutWithMock(timeutils, 'utcnow_ts')
self.servicegroup_api = servicegroup.API()

View File

@ -81,6 +81,16 @@ class ServiceManagerTestCase(test.TestCase):
serv.start()
self.assertEqual(serv.test_method(), 'service')
def test_service_with_min_down_time(self):
CONF.set_override('service_down_time', 10)
CONF.set_override('report_interval', 10)
serv = service.Service('test',
'test',
'test',
'nova.tests.test_service.FakeManager')
serv.start()
self.assertEqual(CONF.service_down_time, 25)
class ServiceFlagsTestCase(test.TestCase):
def test_service_enabled_on_create_based_on_flag(self):