summaryrefslogtreecommitdiffstats
path: root/scripts/automation
diff options
context:
space:
mode:
authorDan Klein <danklei@cisco.com>2015-10-20 09:12:33 +0300
committerDan Klein <danklei@cisco.com>2015-10-20 09:12:33 +0300
commit5abe21ffb26a15c2a63e90b5628d704e8211b599 (patch)
tree202fe09b0070f962da1e996673d7db21005a94d8 /scripts/automation
parentcf753587ffb7b89cff1863c74ca334b8c41fd0c0 (diff)
+ Added traffic options at stl directory
+ updated console to support multiplier on loading + fixed minor issues at yaml_utils and trex_streams objects + console not stable, YET
Diffstat (limited to 'scripts/automation')
-rwxr-xr-xscripts/automation/trex_control_plane/client_utils/yaml_utils.py8
-rwxr-xr-xscripts/automation/trex_control_plane/common/trex_streams.py6
-rwxr-xr-xscripts/automation/trex_control_plane/console/trex_console.py28
3 files changed, 34 insertions, 8 deletions
diff --git a/scripts/automation/trex_control_plane/client_utils/yaml_utils.py b/scripts/automation/trex_control_plane/client_utils/yaml_utils.py
index 414744fc..60630a04 100755
--- a/scripts/automation/trex_control_plane/client_utils/yaml_utils.py
+++ b/scripts/automation/trex_control_plane/client_utils/yaml_utils.py
@@ -108,7 +108,6 @@ class CTRexYAMLLoader(object):
# validation on terminal type
# print "Validating terminal type %s" % k
res_ok, data = self.check_term_param_type(evaluated_obj.get(k), k, v, multiplier)
- # print "Validating: ", res_ok
if res_ok:
# data field contains the value to save
result_obj[k] = data
@@ -138,8 +137,13 @@ class CTRexYAMLLoader(object):
@staticmethod
def _calc_final_value(val, multiplier, multiply):
+ def to_num(s):
+ try:
+ return int(s)
+ except ValueError:
+ return float(s)
if multiply:
- return (val * multiplier)
+ return val * to_num(multiplier)
else:
return val
diff --git a/scripts/automation/trex_control_plane/common/trex_streams.py b/scripts/automation/trex_control_plane/common/trex_streams.py
index 1aeb46b0..783f2769 100755
--- a/scripts/automation/trex_control_plane/common/trex_streams.py
+++ b/scripts/automation/trex_control_plane/common/trex_streams.py
@@ -43,7 +43,7 @@ class CStreamList(object):
def export_to_yaml(self, file_path):
raise NotImplementedError("export_to_yaml method is not implemented, yet")
- def load_yaml(self, file_path, multiplier_dict={}):
+ def load_yaml(self, file_path, multiplier=1):
# clear all existing streams linked to this object
self.streams_list.clear()
streams_data = load_yaml_to_obj(file_path)
@@ -57,11 +57,11 @@ class CStreamList(object):
"Provided item was:\n {stream}".format(stream))
new_stream_data = self.yaml_loader.validate_yaml(raw_stream,
"stream",
- multiplier= multiplier_dict.get(stream_name, 1))
+ multiplier= multiplier)
new_stream_obj = CStream()
new_stream_obj.load_data(**new_stream_data)
self.append_stream(stream_name, new_stream_obj)
- return streams_data
+ return new_stream_data
def compile_streams(self):
# first, assign an id to each stream
diff --git a/scripts/automation/trex_control_plane/console/trex_console.py b/scripts/automation/trex_control_plane/console/trex_console.py
index 688f80f3..27a5eeab 100755
--- a/scripts/automation/trex_control_plane/console/trex_console.py
+++ b/scripts/automation/trex_control_plane/console/trex_console.py
@@ -1,5 +1,22 @@
#!/usr/bin/env python
-# -*- coding: utf-8 -*-
+# -*- coding: utf-8 -*-
+
+"""
+Dan Klein, Itay Marom
+Cisco Systems, Inc.
+
+Copyright (c) 2015-2015 Cisco Systems, Inc.
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+"""
+
import cmd
import json
import ast
@@ -416,8 +433,12 @@ class TrexConsole(cmd.Cmd):
if args >= 2:
name = args[0]
yaml_path = args[1]
+ try:
+ multiplier = args[2]
+ except IndexError:
+ multiplier = 1
stream_list = CStreamList()
- loaded_obj = stream_list.load_yaml(yaml_path)
+ loaded_obj = stream_list.load_yaml(yaml_path, multiplier)
# print self.rpc_client.pretty_json(json.dumps(loaded_obj))
if name in self.user_streams:
print "Picked name already exist. Please pick another name."
@@ -433,7 +454,8 @@ class TrexConsole(cmd.Cmd):
raise
return
else:
- print "please provide load name and YAML path, separated by space."
+ print "please provide load name and YAML path, separated by space.\n" \
+ "Optionally, you may provide a third argument to specify multiplier."
def do_show_stream_list(self, line):
'''Shows the loaded stream list named [name] \n'''