Gracefully handle cancelling all events more than once
Check to see if we can iterate over events if cancel_all_events is called more than once, so we can avoid a NoneType error. Change-Id: Ie0baeb17ffb1a6421bcc7d0fbcdf24afc6ede14c Closes-Bug: #1549401
This commit is contained in:
parent
f3c8a70cf5
commit
654f029482
nova
@ -581,6 +581,9 @@ class InstanceEvents(object):
|
||||
return _clear_events()
|
||||
|
||||
def cancel_all_events(self):
|
||||
if self._events is None:
|
||||
LOG.debug('Unexpected attempt to cancel events during shutdown.')
|
||||
return
|
||||
our_events = self._events
|
||||
# NOTE(danms): Block new events
|
||||
self._events = None
|
||||
|
@ -2057,6 +2057,8 @@ class ComputeManagerUnitTestCase(test.NoDBTestCase):
|
||||
}
|
||||
}
|
||||
self.compute.instance_events.cancel_all_events()
|
||||
# call it again to make sure we handle that gracefully
|
||||
self.compute.instance_events.cancel_all_events()
|
||||
self.assertTrue(fake_eventlet_event.send.called)
|
||||
event = fake_eventlet_event.send.call_args_list[0][0][0]
|
||||
self.assertEqual('network-vif-plugged', event.name)
|
||||
|
Loading…
x
Reference in New Issue
Block a user