diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-07-04 14:31:12 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-07-04 14:31:12 +0000 |
commit | 6a4800d86ae94123875d510f4f9a7967f09d93cf (patch) | |
tree | ea63dcc26e90296b150d11cda5b3cf19be670a1d /tests | |
parent | 98d8fda44d8580b4d726708a91614114c32bd521 (diff) | |
parent | 5518ad3b80afd4990e0c5462c96256d9155b02b7 (diff) | |
download | oslo-6a4800d86ae94123875d510f4f9a7967f09d93cf.tar.gz oslo-6a4800d86ae94123875d510f4f9a7967f09d93cf.tar.xz oslo-6a4800d86ae94123875d510f4f9a7967f09d93cf.zip |
Merge "Add graceful service shutdown support to Launcher"
Diffstat (limited to 'tests')
-rw-r--r-- | tests/unit/test_service.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/unit/test_service.py b/tests/unit/test_service.py index 0f93830..20007de 100644 --- a/tests/unit/test_service.py +++ b/tests/unit/test_service.py @@ -31,6 +31,7 @@ import socket import time import traceback +from eventlet import event from oslo.config import cfg from openstack.common import eventlet_backdoor @@ -195,6 +196,20 @@ class ServiceLauncherTest(utils.BaseTestCase): self.assertEqual(os.WEXITSTATUS(status), 0) +class _Service(service.Service): + def __init__(self): + super(_Service, self).__init__() + self.init = event.Event() + self.cleaned_up = False + + def start(self): + self.init.send() + + def stop(self): + self.cleaned_up = True + super(_Service, self).stop() + + class LauncherTest(utils.BaseTestCase): def test_backdoor_port(self): @@ -252,3 +267,15 @@ class LauncherTest(utils.BaseTestCase): svc = service.Service() self.assertRaises(eventlet_backdoor.EventletBackdoorConfigValueError, service.launch, svc) + + def test_graceful_shutdown(self): + # test that services are given a chance to clean up: + svc = _Service() + + launcher = service.launch(svc) + # wait on 'init' so we know the service had time to start: + svc.init.wait() + + launcher.stop() + self.assertTrue(svc.cleaned_up) + self.assertTrue(svc._done.ready()) |