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