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