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

Subscribers

People subscribed via source and target branches