From 1fa7b64c13e6c485926eba5c40bd198af738e365 Mon Sep 17 00:00:00 2001
From: imarom <imarom@cisco.com>
Date: Mon, 18 Apr 2016 13:13:00 +0300
Subject: simple intro while connecting to the server

---
 .../trex_control_plane/stl/console/trex_console.py | 29 ++++++++++++++++++++--
 .../stl/trex_stl_lib/trex_stl_client.py            |  5 ++++
 .../stl/trex_stl_lib/utils/text_opts.py            | 13 +++-------
 3 files changed, 35 insertions(+), 12 deletions(-)

(limited to 'scripts/automation')

diff --git a/scripts/automation/trex_control_plane/stl/console/trex_console.py b/scripts/automation/trex_control_plane/stl/console/trex_console.py
index 2b53b7ec..00d2a028 100755
--- a/scripts/automation/trex_control_plane/stl/console/trex_console.py
+++ b/scripts/automation/trex_control_plane/stl/console/trex_console.py
@@ -289,7 +289,7 @@ class TRexConsole(TRexGeneralCmd):
     @verify_connected
     def do_ping (self, line):
         '''Ping the server\n'''
-        self.stateless_client.ping()
+        self.stateless_client.ping_line(line)
 
 
     # set verbose on / off
@@ -774,7 +774,29 @@ def setParserOptions():
 
     return parser
 
-    
+# a simple info printed on log on
+def show_intro (logger, c):
+    x   = c.get_server_system_info()
+    ver = c.get_server_version().get('version', 'N/A')
+
+    # find out which NICs the server has
+    port_types = {}
+    for port in x['ports']:
+        key = (port['speed'], port['driver'])
+        if not key in port_types:
+            port_types[key] = 0
+        port_types[key] += 1
+
+    port_line = ''
+    for k, v in port_types.items():
+        port_line += "{0} x {1}Gbps @ {2}".format(v, k[0], k[1])
+
+    logger.log(format_text("\nServer Info:\n", 'underline'))
+    logger.log("Server version:   {:>}".format(format_text(ver, 'bold')))
+    logger.log("Server CPU:       {:>}".format(format_text("{:>} x {:>}".format(x.get('dp_core_count'), x.get('core_type')), 'bold')))
+    logger.log("Ports count:      {:>}".format(format_text(port_line, 'bold')))
+
+
 def main():
     parser = setParserOptions()
     options = parser.parse_args()
@@ -824,6 +846,9 @@ def main():
     if options.readonly:
         logger.log(format_text("\nRead only mode - only few commands will be available", 'bold'))
 
+    show_intro(logger, stateless_client)
+    
+
     # a script mode
     if options.batch:
         cont = run_script_file(options.batch[0], stateless_client)
diff --git a/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_client.py b/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_client.py
index aa95f037..12ed1f81 100755
--- a/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_client.py
+++ b/scripts/automation/trex_control_plane/stl/trex_stl_lib/trex_stl_client.py
@@ -2038,6 +2038,11 @@ class STLClient(object):
 
         return wrap
 
+    @__console
+    def ping_line (self, line):
+        '''pings the server'''
+        self.ping()
+        return True
 
     @__console
     def connect_line (self, line):
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 bc2d44f4..5c0dfb14 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
@@ -124,16 +124,9 @@ def underline(text):
 
 
 def text_attribute(text, attribute):
-    if isinstance(text, str):
-        return "{start}{txt}{stop}".format(start=TEXT_CODES[attribute]['start'],
-                                           txt=text,
-                                           stop=TEXT_CODES[attribute]['end'])
-    elif isinstance(text, unicode):
-        return u"{start}{txt}{stop}".format(start=TEXT_CODES[attribute]['start'],
-                                            txt=text,
-                                            stop=TEXT_CODES[attribute]['end'])
-    else:
-        raise Exception("not a string")
+    return "{start}{txt}{stop}".format(start=TEXT_CODES[attribute]['start'],
+                                       txt=text,
+                                       stop=TEXT_CODES[attribute]['end'])
 
 
 FUNC_DICT = {'blue': blue,
-- 
cgit