On Mon, Sep 26, 2022 at 10:17 AM Juraj Linkeš <juraj.lin...@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.

Reply via email to