Files
python-zaqarclient/examples/simple.py
Flavio Percoco 4fdbddac29 Add a Message resource and a MessageIterator
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
2014-01-07 10:02:52 +01:00

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)