
This patch defines the Message resource and the MessageIterator. The former represents a message unit and the possible operations that can be executed from that resource. The later allows users to iterate over Messages' pages and consume all available messages. The patch also renames queue_id to queue._name which is more consistent with the API terminology. NOTE: Functional tests are missing and will be added in a separate patch. Change-Id: I8c871e326bd580964f15d4ffc16c6264f9825ba7 Partially-Implements: python-marconiclient-v1
45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
# Copyright 2013 Red Hat, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
# NOTE(flaper87): Client should be moved to
|
|
# an upper package. It's version agnostic.
|
|
from marconiclient.queues.v1 import client
|
|
|
|
URL = 'http://localhost:8888/v1'
|
|
|
|
|
|
def create_post_delete(queue_name, messages):
|
|
"""Creates a queue, posts messages to it
|
|
and finally deletes it.
|
|
|
|
:params queue_name: The name of the queue
|
|
:type queue_name: `six.text_type`
|
|
:params messages: Messages to post.
|
|
:type messages: list
|
|
"""
|
|
cli = client.Client(URL)
|
|
queue = cli.queue(queue_name)
|
|
queue.post(messages)
|
|
|
|
for msg in queue.messages(echo=True):
|
|
print(msg.body)
|
|
msg.delete()
|
|
|
|
queue.delete()
|
|
|
|
if __name__ == '__main__':
|
|
messages = [{'body': {'id': idx}, 'ttl': 360}
|
|
for idx in range(20)]
|
|
create_post_delete('my_queue', messages)
|