Run on_finalize() for ADDED events
In case of Kuryr being restarted when a resource is already deleted, an ADDED event will be detected by the handler. If that resource had finalizers, Kuryr needs to run on_finalize() too. This commit makes sure we check for deletionTimestamp on ADDED events too. Change-Id: Ia98311a4afc840b3db87f02555a45e9e639ce742
This commit is contained in:
parent
256dc2e3b1
commit
20eea68027
|
@ -64,21 +64,28 @@ class ResourceEventHandler(dispatch.EventConsumer, health.HealthHandler):
|
||||||
def consumes(self):
|
def consumes(self):
|
||||||
return {object_kind: self.OBJECT_KIND}
|
return {object_kind: self.OBJECT_KIND}
|
||||||
|
|
||||||
def __call__(self, event):
|
def _check_finalize(self, obj):
|
||||||
event_type = event.get('type')
|
|
||||||
obj = event.get('object')
|
|
||||||
if 'MODIFIED' == event_type:
|
|
||||||
deletion_timestamp = None
|
deletion_timestamp = None
|
||||||
try:
|
try:
|
||||||
deletion_timestamp = obj['metadata']['deletionTimestamp']
|
deletion_timestamp = obj['metadata']['deletionTimestamp']
|
||||||
except (KeyError, TypeError):
|
except (KeyError, TypeError):
|
||||||
pass
|
pass
|
||||||
if deletion_timestamp:
|
|
||||||
|
return deletion_timestamp
|
||||||
|
|
||||||
|
def __call__(self, event):
|
||||||
|
event_type = event.get('type')
|
||||||
|
obj = event.get('object')
|
||||||
|
if 'MODIFIED' == event_type:
|
||||||
|
if self._check_finalize(obj):
|
||||||
self.on_finalize(obj)
|
self.on_finalize(obj)
|
||||||
return
|
return
|
||||||
self.on_modified(obj)
|
self.on_modified(obj)
|
||||||
self.on_present(obj)
|
self.on_present(obj)
|
||||||
elif 'ADDED' == event_type:
|
elif 'ADDED' == event_type:
|
||||||
|
if self._check_finalize(obj):
|
||||||
|
self.on_finalize(obj)
|
||||||
|
return
|
||||||
self.on_added(obj)
|
self.on_added(obj)
|
||||||
self.on_present(obj)
|
self.on_present(obj)
|
||||||
elif 'DELETED' == event_type:
|
elif 'DELETED' == event_type:
|
||||||
|
|
Loading…
Reference in New Issue