[v4,0/9] dts: ssh connection to a node
Message ID | 20220729105550.1382664-1-juraj.linkes@pantheon.tech (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 44637A04FD; Fri, 29 Jul 2022 12:55:56 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 28A444069C; Fri, 29 Jul 2022 12:55:56 +0200 (CEST) Received: from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20]) by mails.dpdk.org (Postfix) with ESMTP id 67EFC40151 for <dev@dpdk.org>; Fri, 29 Jul 2022 12:55:55 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by lb.pantheon.sk (Postfix) with ESMTP id E5EE01C1C75; Fri, 29 Jul 2022 12:55:53 +0200 (CEST) X-Virus-Scanned: amavisd-new at siecit.sk Received: from lb.pantheon.sk ([127.0.0.1]) by localhost (lb.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8HvcPuShNNzq; Fri, 29 Jul 2022 12:55:51 +0200 (CEST) Received: from entguard.lab.pantheon.local (unknown [46.229.239.141]) by lb.pantheon.sk (Postfix) with ESMTP id 403CD13125C; Fri, 29 Jul 2022 12:55:51 +0200 (CEST) From: =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech> To: thomas@monjalon.net, david.marchand@redhat.com, ronan.randles@intel.com, Honnappa.Nagarahalli@arm.com, ohilyard@iol.unh.edu, lijuan.tu@intel.com Cc: dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech> Subject: [PATCH v4 0/9] dts: ssh connection to a node Date: Fri, 29 Jul 2022 10:55:41 +0000 Message-Id: <20220729105550.1382664-1-juraj.linkes@pantheon.tech> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220728100044.1318484-1-juraj.linkes@pantheon.tech> References: <20220728100044.1318484-1-juraj.linkes@pantheon.tech> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org |
Message
Juraj Linkeš
July 29, 2022, 10:55 a.m. UTC
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. Juraj Linkeš (8): dts: add project tools config dts: add developer tools dts: add basic logging facility dts: add ssh pexpect library dts: add ssh connection extension dts: add Node base class dts: add dts workflow module dts: add dts executable script Owen Hilyard (1): dts: add config parser module dts/.devcontainer/devcontainer.json | 30 ++ dts/.editorconfig | 7 + dts/.gitignore | 14 + dts/Dockerfile | 38 ++ dts/README.md | 87 ++++ dts/conf.yaml | 7 + dts/format.sh | 45 ++ dts/framework/__init__.py | 3 + dts/framework/config/__init__.py | 99 +++++ dts/framework/config/conf_yaml_schema.json | 73 ++++ dts/framework/dts.py | 70 +++ dts/framework/exception.py | 71 +++ dts/framework/logger.py | 124 ++++++ dts/framework/node.py | 99 +++++ dts/framework/settings.py | 87 ++++ dts/framework/ssh_connection.py | 70 +++ dts/framework/ssh_pexpect.py | 205 +++++++++ dts/framework/utils.py | 31 ++ dts/main.py | 24 ++ dts/poetry.lock | 474 +++++++++++++++++++++ dts/pylama.ini | 8 + dts/pyproject.toml | 43 ++ 22 files changed, 1709 insertions(+) create mode 100644 dts/.devcontainer/devcontainer.json create mode 100644 dts/.editorconfig create mode 100644 dts/.gitignore create mode 100644 dts/Dockerfile create mode 100644 dts/README.md create mode 100644 dts/conf.yaml create mode 100755 dts/format.sh 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/node.py create mode 100644 dts/framework/settings.py create mode 100644 dts/framework/ssh_connection.py create mode 100644 dts/framework/ssh_pexpect.py create mode 100644 dts/framework/utils.py create mode 100755 dts/main.py create mode 100644 dts/poetry.lock create mode 100644 dts/pylama.ini create mode 100644 dts/pyproject.toml