From 49ff15932bf6a86e2c03d0641f6dcb6356a9d61d Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Jul 25 2018 08:04:28 +0000 Subject: Fix handling Autocloud compose test result messages --- diff --git a/greenwave/consumers/resultsdb.py b/greenwave/consumers/resultsdb.py index 149e2de..ea46fc3 100644 --- a/greenwave/consumers/resultsdb.py +++ b/greenwave/consumers/resultsdb.py @@ -83,6 +83,8 @@ class ResultsDBHandler(fedmsg.consumers.FedmsgConsumer): _type = _decode(data.get('type')) if _type == 'bodhi_update' and 'item' in data: yield ('bodhi_update', _decode(data['item'])) + if _type == 'compose' and 'item' in data: + yield ('compose', _decode(data['item'])) if 'productmd.compose.id' in data: yield ('compose', _decode(data['productmd.compose.id'])) if (_type == 'koji_build' and 'item' in data or diff --git a/greenwave/resources.py b/greenwave/resources.py index 86b2b81..63eb5c3 100644 --- a/greenwave/resources.py +++ b/greenwave/resources.py @@ -166,6 +166,7 @@ def retrieve_results(subject_type, subject_identifier): results.extend(retrieve_item_results({'original_spec_nvr': subject_identifier})) elif subject_type == 'compose': results.extend(retrieve_item_results({'productmd.compose.id': subject_identifier})) + results.extend(retrieve_item_results({'type': 'compose', 'item': subject_identifier})) else: raise RuntimeError('Unhandled subject type %r' % subject_type) return results diff --git a/greenwave/tests/test_resultsdb_consumer.py b/greenwave/tests/test_resultsdb_consumer.py index 35f0b2a..822f63e 100644 --- a/greenwave/tests/test_resultsdb_consumer.py +++ b/greenwave/tests/test_resultsdb_consumer.py @@ -57,3 +57,31 @@ def test_announcement_subjects_for_brew_build(): subjects = list(cls.announcement_subjects(message)) assert subjects == [('koji_build', 'glibc-1.0-3.fc27')] + + +def test_announcement_subjects_for_autocloud_compose(): + cls = greenwave.consumers.resultsdb.ResultsDBHandler + app = greenwave.app_factory.create_app() + message = { + 'msg': { + 'task': { + 'item': 'Fedora-AtomicHost-28_Update-20180723.1839.x86_64.qcow2', + 'type': 'compose', + 'name': 'compose.install_no_user' + }, + 'result': { + 'prev_outcome': None, + 'outcome': 'PASSED', + 'id': 23004689, + 'submit_time': '2018-07-23 21:07:38 UTC', + 'log_url': 'https://apps.fedoraproject.org/autocloud/jobs/9238/output' + } + } + } + + with app.app_context(): + with mock.patch('greenwave.resources.retrieve_update_for_build') as f: + f.return_value = None + subjects = list(cls.announcement_subjects(message)) + + assert subjects == [('compose', 'Fedora-AtomicHost-28_Update-20180723.1839.x86_64.qcow2')]