summaryrefslogtreecommitdiff
path: root/python/qpid/managementdata.py
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2009-06-26 12:57:43 +0000
committerTed Ross <tross@apache.org>2009-06-26 12:57:43 +0000
commit4072ab6f9e4d5eafb3ffa25cb8538dedde8360de (patch)
treec21af982e89753690e62751bb1cd74ec7d2cee7d /python/qpid/managementdata.py
parent139f378983f9da23af928decab67afc0eb62c324 (diff)
downloadqpid-python-4072ab6f9e4d5eafb3ffa25cb8538dedde8360de.tar.gz
Added --timeout options to cli tools.
Cli tools will not hang indefinitely if the broker is non-responsive. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@788681 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/qpid/managementdata.py')
-rw-r--r--python/qpid/managementdata.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/python/qpid/managementdata.py b/python/qpid/managementdata.py
index 84eb9c3ff8..c0d32d46cf 100644
--- a/python/qpid/managementdata.py
+++ b/python/qpid/managementdata.py
@@ -31,6 +31,7 @@ import struct
import os
import platform
import locale
+from qpid.connection import Timeout
from qpid.management import managementChannel, managementClient
from threading import Lock
from disp import Display
@@ -206,11 +207,22 @@ class ManagementData:
self.sessionId = "%s.%d" % (platform.uname()[1], os.getpid())
self.broker = Broker (host)
- self.conn = Connection (connect (self.broker.host, self.broker.port),
+ sock = connect (self.broker.host, self.broker.port)
+ oldTimeout = sock.gettimeout()
+ sock.settimeout(10)
+ self.conn = Connection (sock,
username=self.broker.username, password=self.broker.password)
self.spec = self.conn.spec
+ def aborted():
+ raise Timeout("Waiting for connection to be established with broker")
+ oldAborted = self.conn.aborted
+ self.conn.aborted = aborted
+
self.conn.start ()
+ sock.settimeout(oldTimeout)
+ self.conn.aborted = oldAborted
+
self.mclient = managementClient (self.spec, self.ctrlHandler, self.configHandler,
self.instHandler, self.methodReply, self.closeHandler)
self.mclient.schemaListener (self.schemaHandler)