From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7AA4E41D8D; Mon, 27 Feb 2023 09:28:51 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 14CE140A84; Mon, 27 Feb 2023 09:28:51 +0100 (CET) Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) by mails.dpdk.org (Postfix) with ESMTP id DC4A340A7D for ; Mon, 27 Feb 2023 09:28:49 +0100 (CET) Received: by mail-ed1-f49.google.com with SMTP id cy6so22352616edb.5 for ; Mon, 27 Feb 2023 00:28:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pantheon-tech.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=90JbCAK+eRr6qbKWCNS+vHNJSAnYFdJP34b2OKUA2i8=; b=CMxH+ozCikwZo0/9CnPGqkRDU4ChB3m7/4QEria9yBtFAOcZWl7HF5dUWbdzHQk8QT l6MeGEcnlIzz1fj9qsZo9vqNUfJoMuvcrZNNpBsULciCez4d4QOe9duBkBYLJ+eMgjVr cshSZZv7OCWdscI0ih8LSJ7CsOmyM+OBR/mUbS6bsOrMtiGCJNiefG0QaA8UJadkO+eb GIs7sTWJOoOqihVU3d77S6YgRLGKzhGh9PJ4dHTy02PkLqlo5IE8rsG9IdKdPBsqPsO8 1EQHY6vYsydFcZa/pCzN1hrjY5D4Zf0iCAUwyI+irHyJTa0UKVbKKkHKlmK4gVX4dmDj sYsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=90JbCAK+eRr6qbKWCNS+vHNJSAnYFdJP34b2OKUA2i8=; b=NTsqNeUzB2ZeBieH2mw3B9X6BYfv2tNCb0Srhk2cWFGr6AFLtUnc+k1qFtNeSNmyjc jzfrm0W2bralXryD27RUJxEvXjn9vBvKYzMnd3bEeUgweVEEr7VD/5xYtDpSuV9So1Ri Ilobrg7NaUIChNmIjrUCt1VAsWlmVBbMc5PYuYF0L4gNoDxISkmcTobd+0KfBIOgLuFT DvmrtF5CLa7SqNG+ESS7pKAaby8z+S0s9oi8b951ZHTI49AFrIuoKxbt9mT70zHHO05T Tfn2JHpV3Jo7u1H13F6409CVH2h1lMf6+5kQ0W1YWtbyhkIFSobDMSoB903Nyq1Mw6r1 OAJQ== X-Gm-Message-State: AO0yUKWM4q3WLlKtKaaGx8cA9uiPxoTXrF0AQdeiBjl+zBUMtFsb2QPr kyxB1wTfc4Bqlc/gyPodAGiQ/aYKcwWV1KC6rNwakw== X-Google-Smtp-Source: AK7set8krq14yEDKEJB3C6ZIvnIAqXpU6csRx/VBOTq2JhpAAU7N7oqkYVs5IhZBvIS3xTSfqkqru6yFM6ZfRxeg72U= X-Received: by 2002:a17:906:194f:b0:8b1:76b8:9834 with SMTP id b15-20020a170906194f00b008b176b89834mr16528841eje.5.1677486529456; Mon, 27 Feb 2023 00:28:49 -0800 (PST) MIME-Version: 1.0 References: <20230213152846.284191-1-juraj.linkes@pantheon.tech> <20230223152840.634183-1-juraj.linkes@pantheon.tech> In-Reply-To: From: =?UTF-8?Q?Juraj_Linke=C5=A1?= Date: Mon, 27 Feb 2023 09:28:38 +0100 Message-ID: Subject: Re: [PATCH v5 00/10] dts: add hello world testcase To: Wathsala Wathawana Vithanage Cc: "thomas@monjalon.net" , Honnappa Nagarahalli , "lijuan.tu@intel.com" , "bruce.richardson@intel.com" , "probb@iol.unh.edu" , "dev@dpdk.org" , nd Content-Type: multipart/alternative; boundary="000000000000b43ca905f5aa446b" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org --000000000000b43ca905f5aa446b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable > Hi Juraj, > Hi Wathsala, thanks for the comments. > Everything looks good except for couple of comments/suggestions. > If I=E2=80=99m not mistaken dpdk tarball is copied to the SUT over scp. H= owever, > 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 whic= h > is not a good practice. Suggests giving users two options (a) using an ss= h > 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 us= er > doesn=E2=80=99t 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-ne= ed-know > > > Juraj Linke=C5=A1 (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 +++++++++ > > .../{ =3D> 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/{ =3D> 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 > > > > --000000000000b43ca905f5aa446b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

Hi Juraj,

Hi Wathsala, thanks for the c= omments.
=C2=A0
Everything looks good except for couple of comments/suggestions.
If I=E2=80=99m not mistaken dpdk tarball is copied to the SUT over scp. How= ever, scp is already deprecated [1,2]. Is it possible to use rsync over ssh= instead?

We're going to replace th= e pexpect implementation with the Fabric library in a separate patch (the h= elloworld patch is already very big), which will address this - Fabric uses= SFTP for file transfer.
=C2=A0
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 provid= ed.

This is an optional and heavily dis= couraged option (useful for quick debugging, so we left it in). SSH keys ar= e the default. The Fabric patch will also include the support for non-root = users (with passwordless sudo).
=C2=A0
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 crea= tion of tarball from a git repo + branch or a local directory when user doe= sn=E2=80=99t provide a tarball?

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

Regards,
=
Juraj
=C2=A0

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

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

--000000000000b43ca905f5aa446b--