<div dir="ltr">Acked-by: Jeremy Spewock <<a href="mailto:jspewock@iol.unh.edu">jspewock@iol.unh.edu</a>></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 20, 2023 at 5:51 AM Juraj Linkeš <juraj.linkes@pantheon.tech> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Initialize the TG node and do basic verification.<br>
<br>
Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech><br>
---<br>
 dts/framework/dts.py                    | 42 ++++++++++++++++---------<br>
 dts/framework/testbed_model/__init__.py |  1 +<br>
 2 files changed, 28 insertions(+), 15 deletions(-)<br>
<br>
diff --git a/dts/framework/dts.py b/dts/framework/dts.py<br>
index 0502284580..9c82bfe1f4 100644<br>
--- a/dts/framework/dts.py<br>
+++ b/dts/framework/dts.py<br>
@@ -9,7 +9,7 @@<br>
 from .logger import DTSLOG, getLogger<br>
 from .test_result import BuildTargetResult, DTSResult, ExecutionResult, Result<br>
 from .test_suite import get_test_suites<br>
-from .testbed_model import SutNode<br>
+from .testbed_model import SutNode, TGNode, Node<br>
 from .utils import check_dts_python_version<br>
<br>
 dts_logger: DTSLOG = getLogger("DTSRunner")<br>
@@ -27,28 +27,40 @@ def run_all() -> None:<br>
     # check the python version of the server that run dts<br>
     check_dts_python_version()<br>
<br>
-    nodes: dict[str, SutNode] = {}<br>
+    nodes: dict[str, Node] = {}<br>
     try:<br>
         # for all Execution sections<br>
         for execution in CONFIGURATION.executions:<br>
             sut_node = None<br>
+            tg_node = None<br>
             if <a href="http://execution.system_under_test.name" rel="noreferrer" target="_blank">execution.system_under_test.name</a> in nodes:<br>
                 # a Node with the same name already exists<br>
                 sut_node = nodes[<a href="http://execution.system_under_test.name" rel="noreferrer" target="_blank">execution.system_under_test.name</a>]<br>
-            else:<br>
-                # the SUT has not been initialized yet<br>
-                try:<br>
+<br>
+            if <a href="http://execution.traffic_generator_system.name" rel="noreferrer" target="_blank">execution.traffic_generator_system.name</a> in nodes:<br>
+                # a Node with the same name already exists<br>
+                tg_node = nodes[<a href="http://execution.traffic_generator_system.name" rel="noreferrer" target="_blank">execution.traffic_generator_system.name</a>]<br>
+<br>
+            try:<br>
+                if not sut_node:<br>
                     sut_node = SutNode(execution.system_under_test)<br>
-                    result.update_setup(Result.PASS)<br>
-                except Exception as e:<br>
-                    dts_logger.exception(<br>
-                        f"Connection to node {execution.system_under_test} failed."<br>
-                    )<br>
-                    result.update_setup(Result.FAIL, e)<br>
-                else:<br>
-                    nodes[<a href="http://sut_node.name" rel="noreferrer" target="_blank">sut_node.name</a>] = sut_node<br>
-<br>
-            if sut_node:<br>
+                if not tg_node:<br>
+                    tg_node = TGNode(execution.traffic_generator_system)<br>
+                    tg_node.verify()<br>
+                result.update_setup(Result.PASS)<br>
+            except Exception as e:<br>
+                failed_node = <a href="http://execution.system_under_test.name" rel="noreferrer" target="_blank">execution.system_under_test.name</a><br>
+                if sut_node:<br>
+                    failed_node = <a href="http://execution.traffic_generator_system.name" rel="noreferrer" target="_blank">execution.traffic_generator_system.name</a><br>
+                dts_logger.exception(<br>
+                    f"Creation of node {failed_node} failed."<br>
+                )<br>
+                result.update_setup(Result.FAIL, e)<br>
+            else:<br>
+                nodes[<a href="http://sut_node.name" rel="noreferrer" target="_blank">sut_node.name</a>] = sut_node<br>
+                nodes[<a href="http://tg_node.name" rel="noreferrer" target="_blank">tg_node.name</a>] = tg_node<br>
+<br>
+            if sut_node and tg_node:<br>
                 _run_execution(sut_node, execution, result)<br>
<br>
     except Exception as e:<br>
diff --git a/dts/framework/testbed_model/__init__.py b/dts/framework/testbed_model/__init__.py<br>
index f54a947051..5cbb859e47 100644<br>
--- a/dts/framework/testbed_model/__init__.py<br>
+++ b/dts/framework/testbed_model/__init__.py<br>
@@ -20,3 +20,4 @@<br>
 )<br>
 from .node import Node<br>
 from .sut_node import SutNode<br>
+from .tg_node import TGNode<br>
-- <br>
2.30.2<br>
<br>
</blockquote></div>