From: "Juraj Linkeš" <juraj.linkes@pantheon.tech>
To: thomas@monjalon.net, Honnappa.Nagarahalli@arm.com,
paul.szczepanek@arm.com, Luca.Vizzarro@arm.com,
alex.chapman@arm.com, probb@iol.unh.edu, jspewock@iol.unh.edu,
npratte@iol.unh.edu, dmarx@iol.unh.edu
Cc: dev@dpdk.org, "Tomáš Ďurovec" <tomas.durovec@pantheon.tech>
Subject: [RFC PATCH v1 10/12] dts: remove git ref option
Date: Fri, 6 Sep 2024 15:26:54 +0200 [thread overview]
Message-ID: <20240906132656.21729-11-juraj.linkes@pantheon.tech> (raw)
In-Reply-To: <20240906132656.21729-1-juraj.linkes@pantheon.tech>
From: Tomáš Ďurovec <tomas.durovec@pantheon.tech>
Signed-off-by: Tomáš Ďurovec <tomas.durovec@pantheon.tech>
---
dts/framework/settings.py | 31 ----------
dts/framework/utils.py | 117 --------------------------------------
2 files changed, 148 deletions(-)
diff --git a/dts/framework/settings.py b/dts/framework/settings.py
index 97acd62fd8..d514e887d3 100644
--- a/dts/framework/settings.py
+++ b/dts/framework/settings.py
@@ -49,12 +49,6 @@
Path to DPDK source code tarball to test.
-.. option:: --revision, --rev, --git-ref
-.. envvar:: DTS_DPDK_REVISION_ID
-
- Git revision ID to test. Could be commit, tag, tree ID etc.
- To test local changes, first commit them, then use their commit ID.
-
.. option:: --remote-source
.. envvar:: DTS_REMOTE_SOURCE
@@ -101,8 +95,6 @@
from typing import Callable
from .config import DPDKLocation, TestSuiteConfig
-from .exception import ConfigurationError
-from .utils import DPDKGitTarball, get_commit_id
@dataclass(slots=True)
@@ -249,14 +241,6 @@ def _get_help_string(self, action):
return help
-def _parse_revision_id(rev_id: str) -> str:
- """Validate revision ID and retrieve corresponding commit ID."""
- try:
- return get_commit_id(rev_id)
- except ConfigurationError:
- raise argparse.ArgumentTypeError("The Git revision ID supplied is invalid or ambiguous")
-
-
def _required_with_one_of(parser: _DTSArgumentParser, action: Action, *required_dests: str) -> None:
"""Verify that `action` is listed together with `required_dests`.
@@ -372,18 +356,6 @@ def _get_parser() -> _DTSArgumentParser:
)
_add_env_var_to_action(action, "DPDK_TARBALL")
- action = dpdk_source.add_argument(
- "--revision",
- "--rev",
- "--git-ref",
- type=_parse_revision_id,
- help="Git revision ID to test. Could be commit, tag, tree ID etc. "
- "To test local changes, first commit them, then use their commit ID.",
- metavar="ID",
- dest="dpdk_revision_id",
- )
- _add_env_var_to_action(action)
-
action = parser.add_argument(
"--remote-source",
action="store_true",
@@ -526,9 +498,6 @@ def get_settings() -> Settings:
parser = _get_parser()
args = parser.parse_args()
- if args.dpdk_revision_id:
- args.dpdk_tarball_path = Path(DPDKGitTarball(args.dpdk_revision_id, args.output_dir))
-
args.dpdk_location = _process_dpdk_location(
args.dpdk_tree_path, args.dpdk_tarball_path, args.remote_source, args.build_dir
)
diff --git a/dts/framework/utils.py b/dts/framework/utils.py
index 5757872fbd..37313c268b 100644
--- a/dts/framework/utils.py
+++ b/dts/framework/utils.py
@@ -14,21 +14,16 @@
REGEX_FOR_PCI_ADDRESS: The regex representing a PCI address, e.g. ``0000:00:08.0``.
"""
-import atexit
import fnmatch
import json
import os
-import subprocess
import tarfile
from enum import Enum
from pathlib import Path
-from subprocess import SubprocessError
from typing import Any
from scapy.packet import Packet # type: ignore[import-untyped]
-from .exception import ConfigurationError
-
REGEX_FOR_PCI_ADDRESS: str = "/[0-9a-fA-F]{4}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}.[0-9]{1}/"
@@ -74,31 +69,6 @@ def get_packet_summaries(packets: list[Packet]) -> str:
return f"Packet contents: \n{packet_summaries}"
-def get_commit_id(rev_id: str) -> str:
- """Given a Git revision ID, return the corresponding commit ID.
-
- Args:
- rev_id: The Git revision ID.
-
- Raises:
- ConfigurationError: The ``git rev-parse`` command failed, suggesting
- an invalid or ambiguous revision ID was supplied.
- """
- result = subprocess.run(
- ["git", "rev-parse", "--verify", rev_id],
- text=True,
- capture_output=True,
- )
- if result.returncode != 0:
- raise ConfigurationError(
- f"{rev_id} is not a valid git reference.\n"
- f"Command: {result.args}\n"
- f"Stdout: {result.stdout}\n"
- f"Stderr: {result.stderr}"
- )
- return result.stdout.strip()
-
-
class StrEnum(Enum):
"""Enum with members stored as strings."""
@@ -174,93 +144,6 @@ def extension(self):
return f".{self.value}" if self == self.none else f".{self.none.value}.{self.value}"
-class DPDKGitTarball:
- """Compressed tarball of DPDK from the repository.
-
- The class supports the :class:`os.PathLike` protocol,
- which is used to get the Path of the tarball::
-
- from pathlib import Path
- tarball = DPDKGitTarball("HEAD", "output")
- tarball_path = Path(tarball)
- """
-
- _git_ref: str
- _tar_compression_format: TarCompressionFormat
- _tarball_dir: Path
- _tarball_name: str
- _tarball_path: Path | None
-
- def __init__(
- self,
- git_ref: str,
- output_dir: str,
- tar_compression_format: TarCompressionFormat = TarCompressionFormat.xz,
- ):
- """Create the tarball during initialization.
-
- The DPDK version is specified with `git_ref`. The tarball will be compressed with
- `tar_compression_format`, which must be supported by the DTS execution environment.
- The resulting tarball will be put into `output_dir`.
-
- Args:
- git_ref: A git commit ID, tag ID or tree ID.
- output_dir: The directory where to put the resulting tarball.
- tar_compression_format: The compression format to use.
- """
- self._git_ref = git_ref
- self._tar_compression_format = tar_compression_format
-
- self._tarball_dir = Path(output_dir, "tarball")
-
- self._create_tarball_dir()
-
- self._tarball_name = f"dpdk-tarball-{self._git_ref}{self._tar_compression_format.extension}"
- self._tarball_path = self._check_tarball_path()
- if not self._tarball_path:
- self._create_tarball()
-
- def _create_tarball_dir(self) -> None:
- os.makedirs(self._tarball_dir, exist_ok=True)
-
- def _check_tarball_path(self) -> Path | None:
- if self._tarball_name in os.listdir(self._tarball_dir):
- return Path(self._tarball_dir, self._tarball_name)
- return None
-
- def _create_tarball(self) -> None:
- self._tarball_path = Path(self._tarball_dir, self._tarball_name)
-
- atexit.register(self._delete_tarball)
-
- result = subprocess.run(
- 'git -C "$(git rev-parse --show-toplevel)" archive '
- f'{self._git_ref} --prefix="dpdk-tarball-{self._git_ref + os.sep}" | '
- f"{self._tar_compression_format} > {Path(self._tarball_path.absolute())}",
- shell=True,
- text=True,
- capture_output=True,
- )
-
- if result.returncode != 0:
- raise SubprocessError(
- f"Git archive creation failed with exit code {result.returncode}.\n"
- f"Command: {result.args}\n"
- f"Stdout: {result.stdout}\n"
- f"Stderr: {result.stderr}"
- )
-
- atexit.unregister(self._delete_tarball)
-
- def _delete_tarball(self) -> None:
- if self._tarball_path and os.path.exists(self._tarball_path):
- os.remove(self._tarball_path)
-
- def __fspath__(self) -> str:
- """The os.PathLike protocol implementation."""
- return str(self._tarball_path)
-
-
def ensure_list_of_strings(value: Any | list[Any]) -> list[str]:
"""Ensure the input is a list of strings.
--
2.43.0
next prev parent reply other threads:[~2024-09-06 13:28 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-06 13:26 [RFC PATCH v1 00/12] DTS external DPDK build and stats Juraj Linkeš
2024-09-06 13:26 ` [RFC PATCH v1 01/12] dts: rename build target to DPDK build Juraj Linkeš
2024-09-06 13:26 ` [RFC PATCH v1 02/12] dts: one dpdk build per test run Juraj Linkeš
2024-09-06 13:26 ` [RFC PATCH v1 03/12] dts: fix remote session transferring files Juraj Linkeš
2024-09-06 13:26 ` [RFC PATCH v1 04/12] dts: improve path handling for local and remote paths Juraj Linkeš
2024-09-06 13:26 ` [RFC PATCH v1 05/12] dts: add the ability to copy directories via remote Juraj Linkeš
2024-09-06 13:26 ` [RFC PATCH v1 06/12] dts: add ability to prevent overwriting files/dirs Juraj Linkeš
2024-09-06 13:26 ` [RFC PATCH v1 07/12] dts: update argument option for prevent overwriting Juraj Linkeš
2024-09-06 13:26 ` [RFC PATCH v1 08/12] dts: add support for externally compiled DPDK Juraj Linkeš
2024-09-06 13:26 ` [RFC PATCH v1 09/12] doc: update argument options for external DPDK build Juraj Linkeš
2024-09-06 13:26 ` Juraj Linkeš [this message]
2024-09-06 13:26 ` [RFC PATCH v1 11/12] doc: remove git-ref argument Juraj Linkeš
2024-09-06 13:26 ` [RFC PATCH v1 12/12] dts: improve statistics Juraj Linkeš
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240906132656.21729-11-juraj.linkes@pantheon.tech \
--to=juraj.linkes@pantheon.tech \
--cc=Honnappa.Nagarahalli@arm.com \
--cc=Luca.Vizzarro@arm.com \
--cc=alex.chapman@arm.com \
--cc=dev@dpdk.org \
--cc=dmarx@iol.unh.edu \
--cc=jspewock@iol.unh.edu \
--cc=npratte@iol.unh.edu \
--cc=paul.szczepanek@arm.com \
--cc=probb@iol.unh.edu \
--cc=thomas@monjalon.net \
--cc=tomas.durovec@pantheon.tech \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).