<div dir="ltr"><div dir="ltr"></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Sep 26, 2022 at 10:17 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">All the necessary code needed to connect to a node in a topology with<br>
a bit more, such as basic logging and some extra useful methods.<br>
<br>
To run the code, modify the config file, conf.yaml and execute ./main.py<br>
from the root dts folder. Here's an example config:<br>
executions:<br>
- system_under_test: "SUT 1"<br>
nodes:<br>
- name: "SUT 1"<br>
hostname: 127.0.0.1<br>
user: root<br>
password: <a href="http://mypw.change.me" rel="noreferrer" target="_blank">mypw.change.me</a><br>
<br>
There are configuration files with a README that help with setting up<br>
the execution/development environment.<br>
<br>
The code only connects to a node. You'll see logs emitted to console<br>
saying where DTS connected.<br>
<br>
There's only a bit of documentation, as there's not much to document.<br>
We'll add some real docs when there's enough functionality to document,<br>
when the HelloWorld testcases is in (point 4 in our roadmap below). What<br>
will be documented later is runtime dependencies and how to set up the DTS<br>
control node environment.<br>
<br>
This is our current roadmap:<br>
1. Review this patchset and do the rest of the items in parallel, if<br>
possible.<br>
2. We have extracted the code needed to run the most basic testcase,<br>
HelloWorld, which runs the DPDK Hello World application. We'll split<br>
this along logical/functional boundaries and send after 1 is done.<br>
3. Once we have 2 applied, we're planning on adding a basic functional<br>
testcase - pf_smoke. This send a bit of traffic, so the big addition is<br>
the software traffic generator, Scapy. There's some work already done on<br>
Traffic generators we'll be sending as a dependence on this patch<br>
series.<br>
4. After 3, we'll add a basic performance testcase which doesn't use<br>
Scapy, but Trex or Ixia instead.<br>
5. This is far in the future, but at this point we should have all of<br>
the core functionality in place. What then remains is adding the rest of<br>
the testcases.<br>
<br>
We're already working on items 2-4 and we may send more patches even<br>
before this patch series is accepted if that's beneficial. The new<br>
patches would then depend on this patch.<br>
<br>
This patch, as well as all others in the pipeline, are the result of<br>
extensive DTS workgroup review which happens internally. If you'd like<br>
us to make it more public we'd have no problem with that.<br>
<br>
v3:<br>
Added project config files and developer tools.<br>
Removed locks for parallel nodes, which are not needed now and will be<br>
implemented much later (in a different patch).<br>
<br>
v4:<br>
Minor fixes - added missing Exception and utils function.<br>
<br>
v5:<br>
Reordered commits because the dependencies between commits changed.<br>
Added more developer tools.<br>
Added definitions of DTS testbed elements.<br>
Reworked SSH implementation - split it so that the split between an<br>
abstraction and the actual implementation is clearer.<br>
Modified the directory structure to better organize the current and the<br>
future code.<br>
<br>
Juraj Linkeš (9):<br>
dts: add project tools config<br>
dts: add developer tools<br>
dts: add basic logging facility<br>
dts: add remote session abstraction<br>
dts: add ssh connection module<br>
dts: add node base class<br>
dts: add dts workflow module<br>
dts: add dts executable script<br>
maintainers: add dts maintainers<br>
<br>
Owen Hilyard (1):<br>
dts: add config parser module<br>
<br>
.editorconfig | 2 +-<br>
.gitignore | 9 +-<br>
MAINTAINERS | 5 +<br>
devtools/python-checkpatch.sh | 39 ++<br>
devtools/python-format.sh | 54 +++<br>
devtools/python-lint.sh | 26 ++<br>
doc/guides/contributing/coding_style.rst | 4 +-<br>
dts/.devcontainer/devcontainer.json | 30 ++<br>
dts/Dockerfile | 39 ++<br>
dts/README.md | 154 ++++++++<br>
dts/conf.yaml | 6 +<br>
dts/framework/__init__.py | 4 +<br>
dts/framework/config/__init__.py | 99 +++++<br>
dts/framework/config/conf_yaml_schema.json | 73 ++++<br>
dts/framework/dts.py | 69 ++++<br>
dts/framework/exception.py | 71 ++++<br>
dts/framework/logger.py | 115 ++++++<br>
dts/framework/remote_session/__init__.py | 5 +<br>
.../remote_session/remote_session.py | 100 +++++<br>
.../remote_session/session_factory.py | 16 +<br>
dts/framework/remote_session/ssh_session.py | 189 ++++++++++<br>
dts/framework/settings.py | 108 ++++++<br>
dts/framework/testbed_model/__init__.py | 8 +<br>
dts/framework/testbed_model/node.py | 83 +++++<br>
dts/framework/utils.py | 31 ++<br>
dts/main.py | 24 ++<br>
dts/poetry.lock | 351 ++++++++++++++++++<br>
dts/pyproject.toml | 55 +++<br>
28 files changed, 1765 insertions(+), 4 deletions(-)<br>
create mode 100755 devtools/python-checkpatch.sh<br>
create mode 100755 devtools/python-format.sh<br>
create mode 100755 devtools/python-lint.sh<br>
create mode 100644 dts/.devcontainer/devcontainer.json<br>
create mode 100644 dts/Dockerfile<br>
create mode 100644 dts/README.md<br>
create mode 100644 dts/conf.yaml<br>
create mode 100644 dts/framework/__init__.py<br>
create mode 100644 dts/framework/config/__init__.py<br>
create mode 100644 dts/framework/config/conf_yaml_schema.json<br>
create mode 100644 dts/framework/dts.py<br>
create mode 100644 dts/framework/exception.py<br>
create mode 100644 dts/framework/logger.py<br>
create mode 100644 dts/framework/remote_session/__init__.py<br>
create mode 100644 dts/framework/remote_session/remote_session.py<br>
create mode 100644 dts/framework/remote_session/session_factory.py<br>
create mode 100644 dts/framework/remote_session/ssh_session.py<br>
create mode 100644 dts/framework/settings.py<br>
create mode 100644 dts/framework/testbed_model/__init__.py<br>
create mode 100644 dts/framework/testbed_model/node.py<br>
create mode 100644 dts/framework/utils.py<br>
create mode 100755 dts/main.py<br>
create mode 100644 dts/poetry.lock<br>
create mode 100644 dts/pyproject.toml<br>
<br>
-- <br>
2.30.2<br>
<br></blockquote><div><br></div><div>Everything looks good from my perspective. </div></div></div>