Hi Juraj,

Hi Wathsala, thanks for the comments.
 
Everything looks good except for couple of comments/suggestions.
If I’m not mistaken dpdk tarball is copied to the SUT over scp. However, scp is already deprecated [1,2]. Is it possible to use rsync over ssh instead?

We're going to replace the pexpect implementation with the Fabric library in a separate patch (the helloworld patch is already very big), which will address this - Fabric uses SFTP for file transfer.
 
Looks like ssh password needs to be stored in the configuration file which is not a good practice. Suggests giving users two options (a) using an ssh key instead of password (b) prompting for user password if no key is provided.

This is an optional and heavily discouraged option (useful for quick debugging, so we left it in). SSH keys are the default. The Fabric patch will also include the support for non-root users (with passwordless sudo).
 
It's somewhat cumbersome for a developer to create a tarball every time they run a test case. Therefore, would it be possible to automate the creation of tarball from a git repo + branch or a local directory when user doesn’t provide a tarball?

That is also a separate patch in the making - users will be able to supply a git ref that DTS will use. I haven't thought about local directories, what additional scenarios would that cover?

Regards,
Juraj
 

[1] https://lwn.net/Articles/835962/
[2] https://www.redhat.com/en/blog/openssh-scp-deprecation-rhel-9-what-you-need-know

> Juraj Linkeš (10):
>   dts: add node and os abstractions
>   dts: add ssh command verification
>   dts: add dpdk build on sut
>   dts: add dpdk execution handling
>   dts: add node memory setup
>   dts: add test suite module
>   dts: add hello world testsuite
>   dts: add test suite config and runner
>   dts: add test results module
>   doc: update DTS setup and test suite cookbook
>
>  doc/guides/tools/dts.rst                      | 165 ++++++++-
>  dts/conf.yaml                                 |  22 +-
>  dts/framework/config/__init__.py              | 130 ++++++-
>  dts/framework/config/conf_yaml_schema.json    | 172 +++++++++-
>  dts/framework/dts.py                          | 185 ++++++++--
>  dts/framework/exception.py                    | 100 +++++-
>  dts/framework/logger.py                       |  24 +-
>  dts/framework/remote_session/__init__.py      |  30 +-
>  dts/framework/remote_session/linux_session.py | 107 ++++++
>  dts/framework/remote_session/os_session.py    | 175 ++++++++++
>  dts/framework/remote_session/posix_session.py | 222 ++++++++++++
>  .../remote_session/remote/__init__.py         |  16 +
>  .../remote_session/remote/remote_session.py   | 155 +++++++++
>  .../{ => remote}/ssh_session.py               |  92 ++++-
>  .../remote_session/remote_session.py          |  95 ------
>  dts/framework/settings.py                     |  81 ++++-
>  dts/framework/test_result.py                  | 316 ++++++++++++++++++
>  dts/framework/test_suite.py                   | 254 ++++++++++++++
>  dts/framework/testbed_model/__init__.py       |  20 +-
>  dts/framework/testbed_model/dpdk.py           |  78 +++++
>  dts/framework/testbed_model/hw/__init__.py    |  27 ++
>  dts/framework/testbed_model/hw/cpu.py         | 274 +++++++++++++++
>  .../testbed_model/hw/virtual_device.py        |  16 +
>  dts/framework/testbed_model/node.py           | 159 +++++++--
>  dts/framework/testbed_model/sut_node.py       | 260 ++++++++++++++
>  dts/framework/utils.py                        |  39 ++-
>  dts/tests/TestSuite_hello_world.py            |  64 ++++
>  27 files changed, 3068 insertions(+), 210 deletions(-)  create mode 100644
> dts/framework/remote_session/linux_session.py
>  create mode 100644 dts/framework/remote_session/os_session.py
>  create mode 100644 dts/framework/remote_session/posix_session.py
>  create mode 100644 dts/framework/remote_session/remote/__init__.py
>  create mode 100644
> dts/framework/remote_session/remote/remote_session.py
>  rename dts/framework/remote_session/{ => remote}/ssh_session.py (64%)
> delete mode 100644 dts/framework/remote_session/remote_session.py
>  create mode 100644 dts/framework/test_result.py  create mode 100644
> dts/framework/test_suite.py  create mode 100644
> dts/framework/testbed_model/dpdk.py
>  create mode 100644 dts/framework/testbed_model/hw/__init__.py
>  create mode 100644 dts/framework/testbed_model/hw/cpu.py
>  create mode 100644 dts/framework/testbed_model/hw/virtual_device.py
>  create mode 100644 dts/framework/testbed_model/sut_node.py
>  create mode 100644 dts/tests/TestSuite_hello_world.py
>
> --
> 2.30.2
>