summaryrefslogtreecommitdiffstats
path: root/scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py
diff options
context:
space:
mode:
authoritraviv <itraviv@cisco.com>2016-08-18 15:23:01 +0300
committeritraviv <itraviv@cisco.com>2016-08-18 15:23:01 +0300
commit6796bb99573f15c77a007434feabb30291ac1670 (patch)
tree4a1a160dff6ff4b28c61850b2a425b659d98792e /scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py
parent46b8104b0c4576994971adbdef0569007649fdc2 (diff)
scapy_server_test:
skiping python3 tests scapy_service.py: minor changes to protocol_struct function zmq_client: added zmq_server: minor changes in exception handling
Diffstat (limited to 'scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py')
-rwxr-xr-xscripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py36
1 files changed, 23 insertions, 13 deletions
diff --git a/scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py b/scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py
index 3519bb58..311dc8bd 100755
--- a/scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py
+++ b/scripts/automation/trex_control_plane/stl/services/scapy_server/scapy_service.py
@@ -134,26 +134,32 @@ class Scapy_service(Scapy_service_api):
self.all_protocols = self._build_lib()
self.protocol_tree = {'ALL':{'Ether':{'ARP':{},'IP':{'TCP':{'RAW':'payload'},'UDP':{'RAW':'payload'}}}}}
- def _protocol_struct(self,protocol=''):
+
+ def _all_protocol_structs(self):
+ old_stdout = sys.stdout
+ sys.stdout = mystdout = StringIO()
+ ls()
+ sys.stdout = old_stdout
+ all_protocol_data= mystdout.getvalue()
+ return all_protocol_data
+
+ def _protocol_struct(self,protocol):
if '_' in protocol:
return []
if not protocol=='':
if protocol not in self.all_protocols:
return 'protocol not supported'
- protocol = eval(protocol)
+ protocol = eval(protocol)
old_stdout = sys.stdout
sys.stdout = mystdout = StringIO()
- if not protocol=='':
- ls(protocol)
- else:
- ls()
+ ls(protocol)
sys.stdout = old_stdout
protocol_data= mystdout.getvalue()
return protocol_data
def _build_lib(self):
- lib = self._protocol_struct()
- lib = lib.split('\n')
+ lib = self._all_protocol_structs()
+ lib = lib.splitlines()
all_protocols=[]
for entry in lib:
entry = entry.split(':')
@@ -195,11 +201,11 @@ class Scapy_service(Scapy_service_api):
for pro in self.all_protocols:
details = self._get_protocol_details(pro)
for i in range(0,len(details),1):
- if len(details[i]) is 3:
+ if len(details[i]) == 3:
fields.append(details[i][1])
- uniqeFields = list(set(fields))
+ uniqueFields = list(set(fields))
fieldDict = {}
- for f in uniqeFields:
+ for f in uniqueFields:
if f in self.regexDB:
fieldDict[f] = self.regexDB[f].stringRegex()
else:
@@ -261,14 +267,18 @@ class Scapy_service(Scapy_service_api):
return res_md5
def get_version(self):
- return {'built_by':'itraviv','version':'v1.0'}
+ return {'built_by':'itraviv','version':'v1.01'}
def supported_methods(self,method_name=''):
if method_name=='':
methods = {}
for f in dir(Scapy_service):
if inspect.ismethod(eval('Scapy_service.'+f)):
- methods[f] = inspect.getargspec(eval('Scapy_service.'+f))[0]
+ param_list = inspect.getargspec(eval('Scapy_service.'+f))[0]
+ del param_list[0] #deleting the parameter "self" that appears in every method
+ #because the server automatically operates on an instance,
+ #and this can cause confusion
+ methods[f] = (len(param_list), param_list)
return methods
if method_name in dir(Scapy_service):
return True