The zaqar.storage.redis.utils module

class QueueListCursor(client, queues, denormalizer)

Bases: object

next(*args, **kwargs)
class SubscriptionListCursor(client, subscriptions, denormalizer)

Bases: object

next(*args, **kwargs)
descope_message_ids_set(msgset_key)

Descope messages set with ‘.’

Returns:(queue, project)
descope_queue_name(scoped_name)

Descope Queue name with ‘.’.

Returns the queue name from the scoped name which is of the form project-id.queue-name

descope_subscription_ids_set(subset_key)

Descope subscriptions set with ‘.’

Returns:(queue, project)
msg_claimed_filter(message, now)

Return True IFF the message is currently claimed.

msg_echo_filter(message, client_uuid)

Return True IFF the specified client posted the message.

msg_expired_filter(message, now)

Return True IFF the message has expired.

msgset_key(queue, project=None)
normalize_none_str(string_or_none)

Returns ‘’ IFF given value is None, passthrough otherwise.

This function normalizes None to the empty string to facilitate string concatenation when a variable could be None.

raises_conn_error(func)

Handles the Redis ConnectionFailure error.

This decorator catches Redis’s ConnectionError and raises Zaqar’s ConnectionError instead.

retries_on_connection_error(func)

Causes the wrapped function to be re-called on ConnectionError.

This decorator catches Redis ConnectionError and retries the function call.

Note

Assumes that the decorated function has defined self.driver.redis_cinf so that max_reconnect_attempts and reconnect_sleep can be taken into account.

Warning

The decorated function must be idempotent.

scope_claim_messages(queue=None, project=None)

Returns a scoped name for a queue based on project and queue.

If only the project name is specified, a scope signifying “all queues” for that project is returned. If neither queue nor project are specified, a scope for “all global queues” is returned, which is to be interpreted as excluding queues scoped by project.

Returns:‘{project}.{queue}’ if project and queue are given, ‘{project}.’ if ONLY project is given, ‘.{queue}’ if ONLY queue is given, and ‘.’ if neither are given.
scope_claims_set(queue=None, project=None, message_suffix='')

Scope messages set with ‘.’

Returns a scoped name for the list of messages in the form project-id_queue-name_suffix

scope_message_ids_set(queue=None, project=None, message_suffix='')

Scope messages set with ‘.’

Returns a scoped name for the list of messages in the form project-id_queue-name_suffix

scope_pool_catalogue(queue=None, project=None)

Returns a scoped name for a queue based on project and queue.

If only the project name is specified, a scope signifying “all queues” for that project is returned. If neither queue nor project are specified, a scope for “all global queues” is returned, which is to be interpreted as excluding queues scoped by project.

Returns:‘{project}.{queue}’ if project and queue are given, ‘{project}.’ if ONLY project is given, ‘.{queue}’ if ONLY queue is given, and ‘.’ if neither are given.
scope_queue_catalogue(queue=None, project=None, message_suffix='')

Scope messages set with ‘.’

Returns a scoped name for the list of messages in the form project-id_queue-name_suffix

scope_queue_index(queue=None, project=None, message_suffix='')

Scope messages set with ‘.’

Returns a scoped name for the list of messages in the form project-id_queue-name_suffix

scope_queue_name(queue=None, project=None)

Returns a scoped name for a queue based on project and queue.

If only the project name is specified, a scope signifying “all queues” for that project is returned. If neither queue nor project are specified, a scope for “all global queues” is returned, which is to be interpreted as excluding queues scoped by project.

Returns:‘{project}.{queue}’ if project and queue are given, ‘{project}.’ if ONLY project is given, ‘.{queue}’ if ONLY queue is given, and ‘.’ if neither are given.
scope_subscription_ids_set(queue=None, project=None, subscription_suffix='')

Scope subscriptions set with ‘.’

Returns a scoped name for the list of subscriptions in the form project-id_queue-name_suffix

subset_key(queue, project=None)