From a6d9596d3faa9ec3db7d9233e2fb87a1a14381f0 Mon Sep 17 00:00:00 2001 From: Flaper Fesp Date: Thu, 21 Mar 2013 15:00:44 +0100 Subject: [PATCH] split message's get method in 2 separate methods Before, MessageController's get method did both, find and get operations. In order to keep consistency with the QueueController implementation and make the code a bit cleaner, this patch splits that method into list and get. Implements blueprint storage-base Change-Id: I7661ea40ae1bf9806f61a5ded74a550259410a84 --- marconi/storage/base.py | 32 ++++++++++++++++++---------- marconi/tests/storage/base.py | 3 +-- marconi/tests/util/faulty_storage.py | 4 ++++ 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/marconi/storage/base.py b/marconi/storage/base.py index ca0753955..0c93ffdcc 100644 --- a/marconi/storage/base.py +++ b/marconi/storage/base.py @@ -158,33 +158,42 @@ class MessageBase(ControllerBase): __metaclass__ = abc.ABCMeta @abc.abstractmethod - def get(self, queue, tenant=None, message_id=None, - marker=None, echo=False, client_uuid=None): + def list(self, queue, tenant=None, marker=None, + limit=10, echo=False, client_uuid=None): """ - Base message get method - - This method is responsible for querying messages - and should be capable of retrieving a single - message based on message_id or multiple messages - based on the other parameters being passed. + Base message list method :param queue: Name of the queue to get the message from. :param tenant: Tenant id - :param message: Message ID :param marker: Tail identifier + :param limit: (Default 10) specifies up to 100 + messages to return. :param echo: (Default False) Boolean expressing whether or not this client should receive its own messages. :param client_uuid: Client's unique identifier. This param is required when echo=False. - :returns: List of messages + :returns: Iterator of messages + """ + raise NotImplementedError + + def get(self, queue, message_id, tenant=None): + """ + Base message get method + + :param queue: Name of the queue to get the + message from. + :param tenant: Tenant id + :param message_id: Message ID + + :returns: Dictionary containing message data :raises: DoesNotExist """ raise NotImplementedError @abc.abstractmethod - def post(self, queue, messages, tenant=None): + def post(self, queue, messages, tenant=None, client_uuid=None): """ Base message post method @@ -196,6 +205,7 @@ class MessageBase(ControllerBase): :param messages: Messages to post to queue, it can be a list of 1 or more elements. :param tenant: Tenant id + :param client_uuid: Client's unique identifier. :returns: List of message ids """ diff --git a/marconi/tests/storage/base.py b/marconi/tests/storage/base.py index 149aa0d8f..62776f2ff 100644 --- a/marconi/tests/storage/base.py +++ b/marconi/tests/storage/base.py @@ -126,8 +126,7 @@ class MessageControllerTest(ControllerBaseTest): self.assertEqual(len(created), 1) # Test Message Get - self.controller.get(queue_name, tenant=self.tenant, - message_id=created[0]) + self.controller.get(queue_name, created[0], tenant=self.tenant) # Test Message Deletion self.controller.delete(queue_name, created[0], tenant=self.tenant) diff --git a/marconi/tests/util/faulty_storage.py b/marconi/tests/util/faulty_storage.py index caa9b6fb7..14bd9b020 100644 --- a/marconi/tests/util/faulty_storage.py +++ b/marconi/tests/util/faulty_storage.py @@ -62,6 +62,10 @@ class MessageController(storage.MessageBase): marker=None, echo=False, client_uuid=None): raise NotImplementedError() + def list(self, queue, tenant=None, marker=None, + limit=10, echo=False, client_uuid=None): + raise NotImplementedError() + def post(self, queue, messages, tenant=None): raise NotImplementedError()