cinder.message.api module

Handles all requests related to user facing messages.

class API

Bases: Base

API for handling user messages.

Cinder Messages describe the outcome of a user action using predefined fields that are members of objects defined in the cinder.message.message_field package. They are intended to be exposed to end users. Their primary purpose is to provide end users with a means of discovering what went wrong when an asynchronous action in the Volume REST API (for which they’ve already received a 2xx response) fails.

Messages contain an ‘expires_at’ field based on the creation time plus the value of the ‘message_ttl’ configuration option. They are periodically reaped by a task of the SchedulerManager class whose periodicity is given by the ‘message_reap_interval’ configuration option.

cleanup_expired_messages(context)
create(context, action, resource_type='VOLUME', resource_uuid=None, exception=None, detail=None, level='ERROR')

Create a message record with the specified information.

Parameters:
  • context – current context object

  • action – a message_field.Action field describing what was taking place when this message was created

  • resource_type – a message_field.Resource field describing the resource this message applies to. Default is message_field.Resource.VOLUME

  • resource_uuid – the resource ID if this message applies to an existing resource. Default is None

  • exception – if an exception has occurred, you can pass it in and it will be translated into an appropriate message detail ID (possibly message_field.Detail.UNKNOWN_ERROR). The message in the exception itself is ignored in order not to expose sensitive information to end users. Default is None

  • detail – a message_field.Detail field describing the event the message is about. Default is None, in which case message_field.Detail.UNKNOWN_ERROR will be used for the message unless an exception in the message_field.EXCEPTION_DETAIL_MAPPINGS is passed; in that case the message_field.Detail field that’s mapped to the exception is used.

  • level – a string describing the severity of the message. Suggested values are ‘INFO’, ‘ERROR’, ‘WARNING’. Default is ‘ERROR’.

create_from_request_context(context, exception=None, detail=None, level='ERROR')

Create a message record with the specified information.

Parameters:
  • context – current context object which we must have populated with the message_action, message_resource_type and message_resource_id fields

  • exception – if an exception has occurred, you can pass it in and it will be translated into an appropriate message detail ID (possibly message_field.Detail.UNKNOWN_ERROR). The message in the exception itself is ignored in order not to expose sensitive information to end users. Default is None

  • detail – a message_field.Detail field describing the event the message is about. Default is None, in which case message_field.Detail.UNKNOWN_ERROR will be used for the message unless an exception in the message_field.EXCEPTION_DETAIL_MAPPINGS is passed; in that case the message_field.Detail field that’s mapped to the exception is used.

  • level – a string describing the severity of the message. Suggested values are ‘INFO’, ‘ERROR’, ‘WARNING’. Default is ‘ERROR’.

delete(context, id)

Delete message with the specified id.

get(context, id)

Return message with the specified id.

get_all(context, filters=None, marker=None, limit=None, offset=None, sort_keys=None, sort_dirs=None)

Return all messages for the given context.