summaryrefslogtreecommitdiff
path: root/qpid
diff options
context:
space:
mode:
authorNuno Santos <nsantos@apache.org>2010-05-03 21:33:43 +0000
committerNuno Santos <nsantos@apache.org>2010-05-03 21:33:43 +0000
commit6e0602ce496a96a984bb5302d4dc422a5ba86131 (patch)
treedca7c07253d7e68a4a7d4219d9e1bd2593656e16 /qpid
parentba639d890426c2b4e96df5aae8785d36fa593429 (diff)
downloadqpid-python-6e0602ce496a96a984bb5302d4dc422a5ba86131.tar.gz
handle timeouts caused by long-executing commands, iterate until timeout clears
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@940631 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid')
-rwxr-xr-xqpid/tools/src/py/qpid-config19
1 files changed, 15 insertions, 4 deletions
diff --git a/qpid/tools/src/py/qpid-config b/qpid/tools/src/py/qpid-config
index 24a20b0431..f086ab9ac2 100755
--- a/qpid/tools/src/py/qpid-config
+++ b/qpid/tools/src/py/qpid-config
@@ -566,7 +566,18 @@ except IOError, e:
print e
sys.exit(1)
except Exception,e:
- print "Failed: %s: %s" % (e.__class__.__name__, e)
- sys.exit(1)
-
-bm.Disconnect()
+ if e.__class__.__name__ != "Timeout":
+ # ignore Timeout exception, handle in the loop below
+ print "Failed: %s: %s" % (e.__class__.__name__, e)
+ sys.exit(1)
+
+while True:
+ # some commands take longer than the default amqp timeout to complete,
+ # so attempt to disconnect until successful, ignoring Timeouts
+ try:
+ bm.Disconnect()
+ break
+ except Exception, e:
+ if e.__class__.__name__ != "Timeout":
+ print "Failed: %s: %s" % (e.__class__.__name__, e)
+ sys.exit(1)