summaryrefslogtreecommitdiffstats
path: root/scripts/automation/trex_control_plane/client
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/automation/trex_control_plane/client')
-rw-r--r--scripts/automation/trex_control_plane/client/trex_async_client.py5
-rw-r--r--scripts/automation/trex_control_plane/client/trex_port.py97
-rwxr-xr-xscripts/automation/trex_control_plane/client/trex_stateless_client.py62
3 files changed, 82 insertions, 82 deletions
diff --git a/scripts/automation/trex_control_plane/client/trex_async_client.py b/scripts/automation/trex_control_plane/client/trex_async_client.py
index 00304886..459d6915 100644
--- a/scripts/automation/trex_control_plane/client/trex_async_client.py
+++ b/scripts/automation/trex_control_plane/client/trex_async_client.py
@@ -19,6 +19,7 @@ import re
from common.trex_stats import *
from common.trex_streams import *
+from common.trex_types import *
# basic async stats class
class CTRexAsyncStats(object):
@@ -204,9 +205,9 @@ class CTRexAsyncClient():
time.sleep(0.01)
if time.time() > timeout:
self.disconnect()
- return False, "*** [subscriber] - no data flow from server at : " + self.tr
+ return RC_ERR("*** [subscriber] - no data flow from server at : " + self.tr)
- return True, ""
+ return RC_OK()
# disconnect
diff --git a/scripts/automation/trex_control_plane/client/trex_port.py b/scripts/automation/trex_control_plane/client/trex_port.py
index 0934313f..54b4945e 100644
--- a/scripts/automation/trex_control_plane/client/trex_port.py
+++ b/scripts/automation/trex_control_plane/client/trex_port.py
@@ -3,6 +3,22 @@ from collections import namedtuple
from common.trex_types import *
from common import trex_stats
+
+########## utlity ############
+def mult_to_factor (mult, max_bps, max_pps, line_util):
+ if mult['type'] == 'raw':
+ return mult['value']
+
+ if mult['type'] == 'bps':
+ return mult['value'] / max_bps
+
+ if mult['type'] == 'pps':
+ return mult['value'] / max_pps
+
+ if mult['type'] == 'percentage':
+ return mult['value'] / line_util
+
+
# describes a single port
class Port(object):
STATE_DOWN = 0
@@ -53,11 +69,11 @@ class Port(object):
command = RpcCmdData("acquire", params)
rc = self.transmit(command.method, command.params)
- if rc.success:
- self.handler = rc.data
+ if rc.good():
+ self.handler = rc.data()
return self.ok()
else:
- return self.err(rc.data)
+ return self.err(rc.err())
# release the port
def release(self):
@@ -68,10 +84,10 @@ class Port(object):
rc = self.transmit(command.method, command.params)
self.handler = None
- if rc.success:
+ if rc.good():
return self.ok()
else:
- return self.err(rc.data)
+ return self.err(rc.err())
def is_acquired(self):
return (self.handler != None)
@@ -91,11 +107,11 @@ class Port(object):
command = RpcCmdData("get_port_status", params)
rc = self.transmit(command.method, command.params)
- if not rc.success:
- return self.err(rc.data)
+ if rc.bad():
+ return self.err(rc.err())
# sync the port
- port_state = rc.data['state']
+ port_state = rc.data()['state']
if port_state == "DOWN":
self.state = self.STATE_DOWN
@@ -130,10 +146,9 @@ class Port(object):
"stream_id": stream_id,
"stream": stream_obj}
- rc, data = self.transmit("add_stream", params)
- if not rc:
- r = self.err(data)
- print r.good()
+ rc = self.transmit("add_stream", params)
+ if rc.bad():
+ return self.err(rc.err())
# add the stream
self.streams[stream_id] = stream_obj
@@ -156,10 +171,11 @@ class Port(object):
cmd = RpcCmdData('add_stream', params)
batch.append(cmd)
- rc, data = self.transmit_batch(batch)
+ rc = self.transmit_batch(batch)
+ if rc.bad():
+ return self.err(rc.err())
- if not rc:
- return self.err(data)
+ # validate that every action succeeded
# add the stream
for stream in streams_list:
@@ -181,9 +197,9 @@ class Port(object):
"stream_id": stream_id}
- rc, data = self.transmit("remove_stream", params)
- if not rc:
- return self.err(data)
+ rc = self.transmit("remove_stream", params)
+ if rc.bad():
+ return self.err(rc.err())
self.streams[stream_id] = None
@@ -197,9 +213,9 @@ class Port(object):
params = {"handler": self.handler,
"port_id": self.port_id}
- rc, data = self.transmit("remove_all_streams", params)
- if not rc:
- return self.err(data)
+ rc = self.transmit("remove_all_streams", params)
+ if rc.bad():
+ return self.err(rc.err())
self.streams = {}
@@ -233,9 +249,9 @@ class Port(object):
"mul": mul,
"duration": duration}
- rc, data = self.transmit("start_traffic", params)
- if not rc:
- return self.err(data)
+ rc = self.transmit("start_traffic", params)
+ if rc.bad():
+ return self.err(rc.err())
self.state = self.STATE_TX
@@ -251,9 +267,9 @@ class Port(object):
params = {"handler": self.handler,
"port_id": self.port_id}
- rc, data = self.transmit("stop_traffic", params)
- if not rc:
- return self.err(data)
+ rc = self.transmit("stop_traffic", params)
+ if rc.bad():
+ return self.err(rc.err())
# only valid state after stop
self.state = self.STATE_STREAMS
@@ -268,9 +284,9 @@ class Port(object):
params = {"handler": self.handler,
"port_id": self.port_id}
- rc, data = self.transmit("pause_traffic", params)
- if not rc:
- return self.err(data)
+ rc = self.transmit("pause_traffic", params)
+ if rc.bad():
+ return self.err(rc.err())
# only valid state after stop
self.state = self.STATE_PAUSE
@@ -286,9 +302,9 @@ class Port(object):
params = {"handler": self.handler,
"port_id": self.port_id}
- rc, data = self.transmit("resume_traffic", params)
- if not rc:
- return self.err(data)
+ rc = self.transmit("resume_traffic", params)
+ if rc.bad():
+ return self.err(rc.err())
# only valid state after stop
self.state = self.STATE_TX
@@ -304,9 +320,9 @@ class Port(object):
"port_id": self.port_id,
"mul": mul}
- rc, data = self.transmit("update_traffic", params)
- if not rc:
- return self.err(data)
+ rc = self.transmit("update_traffic", params)
+ if rc.bad():
+ return self.err(rc.err())
return self.ok()
@@ -322,11 +338,11 @@ class Port(object):
params = {"handler": self.handler,
"port_id": self.port_id}
- rc, data = self.transmit("validate", params)
- if not rc:
- return self.err(data)
+ rc = self.transmit("validate", params)
+ if rc.bad():
+ return self.err(rc.err())
- self.profile = data
+ self.profile = rc.data()
return self.ok()
@@ -411,3 +427,4 @@ class Port(object):
def async_event_forced_acquired (self):
self.handler = None
+
diff --git a/scripts/automation/trex_control_plane/client/trex_stateless_client.py b/scripts/automation/trex_control_plane/client/trex_stateless_client.py
index 0d52359d..75c1c06f 100755
--- a/scripts/automation/trex_control_plane/client/trex_stateless_client.py
+++ b/scripts/automation/trex_control_plane/client/trex_stateless_client.py
@@ -26,22 +26,6 @@ from common.trex_types import *
from trex_async_client import CTRexAsyncClient
-########## utlity ############
-def mult_to_factor (mult, max_bps, max_pps, line_util):
- if mult['type'] == 'raw':
- return mult['value']
-
- if mult['type'] == 'bps':
- return mult['value'] / max_bps
-
- if mult['type'] == 'pps':
- return mult['value'] / max_pps
-
- if mult['type'] == 'percentage':
- return mult['value'] / line_util
-
-
-
class CTRexStatelessClient(object):
"""docstring for CTRexStatelessClient"""
@@ -317,35 +301,36 @@ class CTRexStatelessClient(object):
self.connected = False
# connect sync channel
- rc, data = self.comm_link.connect()
- if not rc:
- return RC_ERR(data)
+ rc = self.comm_link.connect()
+ if rc.bad():
+ return rc
# connect async channel
- rc, data = self.async_client.connect()
- if not rc:
- return RC_ERR(data)
+ rc = self.async_client.connect()
+ if rc.bad():
+ return rc
# version
- rc, data = self.transmit("get_version")
- if not rc:
- return RC_ERR(data)
+ rc = self.transmit("get_version")
+ if rc.bad():
+ return rc
- self.server_version = data
- self.global_stats.server_version = data
+ self.server_version = rc.data()
+ self.global_stats.server_version = rc.data()
# cache system info
- rc, data = self.transmit("get_system_info")
- if not rc:
- return RC_ERR(data)
- self.system_info = data
+ rc = self.transmit("get_system_info")
+ if rc.bad():
+ return rc
+
+ self.system_info = rc.data()
# cache supported commands
- rc, data = self.transmit("get_supported_cmds")
- if not rc:
- return RC_ERR(data)
+ rc = self.transmit("get_supported_cmds")
+ if rc.bad():
+ return rc
- self.supported_cmds = data
+ self.supported_cmds = rc.data()
# create ports
for port_id in xrange(self.get_port_count()):
@@ -498,14 +483,12 @@ class CTRexStatelessClient(object):
# ping server
def ping(self):
- rc, info = self.transmit("ping")
- return RC(rc, info)
+ return self.transmit("ping")
def get_global_stats(self):
- rc, info = self.transmit("get_global_stats")
- return RC(rc, info)
+ return self.transmit("get_global_stats")
########## port commands ##############
@@ -705,7 +688,6 @@ class CTRexStatelessClient(object):
# reset
def cmd_reset(self):
-
#self.release(self.get_acquired_ports())
rc = self.acquire(force = True)