Merge lp:~gandelman-a/ironic/icehouse_rc2 into lp:~ubuntu-server-dev/ironic/icehouse

Proposed by Adam Gandelman
Status: Rejected
Rejected by: Martin Pitt
Proposed branch: lp:~gandelman-a/ironic/icehouse_rc2
Merge into: lp:~ubuntu-server-dev/ironic/icehouse
Diff against target: 575 lines (+537/-2)
4 files modified
debian/changelog (+10/-0)
debian/control (+2/-2)
debian/patches/cleanup_conductors_in_tests.patch (+524/-0)
debian/patches/series (+1/-0)
To merge this branch: bzr merge lp:~gandelman-a/ironic/icehouse_rc2
Reviewer Review Type Date Requested Status
Ubuntu Server Developers Pending
Review via email: mp+215985@code.launchpad.net

Description of the change

RC2 and some minor fixes, including a cherry-picked patch that will fix a potential for memory exhaustion during test suite run (saw this a few times on PPA buildds)

To post a comment you must log in.
Revision history for this message
Martin Pitt (pitti) wrote :

ironic is much newer in wily, and for trusty we probably won't update to newer upstream versions any more, so this seems obsolete. If this is still relevant, please reopen.

Unmerged revisions

18. By Adam Gandelman

d/control: Fix lintian warnings: bump debhelper version requirement
and standards version.

17. By Adam Gandelman

d/control: Bump standards to 3.9.5.

16. By Adam Gandelman

d/p/cleanup_conductors_in_tests.patch: Cherry-pick upstream patch that
fixes possible memory exhaustion and deadlock during test suite runs.

15. By Adam Gandelman

New upstream release.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2014-04-04 18:58:26 +0000
3+++ debian/changelog 2014-04-15 23:19:36 +0000
4@@ -1,3 +1,13 @@
5+ironic (2014.1~rc2-0ubuntu1) trusty; urgency=medium
6+
7+ * New upstream release.
8+ * d/p/cleanup_conductors_in_tests.patch: Cherry-pick upstream patch that
9+ fixes possible memory exhaustion and deadlock during test suite runs.
10+ * d/control: Fix lintian warnings: bump debhelper version requirement
11+ and standards version.
12+
13+ -- Adam Gandelman <adamg@ubuntu.com> Tue, 15 Apr 2014 16:04:16 -0700
14+
15 ironic (2014.1~rc1-0ubuntu1) trusty; urgency=medium
16
17 [ Adam Gandelman ]
18
19=== modified file 'debian/control'
20--- debian/control 2014-04-04 18:16:52 +0000
21+++ debian/control 2014-04-15 23:19:36 +0000
22@@ -2,7 +2,7 @@
23 Section: net
24 Priority: extra
25 Maintainer: Chuck Short <zulcss@ubuntu.com>
26-Build-Depends: debhelper (>= 8.0.0),
27+Build-Depends: debhelper (>= 9.0.0),
28 alembic (>= 0.4.1),
29 python-setuptools,
30 python-all (>= 2.6),
31@@ -40,7 +40,7 @@
32 python-subunit,
33 testrepository (>= 0.0.17),
34 python-testtools (>= 0.9.32)
35-Standards-Version: 3.9.4
36+Standards-Version: 3.9.5
37 Vcs-Browser: http://bazaar.launchpad.net/~ubuntu-server-dev/ironic/icehouse/files
38 Vcs-Bzr: https://code.launchpad.net/~ubuntu-server-dev/ironic/icehouse
39
40
41=== added file 'debian/patches/cleanup_conductors_in_tests.patch'
42--- debian/patches/cleanup_conductors_in_tests.patch 1970-01-01 00:00:00 +0000
43+++ debian/patches/cleanup_conductors_in_tests.patch 2014-04-15 23:19:36 +0000
44@@ -0,0 +1,524 @@
45+From a4cf03c7e66a829400d69da295f54f5c2beb6812 Mon Sep 17 00:00:00 2001
46+From: Adam Gandelman <adamg@ubuntu.com>
47+Date: Wed, 9 Apr 2014 16:50:05 -0700
48+Subject: [PATCH 1/1] Cleanup running conductor services in tests
49+
50+The conductor manager tests are not stopping services that are
51+started, instead relying strickly on database cleanup. This is
52+causing condcutor periodic tasks to bleed into other test cases
53+and cause occasional unrelated deadlocks in logging later on during
54+test runs.
55+
56+Change-Id: I7502df5dec7c42fe1a20bebad8f9ad393572d17d
57+Closes-bug: #1300420
58+---
59+ ironic/tests/conductor/test_manager.py | 121 ++++++++++++++++++---------------
60+ 1 file changed, 66 insertions(+), 55 deletions(-)
61+
62+diff --git a/ironic/tests/conductor/test_manager.py b/ironic/tests/conductor/test_manager.py
63+index 307b7c9..68e2ba3 100644
64+--- a/ironic/tests/conductor/test_manager.py
65++++ b/ironic/tests/conductor/test_manager.py
66+@@ -55,16 +55,27 @@ class ManagerTestCase(base.DbTestCase):
67+ mgr_utils.mock_the_extension_manager()
68+ self.driver = driver_factory.get_driver("fake")
69+
70++ def _stop_service(self):
71++ try:
72++ self.dbapi.get_conductor(self.hostname)
73++ except exception.ConductorNotFound:
74++ return
75++ self.service.stop()
76++
77++ def _start_service(self):
78++ self.service.start()
79++ self.addCleanup(self._stop_service)
80++
81+ def test_start_registers_conductor(self):
82+ self.assertRaises(exception.ConductorNotFound,
83+ self.dbapi.get_conductor,
84+ self.hostname)
85+- self.service.start()
86++ self._start_service()
87+ res = self.dbapi.get_conductor(self.hostname)
88+ self.assertEqual(self.hostname, res['hostname'])
89+
90+ def test_stop_unregisters_conductor(self):
91+- self.service.start()
92++ self._start_service()
93+ res = self.dbapi.get_conductor(self.hostname)
94+ self.assertEqual(self.hostname, res['hostname'])
95+ self.service.stop()
96+@@ -80,24 +91,24 @@ class ManagerTestCase(base.DbTestCase):
97+ with mock.patch.object(df._extension_manager, 'names') as mock_names:
98+ # verify driver names are registered
99+ mock_names.return_value = init_names
100+- self.service.start()
101++ self._start_service()
102+ res = self.dbapi.get_conductor(self.hostname)
103+ self.assertEqual(init_names, res['drivers'])
104+
105+ # verify that restart registers new driver names
106+ mock_names.return_value = restart_names
107+- self.service.start()
108++ self._start_service()
109+ res = self.dbapi.get_conductor(self.hostname)
110+ self.assertEqual(restart_names, res['drivers'])
111+
112+ def test__conductor_service_record_keepalive(self):
113+- self.service.start()
114++ self._start_service()
115+ with mock.patch.object(self.dbapi, 'touch_conductor') as mock_touch:
116+ self.service._conductor_service_record_keepalive(self.context)
117+ mock_touch.assert_called_once_with(self.hostname)
118+
119+ def test__sync_power_state_no_sync(self):
120+- self.service.start()
121++ self._start_service()
122+ n = utils.get_test_node(driver='fake', power_state='fake-power')
123+ self.dbapi.create_node(n)
124+ with mock.patch.object(self.driver.power,
125+@@ -109,7 +120,7 @@ class ManagerTestCase(base.DbTestCase):
126+ self.assertEqual('fake-power', node['power_state'])
127+
128+ def test__sync_power_state_not_set(self):
129+- self.service.start()
130++ self._start_service()
131+ n = utils.get_test_node(driver='fake', power_state=None)
132+ self.dbapi.create_node(n)
133+ with mock.patch.object(self.driver.power,
134+@@ -122,7 +133,7 @@ class ManagerTestCase(base.DbTestCase):
135+
136+ @mock.patch.object(objects.node.Node, 'save')
137+ def test__sync_power_state_unchanged(self, save_mock):
138+- self.service.start()
139++ self._start_service()
140+ n = utils.get_test_node(driver='fake', power_state=states.POWER_ON)
141+ self.dbapi.create_node(n)
142+ with mock.patch.object(self.driver.power,
143+@@ -135,7 +146,7 @@ class ManagerTestCase(base.DbTestCase):
144+ @mock.patch.object(conductor_utils, 'node_power_action')
145+ @mock.patch.object(objects.node.Node, 'save')
146+ def test__sync_power_state_changed_sync(self, save_mock, npa_mock):
147+- self.service.start()
148++ self._start_service()
149+ self.config(force_power_state_during_sync=True, group='conductor')
150+ n = utils.get_test_node(driver='fake', power_state=states.POWER_ON)
151+ self.dbapi.create_node(n)
152+@@ -154,7 +165,7 @@ class ManagerTestCase(base.DbTestCase):
153+ """Force sync node power state and check if max retry
154+ limit for force sync is honoured
155+ """
156+- self.service.start()
157++ self._start_service()
158+ self.config(force_power_state_during_sync=True, group='conductor')
159+ self.config(power_state_sync_max_retries=1, group='conductor')
160+ n = utils.get_test_node(driver='fake', power_state=states.POWER_ON)
161+@@ -180,7 +191,7 @@ class ManagerTestCase(base.DbTestCase):
162+ @mock.patch.object(conductor_utils, 'node_power_action')
163+ @mock.patch.object(objects.node.Node, 'save')
164+ def test__sync_power_state_changed_failed(self, save_mock, npa_mock):
165+- self.service.start()
166++ self._start_service()
167+ self.config(force_power_state_during_sync=True, group='conductor')
168+ n = utils.get_test_node(driver='fake', power_state=states.POWER_ON)
169+ self.dbapi.create_node(n)
170+@@ -199,7 +210,7 @@ class ManagerTestCase(base.DbTestCase):
171+ @mock.patch.object(conductor_utils, 'node_power_action')
172+ @mock.patch.object(objects.node.Node, 'save')
173+ def test__sync_power_state_changed_save(self, save_mock, npa_mock):
174+- self.service.start()
175++ self._start_service()
176+ self.config(force_power_state_during_sync=False, group='conductor')
177+ n = utils.get_test_node(driver='fake', power_state=states.POWER_OFF)
178+ self.dbapi.create_node(n)
179+@@ -212,7 +223,7 @@ class ManagerTestCase(base.DbTestCase):
180+ self.assertTrue(save_mock.called)
181+
182+ def test__sync_power_state_node_locked(self):
183+- self.service.start()
184++ self._start_service()
185+ n = utils.get_test_node(driver='fake', power_state='fake-power')
186+ self.dbapi.create_node(n)
187+ self.dbapi.reserve_nodes('fake-reserve', [n['id']])
188+@@ -224,7 +235,7 @@ class ManagerTestCase(base.DbTestCase):
189+ self.assertEqual('fake-power', node['power_state'])
190+
191+ def test__sync_power_state_multiple_nodes(self):
192+- self.service.start()
193++ self._start_service()
194+ self.config(force_power_state_during_sync=False, group='conductor')
195+
196+ # create three nodes
197+@@ -257,7 +268,7 @@ class ManagerTestCase(base.DbTestCase):
198+ self.assertEqual(states.POWER_ON, n3['power_state'])
199+
200+ def test__sync_power_state_node_no_power_state(self):
201+- self.service.start()
202++ self._start_service()
203+ self.config(force_power_state_during_sync=False, group='conductor')
204+
205+ # create three nodes
206+@@ -292,7 +303,7 @@ class ManagerTestCase(base.DbTestCase):
207+ self.assertEqual(final[i], n.power_state)
208+
209+ def test__sync_power_state_node_deploywait(self):
210+- self.service.start()
211++ self._start_service()
212+ n = utils.get_test_node(provision_state=states.DEPLOYWAIT)
213+ self.dbapi.create_node(n)
214+
215+@@ -307,7 +318,7 @@ class ManagerTestCase(base.DbTestCase):
216+ n = utils.get_test_node(driver='fake',
217+ power_state=states.POWER_OFF)
218+ db_node = self.dbapi.create_node(n)
219+- self.service.start()
220++ self._start_service()
221+
222+ with mock.patch.object(self.driver.power, 'get_power_state') \
223+ as get_power_mock:
224+@@ -338,7 +349,7 @@ class ManagerTestCase(base.DbTestCase):
225+ power_state=pwr_state,
226+ reservation=fake_reservation)
227+ db_node = self.dbapi.create_node(n)
228+- self.service.start()
229++ self._start_service()
230+
231+ exc = self.assertRaises(messaging.ClientException,
232+ self.service.change_node_power_state,
233+@@ -364,7 +375,7 @@ class ManagerTestCase(base.DbTestCase):
234+ n = utils.get_test_node(driver='fake',
235+ power_state=initial_state)
236+ db_node = self.dbapi.create_node(n)
237+- self.service.start()
238++ self._start_service()
239+
240+ with mock.patch.object(self.service, '_spawn_worker') \
241+ as spawn_mock:
242+@@ -395,7 +406,7 @@ class ManagerTestCase(base.DbTestCase):
243+ n = utils.get_test_node(driver='fake',
244+ power_state=initial_state)
245+ db_node = self.dbapi.create_node(n)
246+- self.service.start()
247++ self._start_service()
248+
249+ with mock.patch.object(self.driver.power, 'get_power_state') \
250+ as get_power_mock:
251+@@ -512,7 +523,7 @@ class ManagerTestCase(base.DbTestCase):
252+ n = utils.get_test_node(driver='fake')
253+ node = self.dbapi.create_node(n)
254+ info = {'bar': 'baz'}
255+- self.service.start()
256++ self._start_service()
257+
258+ self.service.vendor_passthru(
259+ self.context, n['uuid'], 'first_method', info)
260+@@ -529,7 +540,7 @@ class ManagerTestCase(base.DbTestCase):
261+ n = utils.get_test_node(driver='fake', reservation=fake_reservation)
262+ node = self.dbapi.create_node(n)
263+ info = {'bar': 'baz'}
264+- self.service.start()
265++ self._start_service()
266+
267+ exc = self.assertRaises(messaging.ClientException,
268+ self.service.vendor_passthru,
269+@@ -546,7 +557,7 @@ class ManagerTestCase(base.DbTestCase):
270+ n = utils.get_test_node(driver='fake')
271+ node = self.dbapi.create_node(n)
272+ info = {'bar': 'baz'}
273+- self.service.start()
274++ self._start_service()
275+
276+ exc = self.assertRaises(messaging.ClientException,
277+ self.service.vendor_passthru,
278+@@ -565,7 +576,7 @@ class ManagerTestCase(base.DbTestCase):
279+ n = utils.get_test_node(driver='fake')
280+ node = self.dbapi.create_node(n)
281+ info = {'invalid_param': 'whatever'}
282+- self.service.start()
283++ self._start_service()
284+
285+ exc = self.assertRaises(messaging.ClientException,
286+ self.service.vendor_passthru,
287+@@ -583,7 +594,7 @@ class ManagerTestCase(base.DbTestCase):
288+ node = self.dbapi.create_node(n)
289+ info = {'bar': 'baz'}
290+ self.driver.vendor = None
291+- self.service.start()
292++ self._start_service()
293+
294+ exc = self.assertRaises(messaging.ClientException,
295+ self.service.vendor_passthru,
296+@@ -601,7 +612,7 @@ class ManagerTestCase(base.DbTestCase):
297+ n = utils.get_test_node(driver='fake')
298+ node = self.dbapi.create_node(n)
299+ info = {'bar': 'baz'}
300+- self.service.start()
301++ self._start_service()
302+
303+ with mock.patch.object(self.service, '_spawn_worker') \
304+ as spawn_mock:
305+@@ -701,7 +712,7 @@ class ManagerTestCase(base.DbTestCase):
306+ mock_deploy.assert_called_once_with(mock.ANY, mock.ANY)
307+
308+ def test_do_node_deploy_partial_ok(self):
309+- self.service.start()
310++ self._start_service()
311+ thread = self.service._spawn_worker(lambda: None)
312+ with mock.patch.object(self.service, '_spawn_worker') as mock_spawn:
313+ mock_spawn.return_value = thread
314+@@ -724,7 +735,7 @@ class ManagerTestCase(base.DbTestCase):
315+ def test_do_node_deploy_worker_pool_full(self):
316+ ndict = utils.get_test_node(driver='fake')
317+ node = self.dbapi.create_node(ndict)
318+- self.service.start()
319++ self._start_service()
320+
321+ with mock.patch.object(self.service, '_spawn_worker') as mock_spawn:
322+ mock_spawn.side_effect = exception.NoFreeConductorWorker()
323+@@ -773,7 +784,7 @@ class ManagerTestCase(base.DbTestCase):
324+ node = self.dbapi.create_node(ndict)
325+
326+ task = task_manager.TaskManager(self.context, node.uuid)
327+- self.service.start()
328++ self._start_service()
329+ mock_tear_down.side_effect = exception.InstanceDeployFailure('test')
330+ self.assertRaises(exception.InstanceDeployFailure,
331+ self.service._do_node_tear_down,
332+@@ -792,7 +803,7 @@ class ManagerTestCase(base.DbTestCase):
333+ node = self.dbapi.create_node(ndict)
334+
335+ task = task_manager.TaskManager(self.context, node.uuid)
336+- self.service.start()
337++ self._start_service()
338+ mock_tear_down.return_value = states.DELETED
339+ self.service._do_node_tear_down(self.context, task)
340+ node.refresh(self.context)
341+@@ -808,7 +819,7 @@ class ManagerTestCase(base.DbTestCase):
342+ provision_state=states.ACTIVE)
343+ node = self.dbapi.create_node(ndict)
344+
345+- self.service.start()
346++ self._start_service()
347+ task = task_manager.TaskManager(self.context, node.uuid)
348+ mock_tear_down.return_value = states.DELETING
349+ self.service._do_node_tear_down(self.context, task)
350+@@ -822,7 +833,7 @@ class ManagerTestCase(base.DbTestCase):
351+ ndict = utils.get_test_node(driver='fake',
352+ provision_state=states.ACTIVE)
353+ node = self.dbapi.create_node(ndict)
354+- self.service.start()
355++ self._start_service()
356+
357+ mock_spawn.side_effect = exception.NoFreeConductorWorker()
358+
359+@@ -904,7 +915,7 @@ class ManagerTestCase(base.DbTestCase):
360+ func_mock = mock.Mock()
361+ args = (1, 2, "test")
362+ kwargs = dict(kw1='test1', kw2='test2')
363+- self.service.start()
364++ self._start_service()
365+
366+ thread = self.service._spawn_worker(func_mock, *args, **kwargs)
367+ self.service._worker_pool.waitall()
368+@@ -919,7 +930,7 @@ class ManagerTestCase(base.DbTestCase):
369+ def func():
370+ time.sleep(1)
371+ link_callback = mock.Mock()
372+- self.service.start()
373++ self._start_service()
374+
375+ thread = self.service._spawn_worker(func)
376+ # func_mock executing at this moment
377+@@ -932,7 +943,7 @@ class ManagerTestCase(base.DbTestCase):
378+ def func():
379+ pass
380+ link_callback = mock.Mock()
381+- self.service.start()
382++ self._start_service()
383+
384+ thread = self.service._spawn_worker(func)
385+ self.service._worker_pool.waitall()
386+@@ -946,7 +957,7 @@ class ManagerTestCase(base.DbTestCase):
387+ time.sleep(1)
388+ raise Exception()
389+ link_callback = mock.Mock()
390+- self.service.start()
391++ self._start_service()
392+
393+ thread = self.service._spawn_worker(func)
394+ # func_mock executing at this moment
395+@@ -959,7 +970,7 @@ class ManagerTestCase(base.DbTestCase):
396+ def func():
397+ raise Exception()
398+ link_callback = mock.Mock()
399+- self.service.start()
400++ self._start_service()
401+
402+ thread = self.service._spawn_worker(func)
403+ self.service._worker_pool.waitall()
404+@@ -969,7 +980,7 @@ class ManagerTestCase(base.DbTestCase):
405+ link_callback.assert_called_once_with(thread)
406+
407+ def test_destroy_node(self):
408+- self.service.start()
409++ self._start_service()
410+ ndict = utils.get_test_node(driver='fake')
411+ node = self.dbapi.create_node(ndict)
412+ self.service.destroy_node(self.context, node.uuid)
413+@@ -978,7 +989,7 @@ class ManagerTestCase(base.DbTestCase):
414+ node.uuid)
415+
416+ def test_destroy_node_reserved(self):
417+- self.service.start()
418++ self._start_service()
419+ fake_reservation = 'fake-reserv'
420+ ndict = utils.get_test_node(reservation=fake_reservation)
421+ node = self.dbapi.create_node(ndict)
422+@@ -993,7 +1004,7 @@ class ManagerTestCase(base.DbTestCase):
423+ self.assertEqual(fake_reservation, node.reservation)
424+
425+ def test_destroy_node_associated(self):
426+- self.service.start()
427++ self._start_service()
428+ ndict = utils.get_test_node(instance_uuid='fake-uuid')
429+ node = self.dbapi.create_node(ndict)
430+
431+@@ -1013,7 +1024,7 @@ class ManagerTestCase(base.DbTestCase):
432+ past = datetime.datetime(2000, 1, 1, 0, 0)
433+ present = past + datetime.timedelta(minutes=5)
434+ mock_utcnow.return_value = past
435+- self.service.start()
436++ self._start_service()
437+ n = utils.get_test_node(provision_state=states.DEPLOYWAIT,
438+ target_provision_state=states.DEPLOYDONE,
439+ provision_updated_at=past)
440+@@ -1034,7 +1045,7 @@ class ManagerTestCase(base.DbTestCase):
441+ past = datetime.datetime(2000, 1, 1, 0, 0)
442+ present = past + datetime.timedelta(minutes=5)
443+ mock_utcnow.return_value = past
444+- self.service.start()
445++ self._start_service()
446+ n = utils.get_test_node(provision_state=states.DEPLOYWAIT,
447+ target_provision_state=states.DEPLOYDONE,
448+ provision_updated_at=past)
449+@@ -1050,7 +1061,7 @@ class ManagerTestCase(base.DbTestCase):
450+
451+ def test__check_deploy_timeouts_disabled(self):
452+ self.config(deploy_callback_timeout=0, group='conductor')
453+- self.service.start()
454++ self._start_service()
455+ with mock.patch.object(self.dbapi, 'get_nodeinfo_list') as get_mock:
456+ self.service._check_deploy_timeouts(self.context)
457+ self.assertFalse(get_mock.called)
458+@@ -1061,7 +1072,7 @@ class ManagerTestCase(base.DbTestCase):
459+ past = datetime.datetime(2000, 1, 1, 0, 0)
460+ present = past + datetime.timedelta(minutes=5)
461+ mock_utcnow.return_value = past
462+- self.service.start()
463++ self._start_service()
464+ n = utils.get_test_node(provision_state=states.DEPLOYWAIT,
465+ target_provision_state=states.DEPLOYDONE,
466+ provision_updated_at=past)
467+@@ -1081,7 +1092,7 @@ class ManagerTestCase(base.DbTestCase):
468+ def test_set_console_mode_worker_pool_full(self):
469+ ndict = utils.get_test_node(driver='fake')
470+ node = self.dbapi.create_node(ndict)
471+- self.service.start()
472++ self._start_service()
473+ with mock.patch.object(self.service, '_spawn_worker') \
474+ as spawn_mock:
475+ spawn_mock.side_effect = exception.NoFreeConductorWorker()
476+@@ -1097,7 +1108,7 @@ class ManagerTestCase(base.DbTestCase):
477+ def test_set_console_mode_enabled(self):
478+ ndict = utils.get_test_node(driver='fake')
479+ node = self.dbapi.create_node(ndict)
480+- self.service.start()
481++ self._start_service()
482+ self.service.set_console_mode(self.context, node.uuid, True)
483+ self.service._worker_pool.waitall()
484+ node.refresh(self.context)
485+@@ -1106,7 +1117,7 @@ class ManagerTestCase(base.DbTestCase):
486+ def test_set_console_mode_disabled(self):
487+ ndict = utils.get_test_node(driver='fake')
488+ node = self.dbapi.create_node(ndict)
489+- self.service.start()
490++ self._start_service()
491+ self.service.set_console_mode(self.context, node.uuid, False)
492+ self.service._worker_pool.waitall()
493+ node.refresh(self.context)
494+@@ -1115,7 +1126,7 @@ class ManagerTestCase(base.DbTestCase):
495+ def test_set_console_mode_not_supported(self):
496+ ndict = utils.get_test_node(driver='fake', last_error=None)
497+ node = self.dbapi.create_node(ndict)
498+- self.service.start()
499++ self._start_service()
500+ # null the console interface
501+ self.driver.console = None
502+ exc = self.assertRaises(messaging.ClientException,
503+@@ -1131,7 +1142,7 @@ class ManagerTestCase(base.DbTestCase):
504+ def test_set_console_mode_validation_fail(self):
505+ ndict = utils.get_test_node(driver='fake', last_error=None)
506+ node = self.dbapi.create_node(ndict)
507+- self.service.start()
508++ self._start_service()
509+ with mock.patch.object(self.driver.console, 'validate') as mock_val:
510+ mock_val.side_effect = exception.InvalidParameterValue('error')
511+ exc = self.assertRaises(messaging.ClientException,
512+@@ -1144,7 +1155,7 @@ class ManagerTestCase(base.DbTestCase):
513+ ndict = utils.get_test_node(driver='fake', last_error=None,
514+ console_enabled=False)
515+ node = self.dbapi.create_node(ndict)
516+- self.service.start()
517++ self._start_service()
518+ with mock.patch.object(self.driver.console, 'start_console') \
519+ as mock_sc:
520+ mock_sc.side_effect = exception.IronicException('test-error')
521+@@ -1158,7 +1169,7 @@ class ManagerTestCase(base.DbTestCase):
522+ ndict = utils.get_test_node(driver='fake', last_error=None,
523+ console_enabled=True)
524+ node = self.dbapi.create_node(ndict)
525+- self.service.start()
526++ self._start_service()
527+ with mock.patch.object(self.driver.console, 'stop_console') \
528+ as mock_sc:
529+ mock_sc.side_effect = exception.IronicException('test-error')
530+@@ -1171,7 +1182,7 @@ class ManagerTestCase(base.DbTestCase):
531+ def test_enable_console_already_enabled(self):
532+ ndict = utils.get_test_node(driver='fake', console_enabled=True)
533+ node = self.dbapi.create_node(ndict)
534+- self.service.start()
535++ self._start_service()
536+ with mock.patch.object(self.driver.console, 'start_console') \
537+ as mock_sc:
538+ self.service.set_console_mode(self.context, node.uuid, True)
539+@@ -1181,7 +1192,7 @@ class ManagerTestCase(base.DbTestCase):
540+ def test_disable_console_already_disabled(self):
541+ ndict = utils.get_test_node(driver='fake', console_enabled=False)
542+ node = self.dbapi.create_node(ndict)
543+- self.service.start()
544++ self._start_service()
545+ with mock.patch.object(self.driver.console, 'stop_console') \
546+ as mock_sc:
547+ self.service.set_console_mode(self.context, node.uuid, False)
548+@@ -1231,7 +1242,7 @@ class ManagerTestCase(base.DbTestCase):
549+ self.assertEqual(exc._exc_info[0], exception.InvalidParameterValue)
550+
551+ def test_destroy_node_power_on(self):
552+- self.service.start()
553++ self._start_service()
554+ ndict = utils.get_test_node(power_state=states.POWER_ON)
555+ node = self.dbapi.create_node(ndict)
556+
557+@@ -1245,7 +1256,7 @@ class ManagerTestCase(base.DbTestCase):
558+ self.assertIsNone(node.reservation)
559+
560+ def test_destroy_node_power_off(self):
561+- self.service.start()
562++ self._start_service()
563+ ndict = utils.get_test_node(power_state=states.POWER_OFF)
564+ node = self.dbapi.create_node(ndict)
565+ self.service.destroy_node(self.context, node.uuid)
566+--
567+1.9.1
568+
569
570=== modified file 'debian/patches/series'
571--- debian/patches/series 2014-04-01 22:53:05 +0000
572+++ debian/patches/series 2014-04-15 23:19:36 +0000
573@@ -1,1 +1,2 @@
574 set_logdir.patch
575+cleanup_conductors_in_tests.patch

Subscribers

People subscribed via source and target branches