diff options
author | 2016-07-26 11:47:15 +0300 | |
---|---|---|
committer | 2016-07-26 11:47:15 +0300 | |
commit | 90c64917b59e83556454d1338634473cdcd952a9 (patch) | |
tree | 1471d34521aafd039d2014e3f8ee4dedf9faaebb /scripts/automation/trex_control_plane/stl/trex_stl_lib | |
parent | e3b43560ff867c35ee726da9a98aed8acdc53b70 (diff) |
some more TUI fixes
Diffstat (limited to 'scripts/automation/trex_control_plane/stl/trex_stl_lib')
3 files changed, 28 insertions, 13 deletions
diff --git a/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_port.py b/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_port.py index be46e95f..d239fc57 100644 --- a/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_port.py +++ b/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_port.py @@ -68,7 +68,7 @@ class Port(object): self.has_rx_streams = False self.owner = '' - + self.last_factor_type = None # decorator to verify port is up def up(func): @@ -417,6 +417,9 @@ class Port(object): self.state = last_state return self.err(rc.err()) + # save this for TUI + self.last_factor_type = mul['type'] + return self.ok() @@ -424,7 +427,7 @@ class Port(object): # with force ignores the cached state and sends the command @owned def stop (self, force = False): - + # if not is not active and not force - go back if not self.is_active() and not force: return self.ok() @@ -437,10 +440,11 @@ class Port(object): return self.err(rc.err()) self.state = self.STATE_STREAMS + self.last_factor_type = None # timestamp for last tx self.tx_stopped_ts = datetime.now() - + return self.ok() @@ -535,6 +539,9 @@ class Port(object): if rc.bad(): return self.err(rc.err()) + # save this for TUI + self.last_factor_type = mul['type'] + return self.ok() @owned @@ -712,6 +719,7 @@ class Port(object): # until thread is locked - order is important self.tx_stopped_ts = datetime.now() self.state = self.STATE_STREAMS + self.last_factor_type = None # rest of the events are used for TUI / read only sessions def async_event_port_stopped (self): diff --git a/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_stats.py b/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_stats.py index af4d6f69..1bf0a9a4 100644 --- a/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_stats.py +++ b/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_stats.py @@ -776,12 +776,12 @@ class CTRexStats(object): return value - def get(self, field, format=False, suffix=""): + def get(self, field, format=False, suffix="", opts = None): value = self._get(self.latest_stats, field) if value == None: return 'N/A' - return value if not format else format_num(value, suffix) + return value if not format else format_num(value, suffix = suffix, opts = opts) def get_rel(self, field, format=False, suffix=""): @@ -1020,14 +1020,20 @@ class CPortStats(CTRexStats): else: state = format_text(state, 'bold') + # default rate format modifiers + rate_format = {'bpsl1': None, 'bps': None, 'pps': None, 'percentage': 'bold'} + # mark owned ports by color if self._port_obj: owner = self._port_obj.get_owner() + rate_format[self._port_obj.last_factor_type] = ('blue', 'bold') if self._port_obj.is_acquired(): owner = format_text(owner, 'green') + else: owner = '' + return {"owner": owner, "state": "{0}".format(state), "speed": self._port_obj.get_formatted_speed() if self._port_obj else '', @@ -1038,21 +1044,19 @@ class CPortStats(CTRexStats): "-----": " ", "Tx bps L1": "{0} {1}".format(self.get_trend_gui("m_total_tx_bps_L1", show_value = False), - self.get("m_total_tx_bps_L1", format = True, suffix = "bps")), + self.get("m_total_tx_bps_L1", format = True, suffix = "bps", opts = rate_format['bpsl1'])), "Tx bps L2": "{0} {1}".format(self.get_trend_gui("m_total_tx_bps", show_value = False), - self.get("m_total_tx_bps", format = True, suffix = "bps")), + self.get("m_total_tx_bps", format = True, suffix = "bps", opts = rate_format['bps'])), - "Line Util.": "{0} {1}".format(self.get_trend_gui("m_percentage", show_value = False), - format_text( - self.get("m_percentage", format = True, suffix = "%") if self._port_obj else "", - 'bold')) if self._port_obj else "", + "Line Util.": "{0} {1}".format(self.get_trend_gui("m_percentage", show_value = False) if self._port_obj else "", + self.get("m_percentage", format = True, suffix = "%", opts = rate_format['percentage']) if self._port_obj else ""), "Rx bps": "{0} {1}".format(self.get_trend_gui("m_total_rx_bps", show_value = False), self.get("m_total_rx_bps", format = True, suffix = "bps")), "Tx pps": "{0} {1}".format(self.get_trend_gui("m_total_tx_pps", show_value = False), - self.get("m_total_tx_pps", format = True, suffix = "pps")), + self.get("m_total_tx_pps", format = True, suffix = "pps", opts = rate_format['pps'])), "Rx pps": "{0} {1}".format(self.get_trend_gui("m_total_rx_pps", show_value = False), self.get("m_total_rx_pps", format = True, suffix = "pps")), diff --git a/scripts/automation/trex_control_plane/stl/trex_stl_lib/utils/text_opts.py b/scripts/automation/trex_control_plane/stl/trex_stl_lib/utils/text_opts.py index 26e64dae..bfb96950 100644 --- a/scripts/automation/trex_control_plane/stl/trex_stl_lib/utils/text_opts.py +++ b/scripts/automation/trex_control_plane/stl/trex_stl_lib/utils/text_opts.py @@ -27,7 +27,10 @@ class TextCodesStripper: def strip (s): return re.sub(TextCodesStripper.pattern, '', s) -def format_num (size, suffix = "", compact = True, opts = ()): +def format_num (size, suffix = "", compact = True, opts = None): + if opts is None: + opts = () + txt = "NaN" if type(size) == str: |