summaryrefslogtreecommitdiffstats
path: root/scripts/automation/trex_control_plane/client_utils
diff options
context:
space:
mode:
authorimarom <imarom@cisco.com>2015-11-15 16:34:16 +0200
committerimarom <imarom@cisco.com>2015-11-15 16:35:27 +0200
commit56becbc13bc2edc1fe60afb6d788357a70147a43 (patch)
tree5fd122458b0c314199ab1588520a86e9faf38856 /scripts/automation/trex_control_plane/client_utils
parent2dee3346a79146b8f042ccb3f105498694fc6c4b (diff)
few fixes to ZMQ client (timeout values)
Diffstat (limited to 'scripts/automation/trex_control_plane/client_utils')
-rwxr-xr-xscripts/automation/trex_control_plane/client_utils/jsonrpc_client.py56
1 files changed, 29 insertions, 27 deletions
diff --git a/scripts/automation/trex_control_plane/client_utils/jsonrpc_client.py b/scripts/automation/trex_control_plane/client_utils/jsonrpc_client.py
index 077c82ad..b826f02f 100755
--- a/scripts/automation/trex_control_plane/client_utils/jsonrpc_client.py
+++ b/scripts/automation/trex_control_plane/client_utils/jsonrpc_client.py
@@ -110,45 +110,45 @@ class JsonRpcClient(object):
return id, msg
- def invoke_rpc_method (self, method_name, params = {}, block = True):
+ def invoke_rpc_method (self, method_name, params = {}):
if not self.connected:
return False, "Not connected to server"
id, msg = self.create_jsonrpc_v2(method_name, params)
- return self.send_raw_msg(msg, block)
+ return self.send_raw_msg(msg)
# low level send of string message
- def send_raw_msg (self, msg, block = True):
+ def send_raw_msg (self, msg):
+
self.verbose_msg("Sending Request To Server:\n\n" + self.pretty_json(msg) + "\n")
- if block:
- self.socket.send(msg)
- else:
+ tries = 0
+ while True:
try:
- self.socket.send(msg, flags = zmq.NOBLOCK)
- except zmq.error.ZMQError as e:
- self.disconnect()
- return CmdResponse(False, "Failed To Get Send Message")
-
- got_response = False
+ self.socket.send(msg)
+ break
+ except zmq.Again:
+ sleep(0.1)
+ tries += 1
+ if tries > 10:
+ self.disconnect()
+ return CmdResponse(False, "Failed to send message to server")
+
+
+ tries = 0
+ while True:
+ try:
+ response = self.socket.recv()
+ break
+ except zmq.Again:
+ sleep(0.1)
+ tries += 1
+ if tries > 10:
+ self.disconnect()
+ return CmdResponse(False, "Failed to get server response")
- if block:
- response = self.socket.recv()
- got_response = True
- else:
- for i in xrange(0 ,10):
- try:
- response = self.socket.recv(flags = zmq.NOBLOCK)
- got_response = True
- break
- except zmq.Again:
- sleep(0.2)
-
- if not got_response:
- self.disconnect()
- return CmdResponse(False, "Failed To Get Server Response")
self.verbose_msg("Server Response:\n\n" + self.pretty_json(response) + "\n")
@@ -223,6 +223,8 @@ class JsonRpcClient(object):
except zmq.error.ZMQError as e:
return False, "ZMQ Error: Bad server or port name: " + str(e)
+ self.socket.setsockopt(zmq.SNDTIMEO, 5)
+ self.socket.setsockopt(zmq.RCVTIMEO, 5)
self.connected = True