<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>