diff --git a/doc/source/reference/drivers/mqtt.rst b/doc/source/reference/drivers/mqtt.rst index 0826cf28c1..168785f63d 100644 --- a/doc/source/reference/drivers/mqtt.rst +++ b/doc/source/reference/drivers/mqtt.rst @@ -13,6 +13,12 @@ An MQTT report uses this schema: .. attr:: + .. attr:: uuid + + The item UUID. Each item enqueued into a Zuul pipeline is + assigned a UUID which remains the same even as Zuul's + speculative execution algorithm re-orders pipeline contents. + .. attr:: action The reporter action name, e.g.: 'start', 'success', 'failure', diff --git a/tests/unit/test_connection.py b/tests/unit/test_connection.py index 3f5e48f00a..83135d5439 100644 --- a/tests/unit/test_connection.py +++ b/tests/unit/test_connection.py @@ -645,6 +645,7 @@ class TestMQTTConnection(ZuulTestCase): self.assertIn('enqueue_time', mqtt_payload) self.assertIn('trigger_time', mqtt_payload) self.assertIn('zuul_event_id', mqtt_payload) + self.assertIn('uuid', mqtt_payload) self.assertEquals(dependent_test_job['dependencies'], ['test']) def test_mqtt_invalid_topic(self): diff --git a/zuul/driver/mqtt/mqttreporter.py b/zuul/driver/mqtt/mqttreporter.py index 3376f18666..a533893374 100644 --- a/zuul/driver/mqtt/mqttreporter.py +++ b/zuul/driver/mqtt/mqttreporter.py @@ -48,6 +48,7 @@ class MQTTReporter(BaseReporter): item, with_jobs=False), 'trigger_time': item.event.timestamp, 'enqueue_time': item.enqueue_time, + 'uuid': item.uuid, 'buildset': { 'uuid': item.current_build_set.uuid, 'result': item.current_build_set.result,