summaryrefslogtreecommitdiff
path: root/tools/src
diff options
context:
space:
mode:
authorJonathan Robie <jonathan@apache.org>2011-01-22 18:13:34 +0000
committerJonathan Robie <jonathan@apache.org>2011-01-22 18:13:34 +0000
commitb34eeba55d5ac77c32424098f7d9e6320c498fa2 (patch)
tree8becf97ce221455950df6c16c32335da52b1b705 /tools/src
parenta3ab9b973f6276d186b8c901599b2b0ce9882d49 (diff)
downloadqpid-python-b34eeba55d5ac77c32424098f7d9e6320c498fa2.tar.gz
qpid-route now correctly shows usage for invalid command lines.
Fixes an error introduced by an earlier commit. Also modified qpid-config for consistency. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1062221 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'tools/src')
-rwxr-xr-xtools/src/py/qpid-config112
-rwxr-xr-xtools/src/py/qpid-route91
2 files changed, 106 insertions, 97 deletions
diff --git a/tools/src/py/qpid-config b/tools/src/py/qpid-config
index cdbe72baa0..04b31e98ed 100755
--- a/tools/src/py/qpid-config
+++ b/tools/src/py/qpid-config
@@ -25,6 +25,56 @@ import sys
import locale
from qmf.console import Session
+usage = """
+Usage: qpid-config [OPTIONS]
+ qpid-config [OPTIONS] exchanges [filter-string]
+ qpid-config [OPTIONS] queues [filter-string]
+ qpid-config [OPTIONS] add exchange <type> <name> [AddExchangeOptions]
+ qpid-config [OPTIONS] del exchange <name>
+ qpid-config [OPTIONS] add queue <name> [AddQueueOptions]
+ qpid-config [OPTIONS] del queue <name> [DelQueueOptions]
+ qpid-config [OPTIONS] bind <exchange-name> <queue-name> [binding-key]
+ <for type xml> [-f -|filename]
+ <for type header> [all|any] k1=v1 [, k2=v2...]
+ qpid-config [OPTIONS] unbind <exchange-name> <queue-name> [binding-key]"""
+
+description = """
+ADDRESS syntax:
+
+ [username/password@] hostname
+ ip-address [:<port>]
+
+Examples:
+
+$ qpid-config add queue q
+$ qpid-config add exchange direct d localhost:5672
+$ qpid-config exchanges 10.1.1.7:10000
+$ qpid-config queues guest/guest@broker-host:10000
+
+Add Exchange <type> values:
+
+ direct Direct exchange for point-to-point communication
+ fanout Fanout exchange for broadcast communication
+ topic Topic exchange that routes messages using binding keys with wildcards
+ headers Headers exchange that matches header fields against the binding keys
+ xml XML Exchange - allows content filtering using an XQuery
+
+
+Queue Limit Actions
+
+ none (default) - Use broker's default policy
+ reject - Reject enqueued messages
+ flow-to-disk - Page messages to disk
+ ring - Replace oldest unacquired message with new
+ ring-strict - Replace oldest message, reject if oldest is acquired
+
+Queue Ordering Policies
+
+ fifo (default) - First in, first out
+ lvq - Last Value Queue ordering, allows queue browsing
+ lvq-no-browse - Last Value Queue ordering, browsing clients may lose data"""
+
+
class Config:
def __init__(self):
self._recursive = False
@@ -77,7 +127,7 @@ class JHelpFormatter(IndentedHelpFormatter):
return ""
def Usage():
- print "qpid-config: invalid arguments. Try $ qpid-config --help"
+ print usage
exit(-1)
def OptionsAndArguments(argv):
@@ -85,54 +135,6 @@ def OptionsAndArguments(argv):
global config
- usage = """
- Usage: qpid-config [OPTIONS]
- qpid-config [OPTIONS] exchanges [filter-string]
- qpid-config [OPTIONS] queues [filter-string]
- qpid-config [OPTIONS] add exchange <type> <name> [AddExchangeOptions]
- qpid-config [OPTIONS] del exchange <name>
- qpid-config [OPTIONS] add queue <name> [AddQueueOptions]
- qpid-config [OPTIONS] del queue <name> [DelQueueOptions]
- qpid-config [OPTIONS] bind <exchange-name> <queue-name> [binding-key]
- <for type xml> [-f -|filename]
- <for type header> [all|any] k1=v1 [, k2=v2...]
- qpid-config [OPTIONS] unbind <exchange-name> <queue-name> [binding-key]"""
-
- description = """
- ADDRESS syntax:
-
- [username/password@] hostname
- ip-address [:<port>]
-
- Examples:
-
- $ qpid-config add queue q
- $ qpid-config add exchange direct d localhost:5672
- $ qpid-config exchanges 10.1.1.7:10000
- $ qpid-config queues guest/guest@broker-host:10000
-
- Add Exchange <type> values:
-
- direct Direct exchange for point-to-point communication
- fanout Fanout exchange for broadcast communication
- topic Topic exchange that routes messages using binding keys with wildcards
- headers Headers exchange that matches header fields against the binding keys
- xml XML Exchange - allows content filtering using an XQuery
-
-
- Queue Limit Actions
-
- none (default) - Use broker's default policy
- reject - Reject enqueued messages
- flow-to-disk - Page messages to disk
- ring - Replace oldest unacquired message with new
- ring-strict - Replace oldest message, reject if oldest is acquired
-
- Queue Ordering Policies
-
- fifo (default) - First in, first out
- lvq - Last Value Queue ordering, allows queue browsing
- lvq-no-browse - Last Value Queue ordering, browsing clients may lose data"""
parser = OptionParser(usage=usage,
description=description,
@@ -240,7 +242,7 @@ def OptionsAndArguments(argv):
#
# accept -f followed by either
-# a filename or "-", for stdin. pull the bits into a string, to be
+# a filename or "-", for stdin. pull the bits into a string, to be
# passed to the xml binding.
#
def snarf_xquery_args():
@@ -254,7 +256,7 @@ def snarf_xquery_args():
res = f.read()
f.close()
return [True, res]
-
+
#
# look for "any"/"all" and grok the rest of argv into a map
#
@@ -279,7 +281,7 @@ class BrokerManager:
self.brokerName = None
self.qmf = None
self.broker = None
- self.mechanism = None
+ self.mechanism = None
def SetBroker(self, brokerUrl, mechanism):
self.url = brokerUrl
@@ -355,7 +357,7 @@ class BrokerManager:
if queue != None:
qname = queue.name
print " bind [%s] => %s" % (bind.bindingKey, qname)
-
+
def QueueList(self, filter):
queues = self.qmf.getObjects(_class="queue", _agent=self.brokerAgent)
@@ -502,7 +504,7 @@ class BrokerManager:
# this checks/imports the -f arg
[ok, xquery] = snarf_xquery_args()
_args = { "xquery" : xquery }
- else:
+ else:
if res.type == "headers":
[ok, op, kv] = snarf_header_args(args[3:])
_args = kv
@@ -619,4 +621,4 @@ def main(argv=None):
if __name__ == "__main__":
sys.exit(main())
-
+
diff --git a/tools/src/py/qpid-route b/tools/src/py/qpid-route
index 6449ad6372..3c4de85d1e 100755
--- a/tools/src/py/qpid-route
+++ b/tools/src/py/qpid-route
@@ -26,6 +26,31 @@ import os
import locale
from qmf.console import Session, BrokerURL
+usage = """
+Usage: qpid-route [OPTIONS] dynamic add <dest-broker> <src-broker> <exchange> [tag] [exclude-list]
+ qpid-route [OPTIONS] dynamic del <dest-broker> <src-broker> <exchange>
+
+ qpid-route [OPTIONS] route add <dest-broker> <src-broker> <exchange> <routing-key> [tag] [exclude-list] [mechanism]
+ qpid-route [OPTIONS] route del <dest-broker> <src-broker> <exchange> <routing-key>
+ qpid-route [OPTIONS] queue add <dest-broker> <src-broker> <exchange> <queue>
+ qpid-route [OPTIONS] queue del <dest-broker> <src-broker> <exchange> <queue>
+ qpid-route [OPTIONS] route list [<dest-broker>]
+ qpid-route [OPTIONS] route flush [<dest-broker>]
+ qpid-route [OPTIONS] route map [<broker>]
+
+ qpid-route [OPTIONS] link add <dest-broker> <src-broker>
+ qpid-route [OPTIONS] link del <dest-broker> <src-broker>
+ qpid-route [OPTIONS] link list [<dest-broker>]"""
+
+description = """
+ADDRESS syntax:
+
+ [username/password@] hostname
+ ip-address [:<port>]"""
+
+def Usage():
+ print usage
+
class Config:
def __init__(self):
self._verbose = False
@@ -54,35 +79,7 @@ class JHelpFormatter(IndentedHelpFormatter):
else:
return ""
-def usage(parser):
- parser.print_help()
- exit(-1)
-
-usage = """
-Usage: qpid-route [OPTIONS] dynamic add <dest-broker> <src-broker> <exchange> [tag] [exclude-list]
- qpid-route [OPTIONS] dynamic del <dest-broker> <src-broker> <exchange>
-
- qpid-route [OPTIONS] route add <dest-broker> <src-broker> <exchange> <routing-key> [tag] [exclude-list] [mechanism]
- qpid-route [OPTIONS] route del <dest-broker> <src-broker> <exchange> <routing-key>
- qpid-route [OPTIONS] queue add <dest-broker> <src-broker> <exchange> <queue>
- qpid-route [OPTIONS] queue del <dest-broker> <src-broker> <exchange> <queue>
- qpid-route [OPTIONS] route list [<dest-broker>]
- qpid-route [OPTIONS] route flush [<dest-broker>]
- qpid-route [OPTIONS] route map [<broker>]
-
- qpid-route [OPTIONS] link add <dest-broker> <src-broker>
- qpid-route [OPTIONS] link del <dest-broker> <src-broker>
- qpid-route [OPTIONS] link list [<dest-broker>]"""
-
-description = """
-ADDRESS syntax:
-
- [username/password@] hostname
- ip-address [:<port>]"""
-
-
def OptionsAndArguments(argv):
-
parser = OptionParser(usage=usage,
description=description,
formatter=JHelpFormatter())
@@ -472,7 +469,7 @@ class RoutePair:
self.bidir = True
return True
return False
-
+
def YN(val):
if val == 1:
@@ -485,7 +482,8 @@ def main(argv=None):
args = OptionsAndArguments(argv)
nargs = len(args)
if nargs < 2:
- usage(parser)
+ Usage()
+ return(-1)
if nargs == 2:
localBroker = socket.gethostname()
@@ -507,11 +505,13 @@ def main(argv=None):
if group == "link":
if cmd == "add":
if nargs != 4:
- usage(parser)
+ Usage()
+ return(-1)
rm.addLink(remoteBroker)
elif cmd == "del":
if nargs != 4:
- usage(parser)
+ Usage()
+ return(-1)
rm.delLink(remoteBroker)
elif cmd == "list":
rm.listLinks()
@@ -519,35 +519,39 @@ def main(argv=None):
elif group == "dynamic":
if cmd == "add":
if nargs < 5 or nargs > 7:
- usage(parser)
+ Usage()
+ return(-1)
tag = ""
excludes = ""
mech = "PLAIN"
- if nargs > 5: tag = args[5]
- if nargs > 6: excludes = args[6]
+ if nargs > 5: tag = args[5]
+ if nargs > 6: excludes = args[6]
rm.addRoute(remoteBroker, args[4], "", tag, excludes, mech, dynamic=True)
elif cmd == "del":
if nargs != 5:
- usage(parser)
+ Usage()
+ return(-1)
else:
rm.delRoute(remoteBroker, args[4], "", dynamic=True)
elif group == "route":
if cmd == "add":
if nargs < 6 or nargs > 9:
- usage(parser)
+ Usage()
+ return(-1)
tag = ""
excludes = ""
mech = "PLAIN"
- if nargs > 6: tag = args[6]
+ if nargs > 6: tag = args[6]
if nargs > 7: excludes = args[7]
if nargs > 8: mech = args[8]
rm.addRoute(remoteBroker, args[4], args[5], tag, excludes, mech, dynamic=False)
elif cmd == "del":
if nargs != 6:
- usage(parser)
+ Usage()
+ return(-1)
rm.delRoute(remoteBroker, args[4], args[5], dynamic=False)
elif cmd == "map":
rm.mapRoutes()
@@ -557,17 +561,20 @@ def main(argv=None):
elif cmd == "flush":
rm.clearAllRoutes()
else:
- usage(parser)
+ Usage()
+ return(-1)
elif group == "queue":
if nargs != 6:
- usage(parser)
+ Usage()
+ return(-1)
if cmd == "add":
rm.addQueueRoute(remoteBroker, exchange=args[4], queue=args[5])
elif cmd == "del":
rm.delQueueRoute(remoteBroker, exchange=args[4], queue=args[5])
else:
- usage(parser)
+ Usage()
+ return(-1)
except Exception,e:
if rm: