Base class for transports

A base class you should extend when writing transports.

Transport

class vumi.transports.base.TransportConfig(config_data, static=False)

Base config definition for transports.

You should subclass this and add transport-specific fields.

Configuration options:

Parameters:
  • amqp_prefetch_count (int) – The number of messages fetched concurrently from each AMQP queue by each worker instance.
  • transport_name (str) – The name this transport instance will use to create its queues.
  • publish_status (bool) – Whether status messages should be published by the transport
class vumi.transports.base.Transport(options, config=None)

Base class for transport workers.

The following attributes are available for subclasses to control behaviour:

  • start_message_consumer – Set to False if the message consumer should not be started. The subclass is responsible for starting it in this case.
CONFIG_CLASS

alias of TransportConfig

static generate_message_id()

Generate a message id.

handle_outbound_message(message)

This must be overridden to read outbound messages and do the right thing with them.

publish_ack(user_message_id, sent_message_id, **kw)

Helper method for publishing an ack event.

publish_delivery_report(user_message_id, delivery_status, **kw)

Helper method for publishing a delivery_report event.

publish_event(**kw)

Publish a TransportEvent message.

Some default parameters are handled, so subclasses don’t have to provide a lot of boilerplate.

publish_message(**kw)

Publish a TransportUserMessage message.

Some default parameters are handled, so subclasses don’t have to provide a lot of boilerplate.

publish_nack(user_message_id, reason, **kw)

Helper method for publishing a nack event.

publish_status(**kw)

Helper method for publishing a status message.

send_failure(message, exception, traceback)

Send a failure report.

setup_transport()

All transport_specific setup should happen in here.

Subclasses should override this method to perform extra setup.

setup_worker()

Set up basic transport worker stuff.

You shouldn’t have to override this in subclasses.

teardown_transport()

Clean-up of setup done in setup_transport should happen here.