mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-04-07 20:58:27 +08:00
Ignore koji_build_change event without task_id
This commit is contained in:
@@ -130,6 +130,14 @@ class MBSConsumer(fedmsg.consumers.FedmsgConsumer):
|
||||
# through crypto validation.
|
||||
super(MBSConsumer, self).validate(message)
|
||||
|
||||
def validate_event(self, event):
|
||||
# task_id is required for koji_build_change event
|
||||
if event["event"] == "koji_build_change" and event["task_id"] is None:
|
||||
raise IgnoreMessage(
|
||||
"Ignore koji_build_change event from message {}, which has a null task_id".format(
|
||||
event["msg_id"])
|
||||
)
|
||||
|
||||
def consume(self, message):
|
||||
monitor.messaging_rx_counter.inc()
|
||||
|
||||
@@ -143,8 +151,9 @@ class MBSConsumer(fedmsg.consumers.FedmsgConsumer):
|
||||
else:
|
||||
try:
|
||||
event_info = self.get_abstracted_event_info(message)
|
||||
self.validate_event(event_info)
|
||||
except IgnoreMessage as e:
|
||||
log.warning(str(e))
|
||||
log.debug(str(e))
|
||||
return
|
||||
|
||||
if event_info is None:
|
||||
|
||||
@@ -76,3 +76,26 @@ class TestConsumer:
|
||||
assert event_info["event"] == events.KOJI_REPO_CHANGE
|
||||
assert event_info["msg_id"] == msg["body"]["msg_id"]
|
||||
assert event_info["tag_name"] == msg["body"]["msg"]["tag"]
|
||||
|
||||
@patch.object(MBSConsumer, "process_message")
|
||||
def test_ingore_koji_build_change_event_without_task_id(self, process_message):
|
||||
"""
|
||||
Test koji_build_change event without task_id should be ignored.
|
||||
"""
|
||||
hub = MagicMock(config={})
|
||||
consumer = MBSConsumer(hub)
|
||||
event = {
|
||||
'build_new_state': 1,
|
||||
'task_id': None,
|
||||
'msg_id': u'f66a43be-e510-44fc-a318-e422cfda65d3',
|
||||
'module_build_id': None,
|
||||
'state_reason': None,
|
||||
'build_name': 'foobar',
|
||||
'build_version': '201912130626',
|
||||
'event': 'koji_build_change',
|
||||
'build_release': u'070752'
|
||||
}
|
||||
consumer.get_abstracted_event_info = MagicMock()
|
||||
consumer.get_abstracted_event_info.return_value = event
|
||||
consumer.consume({})
|
||||
assert process_message.call_count == 0
|
||||
|
||||
Reference in New Issue
Block a user