You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by mc...@apache.org on 2013/09/18 23:15:19 UTC
svn commit: r1524573 - in /qpid/trunk/qpid:
cpp/bindings/qpid/python/ChangeLog python/examples/api/console
Author: mcpierce
Date: Wed Sep 18 21:15:19 2013
New Revision: 1524573
URL: http://svn.apache.org/r1524573
Log:
QPID-4924: Created the console Python example app.
It allows the user to send messages tot he server example app and get
messages back.
Added:
qpid/trunk/qpid/python/examples/api/console (with props)
Modified:
qpid/trunk/qpid/cpp/bindings/qpid/python/ChangeLog
Modified: qpid/trunk/qpid/cpp/bindings/qpid/python/ChangeLog
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/python/ChangeLog?rev=1524573&r1=1524572&r2=1524573&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/python/ChangeLog (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/python/ChangeLog Wed Sep 18 21:15:19 2013
@@ -2,4 +2,4 @@ Version 0.26:
* QPID-4952: Changed the module name to qpid_messaging.
* QPID-5140: Added get/set method to MessageProperties.
* QPID-4924: Added examples from pure Python libraries.
- * Added the console example to interact with server.
+ * QPID-4924: Added the console example to interact with server.
Added: qpid/trunk/qpid/python/examples/api/console
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/python/examples/api/console?rev=1524573&view=auto
==============================================================================
--- qpid/trunk/qpid/python/examples/api/console (added)
+++ qpid/trunk/qpid/python/examples/api/console Wed Sep 18 21:15:19 2013
@@ -0,0 +1,99 @@
+#!/usr/bin/env python
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+#
+
+import optparse, sys, traceback
+
+try:
+ from qpid_messaging import *
+except:
+ from qpid.messaging import *
+
+parser = optparse.OptionParser(usage="usage: %prog [options] ADDRESS ...",
+ description="handle requests from the supplied address.")
+parser.add_option("-b", "--broker", default="localhost",
+ help="connect to specified BROKER (default %default)")
+parser.add_option("-r", "--reconnect", action="store_true",
+ help="enable auto reconnect")
+parser.add_option("-i", "--reconnect-interval", type="float", default=3,
+ help="interval between reconnect attempts")
+parser.add_option("-l", "--reconnect-limit", type="int", default=10,
+ help="maximum number of reconnect attempts")
+parser.add_option("-v", dest="verbose", action="store_true",
+ help="enable logging")
+
+opts, args = parser.parse_args()
+
+if args:
+ addr = args.pop(0)
+else:
+ parser.error("address is required")
+
+conn = Connection(opts.broker,
+ reconnect=opts.reconnect,
+ reconnect_interval=opts.reconnect_interval,
+ reconnect_limit=opts.reconnect_limit)
+
+try:
+ conn.open()
+ session = conn.session()
+ sender = session.sender(addr)
+ response_queue = "response-queue;{create:always}"
+ receiver = session.receiver(response_queue)
+ receiver.capacity = 10
+
+ while True:
+ cmdtype = None
+ data = None
+ input = raw_input("Type (eval/shell/exit, ENTER=shell):")
+ if input != "exit":
+ if input == "eval":
+ cmdtype = input
+ data = raw_input("Text to evaluate: ")
+ elif input == "shell" or input == "":
+ cmdtype = "shell"
+ data = raw_input("Shell cmd: ")
+
+ if cmdtype != None and data != "":
+ msg = Message()
+ msg.properties["type"] = cmdtype
+ # TODO: fix this
+ # msg.setProperty("type", cmdtype)
+ msg.content = data
+ msg.reply_to = response_queue
+ try:
+ sender.send(msg)
+ response = receiver.fetch()
+ print "Response:"
+ print "%s" % response.content
+ session.acknowledge(response)
+ except SendError, e:
+ print e
+ else:
+ break
+ if sender is not None:
+ sender.close()
+ if receiver is not None:
+ receiver.close()
+except ReceiverError, e:
+ print e
+except KeyboardInterrupt:
+ pass
+
+conn.close()
Propchange: qpid/trunk/qpid/python/examples/api/console
------------------------------------------------------------------------------
svn:executable = *
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org