MQTT¶
The MQTT driver supports reporters only. It is used to send MQTT message when items report.
Message Schema¶
An MQTT report uses this schema:
-
<mqtt schema>¶ -
<mqtt schema>.action¶ The reporter action name, e.g.: ‘start’, ‘success’, ‘failure’, ‘merge-failure’, ...
-
<mqtt schema>.tenant¶ The tenant name.
-
<mqtt schema>.pipeline¶ The pipeline name.
-
<mqtt schema>.project¶ The project name.
-
<mqtt schema>.branch¶ The branch name.
-
<mqtt schema>.change_url¶ The change url.
-
<mqtt schema>.message¶ The report message.
-
<mqtt schema>.change¶ The change number.
-
<mqtt schema>.patchset¶ The patchset number.
-
<mqtt schema>.ref¶ The change reference.
-
<mqtt schema>.zuul_ref¶ The internal zuul change reference.
-
<mqtt schema>.buildset¶ The buildset information.
-
uuid¶
The buildset global uuid.
-
<mqtt schema>.buildset.builds¶
The list of builds.
-
<mqtt schema>.buildset.job_name¶ The job name.
-
<mqtt schema>.buildset.voting¶ The job voting status.
-
<mqtt schema>.buildset.uuid¶ The build uuid (not present in start report).
-
<mqtt schema>.buildset.start_time¶ The build start time (not present in start report).
-
<mqtt schema>.buildset.end_time¶ The build end time (not present in start report).
-
<mqtt schema>.buildset.log_url¶ The build log url (not present in start report).
-
<mqtt schema>.buildset.result¶ The build results (not present in start report).
-
-
Here is an example of a start message:
{
'action': 'start',
'tenant': 'openstack.org',
'pipeline': 'check',
'project': 'sf-jobs',
'branch': 'master',
'change_url': 'https://gerrit.example.com/r/3',
'message': 'Starting check jobs.',
'change': '3',
'patchset': '1',
"ref": "refs/changes/03/3/1",
'zuul_ref': 'Zf8b3d7cd34f54cb396b488226589db8f'
'buildset': {
'uuid': 'f8b3d7cd34f54cb396b488226589db8f'
'builds': [{
'job_name': 'linters',
'voting': True
}],
},
}
Here is an example of a success message:
{
'action': 'success',
'tenant': 'openstack.org',
'pipeline': 'check',
'project': 'sf-jobs',
'branch': 'master',
'change_url': 'https://gerrit.example.com/r/3',
'message': 'Build succeeded.',
'change': '3',
'patchset': '1',
"ref": "refs/changes/03/3/1",
'zuul_ref': 'Zf8b3d7cd34f54cb396b488226589db8f'
'buildset': {
'uuid': 'f8b3d7cd34f54cb396b488226589db8f'
'builds': [{
'job_name': 'linters',
'voting': True
'uuid': '16e3e55aca984c6c9a50cc3c5b21bb83',
'start_time': 1524801179.8557224,
'end_time': 1524801208.928095,
'log_url': 'https://logs.example.com/logs/3/3/1/check/linters/16e3e55/',
'result': 'SUCCESS',
}],
},
}
Connection Configuration¶
-
<mqtt connection>¶ -
<mqtt connection>.driver(required)¶ -
mqtt¶ The connection must set
driver=mqttfor MQTT connections.
-
-
<mqtt connection>.server¶
Default:localhost MQTT server hostname or address to use.
-
<mqtt connection>.port¶
Default:1883 MQTT server port.
-
<mqtt connection>.keepalive¶
Default:60 Maximum period in seconds allowed between communications with the broker.
-
<mqtt connection>.user¶ Set a username for optional broker authentication.
-
<mqtt connection>.password¶ Set a password for optional broker authentication.
-
<mqtt connection>.ca_certs¶ A string path to the Certificate Authority certificate files to enable TLS connection.
-
<mqtt connection>.certfile¶ A strings pointing to the PEM encoded client certificate to enable client TLS based authentication. This option requires keyfile to be set too.
-
<mqtt connection>.keyfile¶ A strings pointing to the PEM encoded client private keys to enable client TLS based authentication. This option requires certfile to be set too.
-
<mqtt connection>.ciphers¶ A string specifying which encryption ciphers are allowable for this connection. More information in this openssl doc.
-
Reporter Configuration¶
A connection that uses the mqtt driver must be supplied to the reporter. Each pipeline must provide a topic name. For example:
- pipeline:
name: check
success:
mqtt:
topic: "{tenant}/zuul/{pipeline}/{project}/{branch}/{change}"
qos: 2
-
pipeline.<reporter>.<mqtt>¶ To report via MQTT message, the dictionaries passed to any of the pipeline reporter support the following attributes: