summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-07-04 14:31:12 +0000
committerGerrit Code Review <review@openstack.org>2013-07-04 14:31:12 +0000
commit6a4800d86ae94123875d510f4f9a7967f09d93cf (patch)
treeea63dcc26e90296b150d11cda5b3cf19be670a1d /tests
parent98d8fda44d8580b4d726708a91614114c32bd521 (diff)
parent5518ad3b80afd4990e0c5462c96256d9155b02b7 (diff)
downloadoslo-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.py27
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())