Events¶
The Pulp server has the ability to fire AMQP events when tasks change their status. This is enabled by setting event_notifications_enabled under [messaging] to True in /etc/pulp/server.conf. Additionally, event_notification_url may be set if the notification AMQP server is not running locally on port 5672.
Warning
It is highly recommended to use python-kombu-3.0.24-6.pulp or newer which includes a fix for a connection leak.
Messages are published to the pulp.api.v2 topic exchange. Currently only task status updates are published; they have a routing key of tasks.<task-uuid>. This allows a message consumer to only subscribe to updates for tasks they are interested in.
The body of the message is a Task Report object in JSON form. It typically contains the task’s ID, task status and detailed information about the task’s progress.
This example script will read all events from the exchange and print them:
import base64
from qpid.messaging import Connection
receiver = Connection.establish('localhost:5672').session().receiver('pulp.api.v2')
try:
while True:
message = receiver.fetch()
print base64.b64decode(message.content['body'])
except KeyboardInterrupt:
print ''
It is important to note that a sync and publish of a small RPM repo can generate upwards of 400 messages. We do not queue task status update messages for later delivery due to the number of messages that may pile up.
If you know the UUID of a task you are interested in, you can subscribe to messages related to that particular task by adding a subject to the listener. In the example above, this would be done by replacing pulp.api.v2 with pulp.api.v2/tasks.<task-uuid>. The task’s UUID is returned by any API calls that generate asynchronous work.
Notifiers¶
Deprecated since version 2.7: This section describes a notification framework that has been deprecated and will go away in Pulp 3.0.
Event Types¶
Deprecated since version 2.7: This section describes a notification framework that has been deprecated and will go away in Pulp 3.0.