From 44e4a1ef7d9124f76fa2901b649e6dab944f709f Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Mon, 17 Feb 2025 14:01:07 -0700 Subject: [PATCH 001/101] Remove branches from workflow-finished --- .github/workflows/workflow-finished.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/workflow-finished.yml b/.github/workflows/workflow-finished.yml index c8e986cfd99..3bdd654e420 100644 --- a/.github/workflows/workflow-finished.yml +++ b/.github/workflows/workflow-finished.yml @@ -4,12 +4,12 @@ run-name: Workflow Finished ${{ github.event.workflow_run.display_title }} (${{ on: workflow_run: workflows: - - CI - - Nightly - - Scheduled - - Stage Release + - CI + - Nightly + - Scheduled + - Stage Release types: - - completed + - completed permissions: contents: read From 1cae35984d8778d82dbe96146765ee466824ba60 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Mon, 17 Feb 2025 14:01:07 -0700 Subject: [PATCH 002/101] Remove branches from workflow-finished --- .github/workflows/workflow-finished.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/workflow-finished.yml b/.github/workflows/workflow-finished.yml index c8e986cfd99..3bdd654e420 100644 --- a/.github/workflows/workflow-finished.yml +++ b/.github/workflows/workflow-finished.yml @@ -4,12 +4,12 @@ run-name: Workflow Finished ${{ github.event.workflow_run.display_title }} (${{ on: workflow_run: workflows: - - CI - - Nightly - - Scheduled - - Stage Release + - CI + - Nightly + - Scheduled + - Stage Release types: - - completed + - completed permissions: contents: read From bc007e3c55c1d4473fa6fef4b44dbf502d11873b Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Tue, 18 Feb 2025 13:42:26 -0700 Subject: [PATCH 003/101] Break out PRs to separate workflow --- .github/workflows/workflow-finished.yml | 5 +++- .github/workflows/workflow-pr-finished.yml | 27 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/workflow-pr-finished.yml diff --git a/.github/workflows/workflow-finished.yml b/.github/workflows/workflow-finished.yml index 3bdd654e420..3a472463487 100644 --- a/.github/workflows/workflow-finished.yml +++ b/.github/workflows/workflow-finished.yml @@ -4,10 +4,13 @@ run-name: Workflow Finished ${{ github.event.workflow_run.display_title }} (${{ on: workflow_run: workflows: - - CI - Nightly - Scheduled - Stage Release + branches: + - 3006.x + - 3007.x + - master types: - completed diff --git a/.github/workflows/workflow-pr-finished.yml b/.github/workflows/workflow-pr-finished.yml new file mode 100644 index 00000000000..78a387a8526 --- /dev/null +++ b/.github/workflows/workflow-pr-finished.yml @@ -0,0 +1,27 @@ +name: Workflow PR Finished +run-name: Workflow PR Finished ${{ github.event.workflow_run.display_title }} (${{ github.event.workflow_run.conclusion }}) + +on: + workflow_run: + workflows: + - CI + types: + - completed + +permissions: + contents: read + pull-requests: read + actions: write + +jobs: + + restart-failed-jobs: + runs-on: ubuntu-latest + if: ${{ github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.run_attempt < 5 }} + steps: + - name: Restart failed jobs + env: + GH_REPO: ${{ github.repository }} + GH_TOKEN: ${{ github.token }} + run: | + gh run rerun ${{ github.event.workflow_run.id }} --failed From a37021e6b499246427a35fd790cfcc7779fa19db Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Tue, 18 Feb 2025 13:42:26 -0700 Subject: [PATCH 004/101] Break out PRs to separate workflow --- .github/workflows/workflow-finished.yml | 5 +++- .github/workflows/workflow-pr-finished.yml | 27 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/workflow-pr-finished.yml diff --git a/.github/workflows/workflow-finished.yml b/.github/workflows/workflow-finished.yml index 3bdd654e420..3a472463487 100644 --- a/.github/workflows/workflow-finished.yml +++ b/.github/workflows/workflow-finished.yml @@ -4,10 +4,13 @@ run-name: Workflow Finished ${{ github.event.workflow_run.display_title }} (${{ on: workflow_run: workflows: - - CI - Nightly - Scheduled - Stage Release + branches: + - 3006.x + - 3007.x + - master types: - completed diff --git a/.github/workflows/workflow-pr-finished.yml b/.github/workflows/workflow-pr-finished.yml new file mode 100644 index 00000000000..78a387a8526 --- /dev/null +++ b/.github/workflows/workflow-pr-finished.yml @@ -0,0 +1,27 @@ +name: Workflow PR Finished +run-name: Workflow PR Finished ${{ github.event.workflow_run.display_title }} (${{ github.event.workflow_run.conclusion }}) + +on: + workflow_run: + workflows: + - CI + types: + - completed + +permissions: + contents: read + pull-requests: read + actions: write + +jobs: + + restart-failed-jobs: + runs-on: ubuntu-latest + if: ${{ github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.run_attempt < 5 }} + steps: + - name: Restart failed jobs + env: + GH_REPO: ${{ github.repository }} + GH_TOKEN: ${{ github.token }} + run: | + gh run rerun ${{ github.event.workflow_run.id }} --failed From 634d5d11df84ec2cbd679ff53c335d68323c0ae3 Mon Sep 17 00:00:00 2001 From: hurzhurz Date: Wed, 15 Jan 2025 15:02:25 +0000 Subject: [PATCH 005/101] fix yumpkg for Python <3.8 --- changelog/67091.fixed.md | 1 + salt/modules/yumpkg.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 changelog/67091.fixed.md diff --git a/changelog/67091.fixed.md b/changelog/67091.fixed.md new file mode 100644 index 00000000000..8b4ef596813 --- /dev/null +++ b/changelog/67091.fixed.md @@ -0,0 +1 @@ +Fix yumpkg module for Python<3.8 diff --git a/salt/modules/yumpkg.py b/salt/modules/yumpkg.py index fd89b9e90c2..469aef35a1c 100644 --- a/salt/modules/yumpkg.py +++ b/salt/modules/yumpkg.py @@ -1425,8 +1425,8 @@ def install( 'version': '', 'arch': ''}}} """ - if (version := kwargs.get("version")) is not None: - kwargs["version"] = str(version) + if kwargs.get("version") is not None: + kwargs["version"] = str(kwargs["version"]) options = _get_options(**kwargs) if salt.utils.data.is_true(refresh): From e73182646ddac71196b2236a88ef785b5aff6de6 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Thu, 6 Feb 2025 17:35:27 -0700 Subject: [PATCH 006/101] Use the ip6netnetwork we created --- .github/workflows/test-action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test-action.yml b/.github/workflows/test-action.yml index 6ac1fdccba2..992626672a4 100644 --- a/.github/workflows/test-action.yml +++ b/.github/workflows/test-action.yml @@ -476,6 +476,7 @@ jobs: --workdir /__w/salt/salt \ --privileged \ --ulimit="nofile=262144:262144" \ + --network ip6net \ -e "HOME=/github/home" \ -e GITHUB_ACTIONS=true \ -e CI=true \ From 5f941f75bb246064d01d9a61d9dc920b544ea441 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Fri, 7 Feb 2025 14:44:22 -0700 Subject: [PATCH 007/101] Cleanly exit rtcforward --- .github/actions/ssh-tunnel/rtcforward.py | 83 +++++++++++++++--------- 1 file changed, 54 insertions(+), 29 deletions(-) diff --git a/.github/actions/ssh-tunnel/rtcforward.py b/.github/actions/ssh-tunnel/rtcforward.py index a0972d300db..460bd5c8488 100644 --- a/.github/actions/ssh-tunnel/rtcforward.py +++ b/.github/actions/ssh-tunnel/rtcforward.py @@ -6,6 +6,7 @@ import io import json import logging import os +import signal import sys import textwrap import time @@ -77,6 +78,42 @@ def print_pastable(data, message="offer"): sys.stdout.flush() +async def read_from_stdin(): + loop = asyncio.get_event_loop() + line = await loop.run_in_executor( + None, input, "-- Please enter a message from remote party --\n" + ) + data = line + while line: + try: + line = await loop.run_in_executor(None, input) + except EOFError: + break + data += line + print("-- Message received --") + return data + + +class Channels: + def __init__(self, channels=None): + if channels is None: + channels = [] + self.channels = channels + + def add(self, channel): + self.channels.append(channel) + + def close(self): + for channel in self.channels: + channel.close() + + +class ProxyConnection: + def __init__(self, pc, channel): + self.pc = pc + self.channel = channel + + class ProxyClient: def __init__(self, args, channel): @@ -219,29 +256,7 @@ class ProxyServer: log.exception("WTF") -class ProxyConnection: - def __init__(self, pc, channel): - self.pc = pc - self.channel = channel - - -async def read_from_stdin(): - loop = asyncio.get_event_loop() - line = await loop.run_in_executor( - None, input, "-- Please enter a message from remote party --\n" - ) - data = line - while line: - try: - line = await loop.run_in_executor(None, input) - except EOFError: - break - data += line - print("-- Message received --") - return data - - -async def run_answer(pc, args): +async def run_answer(stop, pc, args): """ Top level offer answer server. """ @@ -270,11 +285,11 @@ async def run_answer(pc, args): elif obj is BYE: print("Exiting") - while True: + while not stop.is_set(): await asyncio.sleep(0.3) -async def run_offer(pc, args): +async def run_offer(stop, pc, args): """ Top level offer server this will estabilsh a data channel and start a tcp server on the port provided. New connections to the server will start the @@ -324,10 +339,14 @@ async def run_offer(pc, args): elif obj is BYE: print("Exiting") - while True: + while not stop.is_set(): await asyncio.sleep(0.3) +async def signal_handler(stop, pc): + stop.set() + + if __name__ == "__main__": if sys.platform == "win32": asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) @@ -343,16 +362,22 @@ if __name__ == "__main__": logging.basicConfig(level=logging.DEBUG) else: logging.basicConfig(level=logging.INFO) - + stop = asyncio.Event() pc = RTCPeerConnection() if args.role == "offer": - coro = run_offer(pc, args) + coro = run_offer(stop, pc, args) else: - coro = run_answer(pc, args) + coro = run_answer(stop, pc, args) # run event loop loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) + for signame in ("SIGINT", "SIGTERM"): + loop.add_signal_handler( + getattr(signal, signame), + lambda: asyncio.create_task(signal_handler(stop, pc)), + ) + try: loop.run_until_complete(coro) except KeyboardInterrupt: From 4c8ca3062ca328636ce90c8d25b19df74aa99118 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Fri, 7 Feb 2025 15:23:13 -0700 Subject: [PATCH 008/101] Add container tool --- .github/workflows/ssh-debug.yml | 14 +++++ tools/__init__.py | 1 + tools/container.py | 106 ++++++++++++++++++++++++++++++++ 3 files changed, 121 insertions(+) create mode 100644 tools/container.py diff --git a/.github/workflows/ssh-debug.yml b/.github/workflows/ssh-debug.yml index 212e31c3e57..2decf646fe6 100644 --- a/.github/workflows/ssh-debug.yml +++ b/.github/workflows/ssh-debug.yml @@ -30,6 +30,20 @@ jobs: environment: ci steps: + - name: Set up Python 3.10 + uses: actions/setup-python@v5 + with: + python-version: 3.10 + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + + - name: Install Nox + run: | + python3 -m pip install 'nox==2022.8.7' + env: + PIP_INDEX_URL: https://pypi.org/simple + - name: Checkout Source Code uses: actions/checkout@v4 diff --git a/tools/__init__.py b/tools/__init__.py index af50a06ef47..9fc43adbf12 100644 --- a/tools/__init__.py +++ b/tools/__init__.py @@ -31,6 +31,7 @@ RELEASE_VENV_CONFIG = VirtualEnvPipConfig( ptscripts.set_default_config(DEFAULT_REQS_CONFIG) ptscripts.register_tools_module("tools.changelog") ptscripts.register_tools_module("tools.ci") +ptscripts.register_tools_module("tools.container") ptscripts.register_tools_module("tools.docs") ptscripts.register_tools_module("tools.gh") ptscripts.register_tools_module("tools.pkg") diff --git a/tools/container.py b/tools/container.py new file mode 100644 index 00000000000..8fbef761d62 --- /dev/null +++ b/tools/container.py @@ -0,0 +1,106 @@ +import os + +from ptscripts import Context, command_group + +cmd = command_group(name="container", help="Container Commands", description=__doc__) + + +def has_network(ctx, name): + p = ctx.run("docker", "network", "ls", capture=True) + return name in p.stdout.decode() + + +def create_network(ctx, name): + p = ctx.run( + "docker", + "network", + "create", + "-o", + "com.docker.network.driver.mtu=1500", + "--ipv6", + "--subnet", + "2001:db8::/64", + name, + ) + if p.returncode != 0: + raise RuntimeError(f"docker network create returned {p.returncode}") + + +@cmd.command( + name="create", + arguments={ + "image": {"help": "Name the container image to use."}, + "name": {"help": "Name the container being created.", "default": ""}, + }, +) +def create(ctx: Context, image: str, name: str = ""): + onci = "GITHUB_WORKFLOW" in os.environ + workdir = "/salt" + home = "/root" + network = "ip6net" + if not has_network(ctx, network): + ctx.info(f"Creating docker network: {network}") + create_network(ctx, network) + if onci: + workdir = "/__w/salt/salt" + home = "/github/home" + env = { + "HOME": home, + "SKIP_REQUIREMENTS_INSTALL": "1", + "PRINT_TEST_SELECTION": "0", + "PRINT_TEST_PLAN_ONLY": "0", + "PRINT_SYSTEM_INFO": "0", + "RERUN_FEAILURES": "0", + "SKIP_INITIAL_ONEDIR_FAILURES": "1", + "SKIP_INITIAL_GH_ACTIONS_FAILURES": "1", + "RAISE_DEPRECATIONS_RUNTIME_ERRORS": "1", + "LANG": "en_US.UTF-8", + "SHELL": "/bin/bash", + } + for var in [ + "PIP_INDEX_URL", + "PIP_EXTRA_INDEX_URL", + "PIP_TRUSTED_HOST", + "PIP_DISABLE_PIP_VERSION_CHECK", + "SALT_TRANSPORT", + # Are both of these really needed? + "GITHUB_ACTIONS", + "GITHUB_ACTIONS_PIPELINE", + "CI", + "SKIP_CODE_COVERAGE", + "COVERAGE_CONTEXT", + "RERUN_FEAILURES", + ]: + if var in os.environ: + env[var] = os.environ[var] + cmd = [ + "/usr/bin/docker", + "create", + "--privileged", + # "--ulimit", + # "\"nofile=262144:262144\"", + f"--workdir={workdir}", + "-v", + "/tmp/:/var/lib/docker", + ] + for key in env: + cmd.extend(["-e", f"{key}={env[key]}"]) + if onci: + cmd.extend(["-v", "/home/runner/work:/__w"]) + else: + cmd.extend(["-v", f"{os.getcwd()}:/salt"]) + if name: + cmd.extend(["--name", name]) + cmd.extend( + [ + "--entrypoint", + "/usr/lib/systemd/systemd", + image, + "--systemd", + "--unit", + "rescue.target", + ], + ) + ret = ctx.run(*cmd, capture=True, check=False) + if ret.returncode != 0: + ctx.warn(ret.stderr.decode()) From cecf31f29bff0161a1c6099e99c37d0d95600313 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Fri, 7 Feb 2025 16:11:14 -0700 Subject: [PATCH 009/101] Add cache prefix --- .github/workflows/ssh-debug.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ssh-debug.yml b/.github/workflows/ssh-debug.yml index 2decf646fe6..992f6b6a7b2 100644 --- a/.github/workflows/ssh-debug.yml +++ b/.github/workflows/ssh-debug.yml @@ -30,13 +30,18 @@ jobs: environment: ci steps: + - name: Checkout Source Code + uses: actions/checkout@v4 + - name: Set up Python 3.10 uses: actions/setup-python@v5 with: - python-version: 3.10 + python-version: "3.10" - name: Setup Python Tools Scripts uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ssh-debug - name: Install Nox run: | @@ -44,9 +49,6 @@ jobs: env: PIP_INDEX_URL: https://pypi.org/simple - - name: Checkout Source Code - uses: actions/checkout@v4 - - uses: ./.github/actions/ssh-tunnel with: public_key: ${{ inputs.public_key }} From 3219011dfb0dc89aaed74a4f6b9b35fd88b1f865 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Sat, 8 Feb 2025 16:03:26 -0700 Subject: [PATCH 010/101] use tools to create container --- .github/workflows/test-action.yml | 53 +++++++++------------- .github/workflows/test-packages-action.yml | 22 ++++++++- 2 files changed, 42 insertions(+), 33 deletions(-) diff --git a/.github/workflows/test-action.yml b/.github/workflows/test-action.yml index 992626672a4..f8c875ec7fe 100644 --- a/.github/workflows/test-action.yml +++ b/.github/workflows/test-action.yml @@ -154,39 +154,28 @@ jobs: free -h - name: "Create container ${{ matrix.container }}" + env: + GITHUB_ACTIONS: true + CI: true + SKIP_REQUIREMENTS_INSTALL: 1 + PRINT_TEST_SELECTION: 0 + PRINT_TEST_PLAN_ONLY: 0 + PRINT_SYSTEM_INFO: 0 + RERUN_FAILURES: 1 + GITHUB_ACTIONS_PIPELINE: 1 + SKIP_INITIAL_ONEDIR_FAILURES: 1 + SKIP_INITIAL_GH_ACTIONS_FAILURES: 1 + SKIP_CODE_COVERAGE: ${{ inputs.skip-code-coverage && '1' || '0' }} + CONVERAGE_CONTEXT: ${{ matrix.slug }} + COLUMNS: 190 + PIP_INDEX_URL: ${{ vars.PIP_INDEX_URL }} + PIP_TRUSTED_HOST: ${{ vars.PIP_TRUSTED_HOST }} + PIP_EXTRA_INDEX_URL: ${{ vars.PIP_EXTRA_INDEX_URL }} + PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" + SALT_TRANSPORT: ${{ matrix.transport }} run: | - /usr/bin/docker \ - create --name ${{ github.run_id }}_salt-test \ - --workdir /__w/salt/salt \ - --privileged \ - --ulimit="nofile=262144:262144" \ - -e "HOME=/github/home" \ - -e GITHUB_ACTIONS=true \ - -e CI=true \ - -e SKIP_REQUIREMENTS_INSTALL=1 \ - -e PRINT_TEST_SELECTION=0 \ - -e PRINT_TEST_PLAN_ONLY=0 \ - -e PRINT_SYSTEM_INFO=0 \ - -e RERUN_FAILURES=1 \ - -e GITHUB_ACTIONS_PIPELINE=1 \ - -e SKIP_INITIAL_ONEDIR_FAILURES=1 \ - -e SKIP_INITIAL_GH_ACTIONS_FAILURES=1 \ - -e SKIP_CODE_COVERAGE=${{ inputs.skip-code-coverage && '1' || '0' }} \ - -e CONVERAGE_CONTEXT=${{ matrix.slug }} \ - -e COLUMNS=190 \ - -e PIP_INDEX_URL=${{ vars.PIP_INDEX_URL }} \ - -e PIP_TRUSTED_HOST=${{ vars.PIP_TRUSTED_HOST }} \ - -e PIP_EXTRA_INDEX_URL=${{ vars.PIP_EXTRA_INDEX_URL }} \ - -e PIP_DISABLE_PIP_VERSION_CHECK="1" \ - -e RAISE_DEPRECATIONS_RUNTIME_ERRORS="1" \ - -e SALT_TRANSPORT=${{ matrix.transport }} \ - -e LANG="en_US.UTF-8" \ - -e SHELL=/bin/bash \ - -v "/home/runner/work":"/__w" \ - -v "/tmp/":"/var/lib/docker" \ - --entrypoint "/usr/lib/systemd/systemd" \ - ${{ matrix.container }} \ - --systemd --unit rescue.target + tools create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test - name: "Start container ${{ matrix.container }}" run: | diff --git a/.github/workflows/test-packages-action.yml b/.github/workflows/test-packages-action.yml index 870ebbda321..bcd7c4a6d14 100644 --- a/.github/workflows/test-packages-action.yml +++ b/.github/workflows/test-packages-action.yml @@ -134,8 +134,28 @@ jobs: docker pull ${{ matrix.container }} - name: "Create container ${{ matrix.container }}" + env: + GITHUB_ACTIONS: true + CI: true + SKIP_REQUIREMENTS_INSTALL: 1 + PRINT_TEST_SELECTION: 0 + PRINT_TEST_PLAN_ONLY: 0 + PRINT_SYSTEM_INFO: 0 + RERUN_FAILURES: 1 + GITHUB_ACTIONS_PIPELINE: 1 + SKIP_INITIAL_ONEDIR_FAILURES: 1 + SKIP_INITIAL_GH_ACTIONS_FAILURES: 1 + SKIP_CODE_COVERAGE: ${{ inputs.skip-code-coverage && '1' || '0' }} + CONVERAGE_CONTEXT: ${{ matrix.slug }} + COLUMNS: 190 + PIP_INDEX_URL: ${{ vars.PIP_INDEX_URL }} + PIP_TRUSTED_HOST: ${{ vars.PIP_TRUSTED_HOST }} + PIP_EXTRA_INDEX_URL: ${{ vars.PIP_EXTRA_INDEX_URL }} + PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" + SALT_TRANSPORT: ${{ matrix.transport }} run: | - /usr/bin/docker create --name ${{ github.run_id }}_salt-test-pkg --workdir /__w/salt/salt --privileged -e "HOME=/github/home" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work":"/__w" -v "/home/runner/work/_temp":"/__w/_temp" -v "/home/runner/work/_actions":"/__w/_actions" -v "/opt/hostedtoolcache":"/__t" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" --entrypoint "/usr/lib/systemd/systemd" ${{ matrix.container }} --systemd --unit rescue.target + tools create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test - name: "Start container ${{ matrix.container }}" run: | From bb7ebb38e4bf4eb6a5333e77a5461d9c20c2efa1 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Sat, 8 Feb 2025 21:20:09 -0700 Subject: [PATCH 011/101] Setup python tools before creating container --- .github/workflows/test-action.yml | 51 ++++++++++++++-------- .github/workflows/test-packages-action.yml | 22 +++++----- 2 files changed, 45 insertions(+), 28 deletions(-) diff --git a/.github/workflows/test-action.yml b/.github/workflows/test-action.yml index f8c875ec7fe..682e7a96972 100644 --- a/.github/workflows/test-action.yml +++ b/.github/workflows/test-action.yml @@ -80,10 +80,6 @@ jobs: matrix: include: ${{ fromJSON(inputs.matrix)['linux-x86_64'] }} steps: - - name: Set up Python ${{ inputs.python-version }} - uses: actions/setup-python@v5 - with: - python-version: "${{ inputs.python-version }}" - name: "Throttle Builds" shell: bash @@ -98,6 +94,16 @@ jobs: - name: Checkout Source Code uses: actions/checkout@v4 + - name: Setup Python ${{ inputs.python-version }} + uses: actions/setup-python@v5 + with: + python-version: "${{ inputs.python-version }}" + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }} + - name: Free Disk Space Before Build run: | echo "Disk space before cleanup:" @@ -175,7 +181,7 @@ jobs: RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" SALT_TRANSPORT: ${{ matrix.transport }} run: | - tools create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test + tools container create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test - name: "Start container ${{ matrix.container }}" run: | @@ -385,10 +391,6 @@ jobs: matrix: include: ${{ fromJSON(inputs.matrix)['linux-arm64'] }} steps: - - name: Set up Python ${{ inputs.python-version }} - uses: actions/setup-python@v5 - with: - python-version: "${{ inputs.python-version }}" - name: "Throttle Builds" shell: bash @@ -400,9 +402,25 @@ jobs: run: | echo "TIMESTAMP=$(date +%s)" | tee -a "$GITHUB_ENV" + - name: Checkout Source Code uses: actions/checkout@v4 + - name: Setup Python ${{ inputs.python-version }} + uses: actions/setup-python@v5 + with: + python-version: "${{ inputs.python-version }}" + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }} + + - name: "Set `TIMESTAMP` environment variable" + shell: bash + run: | + echo "TIMESTAMP=$(date +%s)" | tee -a "$GITHUB_ENV" + - name: Free Disk Space Before Build run: | echo "Disk space before cleanup:" @@ -716,6 +734,11 @@ jobs: - name: Checkout Source Code uses: actions/checkout@v4 + - name: Setup Python ${{ inputs.python-version }} + uses: actions/setup-python@v5 + with: + python-version: "${{ inputs.python-version }}" + - name: Setup Salt Version run: | echo "${{ inputs.salt-version }}" > salt/_version.txt @@ -741,12 +764,6 @@ jobs: uses: actions/download-artifact@v4 with: name: nox-macos-${{ matrix.arch }}-${{ inputs.nox-session }} - - - name: Set up Python ${{ inputs.python-version }} - uses: actions/setup-python@v5 - with: - python-version: "${{ inputs.python-version }}" - - name: Install Nox run: | python3 -m pip install 'nox==${{ inputs.nox-version }}' @@ -1021,7 +1038,7 @@ jobs: run: | echo true - - name: Set up Python ${{ inputs.python-version }} + - name: Setup Python ${{ inputs.python-version }} uses: actions/setup-python@v5 with: python-version: "${{ inputs.python-version }}" @@ -1339,7 +1356,7 @@ jobs: run: | tree -a artifacts - - name: Set up Python ${{ inputs.python-version }} + - name: Setup Python ${{ inputs.python-version }} uses: actions/setup-python@v5 with: python-version: "${{ inputs.python-version }}" diff --git a/.github/workflows/test-packages-action.yml b/.github/workflows/test-packages-action.yml index bcd7c4a6d14..95801864c3b 100644 --- a/.github/workflows/test-packages-action.yml +++ b/.github/workflows/test-packages-action.yml @@ -86,6 +86,16 @@ jobs: - name: Checkout Source Code uses: actions/checkout@v4 + - name: Set up Python ${{ inputs.python-version }} + uses: actions/setup-python@v5 + with: + python-version: "${{ inputs.python-version }}" + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }} + - name: Download Packages uses: actions/download-artifact@v4 with: @@ -105,11 +115,6 @@ jobs: cd artifacts tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ matrix.platform }}-${{ matrix.arch }}.tar.xz - - name: Set up Python ${{ inputs.python-version }} - uses: actions/setup-python@v5 - with: - python-version: "${{ inputs.python-version }}" - - name: Install Nox run: | python3 -m pip install 'nox==${{ inputs.nox-version }}' @@ -155,7 +160,7 @@ jobs: RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" SALT_TRANSPORT: ${{ matrix.transport }} run: | - tools create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test + tools container create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test - name: "Start container ${{ matrix.container }}" run: | @@ -165,11 +170,6 @@ jobs: run: | docker exec ${{ github.run_id}}_salt-test-pkg python3 -m nox --force-color -e decompress-dependencies -- linux ${{ matrix.arch }} - - name: Setup Python Tools Scripts - uses: ./.github/actions/setup-python-tools-scripts - with: - cache-prefix: ${{ inputs.cache-prefix }} - - name: List Free Space run: | df -h || true From 06f6251b6304f7d4115628746330b98194c82927 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Sun, 9 Feb 2025 02:19:00 -0700 Subject: [PATCH 012/101] use name --- tools/container.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/container.py b/tools/container.py index 8fbef761d62..626c1762de7 100644 --- a/tools/container.py +++ b/tools/container.py @@ -76,6 +76,7 @@ def create(ctx: Context, image: str, name: str = ""): cmd = [ "/usr/bin/docker", "create", + f"--name={name}", "--privileged", # "--ulimit", # "\"nofile=262144:262144\"", @@ -101,6 +102,7 @@ def create(ctx: Context, image: str, name: str = ""): "rescue.target", ], ) + ctx.info(f"command is: {cmd}") ret = ctx.run(*cmd, capture=True, check=False) if ret.returncode != 0: ctx.warn(ret.stderr.decode()) From 5dfc7f710f5a6bf433ddfa9f60b9355750b1b68d Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Sun, 9 Feb 2025 15:41:53 -0700 Subject: [PATCH 013/101] Fix container name for package tests --- .github/workflows/test-action.yml | 34 +--------------------- .github/workflows/test-packages-action.yml | 2 +- tools/container.py | 3 +- 3 files changed, 4 insertions(+), 35 deletions(-) diff --git a/.github/workflows/test-action.yml b/.github/workflows/test-action.yml index 682e7a96972..6e23db2a60c 100644 --- a/.github/workflows/test-action.yml +++ b/.github/workflows/test-action.yml @@ -478,39 +478,7 @@ jobs: - name: "Create container ${{ matrix.container }}" run: | - /usr/bin/docker \ - create --name ${{ github.run_id }}_salt-test \ - --workdir /__w/salt/salt \ - --privileged \ - --ulimit="nofile=262144:262144" \ - --network ip6net \ - -e "HOME=/github/home" \ - -e GITHUB_ACTIONS=true \ - -e CI=true \ - -e SKIP_REQUIREMENTS_INSTALL=1 \ - -e PRINT_TEST_SELECTION=0 \ - -e PRINT_TEST_PLAN_ONLY=0 \ - -e PRINT_SYSTEM_INFO=0 \ - -e RERUN_FAILURES=1 \ - -e GITHUB_ACTIONS_PIPELINE=1 \ - -e SKIP_INITIAL_ONEDIR_FAILURES=1 \ - -e SKIP_INITIAL_GH_ACTIONS_FAILURES=1 \ - -e SKIP_CODE_COVERAGE=${{ inputs.skip-code-coverage && '1' || '0' }} \ - -e CONVERAGE_CONTEXT=${{ matrix.slug }} \ - -e COLUMNS=190 \ - -e PIP_INDEX_URL=${{ vars.PIP_INDEX_URL }} \ - -e PIP_TRUSTED_HOST=${{ vars.PIP_TRUSTED_HOST }} \ - -e PIP_EXTRA_INDEX_URL=${{ vars.PIP_EXTRA_INDEX_URL }} \ - -e PIP_DISABLE_PIP_VERSION_CHECK="1" \ - -e RAISE_DEPRECATIONS_RUNTIME_ERRORS="1" \ - -e SALT_TRANSPORT=${{ matrix.transport }} \ - -e LANG="en_US.UTF-8" \ - -e SHELL=/bin/bash \ - -v "/home/runner/work":"/__w" \ - -v "/tmp/":"/var/lib/docker" \ - --entrypoint "/usr/lib/systemd/systemd" \ - ${{ matrix.container }} \ - --systemd --unit rescue.target + tools container create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test - name: "Start container ${{ matrix.container }}" run: | diff --git a/.github/workflows/test-packages-action.yml b/.github/workflows/test-packages-action.yml index 95801864c3b..9e482959e8e 100644 --- a/.github/workflows/test-packages-action.yml +++ b/.github/workflows/test-packages-action.yml @@ -160,7 +160,7 @@ jobs: RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" SALT_TRANSPORT: ${{ matrix.transport }} run: | - tools container create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test + tools container create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test-pkg - name: "Start container ${{ matrix.container }}" run: | diff --git a/tools/container.py b/tools/container.py index 626c1762de7..99748d23996 100644 --- a/tools/container.py +++ b/tools/container.py @@ -38,7 +38,7 @@ def create(ctx: Context, image: str, name: str = ""): workdir = "/salt" home = "/root" network = "ip6net" - if not has_network(ctx, network): + if not onci and not has_network(ctx, network): ctx.info(f"Creating docker network: {network}") create_network(ctx, network) if onci: @@ -90,6 +90,7 @@ def create(ctx: Context, image: str, name: str = ""): cmd.extend(["-v", "/home/runner/work:/__w"]) else: cmd.extend(["-v", f"{os.getcwd()}:/salt"]) + cmd.extend(["--network", network]) if name: cmd.extend(["--name", name]) cmd.extend( From ad1b07728b28f4f5a157c8223e5f8b950ba52fb1 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Mon, 10 Feb 2025 16:57:50 -0700 Subject: [PATCH 014/101] Fix up container create --- .github/workflows/test-action.yml | 6 +++--- tools/container.py | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test-action.yml b/.github/workflows/test-action.yml index 6e23db2a60c..15d6ff70a5c 100644 --- a/.github/workflows/test-action.yml +++ b/.github/workflows/test-action.yml @@ -174,9 +174,9 @@ jobs: SKIP_CODE_COVERAGE: ${{ inputs.skip-code-coverage && '1' || '0' }} CONVERAGE_CONTEXT: ${{ matrix.slug }} COLUMNS: 190 - PIP_INDEX_URL: ${{ vars.PIP_INDEX_URL }} - PIP_TRUSTED_HOST: ${{ vars.PIP_TRUSTED_HOST }} - PIP_EXTRA_INDEX_URL: ${{ vars.PIP_EXTRA_INDEX_URL }} + PIP_INDEX_URL: "${{ vars.PIP_INDEX_URL }}" + PIP_TRUSTED_HOST: "${{ vars.PIP_TRUSTED_HOST }}" + PIP_EXTRA_INDEX_URL: "${{ vars.PIP_EXTRA_INDEX_URL }}" PIP_DISABLE_PIP_VERSION_CHECK: "1" RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" SALT_TRANSPORT: ${{ matrix.transport }} diff --git a/tools/container.py b/tools/container.py index 99748d23996..537d49f2cd5 100644 --- a/tools/container.py +++ b/tools/container.py @@ -50,7 +50,7 @@ def create(ctx: Context, image: str, name: str = ""): "PRINT_TEST_SELECTION": "0", "PRINT_TEST_PLAN_ONLY": "0", "PRINT_SYSTEM_INFO": "0", - "RERUN_FEAILURES": "0", + "RERUN_FAILURES": "0", "SKIP_INITIAL_ONEDIR_FAILURES": "1", "SKIP_INITIAL_GH_ACTIONS_FAILURES": "1", "RAISE_DEPRECATIONS_RUNTIME_ERRORS": "1", @@ -69,7 +69,8 @@ def create(ctx: Context, image: str, name: str = ""): "CI", "SKIP_CODE_COVERAGE", "COVERAGE_CONTEXT", - "RERUN_FEAILURES", + "RERUN_FAILURES", + "COLUMNS", ]: if var in os.environ: env[var] = os.environ[var] From fabaa0fb0aca4aa98aece48601a42ab3fbabd42d Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Mon, 10 Feb 2025 17:01:01 -0700 Subject: [PATCH 015/101] Fix environment for arm linux --- .github/workflows/test-action.yml | 24 ++++++++++++++++++++-- .github/workflows/test-packages-action.yml | 10 ++++----- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test-action.yml b/.github/workflows/test-action.yml index 15d6ff70a5c..499a43b2c89 100644 --- a/.github/workflows/test-action.yml +++ b/.github/workflows/test-action.yml @@ -177,8 +177,8 @@ jobs: PIP_INDEX_URL: "${{ vars.PIP_INDEX_URL }}" PIP_TRUSTED_HOST: "${{ vars.PIP_TRUSTED_HOST }}" PIP_EXTRA_INDEX_URL: "${{ vars.PIP_EXTRA_INDEX_URL }}" - PIP_DISABLE_PIP_VERSION_CHECK: "1" - RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" + PIP_DISABLE_PIP_VERSION_CHECK: 1 + RAISE_DEPRECATIONS_RUNTIME_ERRORS: 1 SALT_TRANSPORT: ${{ matrix.transport }} run: | tools container create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test @@ -477,6 +477,26 @@ jobs: free -h - name: "Create container ${{ matrix.container }}" + env: + GITHUB_ACTIONS: true + CI: true + SKIP_REQUIREMENTS_INSTALL: 1 + PRINT_TEST_SELECTION: 0 + PRINT_TEST_PLAN_ONLY: 0 + PRINT_SYSTEM_INFO: 0 + RERUN_FAILURES: 1 + GITHUB_ACTIONS_PIPELINE: 1 + SKIP_INITIAL_ONEDIR_FAILURES: 1 + SKIP_INITIAL_GH_ACTIONS_FAILURES: 1 + SKIP_CODE_COVERAGE: ${{ inputs.skip-code-coverage && '1' || '0' }} + CONVERAGE_CONTEXT: ${{ matrix.slug }} + COLUMNS: 190 + PIP_INDEX_URL: "${{ vars.PIP_INDEX_URL }}" + PIP_TRUSTED_HOST: "${{ vars.PIP_TRUSTED_HOST }}" + PIP_EXTRA_INDEX_URL: "${{ vars.PIP_EXTRA_INDEX_URL }}" + PIP_DISABLE_PIP_VERSION_CHECK: 1 + RAISE_DEPRECATIONS_RUNTIME_ERRORS: 1 + SALT_TRANSPORT: ${{ matrix.transport }} run: | tools container create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test diff --git a/.github/workflows/test-packages-action.yml b/.github/workflows/test-packages-action.yml index 9e482959e8e..9c7c1f90940 100644 --- a/.github/workflows/test-packages-action.yml +++ b/.github/workflows/test-packages-action.yml @@ -153,11 +153,11 @@ jobs: SKIP_CODE_COVERAGE: ${{ inputs.skip-code-coverage && '1' || '0' }} CONVERAGE_CONTEXT: ${{ matrix.slug }} COLUMNS: 190 - PIP_INDEX_URL: ${{ vars.PIP_INDEX_URL }} - PIP_TRUSTED_HOST: ${{ vars.PIP_TRUSTED_HOST }} - PIP_EXTRA_INDEX_URL: ${{ vars.PIP_EXTRA_INDEX_URL }} - PIP_DISABLE_PIP_VERSION_CHECK: "1" - RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" + PIP_INDEX_URL: "{{ vars.PIP_INDEX_URL }}" + PIP_TRUSTED_HOST: "${{ vars.PIP_TRUSTED_HOST }}" + PIP_EXTRA_INDEX_URL: "${{ vars.PIP_EXTRA_INDEX_URL }}" + PIP_DISABLE_PIP_VERSION_CHECK: 1 + RAISE_DEPRECATIONS_RUNTIME_ERRORS: 1 SALT_TRANSPORT: ${{ matrix.transport }} run: | tools container create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test-pkg From 68f4107bdbbe3b5cea3ee056a656eb51b9b91cce Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Mon, 10 Feb 2025 17:58:24 -0700 Subject: [PATCH 016/101] Add ssh command --- .github/actions/ssh-tunnel/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/actions/ssh-tunnel/README.md b/.github/actions/ssh-tunnel/README.md index f6f03e5b2d5..b88b4e233f6 100644 --- a/.github/actions/ssh-tunnel/README.md +++ b/.github/actions/ssh-tunnel/README.md @@ -92,3 +92,9 @@ OkZFOjhCOjI3OjFDOjFBOkJEOjUxOjQ2OjE4OjBBOjhFOjVBOjI1OjQzOjQzOjZGOkRBXHJcbmE9c2V0 dXA6YWN0aXZlXHJcbiIsICJ0eXBlIjogImFuc3dlciJ9 -- Message received -- ``` + +SSH to your local port. + +``` +ssh -o StrictHostKeychecking=no -o TCPKeepAlive=no -o StrictHostKeyChecking=no -vv -p 5222 runner@localhost +``` From 99871bef4301c9f33aafe1b7d827e8a2437ce466 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Tue, 11 Feb 2025 14:31:27 -0700 Subject: [PATCH 017/101] test reverted change --- .github/workflows/test-packages-action.yml | 44 +++++++++++----------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/.github/workflows/test-packages-action.yml b/.github/workflows/test-packages-action.yml index 9c7c1f90940..e73bb5798de 100644 --- a/.github/workflows/test-packages-action.yml +++ b/.github/workflows/test-packages-action.yml @@ -139,28 +139,30 @@ jobs: docker pull ${{ matrix.container }} - name: "Create container ${{ matrix.container }}" - env: - GITHUB_ACTIONS: true - CI: true - SKIP_REQUIREMENTS_INSTALL: 1 - PRINT_TEST_SELECTION: 0 - PRINT_TEST_PLAN_ONLY: 0 - PRINT_SYSTEM_INFO: 0 - RERUN_FAILURES: 1 - GITHUB_ACTIONS_PIPELINE: 1 - SKIP_INITIAL_ONEDIR_FAILURES: 1 - SKIP_INITIAL_GH_ACTIONS_FAILURES: 1 - SKIP_CODE_COVERAGE: ${{ inputs.skip-code-coverage && '1' || '0' }} - CONVERAGE_CONTEXT: ${{ matrix.slug }} - COLUMNS: 190 - PIP_INDEX_URL: "{{ vars.PIP_INDEX_URL }}" - PIP_TRUSTED_HOST: "${{ vars.PIP_TRUSTED_HOST }}" - PIP_EXTRA_INDEX_URL: "${{ vars.PIP_EXTRA_INDEX_URL }}" - PIP_DISABLE_PIP_VERSION_CHECK: 1 - RAISE_DEPRECATIONS_RUNTIME_ERRORS: 1 - SALT_TRANSPORT: ${{ matrix.transport }} + #env: + # GITHUB_ACTIONS: true + # CI: true + # SKIP_REQUIREMENTS_INSTALL: 1 + # PRINT_TEST_SELECTION: 0 + # PRINT_TEST_PLAN_ONLY: 0 + # PRINT_SYSTEM_INFO: 0 + # RERUN_FAILURES: 1 + # GITHUB_ACTIONS_PIPELINE: 1 + # SKIP_INITIAL_ONEDIR_FAILURES: 1 + # SKIP_INITIAL_GH_ACTIONS_FAILURES: 1 + # SKIP_CODE_COVERAGE: ${{ inputs.skip-code-coverage && '1' || '0' }} + # CONVERAGE_CONTEXT: ${{ matrix.slug }} + # COLUMNS: 190 + # PIP_INDEX_URL: "{{ vars.PIP_INDEX_URL }}" + # PIP_TRUSTED_HOST: "${{ vars.PIP_TRUSTED_HOST }}" + # PIP_EXTRA_INDEX_URL: "${{ vars.PIP_EXTRA_INDEX_URL }}" + # PIP_DISABLE_PIP_VERSION_CHECK: 1 + # RAISE_DEPRECATIONS_RUNTIME_ERRORS: 1 + # SALT_TRANSPORT: ${{ matrix.transport }} + #run: | + # tools container create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test-pkg run: | - tools container create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test-pkg + /usr/bin/docker create --name ${{ github.run_id }}_salt-test-pkg --workdir /__w/salt/salt --privileged -e "HOME=/github/home" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work":"/__w" -v "/home/runner/work/_temp":"/__w/_temp" -v "/home/runner/work/_actions":"/__w/_actions" -v "/opt/hostedtoolcache":"/__t" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" --entrypoint "/usr/lib/systemd/systemd" ${{ matrix.container }} --systemd --unit rescue.target- - name: "Start container ${{ matrix.container }}" run: | From c59bd42e60a042af8107df00dcde5e6f78cd846f Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Tue, 11 Feb 2025 17:16:34 -0700 Subject: [PATCH 018/101] Fix environment variables when using docker exec --- .github/workflows/test-packages-action.yml | 66 +++++++++++----------- 1 file changed, 32 insertions(+), 34 deletions(-) diff --git a/.github/workflows/test-packages-action.yml b/.github/workflows/test-packages-action.yml index e73bb5798de..fc15db38551 100644 --- a/.github/workflows/test-packages-action.yml +++ b/.github/workflows/test-packages-action.yml @@ -139,30 +139,28 @@ jobs: docker pull ${{ matrix.container }} - name: "Create container ${{ matrix.container }}" - #env: - # GITHUB_ACTIONS: true - # CI: true - # SKIP_REQUIREMENTS_INSTALL: 1 - # PRINT_TEST_SELECTION: 0 - # PRINT_TEST_PLAN_ONLY: 0 - # PRINT_SYSTEM_INFO: 0 - # RERUN_FAILURES: 1 - # GITHUB_ACTIONS_PIPELINE: 1 - # SKIP_INITIAL_ONEDIR_FAILURES: 1 - # SKIP_INITIAL_GH_ACTIONS_FAILURES: 1 - # SKIP_CODE_COVERAGE: ${{ inputs.skip-code-coverage && '1' || '0' }} - # CONVERAGE_CONTEXT: ${{ matrix.slug }} - # COLUMNS: 190 - # PIP_INDEX_URL: "{{ vars.PIP_INDEX_URL }}" - # PIP_TRUSTED_HOST: "${{ vars.PIP_TRUSTED_HOST }}" - # PIP_EXTRA_INDEX_URL: "${{ vars.PIP_EXTRA_INDEX_URL }}" - # PIP_DISABLE_PIP_VERSION_CHECK: 1 - # RAISE_DEPRECATIONS_RUNTIME_ERRORS: 1 - # SALT_TRANSPORT: ${{ matrix.transport }} - #run: | - # tools container create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test-pkg + env: + GITHUB_ACTIONS: true + CI: true + SKIP_REQUIREMENTS_INSTALL: 1 + PRINT_TEST_SELECTION: 0 + PRINT_TEST_PLAN_ONLY: 0 + PRINT_SYSTEM_INFO: 0 + RERUN_FAILURES: 1 + GITHUB_ACTIONS_PIPELINE: 1 + SKIP_INITIAL_ONEDIR_FAILURES: 1 + SKIP_INITIAL_GH_ACTIONS_FAILURES: 1 + SKIP_CODE_COVERAGE: ${{ inputs.skip-code-coverage && '1' || '0' }} + CONVERAGE_CONTEXT: ${{ matrix.slug }} + COLUMNS: 190 + PIP_INDEX_URL: "{{ vars.PIP_INDEX_URL }}" + PIP_TRUSTED_HOST: "${{ vars.PIP_TRUSTED_HOST }}" + PIP_EXTRA_INDEX_URL: "${{ vars.PIP_EXTRA_INDEX_URL }}" + PIP_DISABLE_PIP_VERSION_CHECK: 1 + RAISE_DEPRECATIONS_RUNTIME_ERRORS: 1 + SALT_TRANSPORT: ${{ matrix.transport }} run: | - /usr/bin/docker create --name ${{ github.run_id }}_salt-test-pkg --workdir /__w/salt/salt --privileged -e "HOME=/github/home" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work":"/__w" -v "/home/runner/work/_temp":"/__w/_temp" -v "/home/runner/work/_actions":"/__w/_actions" -v "/opt/hostedtoolcache":"/__t" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" --entrypoint "/usr/lib/systemd/systemd" ${{ matrix.container }} --systemd --unit rescue.target- + tools container create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test-pkg - name: "Start container ${{ matrix.container }}" run: | @@ -177,21 +175,21 @@ jobs: df -h || true - name: Show System Info - env: - SKIP_REQUIREMENTS_INSTALL: "1" - PRINT_SYSTEM_INFO_ONLY: "1" run: | - docker exec ${{ github.run_id }}_salt-test-pkg python3 -m nox --force-color -e ${{ inputs.nox-session }}-pkgs -- ${{ matrix.tests-chunk }} + docker exec \ + -e SKIP_REQUIREMENTS_INSTALL=1 \ + -e PRINT_SYSTEM_INFO_ONLY=1 \ + ${{ github.run_id }}_salt-test-pkg python3 -m nox --force-color -e ${{ inputs.nox-session }}-pkgs -- ${{ matrix.tests-chunk }} - name: Run Package Tests - env: - SKIP_REQUIREMENTS_INSTALL: "1" - RERUN_FAILURES: "1" - GITHUB_ACTIONS_PIPELINE: "1" - SKIP_INITIAL_GH_ACTIONS_FAILURES: "1" - COVERAGE_CONTEXT: ${{ matrix.slug }} run: | - /usr/bin/docker exec ${{ github.run_id }}_salt-test-pkg \ + docker exec \ + -e SKIP_REQUIREMENTS_INSTALL=1 \ + -e RERUN_FAILURES=1 \ + -e GITHUB_ACTIONS_PIPELINE=1 \ + -e SKIP_INITIAL_GH_ACTIONS_FAILURES=1 \ + -e COVERAGE_CONTEXT=${{ matrix.slug }} \ + ${{ github.run_id }}_salt-test-pkg \ python3 -m nox --force-color -e ${{ inputs.nox-session }}-pkgs -- ${{ matrix.tests-chunk }} \ ${{ matrix.version && format('--prev-version={0}', matrix.version) || ''}} From fe2eefccfbdbb60ed8b3f0c596b2978fce5be0e6 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Wed, 12 Feb 2025 02:35:45 -0700 Subject: [PATCH 019/101] remove pip env vars --- .github/workflows/test-packages-action.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/test-packages-action.yml b/.github/workflows/test-packages-action.yml index fc15db38551..b8bb5f8b682 100644 --- a/.github/workflows/test-packages-action.yml +++ b/.github/workflows/test-packages-action.yml @@ -153,9 +153,6 @@ jobs: SKIP_CODE_COVERAGE: ${{ inputs.skip-code-coverage && '1' || '0' }} CONVERAGE_CONTEXT: ${{ matrix.slug }} COLUMNS: 190 - PIP_INDEX_URL: "{{ vars.PIP_INDEX_URL }}" - PIP_TRUSTED_HOST: "${{ vars.PIP_TRUSTED_HOST }}" - PIP_EXTRA_INDEX_URL: "${{ vars.PIP_EXTRA_INDEX_URL }}" PIP_DISABLE_PIP_VERSION_CHECK: 1 RAISE_DEPRECATIONS_RUNTIME_ERRORS: 1 SALT_TRANSPORT: ${{ matrix.transport }} From 88a3dabf7bfc7e118773f238b9ecc2ea150173e0 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Wed, 12 Feb 2025 14:37:17 -0700 Subject: [PATCH 020/101] Try removing some environment variables --- .github/workflows/test-packages-action.yml | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/.github/workflows/test-packages-action.yml b/.github/workflows/test-packages-action.yml index b8bb5f8b682..8241a4630ed 100644 --- a/.github/workflows/test-packages-action.yml +++ b/.github/workflows/test-packages-action.yml @@ -139,25 +139,11 @@ jobs: docker pull ${{ matrix.container }} - name: "Create container ${{ matrix.container }}" - env: - GITHUB_ACTIONS: true - CI: true - SKIP_REQUIREMENTS_INSTALL: 1 - PRINT_TEST_SELECTION: 0 - PRINT_TEST_PLAN_ONLY: 0 - PRINT_SYSTEM_INFO: 0 - RERUN_FAILURES: 1 - GITHUB_ACTIONS_PIPELINE: 1 - SKIP_INITIAL_ONEDIR_FAILURES: 1 - SKIP_INITIAL_GH_ACTIONS_FAILURES: 1 - SKIP_CODE_COVERAGE: ${{ inputs.skip-code-coverage && '1' || '0' }} - CONVERAGE_CONTEXT: ${{ matrix.slug }} - COLUMNS: 190 - PIP_DISABLE_PIP_VERSION_CHECK: 1 - RAISE_DEPRECATIONS_RUNTIME_ERRORS: 1 - SALT_TRANSPORT: ${{ matrix.transport }} + #run: | + # tools container create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test-pkg run: | - tools container create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test-pkg + /usr/bin/docker create --name ${{ github.run_id }}_salt-test-pkg --workdir /__w/salt/salt --privileged -e "HOME=/github/home" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work":"/__w" -v "/home/runner/work/_temp":"/__w/_temp" -v "/home/runner/work/_actions":"/__w/_actions" -v "/opt/hostedtoolcache":"/__t" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" --entrypoint "/usr/lib/systemd/systemd" ${{ matrix.container }} --systemd --unit rescue.target + - name: "Start container ${{ matrix.container }}" run: | From 4725d274dcf03d0fdd2eea6d8bce091a5696fb12 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Mon, 17 Feb 2025 21:14:32 -0700 Subject: [PATCH 021/101] Remove environment variables --- .github/workflows/test-packages-action.yml | 10 +--------- tools/container.py | 2 -- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/.github/workflows/test-packages-action.yml b/.github/workflows/test-packages-action.yml index 8241a4630ed..ed41b1e787a 100644 --- a/.github/workflows/test-packages-action.yml +++ b/.github/workflows/test-packages-action.yml @@ -139,11 +139,8 @@ jobs: docker pull ${{ matrix.container }} - name: "Create container ${{ matrix.container }}" - #run: | - # tools container create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test-pkg run: | - /usr/bin/docker create --name ${{ github.run_id }}_salt-test-pkg --workdir /__w/salt/salt --privileged -e "HOME=/github/home" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work":"/__w" -v "/home/runner/work/_temp":"/__w/_temp" -v "/home/runner/work/_actions":"/__w/_actions" -v "/opt/hostedtoolcache":"/__t" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" --entrypoint "/usr/lib/systemd/systemd" ${{ matrix.container }} --systemd --unit rescue.target - + tools container create ${{ matrix.container }} --name ${{ github.run_id }}_salt-test-pkg - name: "Start container ${{ matrix.container }}" run: | @@ -167,11 +164,6 @@ jobs: - name: Run Package Tests run: | docker exec \ - -e SKIP_REQUIREMENTS_INSTALL=1 \ - -e RERUN_FAILURES=1 \ - -e GITHUB_ACTIONS_PIPELINE=1 \ - -e SKIP_INITIAL_GH_ACTIONS_FAILURES=1 \ - -e COVERAGE_CONTEXT=${{ matrix.slug }} \ ${{ github.run_id }}_salt-test-pkg \ python3 -m nox --force-color -e ${{ inputs.nox-session }}-pkgs -- ${{ matrix.tests-chunk }} \ ${{ matrix.version && format('--prev-version={0}', matrix.version) || ''}} diff --git a/tools/container.py b/tools/container.py index 537d49f2cd5..43c8c11dbf4 100644 --- a/tools/container.py +++ b/tools/container.py @@ -79,8 +79,6 @@ def create(ctx: Context, image: str, name: str = ""): "create", f"--name={name}", "--privileged", - # "--ulimit", - # "\"nofile=262144:262144\"", f"--workdir={workdir}", "-v", "/tmp/:/var/lib/docker", From 2dbbcb5ed18b8610aa21a1a0f3cda5b692f101ab Mon Sep 17 00:00:00 2001 From: David Murphy Date: Mon, 10 Feb 2025 16:18:56 -0700 Subject: [PATCH 022/101] Fix tech-debt for Git Pillar data with os.walk --- salt/utils/gitfs.py | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/salt/utils/gitfs.py b/salt/utils/gitfs.py index 5bcef99d9ac..f76757ad213 100644 --- a/salt/utils/gitfs.py +++ b/salt/utils/gitfs.py @@ -2798,8 +2798,77 @@ class GitBase: name = getattr(repo, "name", None) if not remotes or (repo.id, name) in remotes or name in remotes: try: + ## DGM # Find and place fetch_request file for all the other branches for this repo + ## DGM repo_work_hash = os.path.split(repo.get_salt_working_dir())[0] + ## DGM for branch in os.listdir(repo_work_hash): + ## DGM # Don't place fetch request in current branch being updated + ## DGM if branch == repo.get_cache_basename(): + ## DGM continue + ## DGM branch_salt_dir = salt.utils.path.join(repo_work_hash, branch) + ## DGM fetch_path = salt.utils.path.join( + ## DGM branch_salt_dir, "fetch_request" + ## DGM ) + ## DGM if os.path.isdir(branch_salt_dir): + ## DGM try: + ## DGM with salt.utils.files.fopen(fetch_path, "w"): + ## DGM pass + ## DGM except OSError as exc: # pylint: disable=broad-except + ## DGM log.error( + ## DGM "Failed to make fetch request: %s %s", + ## DGM fetch_path, + ## DGM exc, + ## DGM exc_info=True, + ## DGM ) + ## DGM else: + ## DGM log.error("Failed to make fetch request: %s", fetch_path) + # Find and place fetch_request file for all the other branches for this repo repo_work_hash = os.path.split(repo.get_salt_working_dir())[0] + print( + f"DGM class GitBase fetch_remotes, repo_work_hash '{repo_work_hash}', salt working dir '{repo.get_salt_working_dir()}'", + flush=True, + ) + + branches = [ + os.path.relpath(path, repo_work_hash) + for (path, subdirs, files) in os.walk(repo_work_hash) + if not subdirs + ] + print( + f"DGM class GitBase fetch_remotes, branches '{branches}' from repo_work_hash '{repo_work_hash}'", + flush=True, + ) + + ## DGM for branch in os.listdir(repo_work_hash): + for branch in os.listdir(branches): + # Don't place fetch request in current branch being updated + print( + f"DGM class GitBase fetch_remotes, for loop branch, branch '{branch}', repo get_cache_basename '{repo.get_cache_basename()}'", + flush=True, + ) + if branch == repo.get_cache_basename(): + continue + branch_salt_dir = salt.utils.path.join(repo_work_hash, branch) + fetch_path = salt.utils.path.join( + branch_salt_dir, "fetch_request" + ) + print( + f"DGM class GitBase fetch_remotes, for loop branch, branch_salt_dir '{branch_salt_dir}', fetch_path '{fetch_path}'", + flush=True, + ) + if os.path.isdir(branch_salt_dir): + try: + with salt.utils.files.fopen(fetch_path, "w"): + pass + except OSError as exc: # pylint: disable=broad-except + log.error( + "Failed to make fetch request: %s %s", + fetch_path, + exc, + exc_info=True, + ) + else: + log.error("Failed to make fetch request: %s", fetch_path) for branch in os.listdir(repo_work_hash): # Don't place fetch request in current branch being updated if branch == repo.get_cache_basename(): From e120c046170d03eba2a31bbd6e4c41c8d0a0c210 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Tue, 11 Feb 2025 13:58:45 -0700 Subject: [PATCH 023/101] Drop replacing slash in git branch name --- salt/utils/gitfs.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/salt/utils/gitfs.py b/salt/utils/gitfs.py index f76757ad213..22972635076 100644 --- a/salt/utils/gitfs.py +++ b/salt/utils/gitfs.py @@ -491,9 +491,10 @@ class GitProvider: self._cache_basename = "_" if self.id.startswith("__env__"): try: - self._cache_basename = self.get_checkout_target().replace( - "/", "-" - ) # replace '/' with '-' to not cause trouble with file-system + ## DGM self._cache_basename = self.get_checkout_target().replace( + ## DGM "/", "-" + ## DGM ) # replace '/' with '-' to not cause trouble with file-system + self._cache_basename = self.get_checkout_target() except AttributeError: log.critical( From 1d4c12ec3b61e717653556c3aa25f0acfd4ad167 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Fri, 14 Feb 2025 13:37:51 -0700 Subject: [PATCH 024/101] Allow slash '/' in git branch names and traverse git branches using os.walk --- changelog/67733.fixed.md | 1 + salt/utils/gitfs.py | 47 +--------------------------------------- 2 files changed, 2 insertions(+), 46 deletions(-) create mode 100644 changelog/67733.fixed.md diff --git a/changelog/67733.fixed.md b/changelog/67733.fixed.md new file mode 100644 index 00000000000..19d49f3f55d --- /dev/null +++ b/changelog/67733.fixed.md @@ -0,0 +1 @@ +Use os.walk to traverse git branches, and no longer replace slash '/' in git branch names diff --git a/salt/utils/gitfs.py b/salt/utils/gitfs.py index 22972635076..c9310b03d04 100644 --- a/salt/utils/gitfs.py +++ b/salt/utils/gitfs.py @@ -491,9 +491,6 @@ class GitProvider: self._cache_basename = "_" if self.id.startswith("__env__"): try: - ## DGM self._cache_basename = self.get_checkout_target().replace( - ## DGM "/", "-" - ## DGM ) # replace '/' with '-' to not cause trouble with file-system self._cache_basename = self.get_checkout_target() except AttributeError: @@ -2799,64 +2796,22 @@ class GitBase: name = getattr(repo, "name", None) if not remotes or (repo.id, name) in remotes or name in remotes: try: - ## DGM # Find and place fetch_request file for all the other branches for this repo - ## DGM repo_work_hash = os.path.split(repo.get_salt_working_dir())[0] - ## DGM for branch in os.listdir(repo_work_hash): - ## DGM # Don't place fetch request in current branch being updated - ## DGM if branch == repo.get_cache_basename(): - ## DGM continue - ## DGM branch_salt_dir = salt.utils.path.join(repo_work_hash, branch) - ## DGM fetch_path = salt.utils.path.join( - ## DGM branch_salt_dir, "fetch_request" - ## DGM ) - ## DGM if os.path.isdir(branch_salt_dir): - ## DGM try: - ## DGM with salt.utils.files.fopen(fetch_path, "w"): - ## DGM pass - ## DGM except OSError as exc: # pylint: disable=broad-except - ## DGM log.error( - ## DGM "Failed to make fetch request: %s %s", - ## DGM fetch_path, - ## DGM exc, - ## DGM exc_info=True, - ## DGM ) - ## DGM else: - ## DGM log.error("Failed to make fetch request: %s", fetch_path) - # Find and place fetch_request file for all the other branches for this repo repo_work_hash = os.path.split(repo.get_salt_working_dir())[0] - print( - f"DGM class GitBase fetch_remotes, repo_work_hash '{repo_work_hash}', salt working dir '{repo.get_salt_working_dir()}'", - flush=True, - ) - branches = [ os.path.relpath(path, repo_work_hash) for (path, subdirs, files) in os.walk(repo_work_hash) if not subdirs ] - print( - f"DGM class GitBase fetch_remotes, branches '{branches}' from repo_work_hash '{repo_work_hash}'", - flush=True, - ) - ## DGM for branch in os.listdir(repo_work_hash): - for branch in os.listdir(branches): + for branch in branches: # Don't place fetch request in current branch being updated - print( - f"DGM class GitBase fetch_remotes, for loop branch, branch '{branch}', repo get_cache_basename '{repo.get_cache_basename()}'", - flush=True, - ) if branch == repo.get_cache_basename(): continue branch_salt_dir = salt.utils.path.join(repo_work_hash, branch) fetch_path = salt.utils.path.join( branch_salt_dir, "fetch_request" ) - print( - f"DGM class GitBase fetch_remotes, for loop branch, branch_salt_dir '{branch_salt_dir}', fetch_path '{fetch_path}'", - flush=True, - ) if os.path.isdir(branch_salt_dir): try: with salt.utils.files.fopen(fetch_path, "w"): From 643c26f3515e1677944d4a5d8267768574b6453f Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Wed, 19 Feb 2025 14:22:50 -0700 Subject: [PATCH 025/101] Allow workflows to be more easily (and quickly) cancelled --- .github/workflows/ci.yml | 16 +++++++------- .github/workflows/nightly.yml | 14 ++++++------- .github/workflows/release.yml | 2 +- .github/workflows/scheduled.yml | 14 ++++++------- .github/workflows/staging.yml | 21 +++++++++---------- .github/workflows/templates/ci.yml.jinja | 14 ++++++------- .github/workflows/templates/layout.yml.jinja | 2 +- .github/workflows/templates/staging.yml.jinja | 7 +++---- .github/workflows/test-action.yml | 8 +++---- .github/workflows/test-packages-action.yml | 6 +++--- 10 files changed, 51 insertions(+), 53 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 41a16f568f9..0cedb6d86bc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -233,7 +233,7 @@ jobs: lint: name: Lint - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['lint'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['lint'] }} uses: ./.github/workflows/lint-action.yml needs: - prepare-workflow @@ -251,7 +251,7 @@ jobs: name: "Prepare Release: ${{ needs.prepare-workflow.outputs.salt-version }}" runs-on: - ubuntu-22.04 - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['prepare-release'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['prepare-release'] }} needs: - prepare-workflow steps: @@ -358,7 +358,7 @@ jobs: build-docs: name: Documentation - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-docs'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-docs'] }} needs: - prepare-workflow - build-source-tarball @@ -369,7 +369,7 @@ jobs: build-source-tarball: name: Build Source Tarball - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-source-tarball'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-source-tarball'] }} needs: - prepare-workflow - prepare-release @@ -400,7 +400,7 @@ jobs: build-deps-onedir: name: Build Onedir Dependencies - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-deps-onedir'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-deps-onedir'] }} needs: - prepare-workflow uses: ./.github/workflows/build-deps-onedir.yml @@ -414,7 +414,7 @@ jobs: build-salt-onedir: name: Build Salt Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-salt-onedir'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-salt-onedir'] }} needs: - prepare-workflow - build-deps-onedir @@ -499,7 +499,7 @@ jobs: combine-all-code-coverage: name: Combine Code Coverage - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['skip_code_coverage'] == false }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['skip_code_coverage'] == false }} runs-on: ubuntu-22.04 env: PIP_INDEX_URL: https://pypi.org/simple @@ -629,7 +629,7 @@ jobs: # This step is just so we can make github require this step, to pass checks # on a pull request instead of requiring all name: Set the ${{ github.workflow }} Pipeline Exit Status - if: always() + if: ${{ !cancelled() && always() }} runs-on: ubuntu-22.04 needs: - prepare-workflow diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 41a576b56ed..997c4aaab94 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -282,7 +282,7 @@ jobs: lint: name: Lint - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['lint'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['lint'] }} uses: ./.github/workflows/lint-action.yml needs: - prepare-workflow @@ -300,7 +300,7 @@ jobs: name: "Prepare Release: ${{ needs.prepare-workflow.outputs.salt-version }}" runs-on: - ubuntu-22.04 - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['prepare-release'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['prepare-release'] }} needs: - prepare-workflow steps: @@ -412,7 +412,7 @@ jobs: build-docs: name: Documentation - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-docs'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-docs'] }} needs: - prepare-workflow - build-source-tarball @@ -423,7 +423,7 @@ jobs: build-source-tarball: name: Build Source Tarball - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-source-tarball'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-source-tarball'] }} needs: - prepare-workflow - prepare-release @@ -454,7 +454,7 @@ jobs: build-deps-onedir: name: Build Onedir Dependencies - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-deps-onedir'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-deps-onedir'] }} needs: - prepare-workflow uses: ./.github/workflows/build-deps-onedir.yml @@ -468,7 +468,7 @@ jobs: build-salt-onedir: name: Build Salt Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-salt-onedir'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-salt-onedir'] }} needs: - prepare-workflow - build-deps-onedir @@ -578,7 +578,7 @@ jobs: # This step is just so we can make github require this step, to pass checks # on a pull request instead of requiring all name: Set the ${{ github.workflow }} Pipeline Exit Status - if: always() + if: ${{ !cancelled() && always() }} runs-on: ubuntu-22.04 environment: nightly needs: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 794ecb486db..e45acebda97 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -422,7 +422,7 @@ jobs: # This step is just so we can make github require this step, to pass checks # on a pull request instead of requiring all name: Set the ${{ github.workflow }} Pipeline Exit Status - if: always() + if: ${{ !cancelled() && always() }} runs-on: ubuntu-22.04 needs: - check-requirements diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index b3ece2fb1a7..5b22b3ea2e6 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -272,7 +272,7 @@ jobs: lint: name: Lint - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['lint'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['lint'] }} uses: ./.github/workflows/lint-action.yml needs: - prepare-workflow @@ -290,7 +290,7 @@ jobs: name: "Prepare Release: ${{ needs.prepare-workflow.outputs.salt-version }}" runs-on: - ubuntu-22.04 - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['prepare-release'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['prepare-release'] }} needs: - prepare-workflow steps: @@ -397,7 +397,7 @@ jobs: build-docs: name: Documentation - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-docs'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-docs'] }} needs: - prepare-workflow - build-source-tarball @@ -408,7 +408,7 @@ jobs: build-source-tarball: name: Build Source Tarball - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-source-tarball'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-source-tarball'] }} needs: - prepare-workflow - prepare-release @@ -439,7 +439,7 @@ jobs: build-deps-onedir: name: Build Onedir Dependencies - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-deps-onedir'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-deps-onedir'] }} needs: - prepare-workflow uses: ./.github/workflows/build-deps-onedir.yml @@ -453,7 +453,7 @@ jobs: build-salt-onedir: name: Build Salt Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-salt-onedir'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-salt-onedir'] }} needs: - prepare-workflow - build-deps-onedir @@ -539,7 +539,7 @@ jobs: # This step is just so we can make github require this step, to pass checks # on a pull request instead of requiring all name: Set the ${{ github.workflow }} Pipeline Exit Status - if: always() + if: ${{ !cancelled() && always() }} runs-on: ubuntu-22.04 needs: - workflow-requirements diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 7c091d3a2c2..d46beeaa954 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -272,7 +272,7 @@ jobs: lint: name: Lint - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['lint'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['lint'] }} uses: ./.github/workflows/lint-action.yml needs: - prepare-workflow @@ -290,7 +290,7 @@ jobs: name: "Prepare Release: ${{ needs.prepare-workflow.outputs.salt-version }}" runs-on: - ubuntu-22.04 - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['prepare-release'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['prepare-release'] }} needs: - prepare-workflow steps: @@ -398,7 +398,7 @@ jobs: build-docs: name: Documentation - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-docs'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-docs'] }} needs: - prepare-workflow - build-source-tarball @@ -409,7 +409,7 @@ jobs: build-source-tarball: name: Build Source Tarball - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-source-tarball'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-source-tarball'] }} needs: - prepare-workflow - prepare-release @@ -440,7 +440,7 @@ jobs: build-deps-onedir: name: Build Onedir Dependencies - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-deps-onedir'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-deps-onedir'] }} needs: - prepare-workflow uses: ./.github/workflows/build-deps-onedir.yml @@ -454,7 +454,7 @@ jobs: build-salt-onedir: name: Build Salt Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-salt-onedir'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-salt-onedir'] }} needs: - prepare-workflow - build-deps-onedir @@ -595,7 +595,7 @@ jobs: publish-pypi: name: Publish to PyPi(test) - if: ${{ inputs.skip-test-pypi-publish != true && github.event.repository.fork != true }} + if: ${{ !cancelled() && inputs.skip-test-pypi-publish != true && github.event.repository.fork != true }} needs: - prepare-workflow - upload-release-artifacts @@ -649,11 +649,10 @@ jobs: draft-release: name: Draft Github Release - if: | - always() && (needs.test.result == 'success' || needs.test.result == 'skipped') && + if: ${{ !cancelled() && (needs.test.result == 'success' || needs.test.result == 'skipped') && (needs.test-packages.result == 'success' || needs.test-packages.result == 'skipped') && needs.prepare-workflow.result == 'success' && needs.build-salt-onedir.result == 'success' && - needs.build-pkgs-onedir.result == 'success' && needs.pre-commit.result == 'success' + needs.build-pkgs-onedir.result == 'success' && needs.pre-commit.result == 'success' }} needs: - prepare-workflow - pre-commit @@ -674,7 +673,7 @@ jobs: # This step is just so we can make github require this step, to pass checks # on a pull request instead of requiring all name: Set the ${{ github.workflow }} Pipeline Exit Status - if: always() + if: ${{ !cancelled() && always() }} runs-on: ubuntu-22.04 needs: - check-requirements diff --git a/.github/workflows/templates/ci.yml.jinja b/.github/workflows/templates/ci.yml.jinja index 525b4eb6f89..f252c5ba46b 100644 --- a/.github/workflows/templates/ci.yml.jinja +++ b/.github/workflows/templates/ci.yml.jinja @@ -29,7 +29,7 @@ lint: <%- do conclusion_needs.append('lint') %> name: Lint - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} uses: ./.github/workflows/lint-action.yml needs: - prepare-workflow @@ -58,7 +58,7 @@ name: "Prepare Release: ${{ needs.prepare-workflow.outputs.salt-version }}" runs-on: - ubuntu-22.04 - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} needs: - prepare-workflow steps: @@ -185,7 +185,7 @@ <{ job_name }>: <%- do conclusion_needs.append(job_name) %> name: Documentation - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} needs: - prepare-workflow - build-source-tarball @@ -202,7 +202,7 @@ <{ job_name }>: name: Build Source Tarball - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} needs: - prepare-workflow - prepare-release @@ -240,7 +240,7 @@ <{ job_name }>: <%- do conclusion_needs.append(job_name) %> name: Build Onedir Dependencies - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} needs: - prepare-workflow uses: ./.github/workflows/build-deps-onedir.yml @@ -260,7 +260,7 @@ <{ job_name }>: <%- do conclusion_needs.append(job_name) %> name: Build Salt Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} needs: - prepare-workflow - build-deps-onedir @@ -301,7 +301,7 @@ combine-all-code-coverage: <%- do conclusion_needs.append("combine-all-code-coverage") %> name: Combine Code Coverage - if: ${{ fromJSON(needs.prepare-workflow.outputs.config)['skip_code_coverage'] == false }} + if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['skip_code_coverage'] == false }} runs-on: ubuntu-22.04 env: PIP_INDEX_URL: https://pypi.org/simple diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index 23e8e69e51f..a85b0e64483 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -313,7 +313,7 @@ jobs: # This step is just so we can make github require this step, to pass checks # on a pull request instead of requiring all name: Set the ${{ github.workflow }} Pipeline Exit Status - if: always() + if: ${{ !cancelled() && always() }} runs-on: ubuntu-22.04 <%- if workflow_slug == "nightly" %> environment: <{ workflow_slug }> diff --git a/.github/workflows/templates/staging.yml.jinja b/.github/workflows/templates/staging.yml.jinja index c823da809da..2c0b9e0c446 100644 --- a/.github/workflows/templates/staging.yml.jinja +++ b/.github/workflows/templates/staging.yml.jinja @@ -116,7 +116,7 @@ on: publish-pypi: <%- do conclusion_needs.append('publish-pypi') %> name: Publish to PyPi(test) - if: ${{ inputs.skip-test-pypi-publish != true && github.event.repository.fork != true }} + if: ${{ !cancelled() && inputs.skip-test-pypi-publish != true && github.event.repository.fork != true }} needs: - prepare-workflow - upload-release-artifacts @@ -178,11 +178,10 @@ on: draft-release: name: Draft Github Release - if: | - always() && (needs.test.result == 'success' || needs.test.result == 'skipped') && + if: ${{ !cancelled() && (needs.test.result == 'success' || needs.test.result == 'skipped') && (needs.test-packages.result == 'success' || needs.test-packages.result == 'skipped') && needs.prepare-workflow.result == 'success' && needs.build-salt-onedir.result == 'success' && - needs.build-pkgs-onedir.result == 'success' && needs.pre-commit.result == 'success' + needs.build-pkgs-onedir.result == 'success' && needs.pre-commit.result == 'success' }} needs: - prepare-workflow - pre-commit diff --git a/.github/workflows/test-action.yml b/.github/workflows/test-action.yml index 499a43b2c89..7bef19bf189 100644 --- a/.github/workflows/test-action.yml +++ b/.github/workflows/test-action.yml @@ -71,7 +71,7 @@ jobs: test-linux: name: ${{ matrix.display_name }} ${{ matrix.tests-chunk }} ${{ matrix.transport }}${{ matrix.fips && '(fips)' || '' }}${{ matrix.test-group && ' ' || '' }}${{ matrix.test-group && matrix.test-group || '' }} runs-on: ${{ matrix.arch == 'x86_64' && 'ubuntu-24.04' || inputs.linux_arm_runner }} - if: toJSON(fromJSON(inputs.matrix)['linux-x86_64']) != '[]' + if: ${{ !cancelled() && toJSON(fromJSON(inputs.matrix)['linux-x86_64']) != '[]' }} # Full test runs. Each chunk should never take more than 2 hours. # Partial test runs(no chunk parallelization), 6 Hours timeout-minutes: ${{ fromJSON(inputs.testrun)['type'] == 'full' && inputs.default-timeout || 360 }} @@ -382,7 +382,7 @@ jobs: test-linux-arm64: name: ${{ matrix.display_name }} ${{ matrix.tests-chunk }} ${{ matrix.transport }}${{ matrix.fips && '(fips)' || '' }}${{ matrix.test-group && ' ' || '' }}${{ matrix.test-group && matrix.test-group || '' }} runs-on: ${{ matrix.arch == 'x86_64' && 'ubuntu-22.04' || inputs.linux_arm_runner }} - if: toJSON(fromJSON(inputs.matrix)['linux-arm64']) != '[]' + if: ${{ !cancelled() && toJSON(fromJSON(inputs.matrix)['linux-arm64']) != '[]' }} # Full test runs. Each chunk should never take more than 2 hours. # Partial test runs(no chunk parallelization), 6 Hours timeout-minutes: ${{ fromJSON(inputs.testrun)['type'] == 'full' && inputs.default-timeout || 360 }} @@ -701,7 +701,7 @@ jobs: runs-on: ${{ matrix.runner }} # Full test runs. Each chunk should never take more than 2 hours. # Partial test runs(no chunk parallelization), 6 Hours - if: toJSON(fromJSON(inputs.matrix)['macos']) != '[]' + if: ${{ !cancelled() && toJSON(fromJSON(inputs.matrix)['macos']) != '[]' }} timeout-minutes: ${{ fromJSON(inputs.testrun)['type'] == 'full' && inputs.default-timeout || 360 }} strategy: fail-fast: false @@ -978,7 +978,7 @@ jobs: test-windows: name: ${{ matrix.display_name }} ${{ matrix.tests-chunk }} ${{ matrix.transport }}${{ matrix.test-group && ' ' || '' }}${{ matrix.test-group && matrix.test-group || '' }} - if: toJSON(fromJSON(inputs.matrix)['windows']) != '[]' + if: ${{ !cancelled() && toJSON(fromJSON(inputs.matrix)['windows']) != '[]' }} runs-on: ${{ matrix.slug }} # Full test runs. Each chunk should never take more than 2 hours. # Partial test runs(no chunk parallelization), 6 Hours diff --git a/.github/workflows/test-packages-action.yml b/.github/workflows/test-packages-action.yml index ed41b1e787a..467f1a396c9 100644 --- a/.github/workflows/test-packages-action.yml +++ b/.github/workflows/test-packages-action.yml @@ -65,7 +65,7 @@ jobs: test-linux: name: ${{ matrix.display_name }} ${{ matrix.tests-chunk }} runs-on: ${{ matrix.arch == 'x86_64' && 'ubuntu-24.04' || inputs.linux_arm_runner }} - if: ${{ toJSON(fromJSON(inputs.matrix)['linux']) != '[]' }} + if: ${{ !cancelled() && toJSON(fromJSON(inputs.matrix)['linux']) != '[]' }} timeout-minutes: 120 # 2 Hours - More than this and something is wrong strategy: fail-fast: false @@ -192,7 +192,7 @@ jobs: test-macos: name: ${{ matrix.display_name }} ${{ matrix.tests-chunk }} runs-on: ${{ matrix.runner }} - if: ${{ toJSON(fromJSON(inputs.matrix)['macos']) != '[]' }} + if: ${{ !cancelled() && toJSON(fromJSON(inputs.matrix)['macos']) != '[]' }} timeout-minutes: 150 # 2 & 1/2 Hours - More than this and something is wrong (MacOS needs a little more time) strategy: fail-fast: false @@ -311,7 +311,7 @@ jobs: name: ${{ matrix.display_name }} ${{ matrix.tests-chunk }} runs-on: ${{ matrix.slug }} timeout-minutes: 120 # 2 Hours - More than this and something is wrong - if: ${{ toJSON(fromJSON(inputs.matrix)['windows']) != '[]' }} + if: ${{ !cancelled() && toJSON(fromJSON(inputs.matrix)['windows']) != '[]' }} strategy: fail-fast: false matrix: From 3b4094073e42e97bae98a0d4bb6fd01dc4060c09 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Thu, 20 Feb 2025 07:56:01 -0700 Subject: [PATCH 026/101] Corrected the issue number for changelog file --- changelog/{67733.fixed.md => 67722.fixed.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changelog/{67733.fixed.md => 67722.fixed.md} (100%) diff --git a/changelog/67733.fixed.md b/changelog/67722.fixed.md similarity index 100% rename from changelog/67733.fixed.md rename to changelog/67722.fixed.md From 17d2ceb2e8d3eb1872e9eaa4cf6bfb896a1b9d6a Mon Sep 17 00:00:00 2001 From: David Murphy Date: Tue, 11 Feb 2025 17:30:47 -0700 Subject: [PATCH 027/101] Removing support for Python 3.7, 3.8 nd 3.9 from pre-commit --- .pre-commit-config.yaml | 646 +------------- requirements/static/ci/py3.7/cloud.txt | 821 ------------------ requirements/static/ci/py3.7/docs.txt | 229 ----- .../static/ci/py3.7/freebsd-crypto.txt | 10 - requirements/static/ci/py3.7/freebsd.txt | 577 ------------ requirements/static/ci/py3.7/linux-crypto.txt | 10 - requirements/static/ci/py3.7/linux.txt | 618 ------------- .../static/ci/py3.7/windows-crypto.txt | 10 - requirements/static/ci/py3.7/windows.txt | 534 ------------ requirements/static/ci/py3.8/changelog.txt | 40 - requirements/static/ci/py3.8/cloud.txt | 800 ----------------- requirements/static/ci/py3.8/docs.txt | 219 ----- .../static/ci/py3.8/freebsd-crypto.txt | 10 - requirements/static/ci/py3.8/freebsd.txt | 555 ------------ requirements/static/ci/py3.8/lint.txt | 776 ----------------- requirements/static/ci/py3.8/linux-crypto.txt | 10 - requirements/static/ci/py3.8/linux.txt | 596 ------------- .../static/ci/py3.8/windows-crypto.txt | 10 - requirements/static/ci/py3.8/windows.txt | 512 ----------- requirements/static/ci/py3.9/changelog.txt | 40 - requirements/static/ci/py3.9/cloud.txt | 802 ----------------- .../static/ci/py3.9/darwin-crypto.txt | 10 - requirements/static/ci/py3.9/darwin.txt | 571 ------------ requirements/static/ci/py3.9/docs.txt | 227 ----- .../static/ci/py3.9/freebsd-crypto.txt | 10 - requirements/static/ci/py3.9/freebsd.txt | 557 ------------ requirements/static/ci/py3.9/lint.txt | 774 ----------------- requirements/static/ci/py3.9/linux-crypto.txt | 10 - requirements/static/ci/py3.9/linux.txt | 596 ------------- .../static/ci/py3.9/tools-virustotal.txt | 28 - requirements/static/ci/py3.9/tools.txt | 67 -- .../static/ci/py3.9/windows-crypto.txt | 10 - requirements/static/ci/py3.9/windows.txt | 513 ----------- requirements/static/pkg/py3.7/freebsd.txt | 116 --- requirements/static/pkg/py3.7/linux.txt | 116 --- requirements/static/pkg/py3.7/windows.txt | 147 ---- requirements/static/pkg/py3.8/freebsd.txt | 114 --- requirements/static/pkg/py3.8/linux.txt | 114 --- requirements/static/pkg/py3.8/windows.txt | 143 --- requirements/static/pkg/py3.9/darwin.txt | 132 --- requirements/static/pkg/py3.9/freebsd.txt | 116 --- requirements/static/pkg/py3.9/linux.txt | 116 --- requirements/static/pkg/py3.9/windows.txt | 143 --- 43 files changed, 3 insertions(+), 12452 deletions(-) delete mode 100644 requirements/static/ci/py3.7/cloud.txt delete mode 100644 requirements/static/ci/py3.7/docs.txt delete mode 100644 requirements/static/ci/py3.7/freebsd-crypto.txt delete mode 100644 requirements/static/ci/py3.7/freebsd.txt delete mode 100644 requirements/static/ci/py3.7/linux-crypto.txt delete mode 100644 requirements/static/ci/py3.7/linux.txt delete mode 100644 requirements/static/ci/py3.7/windows-crypto.txt delete mode 100644 requirements/static/ci/py3.7/windows.txt delete mode 100644 requirements/static/ci/py3.8/changelog.txt delete mode 100644 requirements/static/ci/py3.8/cloud.txt delete mode 100644 requirements/static/ci/py3.8/docs.txt delete mode 100644 requirements/static/ci/py3.8/freebsd-crypto.txt delete mode 100644 requirements/static/ci/py3.8/freebsd.txt delete mode 100644 requirements/static/ci/py3.8/lint.txt delete mode 100644 requirements/static/ci/py3.8/linux-crypto.txt delete mode 100644 requirements/static/ci/py3.8/linux.txt delete mode 100644 requirements/static/ci/py3.8/windows-crypto.txt delete mode 100644 requirements/static/ci/py3.8/windows.txt delete mode 100644 requirements/static/ci/py3.9/changelog.txt delete mode 100644 requirements/static/ci/py3.9/cloud.txt delete mode 100644 requirements/static/ci/py3.9/darwin-crypto.txt delete mode 100644 requirements/static/ci/py3.9/darwin.txt delete mode 100644 requirements/static/ci/py3.9/docs.txt delete mode 100644 requirements/static/ci/py3.9/freebsd-crypto.txt delete mode 100644 requirements/static/ci/py3.9/freebsd.txt delete mode 100644 requirements/static/ci/py3.9/lint.txt delete mode 100644 requirements/static/ci/py3.9/linux-crypto.txt delete mode 100644 requirements/static/ci/py3.9/linux.txt delete mode 100644 requirements/static/ci/py3.9/tools-virustotal.txt delete mode 100644 requirements/static/ci/py3.9/tools.txt delete mode 100644 requirements/static/ci/py3.9/windows-crypto.txt delete mode 100644 requirements/static/ci/py3.9/windows.txt delete mode 100644 requirements/static/pkg/py3.7/freebsd.txt delete mode 100644 requirements/static/pkg/py3.7/linux.txt delete mode 100644 requirements/static/pkg/py3.7/windows.txt delete mode 100644 requirements/static/pkg/py3.8/freebsd.txt delete mode 100644 requirements/static/pkg/py3.8/linux.txt delete mode 100644 requirements/static/pkg/py3.8/windows.txt delete mode 100644 requirements/static/pkg/py3.9/darwin.txt delete mode 100644 requirements/static/pkg/py3.9/freebsd.txt delete mode 100644 requirements/static/pkg/py3.9/linux.txt delete mode 100644 requirements/static/pkg/py3.9/windows.txt diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index dff763df412..76f319da7d3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -30,7 +30,7 @@ repos: # case-insensitive filesystem like MacOS HFS+ or Windows FAT. - id: check-json # Attempts to load all json files to verify syntax. - id: check-symlinks # Checks for symlinks which do not point to anything. - - id: debug-statements # Check for debugger imports and py37+ breakpoint() calls in python source. + - id: debug-statements # Check for debugger imports and breakpoint() calls in python source. exclude: > (?x)^( templates/.* @@ -145,50 +145,6 @@ repos: rev: "4.8" hooks: - - id: pip-tools-compile - alias: compile-pkg-linux-3.7-zmq-requirements - name: Linux Packaging Py3.7 ZeroMQ Requirements - files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(linux\.in|py3\.7/linux\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.7 - - --platform=linux - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --no-emit-index-url - - requirements/static/pkg/linux.in - - - id: pip-tools-compile - alias: compile-pkg-linux-3.8-zmq-requirements - name: Linux Packaging Py3.8 ZeroMQ Requirements - files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(linux\.in|py3\.8/linux\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.8 - - --platform=linux - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --no-emit-index-url - - requirements/static/pkg/linux.in - - - id: pip-tools-compile - alias: compile-pkg-linux-3.9-zmq-requirements - name: Linux Packaging Py3.9 ZeroMQ Requirements - files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(linux\.in|py3\.9/linux\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --platform=linux - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --no-emit-index-url - - requirements/static/pkg/linux.in - id: pip-tools-compile alias: compile-pkg-linux-3.10-zmq-requirements @@ -235,50 +191,6 @@ repos: - --no-emit-index-url - requirements/static/pkg/linux.in - - id: pip-tools-compile - alias: compile-pkg-freebsd-3.7-zmq-requirements - name: FreeBSD Packaging Py3.7 ZeroMQ Requirements - files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(freebsd\.in|py3\.7/freebsd\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.7 - - --platform=freebsd - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --no-emit-index-url - - requirements/static/pkg/freebsd.in - - - id: pip-tools-compile - alias: compile-pkg-freebsd-3.8-zmq-requirements - name: FreeBSD Packaging Py3.8 ZeroMQ Requirements - files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(freebsd\.in|py3\.8/freebsd\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.8 - - --platform=freebsd - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --no-emit-index-url - - requirements/static/pkg/freebsd.in - - - id: pip-tools-compile - alias: compile-pkg-freebsd-3.9-zmq-requirements - name: FreeBSD Packaging Py3.9 ZeroMQ Requirements - files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(freebsd\.in|py3\.9/freebsd\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --platform=freebsd - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --no-emit-index-url - - requirements/static/pkg/freebsd.in - id: pip-tools-compile alias: compile-pkg-freebsd-3.10-zmq-requirements @@ -325,20 +237,6 @@ repos: - --no-emit-index-url - requirements/static/pkg/freebsd.in - - id: pip-tools-compile - alias: compile-pkg-darwin-3.9-zmq-requirements - name: Darwin Packaging Py3.9 ZeroMQ Requirements - files: ^(requirements/((base|zeromq|crypto|darwin)\.txt|static/pkg/(darwin\.in|py3\.9/darwin\.txt)))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --platform=darwin - - --include=requirements/darwin.txt - - --no-emit-index-url - - requirements/static/pkg/darwin.in - - id: pip-tools-compile alias: compile-pkg-darwin-3.10-zmq-requirements name: Darwin Packaging Py3.10 ZeroMQ Requirements @@ -381,48 +279,6 @@ repos: - --no-emit-index-url - requirements/static/pkg/darwin.in - - id: pip-tools-compile - alias: compile-pkg-windows-3.7-zmq-requirements - name: Windows Packaging Py3.7 ZeroMQ Requirements - files: ^requirements/((base|zeromq|crypto|windows)\.txt|static/pkg/(windows\.in|py3\.7/windows\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.7 - - --platform=windows - - --include=requirements/windows.txt - - --no-emit-index-url - - requirements/static/pkg/windows.in - - - id: pip-tools-compile - alias: compile-pkg-windows-3.8-zmq-requirements - name: Windows Packaging Py3.8 ZeroMQ Requirements - files: ^requirements/((base|zeromq|crypto|windows)\.txt|static/pkg/(windows\.in|py3\.8/windows\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.8 - - --platform=windows - - --include=requirements/windows.txt - - --no-emit-index-url - - requirements/static/pkg/windows.in - - - id: pip-tools-compile - alias: compile-pkg-windows-3.9-zmq-requirements - name: Windows Packaging Py3.9 ZeroMQ Requirements - files: ^requirements/((base|zeromq|crypto|windows)\.txt|static/pkg/(windows\.in|py3\.9/windows\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --platform=windows - - --include=requirements/windows.txt - - --no-emit-index-url - - requirements/static/pkg/windows.in - - id: pip-tools-compile alias: compile-pkg-windows-3.10-zmq-requirements name: Windows Packaging Py3.10 ZeroMQ Requirements @@ -468,60 +324,6 @@ repos: # <---- Packaging Requirements ------------------------------------------------------------------------------------- # ----- CI Requirements -------------------------------------------------------------------------------------------> - - id: pip-tools-compile - alias: compile-ci-linux-3.7-zmq-requirements - name: Linux CI Py3.7 ZeroMQ Requirements - files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(linux\.in|common\.in)|pkg/py3\.7/linux\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.7 - - --platform=linux - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --include=requirements/pytest.txt - - --include=requirements/static/pkg/linux.in - - --include=requirements/static/ci/common.in - - --no-emit-index-url - - requirements/static/ci/linux.in - - - id: pip-tools-compile - alias: compile-ci-linux-3.8-zmq-requirements - name: Linux CI Py3.8 ZeroMQ Requirements - files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(linux\.in|common\.in)|py3\.8/linux\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.8 - - --platform=linux - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --include=requirements/pytest.txt - - --include=requirements/static/pkg/linux.in - - --include=requirements/static/ci/common.in - - --no-emit-index-url - - requirements/static/ci/linux.in - - - id: pip-tools-compile - alias: compile-ci-linux-3.9-zmq-requirements - name: Linux CI Py3.9 ZeroMQ Requirements - files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(linux\.in|common\.in)|py3\.9/linux\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --platform=linux - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --include=requirements/pytest.txt - - --include=requirements/static/pkg/linux.in - - --include=requirements/static/ci/common.in - - --no-emit-index-url - - requirements/static/ci/linux.in - - id: pip-tools-compile alias: compile-ci-linux-3.10-zmq-requirements name: Linux CI Py3.10 ZeroMQ Requirements @@ -576,48 +378,6 @@ repos: - --no-emit-index-url - requirements/static/ci/linux.in - - id: pip-tools-compile - alias: compile-ci-linux-crypto-3.7-requirements - name: Linux CI Py3.7 Crypto Requirements - files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.7/linux-crypto\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.7 - - --platform=linux - - --out-prefix=linux - - --no-emit-index-url - - requirements/static/ci/crypto.in - - - id: pip-tools-compile - alias: compile-ci-linux-crypto-3.8-requirements - name: Linux CI Py3.8 Crypto Requirements - files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.8/linux-crypto\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.8 - - --platform=linux - - --out-prefix=linux - - --no-emit-index-url - - requirements/static/ci/crypto.in - - - id: pip-tools-compile - alias: compile-ci-linux-crypto-3.9-requirements - name: Linux CI Py3.9 Crypto Requirements - files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.9/linux-crypto\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --platform=linux - - --out-prefix=linux - - --no-emit-index-url - - requirements/static/ci/crypto.in - - id: pip-tools-compile alias: compile-ci-linux-crypto-3.10-requirements name: Linux CI Py3.10 Crypto Requirements @@ -661,60 +421,6 @@ repos: - requirements/static/ci/crypto.in - - id: pip-tools-compile - alias: compile-ci-freebsd-3.7-zmq-requirements - name: FreeBSD CI Py3.7 ZeroMQ Requirements - files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(freebsd|common)\.in|pkg/py3\.7/freebsd\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.7 - - --platform=freebsd - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --include=requirements/pytest.txt - - --include=requirements/static/pkg/freebsd.in - - --include=requirements/static/ci/common.in - - --no-emit-index-url - - requirements/static/ci/freebsd.in - - - id: pip-tools-compile - alias: compile-ci-freebsd-3.8-zmq-requirements - name: FreeBSD CI Py3.8 ZeroMQ Requirements - files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(freebsd|common)\.in|py3\.8/freebsd\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.8 - - --platform=freebsd - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --include=requirements/pytest.txt - - --include=requirements/static/pkg/freebsd.in - - --include=requirements/static/ci/common.in - - --no-emit-index-url - - requirements/static/ci/freebsd.in - - - id: pip-tools-compile - alias: compile-ci-freebsd-3.9-zmq-requirements - name: FreeBSD CI Py3.9 ZeroMQ Requirements - files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(freebsd|common)\.in|py3\.9/freebsd\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --platform=freebsd - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --include=requirements/pytest.txt - - --include=requirements/static/pkg/freebsd.in - - --include=requirements/static/ci/common.in - - --no-emit-index-url - - requirements/static/ci/freebsd.in - - id: pip-tools-compile alias: compile-ci-freebsd-3.10-zmq-requirements name: FreeBSD CI Py3.10 ZeroMQ Requirements @@ -769,48 +475,6 @@ repos: - --no-emit-index-url - requirements/static/ci/freebsd.in - - id: pip-tools-compile - alias: compile-ci-freebsd-crypto-3.7-requirements - name: FreeBSD CI Py3.7 Crypto Requirements - files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.7/freebsd-crypto\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.7 - - --platform=freebsd - - --out-prefix=freebsd - - --no-emit-index-url - - requirements/static/ci/crypto.in - - - id: pip-tools-compile - alias: compile-ci-freebsd-crypto-3.8-requirements - name: FreeBSD CI Py3.8 Crypto Requirements - files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.8/freebsd-crypto\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.8 - - --platform=freebsd - - --out-prefix=freebsd - - --no-emit-index-url - - requirements/static/ci/crypto.in - - - id: pip-tools-compile - alias: compile-ci-freebsd-crypto-3.9-requirements - name: FreeBSD CI Py3.9 Crypto Requirements - files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.9/freebsd-crypto\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --platform=freebsd - - --out-prefix=freebsd - - --no-emit-index-url - - requirements/static/ci/crypto.in - - id: pip-tools-compile alias: compile-ci-freebsd-crypto-3.10-requirements name: FreeBSD CI Py3.10 Crypto Requirements @@ -854,23 +518,6 @@ repos: - --no-emit-index-url - requirements/static/ci/crypto.in - - id: pip-tools-compile - alias: compile-ci-darwin-3.9-zmq-requirements - name: Darwin CI Py3.9 ZeroMQ Requirements - files: ^(requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(darwin|common)\.in|py3\.9/darwin\.txt)))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --platform=darwin - - --include=requirements/darwin.txt - - --include=requirements/pytest.txt - - --include=requirements/static/pkg/darwin.in - - --include=requirements/static/ci/common.in - - --no-emit-index-url - - requirements/static/ci/darwin.in - - id: pip-tools-compile alias: compile-ci-darwin-3.10-zmq-requirements name: Darwin CI Py3.10 ZeroMQ Requirements @@ -922,20 +569,6 @@ repos: - --no-emit-index-url - requirements/static/ci/darwin.in - - id: pip-tools-compile - alias: compile-ci-darwin-crypto-3.9-requirements - name: Darwin CI Py3.9 Crypto Requirements - files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.9/darwin-crypto\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --platform=darwin - - --out-prefix=darwin - - --no-emit-index-url - - requirements/static/ci/crypto.in - - id: pip-tools-compile alias: compile-ci-darwin-crypto-3.10-requirements name: Darwin CI Py3.10 Crypto Requirements @@ -978,57 +611,6 @@ repos: - --no-emit-index-url - requirements/static/ci/crypto.in - - id: pip-tools-compile - alias: compile-ci-windows-3.7-zmq-requirements - name: Windows CI Py3.7 ZeroMQ Requirements - files: requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(windows|common)\.in|py3\.7/windows\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.7 - - --platform=windows - - --include=requirements/windows.txt - - --include=requirements/pytest.txt - - --include=requirements/static/pkg/windows.in - - --include=requirements/static/ci/common.in - - --no-emit-index-url - - requirements/static/ci/windows.in - - - id: pip-tools-compile - alias: compile-ci-windows-3.8-zmq-requirements - name: Windows CI Py3.8 ZeroMQ Requirements - files: requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(windows|common)\.in|py3\.8/windows\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.8 - - --platform=windows - - --include=requirements/windows.txt - - --include=requirements/pytest.txt - - --include=requirements/static/pkg/windows.in - - --include=requirements/static/ci/common.in - - --no-emit-index-url - - requirements/static/ci/windows.in - - - id: pip-tools-compile - alias: compile-ci-windows-3.9-zmq-requirements - name: Windows CI Py3.9 ZeroMQ Requirements - files: requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(windows|common)\.in|py3\.9/windows\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --platform=windows - - --include=requirements/windows.txt - - --include=requirements/pytest.txt - - --include=requirements/static/pkg/windows.in - - --include=requirements/static/ci/common.in - - --no-emit-index-url - - requirements/static/ci/windows.in - - id: pip-tools-compile alias: compile-ci-windows-3.10-zmq-requirements name: Windows CI Py3.10 ZeroMQ Requirements @@ -1080,48 +662,6 @@ repos: - --no-emit-index-url - requirements/static/ci/windows.in - - id: pip-tools-compile - alias: compile-ci-windows-crypto-3.7-requirements - name: Windows CI Py3.7 Crypto Requirements - files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.7/windows-crypto\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.7 - - --platform=windows - - --out-prefix=windows - - --no-emit-index-url - - requirements/static/ci/crypto.in - - - id: pip-tools-compile - alias: compile-ci-windows-crypto-3.8-requirements - name: Windows CI Py3.8 Crypto Requirements - files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.8/windows-crypto\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.8 - - --platform=windows - - --out-prefix=windows - - --no-emit-index-url - - requirements/static/ci/crypto.in - - - id: pip-tools-compile - alias: compile-ci-windows-crypto-3.9-requirements - name: Windows CI Py3.9 Crypto Requirements - files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.9/windows-crypto\.txt))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --platform=windows - - --out-prefix=windows - - --no-emit-index-url - - requirements/static/ci/crypto.in - - id: pip-tools-compile alias: compile-ci-windows-crypto-3.10-requirements name: Windows CI Py3.10 Crypto Requirements @@ -1168,57 +708,6 @@ repos: # ----- Cloud CI Requirements -------------------------------------------------------------------------------------> - - id: pip-tools-compile - alias: compile-ci-cloud-3.7-requirements - name: Cloud CI Py3.7 Requirements - files: ^requirements/((base|zeromq|pytest)\.txt|static/(pkg/linux\.in|ci/((cloud|common)\.in|py3\.7/cloud\.txt)))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.7 - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --include=requirements/pytest.txt - - --include=requirements/static/pkg/linux.in - - --include=requirements/static/ci/common.in - - --no-emit-index-url - - requirements/static/ci/cloud.in - - - id: pip-tools-compile - alias: compile-ci-cloud-3.8-requirements - name: Cloud CI Py3.8 Requirements - files: ^requirements/((base|zeromq|pytest)\.txt|static/(pkg/linux\.in|ci/((cloud|common)\.in|py3\.8/cloud\.txt)))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.8 - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --include=requirements/pytest.txt - - --include=requirements/static/pkg/linux.in - - --include=requirements/static/ci/common.in - - --no-emit-index-url - - requirements/static/ci/cloud.in - - - id: pip-tools-compile - alias: compile-ci-cloud-3.9-requirements - name: Cloud CI Py3.9 Requirements - files: ^requirements/((base|zeromq|pytest)\.txt|static/(pkg/linux\.in|ci/((cloud|common)\.in|py3\.9/cloud\.txt)))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --include=requirements/pytest.txt - - --include=requirements/static/pkg/linux.in - - --include=requirements/static/ci/common.in - - --no-emit-index-url - - requirements/static/ci/cloud.in - - id: pip-tools-compile alias: compile-ci-cloud-3.10-requirements name: Cloud CI Py3.10 Requirements @@ -1272,51 +761,6 @@ repos: # <---- Cloud CI Requirements -------------------------------------------------------------------------------------- # ----- Doc CI Requirements ---------------------------------------------------------------------------------------> - - id: pip-tools-compile - alias: compile-doc-requirements - name: Docs CI Py3.7 Requirements - files: ^requirements/((base|zeromq|pytest)\.txt|static/ci/(docs|common|linux)\.in|static/pkg/linux\.in|static/pkg/.*/linux\.txt)$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.7 - - --platform=linux - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --no-emit-index-url - - requirements/static/ci/docs.in - - - id: pip-tools-compile - alias: compile-doc-requirements - name: Docs CI Py3.8 Requirements - files: ^requirements/((base|zeromq|pytest)\.txt|static/ci/(docs|common|linux)\.in|static/pkg/linux\.in|static/pkg/.*/linux\.txt)$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.8 - - --platform=linux - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --no-emit-index-url - - requirements/static/ci/docs.in - - - id: pip-tools-compile - alias: compile-doc-requirements - name: Docs CI Py3.9 Requirements - files: ^requirements/((base|zeromq|pytest)\.txt|static/ci/(docs|common|linux)\.in|static/pkg/linux\.in|static/pkg/.*/linux\.txt)$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --platform=linux - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --no-emit-index-url - - requirements/static/ci/docs.in - - id: pip-tools-compile alias: compile-doc-requirements name: Docs CI Py3.10 Requirements @@ -1366,42 +810,6 @@ repos: # ----- Lint CI Requirements --------------------------------------------------------------------------------------> - - id: pip-tools-compile - alias: compile-ci-lint-3.8-requirements - name: Lint CI Py3.8 Requirements - files: ^requirements/((base|zeromq)\.txt|static/(pkg/linux\.in|ci/(linux\.in|common\.in|lint\.in|py3\.8/linux\.txt)))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.8 - - --platform=linux - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --include=requirements/static/pkg/linux.in - - --include=requirements/static/ci/linux.in - - --include=requirements/static/ci/common.in - - --no-emit-index-url - - requirements/static/ci/lint.in - - - id: pip-tools-compile - alias: compile-ci-lint-3.9-requirements - name: Lint CI Py3.9 Requirements - files: ^requirements/((base|zeromq)\.txt|static/(pkg/linux\.in|ci/(linux\.in|common\.in|lint\.in|py3\.9/linux\.txt)))$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --platform=linux - - --include=requirements/base.txt - - --include=requirements/zeromq.txt - - --include=requirements/static/pkg/linux.in - - --include=requirements/static/ci/linux.in - - --include=requirements/static/ci/common.in - - --no-emit-index-url - - requirements/static/ci/lint.in - - id: pip-tools-compile alias: compile-ci-lint-3.10-requirements name: Lint CI Py3.10 Requirements @@ -1459,32 +867,6 @@ repos: # <---- Lint CI Requirements --------------------------------------------------------------------------------------- # ----- Changelog -------------------------------------------------------------------------------------------------> - - id: pip-tools-compile - alias: compile-ci-changelog-3.8-requirements - name: Changelog CI Py3.8 Requirements - files: ^requirements/static/ci/(changelog\.in|py3\.8/(changelog|linux)\.txt)$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.8 - - --platform=linux - - --no-emit-index-url - - requirements/static/ci/changelog.in - - - id: pip-tools-compile - alias: compile-ci-changelog-3.9-requirements - name: Changelog CI Py3.9 Requirements - files: ^requirements/static/ci/(changelog\.in|py3\.9/(changelog|linux)\.txt)$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --platform=linux - - --no-emit-index-url - - requirements/static/ci/changelog.in - - id: pip-tools-compile alias: compile-ci-changelog-3.10-requirements name: Changelog CI Py3.10 Requirements @@ -1526,18 +908,6 @@ repos: # <---- Changelog -------------------------------------------------------------------------------------------------- # ----- Tools ----------------------------------------------------------------------------------------------------> - - id: pip-tools-compile - alias: compile-ci-tools-3.9-requirements - name: Linux CI Py3.9 Tools Requirements - files: ^requirements/static/ci/(tools\.in|py3.9/(tools|linux)\.txt)$ - pass_filenames: false - args: - - -v - - --build-isolation - - --py-version=3.9 - - --no-emit-index-url - - requirements/static/ci/tools.in - - id: pip-tools-compile alias: compile-ci-tools-3.10-requirements name: Linux CI Py3.10 Tools Requirements @@ -1574,16 +944,6 @@ repos: - --no-emit-index-url - requirements/static/ci/tools.in - - id: pip-tools-compile - alias: compile-ci-tools-virustotal-3.9-requirements - name: Linux CI Py3.9 Tools virustotal Requirements - files: ^requirements/static/ci/(tools(-virustotal)?\.in|py3.9/(tools(-virustotal)?|linux)\.txt)$ - pass_filenames: false - args: - - -v - - --py-version=3.9 - - requirements/static/ci/tools-virustotal.in - - id: pip-tools-compile alias: compile-ci-tools-virustotal-3.10-requirements name: Linux CI Py3.10 Tools virustotal Requirements @@ -1620,8 +980,8 @@ repos: rev: v3.15.1 hooks: - id: pyupgrade - name: Upgrade code to Py3.7+ - args: [--py37-plus, --keep-mock] + name: Upgrade code to Py3.10+ + args: [--py310-plus, --keep-mock] exclude: > (?x)^( salt/client/ssh/ssh_py_shim.py diff --git a/requirements/static/ci/py3.7/cloud.txt b/requirements/static/ci/py3.7/cloud.txt deleted file mode 100644 index 9280c610e40..00000000000 --- a/requirements/static/ci/py3.7/cloud.txt +++ /dev/null @@ -1,821 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.7/cloud.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/cloud.in requirements/static/ci/common.in requirements/static/pkg/linux.in requirements/zeromq.txt -# -aiohttp==3.8.6 - # via - # -c requirements/static/ci/py3.7/linux.txt - # etcd3-py -aiosignal==1.2.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # aiohttp -apache-libcloud==2.5.0 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/cloud.in - # -r requirements/static/ci/common.in -asn1crypto==1.3.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # certvalidator - # oscrypto -async-timeout==4.0.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # aiohttp -asynctest==0.13.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # aiohttp -attrs==23.1.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # aiohttp - # jsonschema - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-system-statistics -backports.entry-points-selectable==1.1.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # virtualenv -bcrypt==4.1.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in - # paramiko -boto3==1.21.46 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in - # moto -boto==2.49.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -botocore==1.24.46 - # via - # -c requirements/static/ci/py3.7/linux.txt - # boto3 - # moto - # s3transfer -cachetools==4.2.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # google-auth -cassandra-driver==3.23.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # kubernetes - # requests -certvalidator==0.11.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # vcert -cffi==1.14.6 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in - # cryptography - # napalm - # pynacl -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # aiohttp - # requests -cheetah3==3.2.6.post2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -cheroot==8.5.2 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in - # -r requirements/static/pkg/linux.in -ciscoconfparse==1.5.19 - # via - # -c requirements/static/ci/py3.7/linux.txt - # napalm -click==7.1.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # geomet -clustershell==1.8.3 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -colorama==0.4.3 - # via - # -c requirements/static/ci/py3.7/linux.txt - # ciscoconfparse -contextvars==2.4 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # -r requirements/static/pkg/linux.in - # etcd3-py - # moto - # paramiko - # pyopenssl - # pyspnego - # requests-ntlm - # smbprotocol - # trustme - # vcert -distlib==0.3.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # virtualenv -distro==1.5.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # pytest-skip-markers -dnspython==1.16.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in - # ciscoconfparse - # python-etcd -docker==6.1.3 ; python_version < "3.8" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/pytest.txt -etcd3-py==0.1.6 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -exceptiongroup==1.0.4 - # via - # -c requirements/static/ci/py3.7/linux.txt - # pytest -filelock==3.0.12 - # via - # -c requirements/static/ci/py3.7/linux.txt - # virtualenv -flaky==3.7.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/pytest.txt -frozenlist==1.3.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # aiohttp - # aiosignal -future==0.18.3 - # via - # -c requirements/static/ci/py3.7/linux.txt - # napalm - # textfsm -genshi==0.7.5 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -geomet==0.1.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # cassandra-driver -gitdb==4.0.7 - # via - # -c requirements/static/ci/py3.7/linux.txt - # gitpython -gitpython==3.1.41 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -google-auth==2.1.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # kubernetes -idna==3.7 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # etcd3-py - # requests - # trustme - # yarl -immutables==0.15 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # contextvars -importlib-metadata==4.6.4 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/pkg/linux.in - # attrs - # backports.entry-points-selectable - # jsonschema - # mako - # moto - # pluggy - # pytest - # virtualenv -iniconfig==1.0.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # pytest -ipaddress==1.0.22 - # via - # -c requirements/static/ci/py3.7/linux.txt - # kubernetes -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # jaraco.collections -jaraco.collections==3.4.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # jaraco.collections -jinja2==3.1.3 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # junos-eznc - # moto - # napalm -jmespath==1.0.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # -r requirements/static/ci/common.in - # boto3 - # botocore -jsonschema==3.2.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in - # napalm -jxmlease==1.0.1 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -kazoo==2.6.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -keyring==5.7.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -kubernetes==3.0.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -libnacl==1.7.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -looseversion==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt -lxml==4.9.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # junos-eznc - # napalm - # ncclient -mako==1.2.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # jinja2 - # mako - # moto - # werkzeug -mock==5.1.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/pytest.txt -more-itertools==5.0.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/pytest.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -moto==3.0.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -msgpack==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # pytest-salt-factories -multidict==6.0.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # aiohttp - # yarl -napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -ncclient==0.6.4 - # via - # -c requirements/static/ci/py3.7/linux.txt - # junos-eznc -netaddr==0.7.19 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/cloud.in - # junos-eznc - # napalm - # pyeapi -netmiko==3.2.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # napalm -ntc-templates==1.4.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # junos-eznc -ntlm-auth==1.3.0 - # via requests-ntlm -oscrypto==1.2.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # certvalidator -packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # docker - # pytest -paramiko==3.4.0 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in - # junos-eznc - # napalm - # ncclient - # netmiko - # scp -passlib==1.7.4 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in - # ciscoconfparse -pathtools==0.1.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # watchdog -platformdirs==2.2.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # virtualenv -pluggy==0.13.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # pytest -portend==2.4 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # cherrypy -profitbricks==4.1.3 - # via -r requirements/static/ci/cloud.in -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pyasn1-modules==0.2.4 - # via - # -c requirements/static/ci/py3.7/linux.txt - # google-auth -pyasn1==0.4.8 - # via - # -c requirements/static/ci/py3.7/linux.txt - # pyasn1-modules - # rsa -pycparser==2.17 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/crypto.txt -pyeapi==0.8.3 - # via - # -c requirements/static/ci/py3.7/linux.txt - # napalm -pyfakefs==5.3.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/pytest.txt -pyinotify==0.9.6 ; sys_platform != "win32" and sys_platform != "darwin" and platform_system != "openbsd" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -pynacl==1.5.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in - # paramiko -pyopenssl==24.0.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/pkg/linux.in - # etcd3-py -pyparsing==3.0.9 - # via - # -c requirements/static/ci/py3.7/linux.txt - # junos-eznc -pypsexec==0.1.0 - # via -r requirements/static/ci/cloud.in -pyrsistent==0.17.3 - # via - # -c requirements/static/ci/py3.7/linux.txt - # jsonschema -pyserial==3.4 - # via - # -c requirements/static/ci/py3.7/linux.txt - # junos-eznc - # netmiko -pyspnego==0.8.0 - # via - # -r requirements/static/ci/cloud.in - # smbprotocol -pytest-custom-exit-code==0.3.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/pytest.txt -pytest-helpers-namespace==2021.4.29 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities -pytest-httpserver==1.0.6 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/pytest.txt -pytest-salt-factories==1.0.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/pytest.txt -pytest-shell-utilities==1.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/pytest.txt - # pytest-salt-factories -pytest-skip-markers==1.5.0 ; python_version < "3.8" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pytest-subtests==0.4.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/pytest.txt -pytest-system-statistics==1.0.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # pytest-salt-factories -pytest-timeout==2.3.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/pytest.txt -pytest==7.3.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/pytest.txt - # pytest-custom-exit-code - # pytest-helpers-namespace - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-subtests - # pytest-system-statistics - # pytest-timeout -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/pkg/linux.in - # botocore - # croniter - # kubernetes - # moto - # vcert -python-etcd==0.4.5 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -python-gnupg==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/pkg/linux.in -pytz==2022.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # croniter - # moto - # tempora -pyvmomi==6.7.1.2018.12 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -pywinrm==0.3.0 - # via -r requirements/static/ci/cloud.in -pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # clustershell - # junos-eznc - # kubernetes - # napalm - # pytest-salt-factories - # yamlordereddictloader -pyzmq==23.2.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/zeromq.txt - # pytest-salt-factories -requests-ntlm==1.1.0 - # via pywinrm -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # apache-libcloud - # docker - # etcd3-py - # kubernetes - # moto - # napalm - # profitbricks - # pyvmomi - # pywinrm - # requests-ntlm - # responses - # vcert -responses==0.10.6 - # via - # -c requirements/static/ci/py3.7/linux.txt - # moto -rfc3987==1.3.8 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -rpm-vercmp==0.1.2 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/pkg/linux.in -rsa==4.7.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # google-auth -s3transfer==0.5.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # boto3 -scp==0.13.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # junos-eznc - # napalm - # netmiko -semantic-version==2.9.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # etcd3-py -setproctitle==1.3.2 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/pkg/linux.in -six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # cassandra-driver - # cheroot - # etcd3-py - # genshi - # geomet - # jsonschema - # junos-eznc - # kazoo - # kubernetes - # more-itertools - # ncclient - # profitbricks - # pypsexec - # python-dateutil - # pyvmomi - # pywinrm - # responses - # textfsm - # transitions - # vcert - # virtualenv - # websocket-client -smbprotocol==1.10.1 - # via - # -r requirements/static/ci/cloud.in - # pypsexec -smmap==4.0.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # gitdb -sqlparse==0.4.4 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -strict-rfc3339==0.7 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -tempora==4.1.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # portend -terminal==0.4.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # ntc-templates -textfsm==1.1.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in - # napalm - # netmiko - # ntc-templates -timelib==0.2.5 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/pkg/linux.in -toml==0.10.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -tomli==2.0.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # pytest -transitions==0.8.9 - # via - # -c requirements/static/ci/py3.7/linux.txt - # junos-eznc -trustme==1.0.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/pytest.txt -typing-extensions==3.10.0.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # aiohttp - # async-timeout - # gitpython - # importlib-metadata - # pytest-shell-utilities - # pytest-system-statistics - # yarl -urllib3==1.26.18 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # botocore - # docker - # kubernetes - # python-etcd - # requests -vcert==0.7.4 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -virtualenv==20.7.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in - # pytest-salt-factories -watchdog==0.10.3 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -websocket-client==0.40.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # docker - # kubernetes -wempy==0.2.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/common.in -werkzeug==2.2.3 - # via - # -c requirements/static/ci/py3.7/linux.txt - # moto - # pytest-httpserver -xmltodict==0.12.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # moto - # pywinrm -yamlordereddictloader==0.4.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # junos-eznc -yarl==1.7.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # aiohttp -zc.lockfile==1.4 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -c requirements/static/ci/py3.7/linux.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.7/docs.txt b/requirements/static/ci/py3.7/docs.txt deleted file mode 100644 index b0ac8d78ed8..00000000000 --- a/requirements/static/ci/py3.7/docs.txt +++ /dev/null @@ -1,229 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.7/docs.txt requirements/base.txt requirements/static/ci/docs.in requirements/zeromq.txt -# -alabaster==0.7.12 - # via sphinx -babel==2.9.1 - # via sphinx -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # requests -cffi==1.14.6 - # via - # -c requirements/static/ci/py3.7/linux.txt - # cryptography -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # requests -cheroot==8.5.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/docs.in -contextvars==2.4 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt -distro==1.5.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt -docutils==0.16 - # via sphinx -idna==3.7 - # via - # -c requirements/static/ci/py3.7/linux.txt - # requests -imagesize==1.2.0 - # via sphinx -immutables==0.15 - # via - # -c requirements/static/ci/py3.7/linux.txt - # contextvars -importlib-metadata==4.6.4 - # via - # -c requirements/static/ci/py3.7/linux.txt - # sphinxcontrib-spelling -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # jaraco.collections -jaraco.collections==3.4.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # jaraco.collections -jinja2==3.1.3 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # myst-docutils - # sphinx -jmespath==1.0.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt -linkify-it-py==1.0.3 - # via myst-docutils -looseversion==1.0.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt -markdown-it-py==2.2.0 - # via - # mdit-py-plugins - # myst-docutils -markupsafe==2.1.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # jinja2 -mdit-py-plugins==0.3.3 - # via myst-docutils -mdurl==0.1.2 - # via markdown-it-py -more-itertools==5.0.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -msgpack==1.0.2 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt -myst-docutils[linkify]==0.18.1 - # via -r requirements/static/ci/docs.in -packaging==22.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # sphinx -portend==2.4 - # via - # -c requirements/static/ci/py3.7/linux.txt - # cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt -pycparser==2.17 - # via - # -c requirements/static/ci/py3.7/linux.txt - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/crypto.txt -pyenchant==3.2.2 - # via sphinxcontrib-spelling -pygments==2.17.2 - # via sphinx -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # croniter -pytz==2022.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # babel - # croniter - # tempora -pyyaml==6.0.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # myst-docutils -pyzmq==23.2.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/zeromq.txt -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/base.txt - # sphinx -six==1.16.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # cheroot - # more-itertools - # python-dateutil - # sphinxcontrib.httpdomain -snowballstemmer==2.1.0 - # via sphinx -sphinx==3.5.2 ; python_version < "3.9" - # via - # -r requirements/static/ci/docs.in - # sphinxcontrib-spelling - # sphinxcontrib.httpdomain -sphinxcontrib-applehelp==1.0.2 - # via sphinx -sphinxcontrib-devhelp==1.0.2 - # via sphinx -sphinxcontrib-htmlhelp==1.0.3 - # via sphinx -sphinxcontrib-jsmath==1.0.1 - # via sphinx -sphinxcontrib-qthelp==1.0.3 - # via sphinx -sphinxcontrib-serializinghtml==1.1.4 - # via sphinx -sphinxcontrib-spelling==7.7.0 - # via -r requirements/static/ci/docs.in -sphinxcontrib.httpdomain==1.8.1 - # via -r requirements/static/ci/docs.in -tempora==4.1.1 - # via - # -c requirements/static/ci/py3.7/linux.txt - # portend -typing-extensions==3.10.0.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # importlib-metadata - # markdown-it-py - # myst-docutils -uc-micro-py==1.0.1 - # via linkify-it-py -urllib3==1.26.18 - # via - # -c requirements/static/ci/py3.7/linux.txt - # requests -zc.lockfile==1.4 - # via - # -c requirements/static/ci/py3.7/linux.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/py3.7/linux.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.7/freebsd-crypto.txt b/requirements/static/ci/py3.7/freebsd-crypto.txt deleted file mode 100644 index c9753516b13..00000000000 --- a/requirements/static/ci/py3.7/freebsd-crypto.txt +++ /dev/null @@ -1,10 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.7/freebsd-crypto.txt requirements/static/ci/crypto.in -# -m2crypto==0.38.0 - # via -r requirements/static/ci/crypto.in -pycryptodome==3.19.1 - # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.7/freebsd.txt b/requirements/static/ci/py3.7/freebsd.txt deleted file mode 100644 index 394bc0b38b3..00000000000 --- a/requirements/static/ci/py3.7/freebsd.txt +++ /dev/null @@ -1,577 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.7/freebsd.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/freebsd.in requirements/static/pkg/freebsd.in requirements/zeromq.txt -# -aiohttp==3.8.6 - # via etcd3-py -aiosignal==1.2.0 - # via aiohttp -apache-libcloud==2.5.0 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -asn1crypto==1.3.0 - # via - # certvalidator - # oscrypto -async-timeout==4.0.2 - # via aiohttp -asynctest==0.13.0 - # via aiohttp -attrs==23.1.0 - # via - # aiohttp - # jsonschema - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-system-statistics -backports.entry-points-selectable==1.1.0 - # via virtualenv -bcrypt==4.1.2 - # via - # -r requirements/static/ci/common.in - # paramiko -boto3==1.21.46 - # via - # -r requirements/static/ci/common.in - # moto -boto==2.49.0 - # via -r requirements/static/ci/common.in -botocore==1.24.46 - # via - # boto3 - # moto - # s3transfer -cached-property==1.5.2 - # via pygit2 -cachetools==3.1.0 - # via google-auth -cassandra-driver==3.24.0 - # via -r requirements/static/ci/common.in -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/base.txt - # kubernetes - # requests -certvalidator==0.11.1 - # via vcert -cffi==1.14.6 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/static/ci/common.in - # cryptography - # napalm - # pygit2 - # pynacl -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # aiohttp - # requests -cheetah3==3.2.6.post2 - # via -r requirements/static/ci/common.in -cheroot==8.5.2 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/static/ci/common.in - # -r requirements/static/pkg/freebsd.in -ciscoconfparse==1.5.19 - # via napalm -click==7.1.2 - # via geomet -clustershell==1.8.3 - # via -r requirements/static/ci/common.in -colorama==0.4.3 - # via ciscoconfparse -contextvars==2.4 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/base.txt - # -r requirements/static/pkg/freebsd.in - # etcd3-py - # moto - # paramiko - # pyopenssl - # trustme - # vcert -distlib==0.3.2 - # via virtualenv -distro==1.5.0 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/base.txt - # -r requirements/static/pkg/freebsd.in - # pytest-skip-markers -dnspython==1.16.0 - # via - # -r requirements/static/ci/common.in - # ciscoconfparse - # python-etcd -docker==6.1.3 ; python_version < "3.8" - # via -r requirements/pytest.txt -etcd3-py==0.1.6 - # via -r requirements/static/ci/common.in -exceptiongroup==1.0.4 - # via pytest -filelock==3.0.12 - # via virtualenv -flaky==3.7.0 - # via -r requirements/pytest.txt -frozenlist==1.3.0 - # via - # aiohttp - # aiosignal -future==0.18.3 - # via - # napalm - # textfsm -genshi==0.7.5 - # via -r requirements/static/ci/common.in -geomet==0.2.1.post1 - # via cassandra-driver -gitdb==4.0.7 - # via gitpython -gitpython==3.1.41 - # via -r requirements/static/ci/common.in -google-auth==2.1.0 - # via kubernetes -hglib==2.6.1 - # via -r requirements/static/ci/freebsd.in -idna==3.7 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # etcd3-py - # requests - # trustme - # yarl -immutables==0.15 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # contextvars -importlib-metadata==4.6.4 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/static/pkg/freebsd.in - # attrs - # backports.entry-points-selectable - # jsonschema - # mako - # moto - # pluggy - # pytest - # virtualenv -iniconfig==1.0.1 - # via pytest -ipaddress==1.0.22 - # via kubernetes -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # jaraco.collections -jaraco.collections==3.4.0 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # jaraco.collections -jinja2==3.1.3 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/base.txt - # junos-eznc - # moto - # napalm -jmespath==1.0.1 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/base.txt - # -r requirements/static/ci/common.in - # boto3 - # botocore -jsonschema==3.2.0 - # via -r requirements/static/ci/common.in -junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" - # via - # -r requirements/static/ci/common.in - # napalm -jxmlease==1.0.1 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -kazoo==2.6.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via -r requirements/static/ci/common.in -keyring==5.7.1 - # via -r requirements/static/ci/common.in -kubernetes==3.0.0 - # via -r requirements/static/ci/common.in -libnacl==1.7.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via -r requirements/static/ci/common.in -looseversion==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/base.txt -lxml==4.9.1 - # via - # junos-eznc - # napalm - # ncclient -mako==1.2.2 - # via -r requirements/static/ci/common.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/base.txt - # jinja2 - # mako - # moto - # werkzeug -mercurial==6.0.1 - # via -r requirements/static/ci/freebsd.in -mock==5.1.0 - # via -r requirements/pytest.txt -more-itertools==5.0.0 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/pytest.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -moto==3.0.1 - # via -r requirements/static/ci/common.in -msgpack==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/base.txt - # pytest-salt-factories -multidict==6.0.2 - # via - # aiohttp - # yarl -napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" - # via -r requirements/static/ci/common.in -ncclient==0.6.4 - # via junos-eznc -netaddr==0.7.19 - # via - # junos-eznc - # napalm - # pyeapi -netmiko==3.2.0 - # via napalm -ntc-templates==1.4.0 - # via junos-eznc -oscrypto==1.2.0 - # via certvalidator -packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/base.txt - # docker - # pytest -paramiko==3.4.0 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -r requirements/static/ci/common.in - # junos-eznc - # napalm - # ncclient - # netmiko - # scp -passlib==1.7.4 - # via - # -r requirements/static/ci/common.in - # ciscoconfparse -pathspec==0.9.0 - # via yamllint -pathtools==0.1.2 - # via watchdog -platformdirs==2.2.0 - # via virtualenv -pluggy==0.13.0 - # via pytest -portend==2.4 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/base.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pyasn1-modules==0.2.4 - # via google-auth -pyasn1==0.4.8 - # via - # pyasn1-modules - # rsa -pycparser==2.17 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/crypto.txt -pyeapi==0.8.3 - # via napalm -pyfakefs==5.3.1 - # via -r requirements/pytest.txt -pygit2==1.10.1 - # via -r requirements/static/ci/freebsd.in -pyinotify==0.9.6 ; sys_platform != "win32" and sys_platform != "darwin" and platform_system != "openbsd" - # via -r requirements/static/ci/common.in -pynacl==1.5.0 - # via - # -r requirements/static/ci/common.in - # paramiko -pyopenssl==24.0.0 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/static/pkg/freebsd.in - # etcd3-py -pyparsing==3.0.9 - # via junos-eznc -pyrsistent==0.17.3 - # via jsonschema -pyserial==3.4 - # via - # junos-eznc - # netmiko -pytest-custom-exit-code==0.3.0 - # via -r requirements/pytest.txt -pytest-helpers-namespace==2021.4.29 - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities -pytest-httpserver==1.0.6 - # via -r requirements/pytest.txt -pytest-salt-factories==1.0.1 - # via -r requirements/pytest.txt -pytest-shell-utilities==1.8.0 ; python_version <= "3.9" - # via - # -r requirements/pytest.txt - # pytest-salt-factories -pytest-skip-markers==1.5.0 ; python_version < "3.8" - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pytest-subtests==0.4.0 - # via -r requirements/pytest.txt -pytest-system-statistics==1.0.2 - # via pytest-salt-factories -pytest-timeout==2.3.1 - # via -r requirements/pytest.txt -pytest==7.3.2 - # via - # -r requirements/pytest.txt - # pytest-custom-exit-code - # pytest-helpers-namespace - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-subtests - # pytest-system-statistics - # pytest-timeout -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/static/pkg/freebsd.in - # botocore - # croniter - # kubernetes - # moto - # vcert -python-etcd==0.4.5 - # via -r requirements/static/ci/common.in -python-gnupg==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/static/pkg/freebsd.in -pytz==2022.1 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # croniter - # moto - # tempora -pyvmomi==6.7.1.2018.12 - # via -r requirements/static/ci/common.in -pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/base.txt - # clustershell - # junos-eznc - # kubernetes - # napalm - # pytest-salt-factories - # yamllint - # yamlordereddictloader -pyzmq==23.2.0 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/zeromq.txt - # pytest-salt-factories -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/base.txt - # apache-libcloud - # docker - # etcd3-py - # kubernetes - # moto - # napalm - # pyvmomi - # responses - # vcert -responses==0.10.6 - # via moto -rfc3987==1.3.8 - # via -r requirements/static/ci/common.in -rsa==4.7.2 - # via google-auth -s3transfer==0.5.2 - # via boto3 -scp==0.13.2 - # via - # junos-eznc - # napalm - # netmiko -semantic-version==2.9.0 - # via etcd3-py -setproctitle==1.3.2 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/static/pkg/freebsd.in -six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # cassandra-driver - # cheroot - # etcd3-py - # genshi - # geomet - # jsonschema - # junos-eznc - # kazoo - # kubernetes - # more-itertools - # ncclient - # python-dateutil - # pyvmomi - # responses - # textfsm - # transitions - # vcert - # virtualenv - # websocket-client -smmap==4.0.0 - # via gitdb -sqlparse==0.4.4 - # via -r requirements/static/ci/common.in -strict-rfc3339==0.7 - # via -r requirements/static/ci/common.in -tempora==4.1.1 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # portend -terminal==0.4.0 - # via ntc-templates -textfsm==1.1.0 - # via - # -r requirements/static/ci/common.in - # napalm - # netmiko - # ntc-templates -timelib==0.2.5 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # -r requirements/static/pkg/freebsd.in -toml==0.10.2 - # via -r requirements/static/ci/common.in -tomli==2.0.1 - # via pytest -transitions==0.8.9 - # via junos-eznc -trustme==1.0.0 - # via -r requirements/pytest.txt -typing-extensions==3.10.0.0 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # aiohttp - # async-timeout - # gitpython - # importlib-metadata - # pytest-shell-utilities - # pytest-system-statistics - # yarl -urllib3==1.26.18 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # botocore - # docker - # kubernetes - # python-etcd - # requests -vcert==0.7.4 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -virtualenv==20.7.2 - # via - # -r requirements/static/ci/common.in - # pytest-salt-factories -watchdog==0.10.3 - # via -r requirements/static/ci/common.in -websocket-client==0.40.0 - # via - # docker - # kubernetes -wempy==0.2.1 - # via -r requirements/static/ci/common.in -werkzeug==2.2.3 - # via - # moto - # pytest-httpserver -xmltodict==0.12.0 - # via moto -yamllint==1.26.3 - # via -r requirements/static/ci/freebsd.in -yamlordereddictloader==0.4.0 - # via junos-eznc -yarl==1.7.2 - # via aiohttp -zc.lockfile==1.4 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.7/freebsd.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.7/linux-crypto.txt b/requirements/static/ci/py3.7/linux-crypto.txt deleted file mode 100644 index 6bf0d412e02..00000000000 --- a/requirements/static/ci/py3.7/linux-crypto.txt +++ /dev/null @@ -1,10 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.7/linux-crypto.txt requirements/static/ci/crypto.in -# -m2crypto==0.38.0 - # via -r requirements/static/ci/crypto.in -pycryptodome==3.19.1 - # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.7/linux.txt b/requirements/static/ci/py3.7/linux.txt deleted file mode 100644 index 53e6a0598ad..00000000000 --- a/requirements/static/ci/py3.7/linux.txt +++ /dev/null @@ -1,618 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.7/linux.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt -# -aiohttp==3.8.6 - # via etcd3-py -aiosignal==1.2.0 - # via aiohttp -apache-libcloud==2.5.0 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -apscheduler==3.6.3 - # via python-telegram-bot -asn1crypto==1.3.0 - # via - # certvalidator - # oscrypto -async-timeout==4.0.2 - # via aiohttp -asynctest==0.13.0 - # via aiohttp -attrs==23.1.0 - # via - # aiohttp - # jsonschema - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-system-statistics -backports.entry-points-selectable==1.1.0 - # via virtualenv -backports.zoneinfo==0.2.1 - # via tzlocal -bcrypt==4.1.2 - # via - # -r requirements/static/ci/common.in - # paramiko -boto3==1.21.46 - # via - # -r requirements/static/ci/common.in - # moto -boto==2.49.0 - # via -r requirements/static/ci/common.in -botocore==1.24.46 - # via - # boto3 - # moto - # s3transfer -cached-property==1.5.2 - # via pygit2 -cachetools==4.2.2 - # via - # google-auth - # python-telegram-bot -cassandra-driver==3.23.0 - # via -r requirements/static/ci/common.in -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/base.txt - # kubernetes - # python-telegram-bot - # requests -certvalidator==0.11.1 - # via vcert -cffi==1.14.6 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/static/ci/common.in - # cryptography - # napalm - # pygit2 - # pynacl -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # aiohttp - # requests -cheetah3==3.2.6.post2 - # via -r requirements/static/ci/common.in -cheroot==8.5.2 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/static/ci/common.in - # -r requirements/static/pkg/linux.in -ciscoconfparse==1.5.19 - # via napalm -click==7.1.1 - # via geomet -clustershell==1.8.3 - # via -r requirements/static/ci/common.in -colorama==0.4.3 - # via ciscoconfparse -contextvars==2.4 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/base.txt - # -r requirements/static/pkg/linux.in - # etcd3-py - # moto - # paramiko - # pyopenssl - # trustme - # vcert -distlib==0.3.2 - # via virtualenv -distro==1.5.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/base.txt - # pytest-skip-markers -dnspython==1.16.0 - # via - # -r requirements/static/ci/common.in - # ciscoconfparse - # python-etcd -docker==6.1.3 ; python_version < "3.8" - # via -r requirements/pytest.txt -etcd3-py==0.1.6 - # via -r requirements/static/ci/common.in -exceptiongroup==1.0.4 - # via pytest -filelock==3.0.12 - # via virtualenv -flaky==3.7.0 - # via -r requirements/pytest.txt -frozenlist==1.3.0 - # via - # aiohttp - # aiosignal -future==0.18.3 - # via - # napalm - # textfsm -genshi==0.7.5 - # via -r requirements/static/ci/common.in -geomet==0.1.2 - # via cassandra-driver -gitdb==4.0.7 - # via gitpython -gitpython==3.1.41 - # via -r requirements/static/ci/common.in -google-auth==2.1.0 - # via kubernetes -hglib==2.6.1 - # via -r requirements/static/ci/linux.in -idna==3.7 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # etcd3-py - # requests - # trustme - # yarl -immutables==0.15 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # contextvars -importlib-metadata==4.6.4 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/static/pkg/linux.in - # attrs - # backports.entry-points-selectable - # jsonschema - # mako - # moto - # pluggy - # pytest - # virtualenv -iniconfig==1.0.1 - # via pytest -ipaddress==1.0.22 - # via kubernetes -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # jaraco.collections -jaraco.collections==3.4.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # jaraco.collections -jinja2==3.1.3 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/base.txt - # junos-eznc - # moto - # napalm -jmespath==1.0.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/base.txt - # -r requirements/static/ci/common.in - # boto3 - # botocore -jsonschema==3.2.0 - # via -r requirements/static/ci/common.in -junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" - # via - # -r requirements/static/ci/common.in - # napalm -jxmlease==1.0.1 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -kazoo==2.6.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via -r requirements/static/ci/common.in -keyring==5.7.1 - # via -r requirements/static/ci/common.in -kubernetes==3.0.0 - # via -r requirements/static/ci/common.in -libnacl==1.7.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via -r requirements/static/ci/common.in -looseversion==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/base.txt -lxml==4.9.1 - # via - # junos-eznc - # napalm - # ncclient -mako==1.2.2 - # via -r requirements/static/ci/common.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/base.txt - # jinja2 - # mako - # moto - # werkzeug -mercurial==6.0.1 - # via -r requirements/static/ci/linux.in -mock==5.1.0 - # via -r requirements/pytest.txt -more-itertools==5.0.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/pytest.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -moto==3.0.1 - # via -r requirements/static/ci/common.in -msgpack==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/base.txt - # pytest-salt-factories -multidict==6.0.2 - # via - # aiohttp - # yarl -napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" - # via -r requirements/static/ci/common.in -ncclient==0.6.4 - # via junos-eznc -netaddr==0.7.19 - # via - # junos-eznc - # napalm - # pyeapi -netmiko==3.2.0 - # via napalm -ntc-templates==1.4.0 - # via junos-eznc -oscrypto==1.2.0 - # via certvalidator -packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/base.txt - # docker - # pytest -paramiko==3.4.0 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -r requirements/static/ci/common.in - # junos-eznc - # napalm - # ncclient - # netmiko - # scp -passlib==1.7.4 - # via - # -r requirements/static/ci/common.in - # ciscoconfparse -pathspec==0.9.0 - # via yamllint -pathtools==0.1.2 - # via watchdog -platformdirs==2.2.0 - # via virtualenv -pluggy==0.13.0 - # via pytest -portend==2.4 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/base.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pyasn1-modules==0.2.4 - # via google-auth -pyasn1==0.4.8 - # via - # pyasn1-modules - # rsa -pycparser==2.17 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/crypto.txt -pyeapi==0.8.3 - # via napalm -pyfakefs==5.3.1 - # via -r requirements/pytest.txt -pygit2==1.10.1 - # via -r requirements/static/ci/linux.in -pyiface==0.0.11 - # via -r requirements/static/ci/linux.in -pyinotify==0.9.6 ; sys_platform != "win32" and sys_platform != "darwin" and platform_system != "openbsd" - # via -r requirements/static/ci/common.in -pyjwt==2.4.0 - # via twilio -pymysql==1.1.1 - # via -r requirements/static/ci/linux.in -pynacl==1.5.0 - # via - # -r requirements/static/ci/common.in - # paramiko -pyopenssl==24.0.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/static/pkg/linux.in - # etcd3-py -pyparsing==3.0.9 - # via junos-eznc -pyrsistent==0.17.3 - # via jsonschema -pyserial==3.4 - # via - # junos-eznc - # netmiko -pytest-custom-exit-code==0.3.0 - # via -r requirements/pytest.txt -pytest-helpers-namespace==2021.4.29 - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities -pytest-httpserver==1.0.6 - # via -r requirements/pytest.txt -pytest-salt-factories==1.0.1 - # via -r requirements/pytest.txt -pytest-shell-utilities==1.8.0 ; python_version <= "3.9" - # via - # -r requirements/pytest.txt - # pytest-salt-factories -pytest-skip-markers==1.5.0 ; python_version < "3.8" - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pytest-subtests==0.4.0 - # via -r requirements/pytest.txt -pytest-system-statistics==1.0.2 - # via pytest-salt-factories -pytest-timeout==2.3.1 - # via -r requirements/pytest.txt -pytest==7.3.2 - # via - # -r requirements/pytest.txt - # pytest-custom-exit-code - # pytest-helpers-namespace - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-subtests - # pytest-system-statistics - # pytest-timeout -python-consul==1.1.0 - # via -r requirements/static/ci/linux.in -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/static/pkg/linux.in - # botocore - # croniter - # kubernetes - # moto - # vcert -python-etcd==0.4.5 - # via -r requirements/static/ci/common.in -python-gnupg==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/static/pkg/linux.in -python-telegram-bot==13.7 - # via -r requirements/static/ci/linux.in -pytz==2022.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # apscheduler - # croniter - # moto - # python-telegram-bot - # tempora - # twilio -pyvmomi==6.7.1.2018.12 - # via -r requirements/static/ci/common.in -pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/base.txt - # clustershell - # junos-eznc - # kubernetes - # napalm - # pytest-salt-factories - # yamllint - # yamlordereddictloader -pyzmq==23.2.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/zeromq.txt - # pytest-salt-factories -redis-py-cluster==2.1.3 - # via -r requirements/static/ci/linux.in -redis==3.5.3 - # via redis-py-cluster -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/base.txt - # apache-libcloud - # docker - # etcd3-py - # kubernetes - # moto - # napalm - # python-consul - # pyvmomi - # responses - # twilio - # vcert -responses==0.10.6 - # via moto -rfc3987==1.3.8 - # via -r requirements/static/ci/common.in -rpm-vercmp==0.1.2 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/static/pkg/linux.in -rsa==4.7.2 - # via google-auth -s3transfer==0.5.2 - # via boto3 -scp==0.13.2 - # via - # junos-eznc - # napalm - # netmiko -semantic-version==2.9.0 - # via etcd3-py -setproctitle==1.3.2 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/static/pkg/linux.in -six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # apscheduler - # cassandra-driver - # cheroot - # etcd3-py - # genshi - # geomet - # jsonschema - # junos-eznc - # kazoo - # kubernetes - # more-itertools - # ncclient - # python-consul - # python-dateutil - # pyvmomi - # responses - # textfsm - # transitions - # vcert - # virtualenv - # websocket-client -slack-bolt==1.15.5 - # via -r requirements/static/ci/linux.in -slack-sdk==3.19.5 - # via slack-bolt -smmap==4.0.0 - # via gitdb -sqlparse==0.4.4 - # via -r requirements/static/ci/common.in -strict-rfc3339==0.7 - # via -r requirements/static/ci/common.in -tempora==4.1.1 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # portend -terminal==0.4.0 - # via ntc-templates -textfsm==1.1.0 - # via - # -r requirements/static/ci/common.in - # napalm - # netmiko - # ntc-templates -timelib==0.2.5 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # -r requirements/static/pkg/linux.in -toml==0.10.2 - # via -r requirements/static/ci/common.in -tomli==2.0.1 - # via pytest -tornado==6.1 - # via python-telegram-bot -transitions==0.8.9 - # via junos-eznc -trustme==1.0.0 - # via -r requirements/pytest.txt -twilio==7.9.2 - # via -r requirements/static/ci/linux.in -typing-extensions==3.10.0.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # aiohttp - # async-timeout - # gitpython - # importlib-metadata - # pytest-shell-utilities - # pytest-system-statistics - # yarl -tzlocal==3.0 - # via apscheduler -urllib3==1.26.18 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # botocore - # docker - # kubernetes - # python-etcd - # requests -vcert==0.7.4 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -virtualenv==20.7.2 - # via - # -r requirements/static/ci/common.in - # pytest-salt-factories -watchdog==0.10.3 - # via -r requirements/static/ci/common.in -websocket-client==0.40.0 - # via - # docker - # kubernetes -wempy==0.2.1 - # via -r requirements/static/ci/common.in -werkzeug==2.2.3 - # via - # moto - # pytest-httpserver -xmltodict==0.12.0 - # via moto -yamllint==1.26.3 - # via -r requirements/static/ci/linux.in -yamlordereddictloader==0.4.0 - # via junos-eznc -yarl==1.7.2 - # via aiohttp -zc.lockfile==1.4 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.7/linux.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.7/windows-crypto.txt b/requirements/static/ci/py3.7/windows-crypto.txt deleted file mode 100644 index 466f383ed04..00000000000 --- a/requirements/static/ci/py3.7/windows-crypto.txt +++ /dev/null @@ -1,10 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.7/windows-crypto.txt requirements/static/ci/crypto.in -# -m2crypto==0.38.0 - # via -r requirements/static/ci/crypto.in -pycryptodome==3.19.1 - # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.7/windows.txt b/requirements/static/ci/py3.7/windows.txt deleted file mode 100644 index 3be85a5d491..00000000000 --- a/requirements/static/ci/py3.7/windows.txt +++ /dev/null @@ -1,534 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.7/windows.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/windows.in requirements/static/pkg/windows.in requirements/windows.txt -# -aiohttp==3.8.6 - # via etcd3-py -aiosignal==1.2.0 - # via aiohttp -async-timeout==4.0.2 - # via aiohttp -asynctest==0.13.0 - # via aiohttp -attrs==23.1.0 - # via - # aiohttp - # jsonschema - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-system-statistics -backports.entry-points-selectable==1.1.0 - # via virtualenv -bcrypt==4.1.2 - # via -r requirements/static/ci/common.in -boto3==1.21.46 - # via - # -r requirements/static/ci/common.in - # moto -boto==2.49.0 - # via -r requirements/static/ci/common.in -botocore==1.24.46 - # via - # boto3 - # moto - # s3transfer -cached-property==1.5.2 - # via pygit2 -cachetools==3.1.0 - # via google-auth -cassandra-driver==3.23.0 - # via -r requirements/static/ci/common.in -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/base.txt - # kubernetes - # requests -cffi==1.14.6 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/static/ci/common.in - # -r requirements/windows.txt - # clr-loader - # cryptography - # pygit2 - # pynacl -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # aiohttp - # requests -cheetah3==3.2.6.post2 - # via -r requirements/static/ci/common.in -cheroot==8.5.2 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/static/ci/common.in - # -r requirements/windows.txt -click==7.1.2 - # via geomet -clr-loader==0.2.4 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # pythonnet -clustershell==1.8.3 - # via -r requirements/static/ci/common.in -colorama==0.4.1 - # via pytest -contextvars==2.4 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/base.txt - # -r requirements/windows.txt - # etcd3-py - # moto - # pyopenssl - # requests-ntlm - # trustme -distlib==0.3.2 - # via virtualenv -distro==1.5.0 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/base.txt - # pytest-skip-markers -dmidecode==0.9.0 - # via -r requirements/static/ci/windows.in -dnspython==1.16.0 - # via - # -r requirements/static/ci/common.in - # python-etcd -docker==6.1.3 ; python_version < "3.8" - # via -r requirements/pytest.txt -etcd3-py==0.1.6 - # via -r requirements/static/ci/common.in -exceptiongroup==1.0.4 - # via pytest -filelock==3.0.12 - # via virtualenv -flaky==3.7.0 - # via -r requirements/pytest.txt -frozenlist==1.3.0 - # via - # aiohttp - # aiosignal -future==1.0.0 - # via textfsm -genshi==0.7.5 - # via -r requirements/static/ci/common.in -geomet==0.1.2 - # via cassandra-driver -gitdb==4.0.7 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # gitpython -gitpython==3.1.41 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/static/ci/common.in - # -r requirements/windows.txt -google-auth==2.1.0 - # via kubernetes -idna==3.7 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # etcd3-py - # requests - # trustme - # yarl -immutables==0.15 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # contextvars -importlib-metadata==4.6.4 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt - # attrs - # backports.entry-points-selectable - # jsonschema - # mako - # moto - # pluggy - # pytest - # virtualenv -iniconfig==1.0.1 - # via pytest -ioloop==0.1a0 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt -ipaddress==1.0.22 - # via kubernetes -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # jaraco.collections -jaraco.collections==3.3.0 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # jaraco.collections -jinja2==3.1.3 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/base.txt - # moto -jmespath==1.0.1 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/base.txt - # -r requirements/static/ci/common.in - # boto3 - # botocore -jsonschema==3.2.0 - # via -r requirements/static/ci/common.in -keyring==5.7.1 - # via -r requirements/static/ci/common.in -kubernetes==3.0.0 - # via -r requirements/static/ci/common.in -looseversion==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/base.txt -lxml==4.9.1 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt -mako==1.2.2 - # via -r requirements/static/ci/common.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/base.txt - # jinja2 - # mako - # moto - # werkzeug -mock==5.1.0 - # via -r requirements/pytest.txt -more-itertools==8.2.0 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/pytest.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -moto==3.0.1 - # via -r requirements/static/ci/common.in -msgpack==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/base.txt - # pytest-salt-factories -multidict==6.0.2 - # via - # aiohttp - # yarl -ntlm-auth==1.5.0 - # via requests-ntlm -packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/base.txt - # docker - # pytest -passlib==1.7.4 - # via -r requirements/static/ci/common.in -patch==1.16 - # via -r requirements/static/ci/windows.in -pathspec==0.9.0 - # via yamllint -pathtools==0.1.2 - # via watchdog -platformdirs==2.2.0 - # via virtualenv -pluggy==0.13.0 - # via pytest -portend==2.6 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/base.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pyasn1-modules==0.2.4 - # via google-auth -pyasn1==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt - # pyasn1-modules - # rsa -pycparser==2.21 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/crypto.txt -pyfakefs==5.3.1 - # via -r requirements/pytest.txt -pygit2==1.10.1 - # via -r requirements/static/ci/windows.in -pymssql==2.3.0 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt -pynacl==1.5.0 - # via -r requirements/static/ci/common.in -pyopenssl==24.0.0 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt - # etcd3-py -pyrsistent==0.17.3 - # via jsonschema -pytest-custom-exit-code==0.3.0 - # via -r requirements/pytest.txt -pytest-helpers-namespace==2021.4.29 - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities -pytest-httpserver==1.0.6 - # via -r requirements/pytest.txt -pytest-salt-factories==1.0.1 - # via -r requirements/pytest.txt -pytest-shell-utilities==1.8.0 ; python_version <= "3.9" - # via - # -r requirements/pytest.txt - # pytest-salt-factories -pytest-skip-markers==1.5.0 ; python_version < "3.8" - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pytest-subtests==0.4.0 - # via -r requirements/pytest.txt -pytest-system-statistics==1.0.2 - # via pytest-salt-factories -pytest-timeout==2.3.1 - # via -r requirements/pytest.txt -pytest==7.3.2 - # via - # -r requirements/pytest.txt - # pytest-custom-exit-code - # pytest-helpers-namespace - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-subtests - # pytest-system-statistics - # pytest-timeout -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt - # botocore - # kubernetes - # moto -python-etcd==0.4.5 - # via -r requirements/static/ci/common.in -python-gnupg==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt -pythonnet==3.0.1 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt -pytz==2022.1 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # moto - # tempora -pyvmomi==6.7.1.2018.12 - # via -r requirements/static/ci/common.in -pywin32==305 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt - # cherrypy - # docker - # pytest-skip-markers - # wmi -pywinrm==0.4.1 - # via -r requirements/static/ci/windows.in -pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/base.txt - # clustershell - # kubernetes - # pytest-salt-factories - # yamllint -pyzmq==25.0.2 ; sys_platform == "win32" - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/zeromq.txt - # pytest-salt-factories -requests-ntlm==1.1.0 - # via pywinrm -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/base.txt - # -r requirements/windows.txt - # docker - # etcd3-py - # kubernetes - # moto - # pyvmomi - # pywinrm - # requests-ntlm - # responses -responses==0.10.6 - # via moto -rfc3987==1.3.8 - # via -r requirements/static/ci/common.in -rsa==4.7.2 - # via google-auth -s3transfer==0.5.2 - # via boto3 -sed==0.3.1 - # via -r requirements/static/ci/windows.in -semantic-version==2.9.0 - # via etcd3-py -setproctitle==1.3.2 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt -six==1.15.0 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # cassandra-driver - # cheroot - # etcd3-py - # genshi - # geomet - # jsonschema - # kubernetes - # python-dateutil - # pyvmomi - # pywinrm - # responses - # textfsm - # virtualenv - # websocket-client -smmap==4.0.0 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # gitdb -sqlparse==0.4.4 - # via -r requirements/static/ci/common.in -strict-rfc3339==0.7 - # via -r requirements/static/ci/common.in -tempora==4.1.1 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # portend -textfsm==1.1.3 - # via -r requirements/static/ci/common.in -timelib==0.2.5 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt -toml==0.10.2 - # via -r requirements/static/ci/common.in -tomli==2.0.1 - # via pytest -trustme==1.0.0 - # via -r requirements/pytest.txt -typing-extensions==4.4.0 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # aiohttp - # async-timeout - # gitpython - # importlib-metadata - # pytest-shell-utilities - # pytest-system-statistics - # yarl -urllib3==1.26.18 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt - # botocore - # docker - # kubernetes - # python-etcd - # requests -virtualenv==20.7.2 - # via - # -r requirements/static/ci/common.in - # pytest-salt-factories -watchdog==0.10.3 - # via -r requirements/static/ci/common.in -websocket-client==0.40.0 - # via - # docker - # kubernetes -wempy==0.2.1 - # via -r requirements/static/ci/common.in -werkzeug==2.2.3 - # via - # moto - # pytest-httpserver -wheel==0.38.4 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt -wmi==1.5.1 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt -xmltodict==0.13.0 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # -r requirements/windows.txt - # moto - # pywinrm -yamllint==1.26.3 - # via -r requirements/static/ci/windows.in -yarl==1.7.2 - # via aiohttp -zc.lockfile==2.0 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.7/windows.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.8/changelog.txt b/requirements/static/ci/py3.8/changelog.txt deleted file mode 100644 index a5eee51d5db..00000000000 --- a/requirements/static/ci/py3.8/changelog.txt +++ /dev/null @@ -1,40 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/changelog.txt requirements/static/ci/changelog.in -# -click-default-group==1.2.2 - # via towncrier -click==7.1.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # click-default-group - # towncrier -incremental==17.5.0 - # via towncrier -jinja2==3.1.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # towncrier -looseversion==1.0.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/changelog.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # jinja2 -packaging==22.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/changelog.in -tomli==2.0.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # towncrier -towncrier==22.12.0 - # via -r requirements/static/ci/changelog.in - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.8/cloud.txt b/requirements/static/ci/py3.8/cloud.txt deleted file mode 100644 index 9f18c56bb16..00000000000 --- a/requirements/static/ci/py3.8/cloud.txt +++ /dev/null @@ -1,800 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/cloud.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/cloud.in requirements/static/ci/common.in requirements/static/pkg/linux.in requirements/zeromq.txt -# -aiohttp==3.9.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # etcd3-py -aiosignal==1.2.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # aiohttp -apache-libcloud==2.5.0 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/cloud.in - # -r requirements/static/ci/common.in -asn1crypto==1.3.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # certvalidator - # oscrypto -async-timeout==4.0.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # aiohttp -attrs==23.1.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # aiohttp - # jsonschema - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-system-statistics -backports.entry-points-selectable==1.1.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # virtualenv -bcrypt==4.1.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # paramiko -boto3==1.21.46 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # moto -boto==2.49.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -botocore==1.24.46 - # via - # -c requirements/static/ci/py3.8/linux.txt - # boto3 - # moto - # s3transfer -cachetools==4.2.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # google-auth -cassandra-driver==3.23.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # kubernetes - # requests -certvalidator==0.11.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # vcert -cffi==1.14.6 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # cryptography - # napalm - # pynacl -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # requests -cheetah3==3.2.6.post2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -cheroot==8.5.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # -r requirements/static/pkg/linux.in -ciscoconfparse==1.5.19 - # via - # -c requirements/static/ci/py3.8/linux.txt - # napalm -click==7.1.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # geomet -clustershell==1.8.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -colorama==0.4.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # ciscoconfparse -contextvars==2.4 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # -r requirements/static/pkg/linux.in - # etcd3-py - # moto - # paramiko - # pyopenssl - # pyspnego - # requests-ntlm - # smbprotocol - # trustme - # vcert -distlib==0.3.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # virtualenv -distro==1.5.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # pytest-skip-markers -dnspython==2.6.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # ciscoconfparse - # python-etcd -docker==7.1.0 ; python_version >= "3.8" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/pytest.txt -etcd3-py==0.1.6 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -exceptiongroup==1.0.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # pytest -filelock==3.0.12 - # via - # -c requirements/static/ci/py3.8/linux.txt - # virtualenv -flaky==3.8.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/pytest.txt -frozenlist==1.3.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # aiohttp - # aiosignal -future==0.18.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # napalm - # textfsm -genshi==0.7.5 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -geomet==0.1.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # cassandra-driver -gitdb==4.0.7 - # via - # -c requirements/static/ci/py3.8/linux.txt - # gitpython -gitpython==3.1.41 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -google-auth==2.1.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # kubernetes -idna==3.7 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # etcd3-py - # requests - # trustme - # yarl -immutables==0.15 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # contextvars -importlib-metadata==4.6.4 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/pkg/linux.in -iniconfig==1.0.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # pytest -ipaddress==1.0.22 - # via - # -c requirements/static/ci/py3.8/linux.txt - # kubernetes -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # jaraco.collections -jaraco.collections==3.4.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # jaraco.collections -jinja2==3.1.4 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # junos-eznc - # moto - # napalm -jmespath==1.0.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # -r requirements/static/ci/common.in - # boto3 - # botocore -jsonschema==3.2.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # napalm -jxmlease==1.0.1 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -kazoo==2.6.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -keyring==5.7.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -kubernetes==3.0.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -libnacl==1.7.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -looseversion==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -lxml==4.9.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc - # napalm - # ncclient -mako==1.2.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # jinja2 - # mako - # moto - # werkzeug -mock==5.1.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/pytest.txt -more-itertools==5.0.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/pytest.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -moto==3.0.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -msgpack==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # pytest-salt-factories -multidict==6.0.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # aiohttp - # yarl -napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -ncclient==0.6.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc -netaddr==0.7.19 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/cloud.in - # junos-eznc - # napalm - # pyeapi -netmiko==3.2.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # napalm -ntc-templates==1.4.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc -ntlm-auth==1.3.0 - # via requests-ntlm -oscrypto==1.2.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # certvalidator -packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # pytest -paramiko==3.4.0 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # junos-eznc - # napalm - # ncclient - # netmiko - # scp -passlib==1.7.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # ciscoconfparse -pathtools==0.1.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # watchdog -platformdirs==2.2.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # virtualenv -pluggy==1.4.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # pytest -portend==2.4 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # cherrypy -profitbricks==4.1.3 - # via -r requirements/static/ci/cloud.in -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pyasn1-modules==0.2.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # google-auth -pyasn1==0.4.8 - # via - # -c requirements/static/ci/py3.8/linux.txt - # pyasn1-modules - # rsa -pycparser==2.17 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/crypto.txt -pyeapi==0.8.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # napalm -pyfakefs==5.3.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/pytest.txt -pyinotify==0.9.6 ; sys_platform != "win32" and sys_platform != "darwin" and platform_system != "openbsd" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -pynacl==1.5.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # paramiko -pyopenssl==24.0.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/pkg/linux.in - # etcd3-py -pyparsing==3.0.9 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc -pypsexec==0.1.0 - # via -r requirements/static/ci/cloud.in -pyrsistent==0.17.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # jsonschema -pyserial==3.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc - # netmiko -pyspnego==0.8.0 - # via - # -r requirements/static/ci/cloud.in - # smbprotocol -pytest-custom-exit-code==0.3.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/pytest.txt -pytest-helpers-namespace==2021.4.29 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities -pytest-httpserver==1.0.8 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/pytest.txt -pytest-salt-factories==1.0.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/pytest.txt -pytest-shell-utilities==1.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/pytest.txt - # pytest-salt-factories -pytest-skip-markers==1.5.2 ; python_version >= "3.8" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pytest-subtests==0.4.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/pytest.txt -pytest-system-statistics==1.0.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # pytest-salt-factories -pytest-timeout==2.3.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/pytest.txt -pytest==8.1.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/pytest.txt - # pytest-custom-exit-code - # pytest-helpers-namespace - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-subtests - # pytest-system-statistics - # pytest-timeout -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/pkg/linux.in - # botocore - # croniter - # kubernetes - # moto - # vcert -python-etcd==0.4.5 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -python-gnupg==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/pkg/linux.in -pytz==2022.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # croniter - # moto - # tempora -pyvmomi==6.7.1.2018.12 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -pywinrm==0.3.0 - # via -r requirements/static/ci/cloud.in -pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # clustershell - # junos-eznc - # kubernetes - # napalm - # pytest-salt-factories - # yamlordereddictloader -pyzmq==23.2.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/zeromq.txt - # pytest-salt-factories -requests-ntlm==1.1.0 - # via pywinrm -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # apache-libcloud - # docker - # etcd3-py - # kubernetes - # moto - # napalm - # profitbricks - # pyvmomi - # pywinrm - # requests-ntlm - # responses - # vcert -responses==0.10.6 - # via - # -c requirements/static/ci/py3.8/linux.txt - # moto -rfc3987==1.3.8 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -rpm-vercmp==0.1.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/pkg/linux.in -rsa==4.7.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # google-auth -s3transfer==0.5.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # boto3 -scp==0.13.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc - # napalm - # netmiko -semantic-version==2.9.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # etcd3-py -setproctitle==1.3.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/pkg/linux.in -six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # cassandra-driver - # cheroot - # etcd3-py - # genshi - # geomet - # jsonschema - # junos-eznc - # kazoo - # kubernetes - # more-itertools - # ncclient - # profitbricks - # pypsexec - # python-dateutil - # pyvmomi - # pywinrm - # responses - # textfsm - # transitions - # vcert - # virtualenv - # websocket-client -smbprotocol==1.10.1 - # via - # -r requirements/static/ci/cloud.in - # pypsexec -smmap==4.0.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # gitdb -sqlparse==0.5.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -strict-rfc3339==0.7 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -tempora==4.1.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # portend -terminal==0.4.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # ntc-templates -textfsm==1.1.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # napalm - # netmiko - # ntc-templates -timelib==0.2.5 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/pkg/linux.in -toml==0.10.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -tomli==2.0.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # pytest -transitions==0.8.9 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc -trustme==1.1.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/pytest.txt -typing-extensions==4.8.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # pytest-shell-utilities - # pytest-system-statistics -urllib3==1.26.18 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # botocore - # docker - # kubernetes - # python-etcd - # requests -vcert==0.7.4 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -virtualenv==20.7.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # pytest-salt-factories -watchdog==0.10.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -websocket-client==0.40.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # kubernetes -wempy==0.2.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -werkzeug==3.0.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # moto - # pytest-httpserver -xmltodict==0.12.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # moto - # pywinrm -yamlordereddictloader==0.4.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc -yarl==1.7.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # aiohttp -zc.lockfile==1.4 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.8/docs.txt b/requirements/static/ci/py3.8/docs.txt deleted file mode 100644 index 7f440e0dc0f..00000000000 --- a/requirements/static/ci/py3.8/docs.txt +++ /dev/null @@ -1,219 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/docs.txt requirements/base.txt requirements/static/ci/docs.in requirements/zeromq.txt -# -alabaster==0.7.12 - # via sphinx -babel==2.9.1 - # via sphinx -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # requests -cffi==1.14.6 - # via - # -c requirements/static/ci/py3.8/linux.txt - # cryptography -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # requests -cheroot==8.5.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/docs.in -contextvars==2.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -distro==1.5.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -docutils==0.16 - # via sphinx -idna==3.7 - # via - # -c requirements/static/ci/py3.8/linux.txt - # requests -imagesize==1.2.0 - # via sphinx -immutables==0.15 - # via - # -c requirements/static/ci/py3.8/linux.txt - # contextvars -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # jaraco.collections -jaraco.collections==3.4.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # jaraco.collections -jinja2==3.1.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # myst-docutils - # sphinx -jmespath==1.0.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -linkify-it-py==1.0.3 - # via myst-docutils -looseversion==1.0.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -markdown-it-py==2.2.0 - # via - # mdit-py-plugins - # myst-docutils -markupsafe==2.1.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # jinja2 -mdit-py-plugins==0.3.3 - # via myst-docutils -mdurl==0.1.2 - # via markdown-it-py -more-itertools==5.0.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -msgpack==1.0.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -myst-docutils[linkify]==0.18.1 - # via -r requirements/static/ci/docs.in -packaging==22.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # sphinx -portend==2.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -pycparser==2.17 - # via - # -c requirements/static/ci/py3.8/linux.txt - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/crypto.txt -pyenchant==3.2.2 - # via sphinxcontrib-spelling -pygments==2.17.2 - # via sphinx -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # croniter -pytz==2022.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # babel - # croniter - # tempora -pyyaml==6.0.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # myst-docutils -pyzmq==23.2.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/zeromq.txt -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # sphinx -six==1.16.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # cheroot - # more-itertools - # python-dateutil - # sphinxcontrib.httpdomain -snowballstemmer==2.1.0 - # via sphinx -sphinx==3.5.2 ; python_version < "3.9" - # via - # -r requirements/static/ci/docs.in - # sphinxcontrib-spelling - # sphinxcontrib.httpdomain -sphinxcontrib-applehelp==1.0.2 - # via sphinx -sphinxcontrib-devhelp==1.0.2 - # via sphinx -sphinxcontrib-htmlhelp==1.0.3 - # via sphinx -sphinxcontrib-jsmath==1.0.1 - # via sphinx -sphinxcontrib-qthelp==1.0.3 - # via sphinx -sphinxcontrib-serializinghtml==1.1.4 - # via sphinx -sphinxcontrib-spelling==7.7.0 - # via -r requirements/static/ci/docs.in -sphinxcontrib.httpdomain==1.8.1 - # via -r requirements/static/ci/docs.in -tempora==4.1.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # portend -typing-extensions==4.8.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # myst-docutils -uc-micro-py==1.0.1 - # via linkify-it-py -urllib3==1.26.18 - # via - # -c requirements/static/ci/py3.8/linux.txt - # requests -zc.lockfile==1.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # cherrypy - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.8/freebsd-crypto.txt b/requirements/static/ci/py3.8/freebsd-crypto.txt deleted file mode 100644 index ce772a5d00b..00000000000 --- a/requirements/static/ci/py3.8/freebsd-crypto.txt +++ /dev/null @@ -1,10 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/freebsd-crypto.txt requirements/static/ci/crypto.in -# -m2crypto==0.38.0 - # via -r requirements/static/ci/crypto.in -pycryptodome==3.19.1 - # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.8/freebsd.txt b/requirements/static/ci/py3.8/freebsd.txt deleted file mode 100644 index e42ad37bd0f..00000000000 --- a/requirements/static/ci/py3.8/freebsd.txt +++ /dev/null @@ -1,555 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/freebsd.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/freebsd.in requirements/static/pkg/freebsd.in requirements/zeromq.txt -# -aiohttp==3.9.4 - # via etcd3-py -aiosignal==1.2.0 - # via aiohttp -apache-libcloud==2.5.0 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -asn1crypto==1.3.0 - # via - # certvalidator - # oscrypto -async-timeout==4.0.2 - # via aiohttp -attrs==23.1.0 - # via - # aiohttp - # jsonschema - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-system-statistics -backports.entry-points-selectable==1.1.0 - # via virtualenv -bcrypt==4.1.2 - # via - # -r requirements/static/ci/common.in - # paramiko -boto3==1.21.46 - # via - # -r requirements/static/ci/common.in - # moto -boto==2.49.0 - # via -r requirements/static/ci/common.in -botocore==1.24.46 - # via - # boto3 - # moto - # s3transfer -cachetools==3.1.0 - # via google-auth -cassandra-driver==3.24.0 - # via -r requirements/static/ci/common.in -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/base.txt - # kubernetes - # requests -certvalidator==0.11.1 - # via vcert -cffi==1.14.6 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/static/ci/common.in - # cryptography - # napalm - # pygit2 - # pynacl -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # requests -cheetah3==3.2.6.post2 - # via -r requirements/static/ci/common.in -cheroot==8.5.2 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/static/ci/common.in - # -r requirements/static/pkg/freebsd.in -ciscoconfparse==1.5.19 - # via napalm -click==7.1.2 - # via geomet -clustershell==1.8.3 - # via -r requirements/static/ci/common.in -colorama==0.4.3 - # via ciscoconfparse -contextvars==2.4 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/base.txt - # -r requirements/static/pkg/freebsd.in - # etcd3-py - # moto - # paramiko - # pyopenssl - # trustme - # vcert -distlib==0.3.2 - # via virtualenv -distro==1.5.0 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/base.txt - # -r requirements/static/pkg/freebsd.in - # pytest-skip-markers -dnspython==2.6.1 - # via - # -r requirements/static/ci/common.in - # ciscoconfparse - # python-etcd -docker==7.1.0 ; python_version >= "3.8" - # via -r requirements/pytest.txt -etcd3-py==0.1.6 - # via -r requirements/static/ci/common.in -exceptiongroup==1.0.4 - # via pytest -filelock==3.0.12 - # via virtualenv -flaky==3.8.1 - # via -r requirements/pytest.txt -frozenlist==1.3.0 - # via - # aiohttp - # aiosignal -future==0.18.3 - # via - # napalm - # textfsm -genshi==0.7.5 - # via -r requirements/static/ci/common.in -geomet==0.2.1.post1 - # via cassandra-driver -gitdb==4.0.7 - # via gitpython -gitpython==3.1.41 - # via -r requirements/static/ci/common.in -google-auth==2.1.0 - # via kubernetes -hglib==2.6.1 - # via -r requirements/static/ci/freebsd.in -idna==3.7 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # etcd3-py - # requests - # trustme - # yarl -immutables==0.15 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # contextvars -importlib-metadata==4.6.4 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/static/pkg/freebsd.in -iniconfig==1.0.1 - # via pytest -ipaddress==1.0.22 - # via kubernetes -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # jaraco.collections -jaraco.collections==3.4.0 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # jaraco.collections -jinja2==3.1.4 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/base.txt - # junos-eznc - # moto - # napalm -jmespath==1.0.1 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/base.txt - # -r requirements/static/ci/common.in - # boto3 - # botocore -jsonschema==3.2.0 - # via -r requirements/static/ci/common.in -junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" - # via - # -r requirements/static/ci/common.in - # napalm -jxmlease==1.0.1 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -kazoo==2.6.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via -r requirements/static/ci/common.in -keyring==5.7.1 - # via -r requirements/static/ci/common.in -kubernetes==3.0.0 - # via -r requirements/static/ci/common.in -libnacl==1.7.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via -r requirements/static/ci/common.in -looseversion==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/base.txt -lxml==4.9.1 - # via - # junos-eznc - # napalm - # ncclient -mako==1.2.2 - # via -r requirements/static/ci/common.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/base.txt - # jinja2 - # mako - # moto - # werkzeug -mercurial==6.0.1 - # via -r requirements/static/ci/freebsd.in -mock==5.1.0 - # via -r requirements/pytest.txt -more-itertools==5.0.0 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/pytest.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -moto==3.0.1 - # via -r requirements/static/ci/common.in -msgpack==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/base.txt - # pytest-salt-factories -multidict==6.0.2 - # via - # aiohttp - # yarl -napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" - # via -r requirements/static/ci/common.in -ncclient==0.6.4 - # via junos-eznc -netaddr==0.7.19 - # via - # junos-eznc - # napalm - # pyeapi -netmiko==3.2.0 - # via napalm -ntc-templates==1.4.1 - # via junos-eznc -oscrypto==1.2.0 - # via certvalidator -packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/base.txt - # pytest -paramiko==3.4.0 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -r requirements/static/ci/common.in - # junos-eznc - # napalm - # ncclient - # netmiko - # scp -passlib==1.7.4 - # via - # -r requirements/static/ci/common.in - # ciscoconfparse -pathspec==0.9.0 - # via yamllint -pathtools==0.1.2 - # via watchdog -platformdirs==2.2.0 - # via virtualenv -pluggy==1.4.0 - # via pytest -portend==2.4 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/base.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pyasn1-modules==0.2.4 - # via google-auth -pyasn1==0.4.8 - # via - # pyasn1-modules - # rsa -pycparser==2.17 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/crypto.txt -pyeapi==0.8.3 - # via napalm -pyfakefs==5.3.1 - # via -r requirements/pytest.txt -pygit2==1.13.1 - # via -r requirements/static/ci/freebsd.in -pyinotify==0.9.6 ; sys_platform != "win32" and sys_platform != "darwin" and platform_system != "openbsd" - # via -r requirements/static/ci/common.in -pynacl==1.5.0 - # via - # -r requirements/static/ci/common.in - # paramiko -pyopenssl==24.0.0 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/static/pkg/freebsd.in - # etcd3-py -pyparsing==3.0.9 - # via junos-eznc -pyrsistent==0.17.3 - # via jsonschema -pyserial==3.4 - # via - # junos-eznc - # netmiko -pytest-custom-exit-code==0.3.0 - # via -r requirements/pytest.txt -pytest-helpers-namespace==2021.4.29 - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities -pytest-httpserver==1.0.8 - # via -r requirements/pytest.txt -pytest-salt-factories==1.0.1 - # via -r requirements/pytest.txt -pytest-shell-utilities==1.8.0 ; python_version <= "3.9" - # via - # -r requirements/pytest.txt - # pytest-salt-factories -pytest-skip-markers==1.5.2 ; python_version >= "3.8" - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pytest-subtests==0.4.0 - # via -r requirements/pytest.txt -pytest-system-statistics==1.0.2 - # via pytest-salt-factories -pytest-timeout==2.3.1 - # via -r requirements/pytest.txt -pytest==8.1.1 - # via - # -r requirements/pytest.txt - # pytest-custom-exit-code - # pytest-helpers-namespace - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-subtests - # pytest-system-statistics - # pytest-timeout -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/static/pkg/freebsd.in - # botocore - # croniter - # kubernetes - # moto - # vcert -python-etcd==0.4.5 - # via -r requirements/static/ci/common.in -python-gnupg==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/static/pkg/freebsd.in -pytz==2022.1 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # croniter - # moto - # tempora -pyvmomi==6.7.1.2018.12 - # via -r requirements/static/ci/common.in -pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/base.txt - # clustershell - # junos-eznc - # kubernetes - # napalm - # pytest-salt-factories - # yamllint - # yamlordereddictloader -pyzmq==23.2.0 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/zeromq.txt - # pytest-salt-factories -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/base.txt - # apache-libcloud - # docker - # etcd3-py - # kubernetes - # moto - # napalm - # pyvmomi - # responses - # vcert -responses==0.10.6 - # via moto -rfc3987==1.3.8 - # via -r requirements/static/ci/common.in -rsa==4.7.2 - # via google-auth -s3transfer==0.5.2 - # via boto3 -scp==0.13.2 - # via - # junos-eznc - # napalm - # netmiko -semantic-version==2.9.0 - # via etcd3-py -setproctitle==1.3.2 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/static/pkg/freebsd.in -six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # cassandra-driver - # cheroot - # etcd3-py - # genshi - # geomet - # jsonschema - # junos-eznc - # kazoo - # kubernetes - # more-itertools - # ncclient - # python-dateutil - # pyvmomi - # responses - # textfsm - # transitions - # vcert - # virtualenv - # websocket-client -smmap==4.0.0 - # via gitdb -sqlparse==0.5.0 - # via -r requirements/static/ci/common.in -strict-rfc3339==0.7 - # via -r requirements/static/ci/common.in -tempora==4.1.1 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # portend -terminal==0.4.0 - # via ntc-templates -textfsm==1.1.0 - # via - # -r requirements/static/ci/common.in - # napalm - # netmiko - # ntc-templates -timelib==0.2.5 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # -r requirements/static/pkg/freebsd.in -toml==0.10.2 - # via -r requirements/static/ci/common.in -tomli==2.0.1 - # via pytest -transitions==0.8.9 - # via junos-eznc -trustme==1.1.0 - # via -r requirements/pytest.txt -typing-extensions==4.8.0 - # via - # pytest-shell-utilities - # pytest-system-statistics -urllib3==1.26.18 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # botocore - # docker - # kubernetes - # python-etcd - # requests -vcert==0.7.4 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -virtualenv==20.7.2 - # via - # -r requirements/static/ci/common.in - # pytest-salt-factories -watchdog==0.10.3 - # via -r requirements/static/ci/common.in -websocket-client==0.40.0 - # via kubernetes -wempy==0.2.1 - # via -r requirements/static/ci/common.in -werkzeug==3.0.3 - # via - # moto - # pytest-httpserver -xmltodict==0.12.0 - # via moto -yamllint==1.26.3 - # via -r requirements/static/ci/freebsd.in -yamlordereddictloader==0.4.0 - # via junos-eznc -yarl==1.7.2 - # via aiohttp -zc.lockfile==1.4 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.8/freebsd.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.8/lint.txt b/requirements/static/ci/py3.8/lint.txt deleted file mode 100644 index 7b6ffbbfde6..00000000000 --- a/requirements/static/ci/py3.8/lint.txt +++ /dev/null @@ -1,776 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/lint.txt requirements/base.txt requirements/static/ci/common.in requirements/static/ci/lint.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt -# -aiohttp==3.9.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # etcd3-py -aiosignal==1.2.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # aiohttp -apache-libcloud==2.5.0 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -apscheduler==3.6.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # python-telegram-bot -asn1crypto==1.3.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # certvalidator - # oscrypto -astroid==3.1.0 - # via pylint -async-timeout==4.0.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # aiohttp -attrs==23.1.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # aiohttp - # jsonschema -backports.entry-points-selectable==1.1.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # virtualenv -backports.zoneinfo==0.2.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # tzlocal -bcrypt==4.1.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # paramiko -boto3==1.21.46 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # moto -boto==2.49.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -botocore==1.24.46 - # via - # -c requirements/static/ci/py3.8/linux.txt - # boto3 - # moto - # s3transfer -cachetools==4.2.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # google-auth - # python-telegram-bot -cassandra-driver==3.23.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # kubernetes - # python-telegram-bot - # requests -certvalidator==0.11.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # vcert -cffi==1.14.6 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # cryptography - # napalm - # pygit2 - # pynacl -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # requests -cheetah3==3.2.6.post2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -cheroot==8.5.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # -r requirements/static/pkg/linux.in -ciscoconfparse==1.5.19 - # via - # -c requirements/static/ci/py3.8/linux.txt - # napalm -click==7.1.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # geomet -clustershell==1.8.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -colorama==0.4.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # ciscoconfparse -contextvars==2.4 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # -r requirements/static/pkg/linux.in - # etcd3-py - # moto - # paramiko - # pyopenssl - # vcert -dill==0.3.8 - # via pylint -distlib==0.3.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # virtualenv -distro==1.5.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -dnspython==2.6.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # ciscoconfparse - # python-etcd -docker==7.1.0 ; python_version >= "3.8" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/lint.in -etcd3-py==0.1.6 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -filelock==3.0.12 - # via - # -c requirements/static/ci/py3.8/linux.txt - # virtualenv -frozenlist==1.3.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # aiohttp - # aiosignal -future==0.18.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # napalm - # textfsm -genshi==0.7.5 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -geomet==0.1.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # cassandra-driver -gitdb==4.0.7 - # via - # -c requirements/static/ci/py3.8/linux.txt - # gitpython -gitpython==3.1.41 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -google-auth==2.1.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # kubernetes -hglib==2.6.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/linux.in -idna==3.7 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # etcd3-py - # requests - # yarl -immutables==0.15 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # contextvars -importlib-metadata==4.6.4 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/pkg/linux.in -ipaddress==1.0.22 - # via - # -c requirements/static/ci/py3.8/linux.txt - # kubernetes -isort==4.3.21 - # via pylint -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # jaraco.collections -jaraco.collections==3.4.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # jaraco.collections -jinja2==3.1.4 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # junos-eznc - # moto - # napalm -jmespath==1.0.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # -r requirements/static/ci/common.in - # boto3 - # botocore -jsonschema==3.2.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # napalm -jxmlease==1.0.1 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -kazoo==2.6.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -keyring==5.7.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -kubernetes==3.0.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -libnacl==1.7.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -looseversion==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -lxml==4.9.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc - # napalm - # ncclient -mako==1.2.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # jinja2 - # mako - # moto - # werkzeug -mccabe==0.6.1 - # via pylint -mercurial==6.0.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/linux.in -more-itertools==5.0.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -moto==3.0.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -msgpack==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -multidict==6.0.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # aiohttp - # yarl -napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -ncclient==0.6.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc -netaddr==0.7.19 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc - # napalm - # pyeapi -netmiko==3.2.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # napalm -ntc-templates==1.4.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc -oscrypto==1.2.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # certvalidator -packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -paramiko==3.4.0 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # junos-eznc - # napalm - # ncclient - # netmiko - # scp -passlib==1.7.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # ciscoconfparse -pathspec==0.9.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # yamllint -pathtools==0.1.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # watchdog -platformdirs==2.2.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # pylint - # virtualenv -portend==2.4 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt -pyasn1-modules==0.2.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # google-auth -pyasn1==0.4.8 - # via - # -c requirements/static/ci/py3.8/linux.txt - # pyasn1-modules - # rsa -pycparser==2.17 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/crypto.txt -pyeapi==0.8.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # napalm -pygit2==1.13.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/linux.in -pyiface==0.0.11 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/linux.in -pyinotify==0.9.6 ; sys_platform != "win32" and sys_platform != "darwin" and platform_system != "openbsd" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -pyjwt==2.4.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # twilio -pylint==3.1.0 - # via - # -r requirements/static/ci/lint.in - # saltpylint -pymysql==1.1.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/linux.in -pynacl==1.5.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # paramiko -pyopenssl==24.0.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/pkg/linux.in - # etcd3-py -pyparsing==3.0.9 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc -pyrsistent==0.17.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # jsonschema -pyserial==3.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc - # netmiko -python-consul==1.1.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/linux.in -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/pkg/linux.in - # botocore - # croniter - # kubernetes - # moto - # vcert -python-etcd==0.4.5 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -python-gnupg==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/pkg/linux.in -python-telegram-bot==13.7 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/linux.in -pytz==2022.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # apscheduler - # croniter - # moto - # python-telegram-bot - # tempora - # twilio -pyvmomi==6.7.1.2018.12 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # clustershell - # junos-eznc - # kubernetes - # napalm - # yamllint - # yamlordereddictloader -pyzmq==23.2.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/zeromq.txt -redis-py-cluster==2.1.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/linux.in -redis==3.5.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # redis-py-cluster -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/base.txt - # apache-libcloud - # docker - # etcd3-py - # kubernetes - # moto - # napalm - # python-consul - # pyvmomi - # responses - # twilio - # vcert -responses==0.10.6 - # via - # -c requirements/static/ci/py3.8/linux.txt - # moto -rfc3987==1.3.8 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -rpm-vercmp==0.1.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/pkg/linux.in -rsa==4.7.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # google-auth -s3transfer==0.5.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # boto3 -saltpylint==2024.2.5 - # via -r requirements/static/ci/lint.in -scp==0.13.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc - # napalm - # netmiko -semantic-version==2.9.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # etcd3-py -setproctitle==1.3.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/pkg/linux.in -six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # apscheduler - # cassandra-driver - # cheroot - # etcd3-py - # genshi - # geomet - # jsonschema - # junos-eznc - # kazoo - # kubernetes - # more-itertools - # ncclient - # python-consul - # python-dateutil - # pyvmomi - # responses - # textfsm - # transitions - # vcert - # virtualenv - # websocket-client -slack-bolt==1.15.5 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/linux.in -slack-sdk==3.19.5 - # via - # -c requirements/static/ci/py3.8/linux.txt - # slack-bolt -smmap==4.0.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # gitdb -sqlparse==0.5.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -strict-rfc3339==0.7 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -tempora==4.1.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # portend -terminal==0.4.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # ntc-templates -textfsm==1.1.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # napalm - # netmiko - # ntc-templates -timelib==0.2.5 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/pkg/linux.in -toml==0.10.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in - # -r requirements/static/ci/lint.in -tomli==2.0.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # pylint -tomlkit==0.12.3 - # via pylint -tornado==6.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # python-telegram-bot -transitions==0.8.9 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc -twilio==7.9.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/linux.in -typing-extensions==4.8.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # astroid - # pylint -tzlocal==3.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # apscheduler -urllib3==1.26.18 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # botocore - # docker - # kubernetes - # python-etcd - # requests -vcert==0.7.4 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -virtualenv==20.7.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -watchdog==0.10.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -websocket-client==0.40.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # kubernetes -wempy==0.2.1 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/common.in -werkzeug==3.0.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # moto -xmltodict==0.12.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # moto -yamllint==1.26.3 - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/linux.in -yamlordereddictloader==0.4.0 - # via - # -c requirements/static/ci/py3.8/linux.txt - # junos-eznc -yarl==1.7.2 - # via - # -c requirements/static/ci/py3.8/linux.txt - # aiohttp -zc.lockfile==1.4 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -c requirements/static/ci/py3.8/linux.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.8/linux-crypto.txt b/requirements/static/ci/py3.8/linux-crypto.txt deleted file mode 100644 index 9d91dda3caf..00000000000 --- a/requirements/static/ci/py3.8/linux-crypto.txt +++ /dev/null @@ -1,10 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/linux-crypto.txt requirements/static/ci/crypto.in -# -m2crypto==0.38.0 - # via -r requirements/static/ci/crypto.in -pycryptodome==3.19.1 - # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.8/linux.txt b/requirements/static/ci/py3.8/linux.txt deleted file mode 100644 index 6a9dcd361f7..00000000000 --- a/requirements/static/ci/py3.8/linux.txt +++ /dev/null @@ -1,596 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/linux.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt -# -aiohttp==3.9.4 - # via etcd3-py -aiosignal==1.2.0 - # via aiohttp -apache-libcloud==2.5.0 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -apscheduler==3.6.3 - # via python-telegram-bot -asn1crypto==1.3.0 - # via - # certvalidator - # oscrypto -async-timeout==4.0.2 - # via aiohttp -attrs==23.1.0 - # via - # aiohttp - # jsonschema - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-system-statistics -backports.entry-points-selectable==1.1.0 - # via virtualenv -backports.zoneinfo==0.2.1 - # via tzlocal -bcrypt==4.1.2 - # via - # -r requirements/static/ci/common.in - # paramiko -boto3==1.21.46 - # via - # -r requirements/static/ci/common.in - # moto -boto==2.49.0 - # via -r requirements/static/ci/common.in -botocore==1.24.46 - # via - # boto3 - # moto - # s3transfer -cachetools==4.2.2 - # via - # google-auth - # python-telegram-bot -cassandra-driver==3.23.0 - # via -r requirements/static/ci/common.in -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/base.txt - # kubernetes - # python-telegram-bot - # requests -certvalidator==0.11.1 - # via vcert -cffi==1.14.6 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/static/ci/common.in - # cryptography - # napalm - # pygit2 - # pynacl -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # requests -cheetah3==3.2.6.post2 - # via -r requirements/static/ci/common.in -cheroot==8.5.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/static/ci/common.in - # -r requirements/static/pkg/linux.in -ciscoconfparse==1.5.19 - # via napalm -click==7.1.1 - # via geomet -clustershell==1.8.3 - # via -r requirements/static/ci/common.in -colorama==0.4.3 - # via ciscoconfparse -contextvars==2.4 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/base.txt - # -r requirements/static/pkg/linux.in - # etcd3-py - # moto - # paramiko - # pyopenssl - # trustme - # vcert -distlib==0.3.2 - # via virtualenv -distro==1.5.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/base.txt - # pytest-skip-markers -dnspython==2.6.1 - # via - # -r requirements/static/ci/common.in - # ciscoconfparse - # python-etcd -docker==7.1.0 ; python_version >= "3.8" - # via -r requirements/pytest.txt -etcd3-py==0.1.6 - # via -r requirements/static/ci/common.in -exceptiongroup==1.0.4 - # via pytest -filelock==3.0.12 - # via virtualenv -flaky==3.8.1 - # via -r requirements/pytest.txt -frozenlist==1.3.0 - # via - # aiohttp - # aiosignal -future==0.18.3 - # via - # napalm - # textfsm -genshi==0.7.5 - # via -r requirements/static/ci/common.in -geomet==0.1.2 - # via cassandra-driver -gitdb==4.0.7 - # via gitpython -gitpython==3.1.41 - # via -r requirements/static/ci/common.in -google-auth==2.1.0 - # via kubernetes -hglib==2.6.1 - # via -r requirements/static/ci/linux.in -idna==3.7 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # etcd3-py - # requests - # trustme - # yarl -immutables==0.15 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # contextvars -importlib-metadata==4.6.4 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/static/pkg/linux.in -iniconfig==1.0.1 - # via pytest -ipaddress==1.0.22 - # via kubernetes -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # jaraco.collections -jaraco.collections==3.4.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # jaraco.collections -jinja2==3.1.4 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/base.txt - # junos-eznc - # moto - # napalm -jmespath==1.0.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/base.txt - # -r requirements/static/ci/common.in - # boto3 - # botocore -jsonschema==3.2.0 - # via -r requirements/static/ci/common.in -junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" - # via - # -r requirements/static/ci/common.in - # napalm -jxmlease==1.0.1 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -kazoo==2.6.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via -r requirements/static/ci/common.in -keyring==5.7.1 - # via -r requirements/static/ci/common.in -kubernetes==3.0.0 - # via -r requirements/static/ci/common.in -libnacl==1.7.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via -r requirements/static/ci/common.in -looseversion==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/base.txt -lxml==4.9.1 - # via - # junos-eznc - # napalm - # ncclient -mako==1.2.2 - # via -r requirements/static/ci/common.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/base.txt - # jinja2 - # mako - # moto - # werkzeug -mercurial==6.0.1 - # via -r requirements/static/ci/linux.in -mock==5.1.0 - # via -r requirements/pytest.txt -more-itertools==5.0.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/pytest.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -moto==3.0.1 - # via -r requirements/static/ci/common.in -msgpack==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/base.txt - # pytest-salt-factories -multidict==6.0.2 - # via - # aiohttp - # yarl -napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" - # via -r requirements/static/ci/common.in -ncclient==0.6.4 - # via junos-eznc -netaddr==0.7.19 - # via - # junos-eznc - # napalm - # pyeapi -netmiko==3.2.0 - # via napalm -ntc-templates==1.4.1 - # via junos-eznc -oscrypto==1.2.0 - # via certvalidator -packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/base.txt - # pytest -paramiko==3.4.0 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -r requirements/static/ci/common.in - # junos-eznc - # napalm - # ncclient - # netmiko - # scp -passlib==1.7.4 - # via - # -r requirements/static/ci/common.in - # ciscoconfparse -pathspec==0.9.0 - # via yamllint -pathtools==0.1.2 - # via watchdog -platformdirs==2.2.0 - # via virtualenv -pluggy==1.4.0 - # via pytest -portend==2.4 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/base.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pyasn1-modules==0.2.4 - # via google-auth -pyasn1==0.4.8 - # via - # pyasn1-modules - # rsa -pycparser==2.17 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/crypto.txt -pyeapi==0.8.3 - # via napalm -pyfakefs==5.3.1 - # via -r requirements/pytest.txt -pygit2==1.13.1 - # via -r requirements/static/ci/linux.in -pyiface==0.0.11 - # via -r requirements/static/ci/linux.in -pyinotify==0.9.6 ; sys_platform != "win32" and sys_platform != "darwin" and platform_system != "openbsd" - # via -r requirements/static/ci/common.in -pyjwt==2.4.0 - # via twilio -pymysql==1.1.1 - # via -r requirements/static/ci/linux.in -pynacl==1.5.0 - # via - # -r requirements/static/ci/common.in - # paramiko -pyopenssl==24.0.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/static/pkg/linux.in - # etcd3-py -pyparsing==3.0.9 - # via junos-eznc -pyrsistent==0.17.3 - # via jsonschema -pyserial==3.4 - # via - # junos-eznc - # netmiko -pytest-custom-exit-code==0.3.0 - # via -r requirements/pytest.txt -pytest-helpers-namespace==2021.4.29 - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities -pytest-httpserver==1.0.8 - # via -r requirements/pytest.txt -pytest-salt-factories==1.0.1 - # via -r requirements/pytest.txt -pytest-shell-utilities==1.8.0 ; python_version <= "3.9" - # via - # -r requirements/pytest.txt - # pytest-salt-factories -pytest-skip-markers==1.5.2 ; python_version >= "3.8" - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pytest-subtests==0.4.0 - # via -r requirements/pytest.txt -pytest-system-statistics==1.0.2 - # via pytest-salt-factories -pytest-timeout==2.3.1 - # via -r requirements/pytest.txt -pytest==8.1.1 - # via - # -r requirements/pytest.txt - # pytest-custom-exit-code - # pytest-helpers-namespace - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-subtests - # pytest-system-statistics - # pytest-timeout -python-consul==1.1.0 - # via -r requirements/static/ci/linux.in -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/static/pkg/linux.in - # botocore - # croniter - # kubernetes - # moto - # vcert -python-etcd==0.4.5 - # via -r requirements/static/ci/common.in -python-gnupg==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/static/pkg/linux.in -python-telegram-bot==13.7 - # via -r requirements/static/ci/linux.in -pytz==2022.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # apscheduler - # croniter - # moto - # python-telegram-bot - # tempora - # twilio -pyvmomi==6.7.1.2018.12 - # via -r requirements/static/ci/common.in -pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/base.txt - # clustershell - # junos-eznc - # kubernetes - # napalm - # pytest-salt-factories - # yamllint - # yamlordereddictloader -pyzmq==23.2.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/zeromq.txt - # pytest-salt-factories -redis-py-cluster==2.1.3 - # via -r requirements/static/ci/linux.in -redis==3.5.3 - # via redis-py-cluster -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/base.txt - # apache-libcloud - # docker - # etcd3-py - # kubernetes - # moto - # napalm - # python-consul - # pyvmomi - # responses - # twilio - # vcert -responses==0.10.6 - # via moto -rfc3987==1.3.8 - # via -r requirements/static/ci/common.in -rpm-vercmp==0.1.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/static/pkg/linux.in -rsa==4.7.2 - # via google-auth -s3transfer==0.5.2 - # via boto3 -scp==0.13.2 - # via - # junos-eznc - # napalm - # netmiko -semantic-version==2.9.0 - # via etcd3-py -setproctitle==1.3.2 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/static/pkg/linux.in -six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # apscheduler - # cassandra-driver - # cheroot - # etcd3-py - # genshi - # geomet - # jsonschema - # junos-eznc - # kazoo - # kubernetes - # more-itertools - # ncclient - # python-consul - # python-dateutil - # pyvmomi - # responses - # textfsm - # transitions - # vcert - # virtualenv - # websocket-client -slack-bolt==1.15.5 - # via -r requirements/static/ci/linux.in -slack-sdk==3.19.5 - # via slack-bolt -smmap==4.0.0 - # via gitdb -sqlparse==0.5.0 - # via -r requirements/static/ci/common.in -strict-rfc3339==0.7 - # via -r requirements/static/ci/common.in -tempora==4.1.1 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # portend -terminal==0.4.0 - # via ntc-templates -textfsm==1.1.0 - # via - # -r requirements/static/ci/common.in - # napalm - # netmiko - # ntc-templates -timelib==0.2.5 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # -r requirements/static/pkg/linux.in -toml==0.10.2 - # via -r requirements/static/ci/common.in -tomli==2.0.1 - # via pytest -tornado==6.1 - # via python-telegram-bot -transitions==0.8.9 - # via junos-eznc -trustme==1.1.0 - # via -r requirements/pytest.txt -twilio==7.9.2 - # via -r requirements/static/ci/linux.in -typing-extensions==4.8.0 - # via - # pytest-shell-utilities - # pytest-system-statistics -tzlocal==3.0 - # via apscheduler -urllib3==1.26.18 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # botocore - # docker - # kubernetes - # python-etcd - # requests -vcert==0.7.4 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -virtualenv==20.7.2 - # via - # -r requirements/static/ci/common.in - # pytest-salt-factories -watchdog==0.10.3 - # via -r requirements/static/ci/common.in -websocket-client==0.40.0 - # via kubernetes -wempy==0.2.1 - # via -r requirements/static/ci/common.in -werkzeug==3.0.3 - # via - # moto - # pytest-httpserver -xmltodict==0.12.0 - # via moto -yamllint==1.26.3 - # via -r requirements/static/ci/linux.in -yamlordereddictloader==0.4.0 - # via junos-eznc -yarl==1.7.2 - # via aiohttp -zc.lockfile==1.4 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.8/linux.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.8/windows-crypto.txt b/requirements/static/ci/py3.8/windows-crypto.txt deleted file mode 100644 index 6f353e6190a..00000000000 --- a/requirements/static/ci/py3.8/windows-crypto.txt +++ /dev/null @@ -1,10 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/windows-crypto.txt requirements/static/ci/crypto.in -# -m2crypto==0.38.0 - # via -r requirements/static/ci/crypto.in -pycryptodome==3.19.1 - # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.8/windows.txt b/requirements/static/ci/py3.8/windows.txt deleted file mode 100644 index f38be0bcc27..00000000000 --- a/requirements/static/ci/py3.8/windows.txt +++ /dev/null @@ -1,512 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/windows.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/windows.in requirements/static/pkg/windows.in requirements/windows.txt -# -aiohttp==3.9.4 - # via etcd3-py -aiosignal==1.2.0 - # via aiohttp -async-timeout==4.0.2 - # via aiohttp -attrs==23.1.0 - # via - # aiohttp - # jsonschema - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-system-statistics -backports.entry-points-selectable==1.1.0 - # via virtualenv -bcrypt==4.1.2 - # via -r requirements/static/ci/common.in -boto3==1.21.46 - # via - # -r requirements/static/ci/common.in - # moto -boto==2.49.0 - # via -r requirements/static/ci/common.in -botocore==1.24.46 - # via - # boto3 - # moto - # s3transfer -cachetools==3.1.0 - # via google-auth -cassandra-driver==3.23.0 - # via -r requirements/static/ci/common.in -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/base.txt - # kubernetes - # requests -cffi==1.14.6 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/static/ci/common.in - # -r requirements/windows.txt - # clr-loader - # cryptography - # pygit2 - # pynacl -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # requests -cheetah3==3.2.6.post2 - # via -r requirements/static/ci/common.in -cheroot==8.5.2 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/static/ci/common.in - # -r requirements/windows.txt -click==7.1.2 - # via geomet -clr-loader==0.2.4 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # pythonnet -clustershell==1.8.3 - # via -r requirements/static/ci/common.in -colorama==0.4.1 - # via pytest -contextvars==2.4 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/base.txt - # -r requirements/windows.txt - # etcd3-py - # moto - # pyopenssl - # requests-ntlm - # trustme -distlib==0.3.2 - # via virtualenv -distro==1.5.0 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/base.txt - # pytest-skip-markers -dmidecode==0.9.0 - # via -r requirements/static/ci/windows.in -dnspython==2.6.1 - # via - # -r requirements/static/ci/common.in - # python-etcd -docker==7.1.0 ; python_version >= "3.8" - # via -r requirements/pytest.txt -etcd3-py==0.1.6 - # via -r requirements/static/ci/common.in -exceptiongroup==1.0.4 - # via pytest -filelock==3.0.12 - # via virtualenv -flaky==3.8.1 - # via -r requirements/pytest.txt -frozenlist==1.3.0 - # via - # aiohttp - # aiosignal -future==1.0.0 - # via textfsm -genshi==0.7.5 - # via -r requirements/static/ci/common.in -geomet==0.1.2 - # via cassandra-driver -gitdb==4.0.7 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # gitpython -gitpython==3.1.41 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/static/ci/common.in - # -r requirements/windows.txt -google-auth==2.1.0 - # via kubernetes -idna==3.7 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # etcd3-py - # requests - # trustme - # yarl -immutables==0.15 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # contextvars -importlib-metadata==4.6.4 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt -iniconfig==1.0.1 - # via pytest -ioloop==0.1a0 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt -ipaddress==1.0.22 - # via kubernetes -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # jaraco.collections -jaraco.collections==3.3.0 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # jaraco.collections -jinja2==3.1.4 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/base.txt - # moto -jmespath==1.0.1 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/base.txt - # -r requirements/static/ci/common.in - # boto3 - # botocore -jsonschema==3.2.0 - # via -r requirements/static/ci/common.in -keyring==5.7.1 - # via -r requirements/static/ci/common.in -kubernetes==3.0.0 - # via -r requirements/static/ci/common.in -looseversion==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/base.txt -lxml==4.9.1 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt -mako==1.2.2 - # via -r requirements/static/ci/common.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/base.txt - # jinja2 - # mako - # moto - # werkzeug -mock==5.1.0 - # via -r requirements/pytest.txt -more-itertools==8.2.0 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/pytest.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -moto==3.0.1 - # via -r requirements/static/ci/common.in -msgpack==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/base.txt - # pytest-salt-factories -multidict==6.0.2 - # via - # aiohttp - # yarl -ntlm-auth==1.5.0 - # via requests-ntlm -packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/base.txt - # pytest -passlib==1.7.4 - # via -r requirements/static/ci/common.in -patch==1.16 - # via -r requirements/static/ci/windows.in -pathspec==0.9.0 - # via yamllint -pathtools==0.1.2 - # via watchdog -platformdirs==2.2.0 - # via virtualenv -pluggy==1.4.0 - # via pytest -portend==2.6 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/base.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pyasn1-modules==0.2.4 - # via google-auth -pyasn1==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt - # pyasn1-modules - # rsa -pycparser==2.21 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/crypto.txt -pyfakefs==5.3.1 - # via -r requirements/pytest.txt -pygit2==1.13.1 - # via -r requirements/static/ci/windows.in -pymssql==2.3.0 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt -pynacl==1.5.0 - # via -r requirements/static/ci/common.in -pyopenssl==24.0.0 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt - # etcd3-py -pyrsistent==0.17.3 - # via jsonschema -pytest-custom-exit-code==0.3.0 - # via -r requirements/pytest.txt -pytest-helpers-namespace==2021.4.29 - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities -pytest-httpserver==1.0.8 - # via -r requirements/pytest.txt -pytest-salt-factories==1.0.1 - # via -r requirements/pytest.txt -pytest-shell-utilities==1.8.0 ; python_version <= "3.9" - # via - # -r requirements/pytest.txt - # pytest-salt-factories -pytest-skip-markers==1.5.2 ; python_version >= "3.8" - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pytest-subtests==0.4.0 - # via -r requirements/pytest.txt -pytest-system-statistics==1.0.2 - # via pytest-salt-factories -pytest-timeout==2.3.1 - # via -r requirements/pytest.txt -pytest==8.1.1 - # via - # -r requirements/pytest.txt - # pytest-custom-exit-code - # pytest-helpers-namespace - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-subtests - # pytest-system-statistics - # pytest-timeout -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt - # botocore - # kubernetes - # moto -python-etcd==0.4.5 - # via -r requirements/static/ci/common.in -python-gnupg==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt -pythonnet==3.0.1 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt -pytz==2022.1 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # moto - # tempora -pyvmomi==6.7.1.2018.12 - # via -r requirements/static/ci/common.in -pywin32==305 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt - # cherrypy - # docker - # pytest-skip-markers - # wmi -pywinrm==0.4.1 - # via -r requirements/static/ci/windows.in -pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/base.txt - # clustershell - # kubernetes - # pytest-salt-factories - # yamllint -pyzmq==25.0.2 ; sys_platform == "win32" - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/zeromq.txt - # pytest-salt-factories -requests-ntlm==1.1.0 - # via pywinrm -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/base.txt - # -r requirements/windows.txt - # docker - # etcd3-py - # kubernetes - # moto - # pyvmomi - # pywinrm - # requests-ntlm - # responses -responses==0.10.6 - # via moto -rfc3987==1.3.8 - # via -r requirements/static/ci/common.in -rsa==4.7.2 - # via google-auth -s3transfer==0.5.2 - # via boto3 -sed==0.3.1 - # via -r requirements/static/ci/windows.in -semantic-version==2.9.0 - # via etcd3-py -setproctitle==1.3.2 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt -six==1.15.0 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # cassandra-driver - # cheroot - # etcd3-py - # genshi - # geomet - # jsonschema - # kubernetes - # python-dateutil - # pyvmomi - # pywinrm - # responses - # textfsm - # virtualenv - # websocket-client -smmap==4.0.0 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # gitdb -sqlparse==0.5.0 - # via -r requirements/static/ci/common.in -strict-rfc3339==0.7 - # via -r requirements/static/ci/common.in -tempora==4.1.1 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # portend -textfsm==1.1.3 - # via -r requirements/static/ci/common.in -timelib==0.2.5 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt -toml==0.10.2 - # via -r requirements/static/ci/common.in -tomli==2.0.1 - # via pytest -trustme==1.1.0 - # via -r requirements/pytest.txt -typing-extensions==4.2.0 - # via - # pytest-shell-utilities - # pytest-system-statistics -urllib3==1.26.18 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt - # botocore - # docker - # kubernetes - # python-etcd - # requests -virtualenv==20.7.2 - # via - # -r requirements/static/ci/common.in - # pytest-salt-factories -watchdog==0.10.3 - # via -r requirements/static/ci/common.in -websocket-client==0.40.0 - # via kubernetes -wempy==0.2.1 - # via -r requirements/static/ci/common.in -werkzeug==3.0.3 - # via - # moto - # pytest-httpserver -wheel==0.38.4 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt -wmi==1.5.1 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt -xmltodict==0.13.0 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # -r requirements/windows.txt - # moto - # pywinrm -yamllint==1.26.3 - # via -r requirements/static/ci/windows.in -yarl==1.7.2 - # via aiohttp -zc.lockfile==2.0 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.8/windows.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.9/changelog.txt b/requirements/static/ci/py3.9/changelog.txt deleted file mode 100644 index 3d917941d49..00000000000 --- a/requirements/static/ci/py3.9/changelog.txt +++ /dev/null @@ -1,40 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/changelog.txt requirements/static/ci/changelog.in -# -click-default-group==1.2.2 - # via towncrier -click==7.1.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # click-default-group - # towncrier -incremental==17.5.0 - # via towncrier -jinja2==3.1.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # towncrier -looseversion==1.0.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/changelog.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # jinja2 -packaging==22.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/changelog.in -tomli==2.0.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # towncrier -towncrier==22.12.0 - # via -r requirements/static/ci/changelog.in - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.9/cloud.txt b/requirements/static/ci/py3.9/cloud.txt deleted file mode 100644 index b24fdf78b10..00000000000 --- a/requirements/static/ci/py3.9/cloud.txt +++ /dev/null @@ -1,802 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/cloud.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/cloud.in requirements/static/ci/common.in requirements/static/pkg/linux.in requirements/zeromq.txt -# -aiohttp==3.9.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # etcd3-py -aiosignal==1.2.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # aiohttp -apache-libcloud==2.5.0 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/cloud.in - # -r requirements/static/ci/common.in -asn1crypto==1.3.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # certvalidator - # oscrypto -async-timeout==4.0.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # aiohttp -attrs==23.1.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # aiohttp - # jsonschema - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-system-statistics -backports.entry-points-selectable==1.1.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # virtualenv -bcrypt==4.1.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # paramiko -boto3==1.21.46 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # moto -boto==2.49.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -botocore==1.24.46 - # via - # -c requirements/static/ci/py3.9/linux.txt - # boto3 - # moto - # s3transfer -cachetools==4.2.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # google-auth -cassandra-driver==3.23.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # kubernetes - # requests -certvalidator==0.11.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # vcert -cffi==1.14.6 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # cryptography - # napalm - # pynacl -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # requests -cheetah3==3.2.6.post2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -cheroot==8.5.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # -r requirements/static/pkg/linux.in -ciscoconfparse==1.5.19 - # via - # -c requirements/static/ci/py3.9/linux.txt - # napalm -click==7.1.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # geomet -clustershell==1.8.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -colorama==0.4.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # ciscoconfparse -contextvars==2.4 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # -r requirements/static/pkg/linux.in - # etcd3-py - # moto - # paramiko - # pyopenssl - # pyspnego - # requests-ntlm - # smbprotocol - # trustme - # vcert -distlib==0.3.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # virtualenv -distro==1.5.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # pytest-skip-markers -dnspython==2.6.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # ciscoconfparse - # python-etcd -docker==7.1.0 ; python_version >= "3.8" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/pytest.txt -etcd3-py==0.1.6 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -exceptiongroup==1.0.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # pytest -filelock==3.0.12 - # via - # -c requirements/static/ci/py3.9/linux.txt - # virtualenv -flaky==3.8.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/pytest.txt -frozenlist==1.3.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # aiohttp - # aiosignal -future==0.18.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # napalm - # textfsm -genshi==0.7.5 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -geomet==0.1.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # cassandra-driver -gitdb==4.0.7 - # via - # -c requirements/static/ci/py3.9/linux.txt - # gitpython -gitpython==3.1.41 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -google-auth==2.1.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # kubernetes -idna==3.7 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # etcd3-py - # requests - # trustme - # yarl -immutables==0.15 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # contextvars -importlib-metadata==6.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/pkg/linux.in -iniconfig==1.0.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # pytest -ipaddress==1.0.22 - # via - # -c requirements/static/ci/py3.9/linux.txt - # kubernetes -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # jaraco.collections -jaraco.collections==3.4.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # jaraco.collections -jinja2==3.1.4 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # junos-eznc - # moto - # napalm -jmespath==1.0.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # -r requirements/static/ci/common.in - # boto3 - # botocore -jsonschema==3.2.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # napalm -jxmlease==1.0.1 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -kazoo==2.6.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -keyring==5.7.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -kubernetes==3.0.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -libnacl==1.7.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -looseversion==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -lxml==4.9.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc - # napalm - # ncclient -mako==1.2.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # jinja2 - # mako - # moto - # werkzeug -mock==5.1.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/pytest.txt -more-itertools==5.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/pytest.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -moto==3.0.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -msgpack==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # pytest-salt-factories -multidict==6.0.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # aiohttp - # yarl -napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -ncclient==0.6.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc -netaddr==0.7.19 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/cloud.in - # junos-eznc - # napalm - # pyeapi -netmiko==3.2.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # napalm -ntc-templates==1.4.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc -ntlm-auth==1.3.0 - # via requests-ntlm -oscrypto==1.2.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # certvalidator -packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # pytest -paramiko==3.4.0 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # junos-eznc - # napalm - # ncclient - # netmiko - # scp -passlib==1.7.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # ciscoconfparse -pathtools==0.1.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # watchdog -platformdirs==2.2.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # virtualenv -pluggy==1.4.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # pytest -portend==2.4 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # cherrypy -profitbricks==4.1.3 - # via -r requirements/static/ci/cloud.in -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pyasn1-modules==0.2.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # google-auth -pyasn1==0.4.8 - # via - # -c requirements/static/ci/py3.9/linux.txt - # pyasn1-modules - # rsa -pycparser==2.21 ; python_version >= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # -r requirements/static/pkg/linux.in - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/crypto.txt -pyeapi==0.8.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # napalm -pyfakefs==5.3.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/pytest.txt -pyinotify==0.9.6 ; sys_platform != "win32" and sys_platform != "darwin" and platform_system != "openbsd" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -pynacl==1.5.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # paramiko -pyopenssl==24.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/pkg/linux.in - # etcd3-py -pyparsing==3.0.9 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc -pypsexec==0.1.0 - # via -r requirements/static/ci/cloud.in -pyrsistent==0.17.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # jsonschema -pyserial==3.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc - # netmiko -pyspnego==0.8.0 - # via - # -r requirements/static/ci/cloud.in - # smbprotocol -pytest-custom-exit-code==0.3.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/pytest.txt -pytest-helpers-namespace==2021.4.29 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities -pytest-httpserver==1.0.8 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/pytest.txt -pytest-salt-factories==1.0.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/pytest.txt -pytest-shell-utilities==1.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/pytest.txt - # pytest-salt-factories -pytest-skip-markers==1.5.2 ; python_version >= "3.8" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pytest-subtests==0.4.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/pytest.txt -pytest-system-statistics==1.0.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # pytest-salt-factories -pytest-timeout==2.3.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/pytest.txt -pytest==8.1.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/pytest.txt - # pytest-custom-exit-code - # pytest-helpers-namespace - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-subtests - # pytest-system-statistics - # pytest-timeout -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/pkg/linux.in - # botocore - # croniter - # kubernetes - # moto - # vcert -python-etcd==0.4.5 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -python-gnupg==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/pkg/linux.in -pytz==2022.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # croniter - # moto - # tempora -pyvmomi==6.7.1.2018.12 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -pywinrm==0.3.0 - # via -r requirements/static/ci/cloud.in -pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # clustershell - # junos-eznc - # kubernetes - # napalm - # pytest-salt-factories - # yamlordereddictloader -pyzmq==23.2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/zeromq.txt - # pytest-salt-factories -requests-ntlm==1.1.0 - # via pywinrm -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # apache-libcloud - # docker - # etcd3-py - # kubernetes - # moto - # napalm - # profitbricks - # pyvmomi - # pywinrm - # requests-ntlm - # responses - # vcert -responses==0.10.6 - # via - # -c requirements/static/ci/py3.9/linux.txt - # moto -rfc3987==1.3.8 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -rpm-vercmp==0.1.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/pkg/linux.in -rsa==4.7.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # google-auth -s3transfer==0.5.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # boto3 -scp==0.13.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc - # napalm - # netmiko -semantic-version==2.9.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # etcd3-py -setproctitle==1.3.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/pkg/linux.in -six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # cassandra-driver - # cheroot - # etcd3-py - # genshi - # geomet - # jsonschema - # junos-eznc - # kazoo - # kubernetes - # more-itertools - # ncclient - # profitbricks - # pypsexec - # python-dateutil - # pyvmomi - # pywinrm - # responses - # textfsm - # transitions - # vcert - # virtualenv - # websocket-client -smbprotocol==1.10.1 - # via - # -r requirements/static/ci/cloud.in - # pypsexec -smmap==4.0.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # gitdb -sqlparse==0.5.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -strict-rfc3339==0.7 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -tempora==4.1.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # portend -terminal==0.4.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # ntc-templates -textfsm==1.1.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # napalm - # netmiko - # ntc-templates -timelib==0.2.5 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/pkg/linux.in -toml==0.10.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -tomli==2.0.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # pytest -transitions==0.8.9 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc -trustme==1.1.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/pytest.txt -typing-extensions==4.8.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # pytest-shell-utilities - # pytest-system-statistics -urllib3==1.26.18 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # botocore - # docker - # kubernetes - # python-etcd - # requests -vcert==0.7.4 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -virtualenv==20.7.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # pytest-salt-factories -watchdog==0.10.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -websocket-client==0.40.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # kubernetes -wempy==0.2.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -werkzeug==3.0.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # moto - # pytest-httpserver -xmltodict==0.12.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # moto - # pywinrm -yamlordereddictloader==0.4.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc -yarl==1.7.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # aiohttp -zc.lockfile==1.4 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.9/darwin-crypto.txt b/requirements/static/ci/py3.9/darwin-crypto.txt deleted file mode 100644 index a4f143000dd..00000000000 --- a/requirements/static/ci/py3.9/darwin-crypto.txt +++ /dev/null @@ -1,10 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/darwin-crypto.txt requirements/static/ci/crypto.in -# -m2crypto==0.38.0 - # via -r requirements/static/ci/crypto.in -pycryptodome==3.19.1 - # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.9/darwin.txt b/requirements/static/ci/py3.9/darwin.txt deleted file mode 100644 index 66bddbb9630..00000000000 --- a/requirements/static/ci/py3.9/darwin.txt +++ /dev/null @@ -1,571 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/darwin.txt requirements/darwin.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/darwin.in requirements/static/pkg/darwin.in -# -aiohttp==3.9.4 - # via etcd3-py -aiosignal==1.2.0 - # via aiohttp -apache-libcloud==2.5.0 ; sys_platform != "win32" - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/darwin.txt - # -r requirements/static/ci/common.in -asn1crypto==1.3.0 - # via - # certvalidator - # oscrypto -async-timeout==4.0.2 - # via aiohttp -attrs==23.1.0 - # via - # aiohttp - # jsonschema - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-system-statistics -backports.entry-points-selectable==1.1.0 - # via virtualenv -bcrypt==4.1.2 - # via - # -r requirements/static/ci/common.in - # paramiko -boto3==1.21.46 - # via - # -r requirements/static/ci/common.in - # moto -boto==2.49.0 - # via -r requirements/static/ci/common.in -botocore==1.24.46 - # via - # boto3 - # moto - # s3transfer -cachetools==3.1.0 - # via google-auth -cassandra-driver==3.23.0 - # via -r requirements/static/ci/common.in -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/base.txt - # kubernetes - # requests -certvalidator==0.11.1 - # via vcert -cffi==1.14.6 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/static/ci/common.in - # cryptography - # napalm - # pygit2 - # pynacl -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # requests -cheetah3==3.2.6.post2 - # via -r requirements/static/ci/common.in -cheroot==8.5.2 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/darwin.txt - # -r requirements/static/ci/common.in -ciscoconfparse==1.5.19 - # via napalm -click==7.0 - # via geomet -clustershell==1.8.1 - # via -r requirements/static/ci/common.in -colorama==0.4.3 - # via ciscoconfparse -contextvars==2.4 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/base.txt - # -r requirements/darwin.txt - # etcd3-py - # moto - # paramiko - # pyopenssl - # trustme - # vcert -distlib==0.3.2 - # via virtualenv -distro==1.5.0 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/base.txt - # pytest-skip-markers -dnspython==2.6.1 - # via - # -r requirements/static/ci/common.in - # ciscoconfparse - # python-etcd -docker==7.1.0 ; python_version >= "3.8" - # via -r requirements/pytest.txt -etcd3-py==0.1.6 - # via -r requirements/static/ci/common.in -exceptiongroup==1.0.4 - # via pytest -filelock==3.0.12 - # via virtualenv -flaky==3.8.1 - # via -r requirements/pytest.txt -frozenlist==1.3.0 - # via - # aiohttp - # aiosignal -future==0.18.3 - # via - # napalm - # textfsm -genshi==0.7.5 - # via -r requirements/static/ci/common.in -geomet==0.1.2 - # via cassandra-driver -gitdb==4.0.7 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # gitpython -gitpython==3.1.41 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/darwin.txt - # -r requirements/static/ci/common.in -google-auth==2.1.0 - # via kubernetes -hglib==2.6.1 - # via -r requirements/static/ci/darwin.in -idna==3.7 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/darwin.txt - # etcd3-py - # requests - # trustme - # yarl -immutables==0.15 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # contextvars -importlib-metadata==6.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/darwin.txt -iniconfig==1.0.1 - # via pytest -ipaddress==1.0.22 - # via kubernetes -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # jaraco.collections -jaraco.collections==3.4.0 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # jaraco.collections -jinja2==3.1.4 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/base.txt - # junos-eznc - # moto - # napalm -jmespath==1.0.1 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/base.txt - # -r requirements/static/ci/common.in - # boto3 - # botocore -jsonschema==3.2.0 - # via -r requirements/static/ci/common.in -junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" - # via - # -r requirements/static/ci/common.in - # napalm -jxmlease==1.0.1 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -keyring==5.7.1 - # via -r requirements/static/ci/common.in -kubernetes==3.0.0 - # via -r requirements/static/ci/common.in -linode-python==1.1.1 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/darwin.txt -looseversion==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/base.txt -lxml==4.9.1 - # via - # junos-eznc - # napalm - # ncclient -mako==1.2.2 - # via -r requirements/static/ci/common.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/base.txt - # jinja2 - # mako - # moto - # werkzeug -mercurial==6.0.1 - # via -r requirements/static/ci/darwin.in -mock==5.1.0 - # via -r requirements/pytest.txt -more-itertools==8.2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/pytest.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -moto==3.0.1 - # via -r requirements/static/ci/common.in -msgpack==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/base.txt - # pytest-salt-factories -multidict==6.0.2 - # via - # aiohttp - # yarl -napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" - # via -r requirements/static/ci/common.in -ncclient==0.6.4 - # via junos-eznc -netaddr==0.7.19 - # via - # junos-eznc - # napalm - # pyeapi -netmiko==3.2.0 - # via napalm -ntc-templates==1.4.1 - # via junos-eznc -oscrypto==1.2.0 - # via certvalidator -packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/base.txt - # pytest -paramiko==3.4.0 - # via - # junos-eznc - # napalm - # ncclient - # netmiko - # scp -passlib==1.7.4 - # via - # -r requirements/static/ci/common.in - # ciscoconfparse -pathspec==0.9.0 - # via yamllint -pathtools==0.1.2 - # via watchdog -platformdirs==2.2.0 - # via virtualenv -pluggy==1.4.0 - # via pytest -portend==2.6 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/base.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pyasn1-modules==0.2.4 - # via google-auth -pyasn1==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/darwin.txt - # pyasn1-modules - # rsa -pycparser==2.21 ; python_version >= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/darwin.txt - # -r requirements/static/ci/common.in - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/crypto.txt -pyeapi==0.8.3 - # via napalm -pyfakefs==5.3.1 - # via -r requirements/pytest.txt -pygit2==1.13.1 - # via -r requirements/static/ci/darwin.in -pynacl==1.5.0 - # via - # -r requirements/static/ci/common.in - # paramiko -pyopenssl==24.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/darwin.txt - # etcd3-py -pyparsing==3.0.9 - # via junos-eznc -pyrsistent==0.17.3 - # via jsonschema -pyserial==3.4 - # via - # junos-eznc - # netmiko -pytest-custom-exit-code==0.3.0 - # via -r requirements/pytest.txt -pytest-helpers-namespace==2021.4.29 - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities -pytest-httpserver==1.0.8 - # via -r requirements/pytest.txt -pytest-salt-factories==1.0.1 - # via -r requirements/pytest.txt -pytest-shell-utilities==1.8.0 ; python_version <= "3.9" - # via - # -r requirements/pytest.txt - # pytest-salt-factories -pytest-skip-markers==1.5.2 ; python_version >= "3.8" - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pytest-subtests==0.4.0 - # via -r requirements/pytest.txt -pytest-system-statistics==1.0.2 - # via pytest-salt-factories -pytest-timeout==2.3.1 - # via -r requirements/pytest.txt -pytest==8.1.1 - # via - # -r requirements/pytest.txt - # pytest-custom-exit-code - # pytest-helpers-namespace - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-subtests - # pytest-system-statistics - # pytest-timeout -python-dateutil==2.8.0 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/darwin.txt - # botocore - # croniter - # kubernetes - # moto - # vcert -python-etcd==0.4.5 - # via -r requirements/static/ci/common.in -python-gnupg==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/darwin.txt -pytz==2022.1 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # croniter - # moto - # tempora -pyvmomi==6.7.1.2018.12 - # via -r requirements/static/ci/common.in -pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/base.txt - # clustershell - # junos-eznc - # kubernetes - # napalm - # pytest-salt-factories - # yamllint - # yamlordereddictloader -pyzmq==25.1.2 ; sys_platform == "darwin" - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/zeromq.txt - # pytest-salt-factories -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/base.txt - # apache-libcloud - # docker - # etcd3-py - # kubernetes - # moto - # napalm - # pyvmomi - # responses - # vcert - # vultr -responses==0.10.6 - # via moto -rfc3987==1.3.8 - # via -r requirements/static/ci/common.in -rsa==4.7.2 - # via google-auth -s3transfer==0.5.2 - # via boto3 -scp==0.13.2 - # via - # junos-eznc - # napalm - # netmiko -semantic-version==2.9.0 - # via etcd3-py -setproctitle==1.3.2 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/darwin.txt -six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # cassandra-driver - # cheroot - # etcd3-py - # genshi - # geomet - # jsonschema - # junos-eznc - # kubernetes - # ncclient - # python-dateutil - # pyvmomi - # responses - # textfsm - # transitions - # vcert - # virtualenv - # websocket-client -smmap==4.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # gitdb -sqlparse==0.5.0 - # via -r requirements/static/ci/common.in -strict-rfc3339==0.7 - # via -r requirements/static/ci/common.in -tempora==4.1.1 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # portend -terminal==0.4.0 - # via ntc-templates -textfsm==1.1.0 - # via - # -r requirements/static/ci/common.in - # napalm - # netmiko - # ntc-templates -timelib==0.2.5 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/darwin.txt -toml==0.10.2 - # via -r requirements/static/ci/common.in -tomli==2.0.1 - # via pytest -transitions==0.8.9 - # via junos-eznc -trustme==1.1.0 - # via -r requirements/pytest.txt -typing-extensions==4.2.0 - # via - # pytest-shell-utilities - # pytest-system-statistics -urllib3==1.26.18 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # botocore - # docker - # kubernetes - # python-etcd - # requests -vcert==0.7.4 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -virtualenv==20.7.2 - # via - # -r requirements/static/ci/common.in - # pytest-salt-factories -vultr==1.0.1 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # -r requirements/darwin.txt -watchdog==0.10.3 - # via -r requirements/static/ci/common.in -websocket-client==0.40.0 - # via kubernetes -wempy==0.2.1 - # via -r requirements/static/ci/common.in -werkzeug==3.0.3 - # via - # moto - # pytest-httpserver -xmltodict==0.12.0 - # via moto -yamllint==1.26.3 - # via -r requirements/static/ci/darwin.in -yamlordereddictloader==0.4.0 - # via - # -r requirements/static/ci/darwin.in - # junos-eznc -yarl==1.7.2 - # via aiohttp -zc.lockfile==2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.9/darwin.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.9/docs.txt b/requirements/static/ci/py3.9/docs.txt deleted file mode 100644 index 9b9f3136276..00000000000 --- a/requirements/static/ci/py3.9/docs.txt +++ /dev/null @@ -1,227 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/docs.txt requirements/base.txt requirements/static/ci/docs.in requirements/zeromq.txt -# -alabaster==0.7.12 - # via sphinx -babel==2.9.1 - # via sphinx -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # requests -cffi==1.14.6 - # via - # -c requirements/static/ci/py3.9/linux.txt - # cryptography -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # requests -cheroot==8.5.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/docs.in -contextvars==2.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -distro==1.5.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -docutils==0.19 - # via sphinx -idna==3.7 - # via - # -c requirements/static/ci/py3.9/linux.txt - # requests -imagesize==1.4.1 - # via sphinx -immutables==0.15 - # via - # -c requirements/static/ci/py3.9/linux.txt - # contextvars -importlib-metadata==6.0.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # sphinx -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # jaraco.collections -jaraco.collections==3.4.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # jaraco.collections -jinja2==3.1.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # myst-docutils - # sphinx -jmespath==1.0.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -linkify-it-py==1.0.3 - # via myst-docutils -looseversion==1.0.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -markdown-it-py==2.2.0 - # via - # mdit-py-plugins - # myst-docutils -markupsafe==2.1.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # jinja2 -mdit-py-plugins==0.3.3 - # via myst-docutils -mdurl==0.1.2 - # via markdown-it-py -more-itertools==5.0.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -msgpack==1.0.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -myst-docutils[linkify]==0.18.1 - # via -r requirements/static/ci/docs.in -packaging==22.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # sphinx -portend==2.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -pycparser==2.21 ; python_version >= "3.9" - # via - # -c requirements/static/ci/py3.9/linux.txt - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/crypto.txt -pyenchant==3.2.2 - # via sphinxcontrib-spelling -pygments==2.17.2 - # via sphinx -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # croniter -pytz==2022.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # babel - # croniter - # tempora -pyyaml==6.0.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # myst-docutils -pyzmq==23.2.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/zeromq.txt -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # sphinx -six==1.16.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # cheroot - # more-itertools - # python-dateutil - # sphinxcontrib.httpdomain -snowballstemmer==2.1.0 - # via sphinx -sphinx==6.1.3 ; python_version >= "3.9" - # via - # -r requirements/static/ci/docs.in - # sphinxcontrib-spelling - # sphinxcontrib.httpdomain -sphinxcontrib-applehelp==1.0.2 - # via sphinx -sphinxcontrib-devhelp==1.0.2 - # via sphinx -sphinxcontrib-htmlhelp==2.0.1 - # via sphinx -sphinxcontrib-jsmath==1.0.1 - # via sphinx -sphinxcontrib-qthelp==1.0.3 - # via sphinx -sphinxcontrib-serializinghtml==1.1.5 - # via sphinx -sphinxcontrib-spelling==7.7.0 - # via -r requirements/static/ci/docs.in -sphinxcontrib.httpdomain==1.8.1 - # via -r requirements/static/ci/docs.in -tempora==4.1.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # portend -typing-extensions==4.8.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # myst-docutils -uc-micro-py==1.0.1 - # via linkify-it-py -urllib3==1.26.18 - # via - # -c requirements/static/ci/py3.9/linux.txt - # requests -zc.lockfile==1.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.9/freebsd-crypto.txt b/requirements/static/ci/py3.9/freebsd-crypto.txt deleted file mode 100644 index c0a7a18378f..00000000000 --- a/requirements/static/ci/py3.9/freebsd-crypto.txt +++ /dev/null @@ -1,10 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/freebsd-crypto.txt requirements/static/ci/crypto.in -# -m2crypto==0.38.0 - # via -r requirements/static/ci/crypto.in -pycryptodome==3.19.1 - # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.9/freebsd.txt b/requirements/static/ci/py3.9/freebsd.txt deleted file mode 100644 index c7a81642b26..00000000000 --- a/requirements/static/ci/py3.9/freebsd.txt +++ /dev/null @@ -1,557 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/freebsd.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/freebsd.in requirements/static/pkg/freebsd.in requirements/zeromq.txt -# -aiohttp==3.9.4 - # via etcd3-py -aiosignal==1.2.0 - # via aiohttp -apache-libcloud==2.5.0 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -asn1crypto==1.3.0 - # via - # certvalidator - # oscrypto -async-timeout==4.0.2 - # via aiohttp -attrs==23.1.0 - # via - # aiohttp - # jsonschema - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-system-statistics -backports.entry-points-selectable==1.1.0 - # via virtualenv -bcrypt==4.1.2 - # via - # -r requirements/static/ci/common.in - # paramiko -boto3==1.21.46 - # via - # -r requirements/static/ci/common.in - # moto -boto==2.49.0 - # via -r requirements/static/ci/common.in -botocore==1.24.46 - # via - # boto3 - # moto - # s3transfer -cachetools==3.1.0 - # via google-auth -cassandra-driver==3.24.0 - # via -r requirements/static/ci/common.in -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/base.txt - # kubernetes - # requests -certvalidator==0.11.1 - # via vcert -cffi==1.14.6 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/static/ci/common.in - # cryptography - # napalm - # pygit2 - # pynacl -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # requests -cheetah3==3.2.6.post2 - # via -r requirements/static/ci/common.in -cheroot==8.5.2 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/static/ci/common.in - # -r requirements/static/pkg/freebsd.in -ciscoconfparse==1.5.19 - # via napalm -click==7.1.2 - # via geomet -clustershell==1.8.3 - # via -r requirements/static/ci/common.in -colorama==0.4.3 - # via ciscoconfparse -contextvars==2.4 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/base.txt - # -r requirements/static/pkg/freebsd.in - # etcd3-py - # moto - # paramiko - # pyopenssl - # trustme - # vcert -distlib==0.3.2 - # via virtualenv -distro==1.5.0 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/base.txt - # -r requirements/static/pkg/freebsd.in - # pytest-skip-markers -dnspython==2.6.1 - # via - # -r requirements/static/ci/common.in - # ciscoconfparse - # python-etcd -docker==7.1.0 ; python_version >= "3.8" - # via -r requirements/pytest.txt -etcd3-py==0.1.6 - # via -r requirements/static/ci/common.in -exceptiongroup==1.0.4 - # via pytest -filelock==3.0.12 - # via virtualenv -flaky==3.8.1 - # via -r requirements/pytest.txt -frozenlist==1.3.0 - # via - # aiohttp - # aiosignal -future==0.18.3 - # via - # napalm - # textfsm -genshi==0.7.5 - # via -r requirements/static/ci/common.in -geomet==0.2.1.post1 - # via cassandra-driver -gitdb==4.0.7 - # via gitpython -gitpython==3.1.41 - # via -r requirements/static/ci/common.in -google-auth==2.1.0 - # via kubernetes -hglib==2.6.1 - # via -r requirements/static/ci/freebsd.in -idna==3.7 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # etcd3-py - # requests - # trustme - # yarl -immutables==0.15 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # contextvars -importlib-metadata==6.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/static/pkg/freebsd.in -iniconfig==1.0.1 - # via pytest -ipaddress==1.0.22 - # via kubernetes -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # jaraco.collections -jaraco.collections==3.4.0 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # jaraco.collections -jinja2==3.1.4 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/base.txt - # junos-eznc - # moto - # napalm -jmespath==1.0.1 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/base.txt - # -r requirements/static/ci/common.in - # boto3 - # botocore -jsonschema==3.2.0 - # via -r requirements/static/ci/common.in -junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" - # via - # -r requirements/static/ci/common.in - # napalm -jxmlease==1.0.1 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -kazoo==2.6.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via -r requirements/static/ci/common.in -keyring==5.7.1 - # via -r requirements/static/ci/common.in -kubernetes==3.0.0 - # via -r requirements/static/ci/common.in -libnacl==1.7.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via -r requirements/static/ci/common.in -looseversion==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/base.txt -lxml==4.9.1 - # via - # junos-eznc - # napalm - # ncclient -mako==1.2.2 - # via -r requirements/static/ci/common.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/base.txt - # jinja2 - # mako - # moto - # werkzeug -mercurial==6.0.1 - # via -r requirements/static/ci/freebsd.in -mock==5.1.0 - # via -r requirements/pytest.txt -more-itertools==5.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/pytest.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -moto==3.0.1 - # via -r requirements/static/ci/common.in -msgpack==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/base.txt - # pytest-salt-factories -multidict==6.0.2 - # via - # aiohttp - # yarl -napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" - # via -r requirements/static/ci/common.in -ncclient==0.6.4 - # via junos-eznc -netaddr==0.7.19 - # via - # junos-eznc - # napalm - # pyeapi -netmiko==3.2.0 - # via napalm -ntc-templates==1.4.1 - # via junos-eznc -oscrypto==1.2.0 - # via certvalidator -packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/base.txt - # pytest -paramiko==3.4.0 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -r requirements/static/ci/common.in - # junos-eznc - # napalm - # ncclient - # netmiko - # scp -passlib==1.7.4 - # via - # -r requirements/static/ci/common.in - # ciscoconfparse -pathspec==0.9.0 - # via yamllint -pathtools==0.1.2 - # via watchdog -platformdirs==2.2.0 - # via virtualenv -pluggy==1.4.0 - # via pytest -portend==2.4 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/base.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pyasn1-modules==0.2.4 - # via google-auth -pyasn1==0.4.8 - # via - # pyasn1-modules - # rsa -pycparser==2.21 ; python_version >= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/static/ci/common.in - # -r requirements/static/pkg/freebsd.in - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/crypto.txt -pyeapi==0.8.3 - # via napalm -pyfakefs==5.3.1 - # via -r requirements/pytest.txt -pygit2==1.13.1 - # via -r requirements/static/ci/freebsd.in -pyinotify==0.9.6 ; sys_platform != "win32" and sys_platform != "darwin" and platform_system != "openbsd" - # via -r requirements/static/ci/common.in -pynacl==1.5.0 - # via - # -r requirements/static/ci/common.in - # paramiko -pyopenssl==24.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/static/pkg/freebsd.in - # etcd3-py -pyparsing==3.0.9 - # via junos-eznc -pyrsistent==0.17.3 - # via jsonschema -pyserial==3.4 - # via - # junos-eznc - # netmiko -pytest-custom-exit-code==0.3.0 - # via -r requirements/pytest.txt -pytest-helpers-namespace==2021.4.29 - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities -pytest-httpserver==1.0.8 - # via -r requirements/pytest.txt -pytest-salt-factories==1.0.1 - # via -r requirements/pytest.txt -pytest-shell-utilities==1.8.0 ; python_version <= "3.9" - # via - # -r requirements/pytest.txt - # pytest-salt-factories -pytest-skip-markers==1.5.2 ; python_version >= "3.8" - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pytest-subtests==0.4.0 - # via -r requirements/pytest.txt -pytest-system-statistics==1.0.2 - # via pytest-salt-factories -pytest-timeout==2.3.1 - # via -r requirements/pytest.txt -pytest==8.1.1 - # via - # -r requirements/pytest.txt - # pytest-custom-exit-code - # pytest-helpers-namespace - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-subtests - # pytest-system-statistics - # pytest-timeout -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/static/pkg/freebsd.in - # botocore - # croniter - # kubernetes - # moto - # vcert -python-etcd==0.4.5 - # via -r requirements/static/ci/common.in -python-gnupg==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/static/pkg/freebsd.in -pytz==2022.1 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # croniter - # moto - # tempora -pyvmomi==6.7.1.2018.12 - # via -r requirements/static/ci/common.in -pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/base.txt - # clustershell - # junos-eznc - # kubernetes - # napalm - # pytest-salt-factories - # yamllint - # yamlordereddictloader -pyzmq==23.2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/zeromq.txt - # pytest-salt-factories -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/base.txt - # apache-libcloud - # docker - # etcd3-py - # kubernetes - # moto - # napalm - # pyvmomi - # responses - # vcert -responses==0.10.6 - # via moto -rfc3987==1.3.8 - # via -r requirements/static/ci/common.in -rsa==4.7.2 - # via google-auth -s3transfer==0.5.2 - # via boto3 -scp==0.13.2 - # via - # junos-eznc - # napalm - # netmiko -semantic-version==2.9.0 - # via etcd3-py -setproctitle==1.3.2 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/static/pkg/freebsd.in -six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # cassandra-driver - # cheroot - # etcd3-py - # genshi - # geomet - # jsonschema - # junos-eznc - # kazoo - # kubernetes - # more-itertools - # ncclient - # python-dateutil - # pyvmomi - # responses - # textfsm - # transitions - # vcert - # virtualenv - # websocket-client -smmap==4.0.0 - # via gitdb -sqlparse==0.5.0 - # via -r requirements/static/ci/common.in -strict-rfc3339==0.7 - # via -r requirements/static/ci/common.in -tempora==4.1.1 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # portend -terminal==0.4.0 - # via ntc-templates -textfsm==1.1.0 - # via - # -r requirements/static/ci/common.in - # napalm - # netmiko - # ntc-templates -timelib==0.2.5 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # -r requirements/static/pkg/freebsd.in -toml==0.10.2 - # via -r requirements/static/ci/common.in -tomli==2.0.1 - # via pytest -transitions==0.8.9 - # via junos-eznc -trustme==1.1.0 - # via -r requirements/pytest.txt -typing-extensions==4.8.0 - # via - # pytest-shell-utilities - # pytest-system-statistics -urllib3==1.26.18 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # botocore - # docker - # kubernetes - # python-etcd - # requests -vcert==0.7.4 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -virtualenv==20.7.2 - # via - # -r requirements/static/ci/common.in - # pytest-salt-factories -watchdog==0.10.3 - # via -r requirements/static/ci/common.in -websocket-client==0.40.0 - # via kubernetes -wempy==0.2.1 - # via -r requirements/static/ci/common.in -werkzeug==3.0.3 - # via - # moto - # pytest-httpserver -xmltodict==0.12.0 - # via moto -yamllint==1.26.3 - # via -r requirements/static/ci/freebsd.in -yamlordereddictloader==0.4.0 - # via junos-eznc -yarl==1.7.2 - # via aiohttp -zc.lockfile==1.4 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.9/freebsd.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.9/lint.txt b/requirements/static/ci/py3.9/lint.txt deleted file mode 100644 index d23f65943db..00000000000 --- a/requirements/static/ci/py3.9/lint.txt +++ /dev/null @@ -1,774 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/lint.txt requirements/base.txt requirements/static/ci/common.in requirements/static/ci/lint.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt -# -aiohttp==3.9.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # etcd3-py -aiosignal==1.2.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # aiohttp -apache-libcloud==2.5.0 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -apscheduler==3.6.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # python-telegram-bot -asn1crypto==1.3.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # certvalidator - # oscrypto -astroid==3.1.0 - # via pylint -async-timeout==4.0.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # aiohttp -attrs==23.1.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # aiohttp - # jsonschema -backports.entry-points-selectable==1.1.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # virtualenv -bcrypt==4.1.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # paramiko -boto3==1.21.46 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # moto -boto==2.49.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -botocore==1.24.46 - # via - # -c requirements/static/ci/py3.9/linux.txt - # boto3 - # moto - # s3transfer -cachetools==4.2.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # google-auth - # python-telegram-bot -cassandra-driver==3.23.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # kubernetes - # python-telegram-bot - # requests -certvalidator==0.11.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # vcert -cffi==1.14.6 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # cryptography - # napalm - # pygit2 - # pynacl -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # requests -cheetah3==3.2.6.post2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -cheroot==8.5.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # -r requirements/static/pkg/linux.in -ciscoconfparse==1.5.19 - # via - # -c requirements/static/ci/py3.9/linux.txt - # napalm -click==7.1.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # geomet -clustershell==1.8.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -colorama==0.4.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # ciscoconfparse -contextvars==2.4 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # -r requirements/static/pkg/linux.in - # etcd3-py - # moto - # paramiko - # pyopenssl - # vcert -dill==0.3.8 - # via pylint -distlib==0.3.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # virtualenv -distro==1.5.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -dnspython==2.6.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # ciscoconfparse - # python-etcd -docker==7.1.0 ; python_version >= "3.8" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/lint.in -etcd3-py==0.1.6 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -filelock==3.0.12 - # via - # -c requirements/static/ci/py3.9/linux.txt - # virtualenv -frozenlist==1.3.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # aiohttp - # aiosignal -future==0.18.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # napalm - # textfsm -genshi==0.7.5 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -geomet==0.1.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # cassandra-driver -gitdb==4.0.7 - # via - # -c requirements/static/ci/py3.9/linux.txt - # gitpython -gitpython==3.1.41 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -google-auth==2.1.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # kubernetes -hglib==2.6.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/linux.in -idna==3.7 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # etcd3-py - # requests - # yarl -immutables==0.15 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # contextvars -importlib-metadata==6.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/pkg/linux.in -ipaddress==1.0.22 - # via - # -c requirements/static/ci/py3.9/linux.txt - # kubernetes -isort==4.3.21 - # via pylint -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # jaraco.collections -jaraco.collections==3.4.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # jaraco.collections -jinja2==3.1.4 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # junos-eznc - # moto - # napalm -jmespath==1.0.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # -r requirements/static/ci/common.in - # boto3 - # botocore -jsonschema==3.2.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # napalm -jxmlease==1.0.1 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -kazoo==2.6.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -keyring==5.7.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -kubernetes==3.0.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -libnacl==1.7.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -looseversion==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -lxml==4.9.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc - # napalm - # ncclient -mako==1.2.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # jinja2 - # mako - # moto - # werkzeug -mccabe==0.6.1 - # via pylint -mercurial==6.0.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/linux.in -more-itertools==5.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -moto==3.0.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -msgpack==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -multidict==6.0.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # aiohttp - # yarl -napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -ncclient==0.6.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc -netaddr==0.7.19 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc - # napalm - # pyeapi -netmiko==3.2.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # napalm -ntc-templates==1.4.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc -oscrypto==1.2.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # certvalidator -packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -paramiko==3.4.0 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # junos-eznc - # napalm - # ncclient - # netmiko - # scp -passlib==1.7.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # ciscoconfparse -pathspec==0.9.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # yamllint -pathtools==0.1.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # watchdog -platformdirs==2.2.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # pylint - # virtualenv -portend==2.4 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt -pyasn1-modules==0.2.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # google-auth -pyasn1==0.4.8 - # via - # -c requirements/static/ci/py3.9/linux.txt - # pyasn1-modules - # rsa -pycparser==2.21 ; python_version >= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # -r requirements/static/pkg/linux.in - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/crypto.txt -pyeapi==0.8.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # napalm -pygit2==1.13.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/linux.in -pyiface==0.0.11 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/linux.in -pyinotify==0.9.6 ; sys_platform != "win32" and sys_platform != "darwin" and platform_system != "openbsd" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -pyjwt==2.4.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # twilio -pylint==3.1.0 - # via - # -r requirements/static/ci/lint.in - # saltpylint -pymysql==1.1.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/linux.in -pynacl==1.5.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # paramiko -pyopenssl==24.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/pkg/linux.in - # etcd3-py -pyparsing==3.0.9 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc -pyrsistent==0.17.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # jsonschema -pyserial==3.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc - # netmiko -python-consul==1.1.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/linux.in -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/pkg/linux.in - # botocore - # croniter - # kubernetes - # moto - # vcert -python-etcd==0.4.5 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -python-gnupg==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/pkg/linux.in -python-telegram-bot==13.7 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/linux.in -pytz==2022.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # apscheduler - # croniter - # moto - # python-telegram-bot - # tempora - # twilio -pyvmomi==6.7.1.2018.12 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # clustershell - # junos-eznc - # kubernetes - # napalm - # yamllint - # yamlordereddictloader -pyzmq==23.2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/zeromq.txt -redis-py-cluster==2.1.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/linux.in -redis==3.5.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # redis-py-cluster -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/base.txt - # apache-libcloud - # docker - # etcd3-py - # kubernetes - # moto - # napalm - # python-consul - # pyvmomi - # responses - # twilio - # vcert -responses==0.10.6 - # via - # -c requirements/static/ci/py3.9/linux.txt - # moto -rfc3987==1.3.8 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -rpm-vercmp==0.1.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/pkg/linux.in -rsa==4.7.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # google-auth -s3transfer==0.5.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # boto3 -saltpylint==2024.2.5 - # via -r requirements/static/ci/lint.in -scp==0.13.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc - # napalm - # netmiko -semantic-version==2.9.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # etcd3-py -setproctitle==1.3.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/pkg/linux.in -six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # apscheduler - # cassandra-driver - # cheroot - # etcd3-py - # genshi - # geomet - # jsonschema - # junos-eznc - # kazoo - # kubernetes - # more-itertools - # ncclient - # python-consul - # python-dateutil - # pyvmomi - # responses - # textfsm - # transitions - # vcert - # virtualenv - # websocket-client -slack-bolt==1.15.5 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/linux.in -slack-sdk==3.19.5 - # via - # -c requirements/static/ci/py3.9/linux.txt - # slack-bolt -smmap==4.0.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # gitdb -sqlparse==0.5.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -strict-rfc3339==0.7 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -tempora==4.1.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # portend -terminal==0.4.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # ntc-templates -textfsm==1.1.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # napalm - # netmiko - # ntc-templates -timelib==0.2.5 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/pkg/linux.in -toml==0.10.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in - # -r requirements/static/ci/lint.in -tomli==2.0.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # pylint -tomlkit==0.12.3 - # via pylint -tornado==6.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # python-telegram-bot -transitions==0.8.9 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc -twilio==7.9.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/linux.in -typing-extensions==4.8.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # astroid - # pylint -tzlocal==3.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # apscheduler -urllib3==1.26.18 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # botocore - # docker - # kubernetes - # python-etcd - # requests -vcert==0.7.4 ; sys_platform != "win32" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -virtualenv==20.7.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -watchdog==0.10.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -websocket-client==0.40.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # kubernetes -wempy==0.2.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/common.in -werkzeug==3.0.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # moto -xmltodict==0.12.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # moto -yamllint==1.26.3 - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/linux.in -yamlordereddictloader==0.4.0 - # via - # -c requirements/static/ci/py3.9/linux.txt - # junos-eznc -yarl==1.7.2 - # via - # -c requirements/static/ci/py3.9/linux.txt - # aiohttp -zc.lockfile==1.4 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -c requirements/static/ci/py3.9/linux.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.9/linux-crypto.txt b/requirements/static/ci/py3.9/linux-crypto.txt deleted file mode 100644 index ee8633b39fb..00000000000 --- a/requirements/static/ci/py3.9/linux-crypto.txt +++ /dev/null @@ -1,10 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/linux-crypto.txt requirements/static/ci/crypto.in -# -m2crypto==0.38.0 - # via -r requirements/static/ci/crypto.in -pycryptodome==3.19.1 - # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.9/linux.txt b/requirements/static/ci/py3.9/linux.txt deleted file mode 100644 index fd5f770ef99..00000000000 --- a/requirements/static/ci/py3.9/linux.txt +++ /dev/null @@ -1,596 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/linux.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt -# -aiohttp==3.9.4 - # via etcd3-py -aiosignal==1.2.0 - # via aiohttp -apache-libcloud==2.5.0 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -apscheduler==3.6.3 - # via python-telegram-bot -asn1crypto==1.3.0 - # via - # certvalidator - # oscrypto -async-timeout==4.0.2 - # via aiohttp -attrs==23.1.0 - # via - # aiohttp - # jsonschema - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-system-statistics -backports.entry-points-selectable==1.1.0 - # via virtualenv -bcrypt==4.1.2 - # via - # -r requirements/static/ci/common.in - # paramiko -boto3==1.21.46 - # via - # -r requirements/static/ci/common.in - # moto -boto==2.49.0 - # via -r requirements/static/ci/common.in -botocore==1.24.46 - # via - # boto3 - # moto - # s3transfer -cachetools==4.2.2 - # via - # google-auth - # python-telegram-bot -cassandra-driver==3.23.0 - # via -r requirements/static/ci/common.in -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/base.txt - # kubernetes - # python-telegram-bot - # requests -certvalidator==0.11.1 - # via vcert -cffi==1.14.6 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/static/ci/common.in - # cryptography - # napalm - # pygit2 - # pynacl -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # requests -cheetah3==3.2.6.post2 - # via -r requirements/static/ci/common.in -cheroot==8.5.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/static/ci/common.in - # -r requirements/static/pkg/linux.in -ciscoconfparse==1.5.19 - # via napalm -click==7.1.1 - # via geomet -clustershell==1.8.3 - # via -r requirements/static/ci/common.in -colorama==0.4.3 - # via ciscoconfparse -contextvars==2.4 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/base.txt - # -r requirements/static/pkg/linux.in - # etcd3-py - # moto - # paramiko - # pyopenssl - # trustme - # vcert -distlib==0.3.2 - # via virtualenv -distro==1.5.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/base.txt - # pytest-skip-markers -dnspython==2.6.1 - # via - # -r requirements/static/ci/common.in - # ciscoconfparse - # python-etcd -docker==7.1.0 ; python_version >= "3.8" - # via -r requirements/pytest.txt -etcd3-py==0.1.6 - # via -r requirements/static/ci/common.in -exceptiongroup==1.0.4 - # via pytest -filelock==3.0.12 - # via virtualenv -flaky==3.8.1 - # via -r requirements/pytest.txt -frozenlist==1.3.0 - # via - # aiohttp - # aiosignal -future==0.18.3 - # via - # napalm - # textfsm -genshi==0.7.5 - # via -r requirements/static/ci/common.in -geomet==0.1.2 - # via cassandra-driver -gitdb==4.0.7 - # via gitpython -gitpython==3.1.41 - # via -r requirements/static/ci/common.in -google-auth==2.1.0 - # via kubernetes -hglib==2.6.1 - # via -r requirements/static/ci/linux.in -idna==3.7 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # etcd3-py - # requests - # trustme - # yarl -immutables==0.15 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # contextvars -importlib-metadata==6.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/static/pkg/linux.in -iniconfig==1.0.1 - # via pytest -ipaddress==1.0.22 - # via kubernetes -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # jaraco.collections -jaraco.collections==3.4.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # jaraco.collections -jinja2==3.1.4 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/base.txt - # junos-eznc - # moto - # napalm -jmespath==1.0.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/base.txt - # -r requirements/static/ci/common.in - # boto3 - # botocore -jsonschema==3.2.0 - # via -r requirements/static/ci/common.in -junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" - # via - # -r requirements/static/ci/common.in - # napalm -jxmlease==1.0.1 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -kazoo==2.6.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via -r requirements/static/ci/common.in -keyring==5.7.1 - # via -r requirements/static/ci/common.in -kubernetes==3.0.0 - # via -r requirements/static/ci/common.in -libnacl==1.7.1 ; sys_platform != "win32" and sys_platform != "darwin" - # via -r requirements/static/ci/common.in -looseversion==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/base.txt -lxml==4.9.1 - # via - # junos-eznc - # napalm - # ncclient -mako==1.2.2 - # via -r requirements/static/ci/common.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/base.txt - # jinja2 - # mako - # moto - # werkzeug -mercurial==6.0.1 - # via -r requirements/static/ci/linux.in -mock==5.1.0 - # via -r requirements/pytest.txt -more-itertools==5.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/pytest.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -moto==3.0.1 - # via -r requirements/static/ci/common.in -msgpack==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/base.txt - # pytest-salt-factories -multidict==6.0.2 - # via - # aiohttp - # yarl -napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" - # via -r requirements/static/ci/common.in -ncclient==0.6.4 - # via junos-eznc -netaddr==0.7.19 - # via - # junos-eznc - # napalm - # pyeapi -netmiko==3.2.0 - # via napalm -ntc-templates==1.4.1 - # via junos-eznc -oscrypto==1.2.0 - # via certvalidator -packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/base.txt - # pytest -paramiko==3.4.0 ; sys_platform != "win32" and sys_platform != "darwin" - # via - # -r requirements/static/ci/common.in - # junos-eznc - # napalm - # ncclient - # netmiko - # scp -passlib==1.7.4 - # via - # -r requirements/static/ci/common.in - # ciscoconfparse -pathspec==0.9.0 - # via yamllint -pathtools==0.1.2 - # via watchdog -platformdirs==2.2.0 - # via virtualenv -pluggy==1.4.0 - # via pytest -portend==2.4 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/base.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pyasn1-modules==0.2.4 - # via google-auth -pyasn1==0.4.8 - # via - # pyasn1-modules - # rsa -pycparser==2.21 ; python_version >= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/static/ci/common.in - # -r requirements/static/pkg/linux.in - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/crypto.txt -pyeapi==0.8.3 - # via napalm -pyfakefs==5.3.1 - # via -r requirements/pytest.txt -pygit2==1.13.1 - # via -r requirements/static/ci/linux.in -pyiface==0.0.11 - # via -r requirements/static/ci/linux.in -pyinotify==0.9.6 ; sys_platform != "win32" and sys_platform != "darwin" and platform_system != "openbsd" - # via -r requirements/static/ci/common.in -pyjwt==2.4.0 - # via twilio -pymysql==1.1.1 - # via -r requirements/static/ci/linux.in -pynacl==1.5.0 - # via - # -r requirements/static/ci/common.in - # paramiko -pyopenssl==24.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/static/pkg/linux.in - # etcd3-py -pyparsing==3.0.9 - # via junos-eznc -pyrsistent==0.17.3 - # via jsonschema -pyserial==3.4 - # via - # junos-eznc - # netmiko -pytest-custom-exit-code==0.3.0 - # via -r requirements/pytest.txt -pytest-helpers-namespace==2021.4.29 - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities -pytest-httpserver==1.0.8 - # via -r requirements/pytest.txt -pytest-salt-factories==1.0.1 - # via -r requirements/pytest.txt -pytest-shell-utilities==1.8.0 ; python_version <= "3.9" - # via - # -r requirements/pytest.txt - # pytest-salt-factories -pytest-skip-markers==1.5.2 ; python_version >= "3.8" - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pytest-subtests==0.4.0 - # via -r requirements/pytest.txt -pytest-system-statistics==1.0.2 - # via pytest-salt-factories -pytest-timeout==2.3.1 - # via -r requirements/pytest.txt -pytest==8.1.1 - # via - # -r requirements/pytest.txt - # pytest-custom-exit-code - # pytest-helpers-namespace - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-subtests - # pytest-system-statistics - # pytest-timeout -python-consul==1.1.0 - # via -r requirements/static/ci/linux.in -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/static/pkg/linux.in - # botocore - # croniter - # kubernetes - # moto - # vcert -python-etcd==0.4.5 - # via -r requirements/static/ci/common.in -python-gnupg==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/static/pkg/linux.in -python-telegram-bot==13.7 - # via -r requirements/static/ci/linux.in -pytz==2022.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # apscheduler - # croniter - # moto - # python-telegram-bot - # tempora - # twilio -pyvmomi==6.7.1.2018.12 - # via -r requirements/static/ci/common.in -pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/base.txt - # clustershell - # junos-eznc - # kubernetes - # napalm - # pytest-salt-factories - # yamllint - # yamlordereddictloader -pyzmq==23.2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/zeromq.txt - # pytest-salt-factories -redis-py-cluster==2.1.3 - # via -r requirements/static/ci/linux.in -redis==3.5.3 - # via redis-py-cluster -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/base.txt - # apache-libcloud - # docker - # etcd3-py - # kubernetes - # moto - # napalm - # python-consul - # pyvmomi - # responses - # twilio - # vcert -responses==0.10.6 - # via moto -rfc3987==1.3.8 - # via -r requirements/static/ci/common.in -rpm-vercmp==0.1.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/static/pkg/linux.in -rsa==4.7.2 - # via google-auth -s3transfer==0.5.2 - # via boto3 -scp==0.13.2 - # via - # junos-eznc - # napalm - # netmiko -semantic-version==2.9.0 - # via etcd3-py -setproctitle==1.3.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/static/pkg/linux.in -six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # apscheduler - # cassandra-driver - # cheroot - # etcd3-py - # genshi - # geomet - # jsonschema - # junos-eznc - # kazoo - # kubernetes - # more-itertools - # ncclient - # python-consul - # python-dateutil - # pyvmomi - # responses - # textfsm - # transitions - # vcert - # virtualenv - # websocket-client -slack-bolt==1.15.5 - # via -r requirements/static/ci/linux.in -slack-sdk==3.19.5 - # via slack-bolt -smmap==4.0.0 - # via gitdb -sqlparse==0.5.0 - # via -r requirements/static/ci/common.in -strict-rfc3339==0.7 - # via -r requirements/static/ci/common.in -tempora==4.1.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # portend -terminal==0.4.0 - # via ntc-templates -textfsm==1.1.0 - # via - # -r requirements/static/ci/common.in - # napalm - # netmiko - # ntc-templates -timelib==0.2.5 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/static/pkg/linux.in -toml==0.10.2 - # via -r requirements/static/ci/common.in -tomli==2.0.1 - # via pytest -tornado==6.1 - # via python-telegram-bot -transitions==0.8.9 - # via junos-eznc -trustme==1.1.0 - # via -r requirements/pytest.txt -twilio==7.9.2 - # via -r requirements/static/ci/linux.in -typing-extensions==4.8.0 - # via - # pytest-shell-utilities - # pytest-system-statistics -tzlocal==3.0 - # via apscheduler -urllib3==1.26.18 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # botocore - # docker - # kubernetes - # python-etcd - # requests -vcert==0.7.4 ; sys_platform != "win32" - # via -r requirements/static/ci/common.in -virtualenv==20.7.2 - # via - # -r requirements/static/ci/common.in - # pytest-salt-factories -watchdog==0.10.3 - # via -r requirements/static/ci/common.in -websocket-client==0.40.0 - # via kubernetes -wempy==0.2.1 - # via -r requirements/static/ci/common.in -werkzeug==3.0.3 - # via - # moto - # pytest-httpserver -xmltodict==0.12.0 - # via moto -yamllint==1.26.3 - # via -r requirements/static/ci/linux.in -yamlordereddictloader==0.4.0 - # via junos-eznc -yarl==1.7.2 - # via aiohttp -zc.lockfile==1.4 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/ci/py3.9/tools-virustotal.txt b/requirements/static/ci/py3.9/tools-virustotal.txt deleted file mode 100644 index 371670a183b..00000000000 --- a/requirements/static/ci/py3.9/tools-virustotal.txt +++ /dev/null @@ -1,28 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --output-file=requirements/static/ci/py3.9/tools-virustotal.txt requirements/static/ci/tools-virustotal.in -# -certifi==2023.7.22 - # via - # -c requirements/static/ci/../ci/py3.9/tools.txt - # requests -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../ci/py3.9/tools.txt - # requests -idna==3.7 - # via - # -c requirements/static/ci/../ci/py3.9/tools.txt - # requests -requests==2.31.0 - # via - # -c requirements/static/ci/../ci/py3.9/tools.txt - # virustotal3 -urllib3==1.26.18 - # via - # -c requirements/static/ci/../ci/py3.9/tools.txt - # requests -virustotal3==1.0.8 - # via -r requirements/static/ci/tools-virustotal.in diff --git a/requirements/static/ci/py3.9/tools.txt b/requirements/static/ci/py3.9/tools.txt deleted file mode 100644 index ce108ecbe21..00000000000 --- a/requirements/static/ci/py3.9/tools.txt +++ /dev/null @@ -1,67 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/tools.txt requirements/static/ci/tools.in -# -annotated-types==0.6.0 - # via pydantic -attrs==20.3.0 - # via - # -r requirements/static/ci/tools.in - # python-tools-scripts -boto3==1.26.147 - # via -r requirements/static/ci/tools.in -botocore==1.29.147 - # via - # boto3 - # s3transfer -certifi==2023.7.22 - # via requests -charset-normalizer==3.2.0 - # via requests -idna==3.7 - # via requests -jinja2==3.1.4 - # via -r requirements/static/ci/tools.in -jmespath==1.0.1 - # via - # boto3 - # botocore -markdown-it-py==2.2.0 - # via rich -markupsafe==2.1.2 - # via jinja2 -mdurl==0.1.2 - # via markdown-it-py -packaging==22.0 - # via -r requirements/static/ci/tools.in -pydantic-core==2.16.2 - # via pydantic -pydantic==2.6.1 - # via python-tools-scripts -pygments==2.17.2 - # via rich -python-dateutil==2.8.1 - # via botocore -python-tools-scripts==0.20.0 - # via -r requirements/static/ci/tools.in -pyyaml==6.0.1 - # via -r requirements/static/ci/tools.in -requests==2.31.0 - # via python-tools-scripts -rich==13.3.5 - # via python-tools-scripts -s3transfer==0.6.1 - # via boto3 -six==1.16.0 - # via python-dateutil -typing-extensions==4.9.0 - # via - # pydantic - # pydantic-core - # python-tools-scripts -urllib3==1.26.18 - # via - # botocore - # requests diff --git a/requirements/static/ci/py3.9/windows-crypto.txt b/requirements/static/ci/py3.9/windows-crypto.txt deleted file mode 100644 index f86205bbf2e..00000000000 --- a/requirements/static/ci/py3.9/windows-crypto.txt +++ /dev/null @@ -1,10 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/windows-crypto.txt requirements/static/ci/crypto.in -# -m2crypto==0.38.0 - # via -r requirements/static/ci/crypto.in -pycryptodome==3.19.1 - # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.9/windows.txt b/requirements/static/ci/py3.9/windows.txt deleted file mode 100644 index 5c9bd25c8ef..00000000000 --- a/requirements/static/ci/py3.9/windows.txt +++ /dev/null @@ -1,513 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/windows.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/windows.in requirements/static/pkg/windows.in requirements/windows.txt -# -aiohttp==3.9.4 - # via etcd3-py -aiosignal==1.2.0 - # via aiohttp -async-timeout==4.0.2 - # via aiohttp -attrs==23.1.0 - # via - # aiohttp - # jsonschema - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-system-statistics -backports.entry-points-selectable==1.1.0 - # via virtualenv -bcrypt==4.1.2 - # via -r requirements/static/ci/common.in -boto3==1.21.46 - # via - # -r requirements/static/ci/common.in - # moto -boto==2.49.0 - # via -r requirements/static/ci/common.in -botocore==1.24.46 - # via - # boto3 - # moto - # s3transfer -cachetools==3.1.0 - # via google-auth -cassandra-driver==3.23.0 - # via -r requirements/static/ci/common.in -certifi==2023.07.22 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/base.txt - # kubernetes - # requests -cffi==1.14.6 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/static/ci/common.in - # -r requirements/windows.txt - # clr-loader - # cryptography - # pygit2 - # pynacl -charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # requests -cheetah3==3.2.6.post2 - # via -r requirements/static/ci/common.in -cheroot==8.5.2 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # cherrypy -cherrypy==18.6.1 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/static/ci/common.in - # -r requirements/windows.txt -click==7.1.2 - # via geomet -clr-loader==0.2.4 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # pythonnet -clustershell==1.8.3 - # via -r requirements/static/ci/common.in -colorama==0.4.1 - # via pytest -contextvars==2.4 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/base.txt -cryptography==42.0.5 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/base.txt - # -r requirements/windows.txt - # etcd3-py - # moto - # pyopenssl - # requests-ntlm - # trustme -distlib==0.3.2 - # via virtualenv -distro==1.5.0 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/base.txt - # pytest-skip-markers -dmidecode==0.9.0 - # via -r requirements/static/ci/windows.in -dnspython==2.6.1 - # via - # -r requirements/static/ci/common.in - # python-etcd -docker==7.1.0 ; python_version >= "3.8" - # via -r requirements/pytest.txt -etcd3-py==0.1.6 - # via -r requirements/static/ci/common.in -exceptiongroup==1.0.4 - # via pytest -filelock==3.0.12 - # via virtualenv -flaky==3.8.1 - # via -r requirements/pytest.txt -frozenlist==1.3.0 - # via - # aiohttp - # aiosignal -future==1.0.0 - # via textfsm -genshi==0.7.5 - # via -r requirements/static/ci/common.in -geomet==0.1.2 - # via cassandra-driver -gitdb==4.0.7 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # gitpython -gitpython==3.1.41 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/static/ci/common.in - # -r requirements/windows.txt -google-auth==2.1.0 - # via kubernetes -idna==3.7 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # etcd3-py - # requests - # trustme - # yarl -immutables==0.15 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # contextvars -importlib-metadata==6.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/windows.txt -iniconfig==1.0.1 - # via pytest -ioloop==0.1a0 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/windows.txt -ipaddress==1.0.22 - # via kubernetes -jaraco.classes==3.2.1 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # jaraco.collections -jaraco.collections==3.3.0 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # cherrypy -jaraco.functools==2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # jaraco.collections -jinja2==3.1.4 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/base.txt - # moto -jmespath==1.0.1 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/base.txt - # -r requirements/static/ci/common.in - # boto3 - # botocore -jsonschema==3.2.0 - # via -r requirements/static/ci/common.in -keyring==5.7.1 - # via -r requirements/static/ci/common.in -kubernetes==3.0.0 - # via -r requirements/static/ci/common.in -looseversion==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/base.txt -lxml==4.9.1 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/windows.txt -mako==1.2.2 - # via -r requirements/static/ci/common.in -markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/base.txt - # jinja2 - # mako - # moto - # werkzeug -mock==5.1.0 - # via -r requirements/pytest.txt -more-itertools==8.2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/pytest.txt - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -moto==3.0.1 - # via -r requirements/static/ci/common.in -msgpack==1.0.2 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/base.txt - # pytest-salt-factories -multidict==6.0.2 - # via - # aiohttp - # yarl -ntlm-auth==1.5.0 - # via requests-ntlm -packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/base.txt - # pytest -passlib==1.7.4 - # via -r requirements/static/ci/common.in -patch==1.16 - # via -r requirements/static/ci/windows.in -pathspec==0.9.0 - # via yamllint -pathtools==0.1.2 - # via watchdog -platformdirs==2.2.0 - # via virtualenv -pluggy==1.4.0 - # via pytest -portend==2.6 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/base.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pyasn1-modules==0.2.4 - # via google-auth -pyasn1==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/windows.txt - # pyasn1-modules - # rsa -pycparser==2.21 ; python_version >= "3.9" - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/static/ci/common.in - # -r requirements/windows.txt - # cffi -pycryptodomex==3.19.1 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/crypto.txt -pyfakefs==5.3.1 - # via -r requirements/pytest.txt -pygit2==1.13.1 - # via -r requirements/static/ci/windows.in -pymssql==2.3.0 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/windows.txt -pynacl==1.5.0 - # via -r requirements/static/ci/common.in -pyopenssl==24.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/windows.txt - # etcd3-py -pyrsistent==0.17.3 - # via jsonschema -pytest-custom-exit-code==0.3.0 - # via -r requirements/pytest.txt -pytest-helpers-namespace==2021.4.29 - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities -pytest-httpserver==1.0.8 - # via -r requirements/pytest.txt -pytest-salt-factories==1.0.1 - # via -r requirements/pytest.txt -pytest-shell-utilities==1.8.0 ; python_version <= "3.9" - # via - # -r requirements/pytest.txt - # pytest-salt-factories -pytest-skip-markers==1.5.2 ; python_version >= "3.8" - # via - # -r requirements/pytest.txt - # pytest-salt-factories - # pytest-shell-utilities - # pytest-system-statistics -pytest-subtests==0.4.0 - # via -r requirements/pytest.txt -pytest-system-statistics==1.0.2 - # via pytest-salt-factories -pytest-timeout==2.3.1 - # via -r requirements/pytest.txt -pytest==8.1.1 - # via - # -r requirements/pytest.txt - # pytest-custom-exit-code - # pytest-helpers-namespace - # pytest-salt-factories - # pytest-shell-utilities - # pytest-skip-markers - # pytest-subtests - # pytest-system-statistics - # pytest-timeout -python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/windows.txt - # botocore - # kubernetes - # moto -python-etcd==0.4.5 - # via -r requirements/static/ci/common.in -python-gnupg==0.4.8 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/windows.txt -pythonnet==3.0.1 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/windows.txt -pytz==2022.1 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # moto - # tempora -pyvmomi==6.7.1.2018.12 - # via -r requirements/static/ci/common.in -pywin32==305 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/windows.txt - # cherrypy - # docker - # pytest-skip-markers - # wmi -pywinrm==0.4.1 - # via -r requirements/static/ci/windows.in -pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/base.txt - # clustershell - # kubernetes - # pytest-salt-factories - # yamllint -pyzmq==25.0.2 ; sys_platform == "win32" - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/zeromq.txt - # pytest-salt-factories -requests-ntlm==1.1.0 - # via pywinrm -requests==2.31.0 ; python_version < "3.10" - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/base.txt - # -r requirements/windows.txt - # docker - # etcd3-py - # kubernetes - # moto - # pyvmomi - # pywinrm - # requests-ntlm - # responses -responses==0.10.6 - # via moto -rfc3987==1.3.8 - # via -r requirements/static/ci/common.in -rsa==4.7.2 - # via google-auth -s3transfer==0.5.2 - # via boto3 -sed==0.3.1 - # via -r requirements/static/ci/windows.in -semantic-version==2.9.0 - # via etcd3-py -setproctitle==1.3.2 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/windows.txt -six==1.15.0 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # cassandra-driver - # cheroot - # etcd3-py - # genshi - # geomet - # jsonschema - # kubernetes - # python-dateutil - # pyvmomi - # pywinrm - # responses - # textfsm - # virtualenv - # websocket-client -smmap==4.0.0 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # gitdb -sqlparse==0.5.0 - # via -r requirements/static/ci/common.in -strict-rfc3339==0.7 - # via -r requirements/static/ci/common.in -tempora==4.1.1 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # portend -textfsm==1.1.3 - # via -r requirements/static/ci/common.in -timelib==0.2.5 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/windows.txt -toml==0.10.2 - # via -r requirements/static/ci/common.in -tomli==2.0.1 - # via pytest -trustme==1.1.0 - # via -r requirements/pytest.txt -typing-extensions==4.2.0 - # via - # pytest-shell-utilities - # pytest-system-statistics -urllib3==1.26.18 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/windows.txt - # botocore - # docker - # kubernetes - # python-etcd - # requests -virtualenv==20.7.2 - # via - # -r requirements/static/ci/common.in - # pytest-salt-factories -watchdog==0.10.3 - # via -r requirements/static/ci/common.in -websocket-client==0.40.0 - # via kubernetes -wempy==0.2.1 - # via -r requirements/static/ci/common.in -werkzeug==3.0.3 - # via - # moto - # pytest-httpserver -wheel==0.38.4 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/windows.txt -wmi==1.5.1 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/windows.txt -xmltodict==0.13.0 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # -r requirements/windows.txt - # moto - # pywinrm -yamllint==1.26.3 - # via -r requirements/static/ci/windows.in -yarl==1.7.2 - # via aiohttp -zc.lockfile==2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # cherrypy -zipp==3.5.0 - # via - # -c requirements/static/ci/../pkg/py3.9/windows.txt - # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/pkg/py3.7/freebsd.txt b/requirements/static/pkg/py3.7/freebsd.txt deleted file mode 100644 index 5140b00211e..00000000000 --- a/requirements/static/pkg/py3.7/freebsd.txt +++ /dev/null @@ -1,116 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/pkg/py3.7/freebsd.txt requirements/base.txt requirements/static/pkg/freebsd.in requirements/zeromq.txt -# -certifi==2023.07.22 ; python_version < "3.10" - # via - # -r requirements/base.txt - # requests -cffi==1.14.6 - # via cryptography -charset-normalizer==3.2.0 - # via requests -cheroot==8.5.2 - # via cherrypy -cherrypy==18.6.1 - # via -r requirements/static/pkg/freebsd.in -contextvars==2.4 - # via -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via -r requirements/base.txt -cryptography==42.0.5 - # via - # -r requirements/base.txt - # -r requirements/static/pkg/freebsd.in - # pyopenssl -distro==1.5.0 - # via - # -r requirements/base.txt - # -r requirements/static/pkg/freebsd.in -idna==3.7 - # via requests -immutables==0.15 - # via contextvars -importlib-metadata==4.6.4 - # via -r requirements/static/pkg/freebsd.in -jaraco.classes==3.2.1 - # via jaraco.collections -jaraco.collections==3.4.0 - # via cherrypy -jaraco.functools==2.0 - # via - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via jaraco.collections -jinja2==3.1.3 - # via -r requirements/base.txt -jmespath==1.0.1 - # via -r requirements/base.txt -looseversion==1.0.2 - # via -r requirements/base.txt -markupsafe==2.1.2 - # via - # -r requirements/base.txt - # jinja2 -more-itertools==5.0.0 - # via - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -msgpack==1.0.2 - # via -r requirements/base.txt -packaging==22.0 - # via -r requirements/base.txt -portend==2.4 - # via cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via -r requirements/base.txt -pycparser==2.17 - # via cffi -pycryptodomex==3.19.1 - # via -r requirements/crypto.txt -pyopenssl==24.0.0 - # via -r requirements/static/pkg/freebsd.in -python-dateutil==2.8.1 - # via - # -r requirements/static/pkg/freebsd.in - # croniter -python-gnupg==0.4.8 - # via -r requirements/static/pkg/freebsd.in -pytz==2022.1 - # via - # croniter - # tempora -pyyaml==6.0.1 - # via -r requirements/base.txt -pyzmq==23.2.0 - # via -r requirements/zeromq.txt -requests==2.31.0 ; python_version < "3.10" - # via -r requirements/base.txt -setproctitle==1.3.2 - # via -r requirements/static/pkg/freebsd.in -six==1.16.0 - # via - # cheroot - # more-itertools - # python-dateutil -tempora==4.1.1 - # via portend -timelib==0.2.5 - # via -r requirements/static/pkg/freebsd.in -typing-extensions==3.10.0.0 - # via importlib-metadata -urllib3==1.26.18 - # via requests -zc.lockfile==1.4 - # via cherrypy -zipp==3.5.0 - # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/pkg/py3.7/linux.txt b/requirements/static/pkg/py3.7/linux.txt deleted file mode 100644 index 41e6230e660..00000000000 --- a/requirements/static/pkg/py3.7/linux.txt +++ /dev/null @@ -1,116 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/pkg/py3.7/linux.txt requirements/base.txt requirements/static/pkg/linux.in requirements/zeromq.txt -# -certifi==2023.07.22 ; python_version < "3.10" - # via - # -r requirements/base.txt - # requests -cffi==1.14.6 - # via cryptography -charset-normalizer==3.2.0 - # via requests -cheroot==8.5.2 - # via cherrypy -cherrypy==18.6.1 - # via -r requirements/static/pkg/linux.in -contextvars==2.4 - # via -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via -r requirements/base.txt -cryptography==42.0.5 - # via - # -r requirements/base.txt - # -r requirements/static/pkg/linux.in - # pyopenssl -distro==1.5.0 - # via -r requirements/base.txt -idna==3.7 - # via requests -immutables==0.15 - # via contextvars -importlib-metadata==4.6.4 - # via -r requirements/static/pkg/linux.in -jaraco.classes==3.2.1 - # via jaraco.collections -jaraco.collections==3.4.0 - # via cherrypy -jaraco.functools==2.0 - # via - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via jaraco.collections -jinja2==3.1.3 - # via -r requirements/base.txt -jmespath==1.0.1 - # via -r requirements/base.txt -looseversion==1.0.2 - # via -r requirements/base.txt -markupsafe==2.1.2 - # via - # -r requirements/base.txt - # jinja2 -more-itertools==5.0.0 - # via - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -msgpack==1.0.2 - # via -r requirements/base.txt -packaging==22.0 - # via -r requirements/base.txt -portend==2.4 - # via cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via -r requirements/base.txt -pycparser==2.17 - # via cffi -pycryptodomex==3.19.1 - # via -r requirements/crypto.txt -pyopenssl==24.0.0 - # via -r requirements/static/pkg/linux.in -python-dateutil==2.8.1 - # via - # -r requirements/static/pkg/linux.in - # croniter -python-gnupg==0.4.8 - # via -r requirements/static/pkg/linux.in -pytz==2022.1 - # via - # croniter - # tempora -pyyaml==6.0.1 - # via -r requirements/base.txt -pyzmq==23.2.0 - # via -r requirements/zeromq.txt -requests==2.31.0 ; python_version < "3.10" - # via -r requirements/base.txt -rpm-vercmp==0.1.2 - # via -r requirements/static/pkg/linux.in -setproctitle==1.3.2 - # via -r requirements/static/pkg/linux.in -six==1.16.0 - # via - # cheroot - # more-itertools - # python-dateutil -tempora==4.1.1 - # via portend -timelib==0.2.5 - # via -r requirements/static/pkg/linux.in -typing-extensions==3.10.0.0 - # via importlib-metadata -urllib3==1.26.18 - # via requests -zc.lockfile==1.4 - # via cherrypy -zipp==3.5.0 - # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/pkg/py3.7/windows.txt b/requirements/static/pkg/py3.7/windows.txt deleted file mode 100644 index 09b5efed8d4..00000000000 --- a/requirements/static/pkg/py3.7/windows.txt +++ /dev/null @@ -1,147 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/pkg/py3.7/windows.txt requirements/static/pkg/windows.in requirements/windows.txt -# -certifi==2023.07.22 ; python_version < "3.10" - # via - # -r requirements/base.txt - # requests -cffi==1.14.6 - # via - # -r requirements/windows.txt - # clr-loader - # cryptography -charset-normalizer==3.2.0 - # via requests -cheroot==8.5.2 - # via cherrypy -cherrypy==18.6.1 - # via -r requirements/windows.txt -clr-loader==0.2.4 - # via pythonnet -contextvars==2.4 - # via -r requirements/base.txt -cryptography==42.0.5 - # via - # -r requirements/base.txt - # -r requirements/windows.txt - # pyopenssl -distro==1.5.0 - # via -r requirements/base.txt -gitdb==4.0.7 - # via gitpython -gitpython==3.1.41 - # via -r requirements/windows.txt -idna==3.7 - # via requests -immutables==0.15 - # via contextvars -importlib-metadata==4.6.4 - # via -r requirements/windows.txt -ioloop==0.1a0 - # via -r requirements/windows.txt -jaraco.classes==3.2.1 - # via jaraco.collections -jaraco.collections==3.3.0 - # via cherrypy -jaraco.functools==2.0 - # via - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.0 - # via jaraco.collections -jinja2==3.1.3 - # via -r requirements/base.txt -jmespath==1.0.1 - # via -r requirements/base.txt -looseversion==1.0.2 - # via -r requirements/base.txt -lxml==4.9.1 - # via -r requirements/windows.txt -markupsafe==2.1.2 - # via - # -r requirements/base.txt - # jinja2 -more-itertools==8.2.0 - # via - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -msgpack==1.0.2 - # via -r requirements/base.txt -packaging==22.0 - # via -r requirements/base.txt -portend==2.6 - # via cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via -r requirements/base.txt -pyasn1==0.4.8 - # via -r requirements/windows.txt -pycparser==2.21 - # via - # -r requirements/windows.txt - # cffi -pycryptodomex==3.19.1 - # via -r requirements/crypto.txt -pymssql==2.3.0 - # via -r requirements/windows.txt -pyopenssl==24.0.0 - # via -r requirements/windows.txt -python-dateutil==2.8.1 - # via -r requirements/windows.txt -python-gnupg==0.4.8 - # via -r requirements/windows.txt -pythonnet==3.0.1 - # via -r requirements/windows.txt -pytz==2022.1 - # via tempora -pywin32==305 - # via - # -r requirements/windows.txt - # cherrypy - # wmi -pyyaml==6.0.1 - # via -r requirements/base.txt -pyzmq==25.0.2 ; sys_platform == "win32" - # via -r requirements/zeromq.txt -requests==2.31.0 ; python_version < "3.10" - # via - # -r requirements/base.txt - # -r requirements/windows.txt -setproctitle==1.3.2 - # via -r requirements/windows.txt -six==1.15.0 - # via - # cheroot - # python-dateutil -smmap==4.0.0 - # via gitdb -tempora==4.1.1 - # via portend -timelib==0.2.5 - # via -r requirements/windows.txt -typing-extensions==4.4.0 - # via - # gitpython - # importlib-metadata -urllib3==1.26.18 - # via - # -r requirements/windows.txt - # requests -wheel==0.38.4 - # via -r requirements/windows.txt -wmi==1.5.1 - # via -r requirements/windows.txt -xmltodict==0.13.0 - # via -r requirements/windows.txt -zc.lockfile==2.0 - # via cherrypy -zipp==3.5.0 - # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/pkg/py3.8/freebsd.txt b/requirements/static/pkg/py3.8/freebsd.txt deleted file mode 100644 index bdc6fa9ee05..00000000000 --- a/requirements/static/pkg/py3.8/freebsd.txt +++ /dev/null @@ -1,114 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/pkg/py3.8/freebsd.txt requirements/base.txt requirements/static/pkg/freebsd.in requirements/zeromq.txt -# -certifi==2023.07.22 ; python_version < "3.10" - # via - # -r requirements/base.txt - # requests -cffi==1.14.6 - # via cryptography -charset-normalizer==3.2.0 - # via requests -cheroot==8.5.2 - # via cherrypy -cherrypy==18.6.1 - # via -r requirements/static/pkg/freebsd.in -contextvars==2.4 - # via -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via -r requirements/base.txt -cryptography==42.0.5 - # via - # -r requirements/base.txt - # -r requirements/static/pkg/freebsd.in - # pyopenssl -distro==1.5.0 - # via - # -r requirements/base.txt - # -r requirements/static/pkg/freebsd.in -idna==3.7 - # via requests -immutables==0.15 - # via contextvars -importlib-metadata==4.6.4 - # via -r requirements/static/pkg/freebsd.in -jaraco.classes==3.2.1 - # via jaraco.collections -jaraco.collections==3.4.0 - # via cherrypy -jaraco.functools==2.0 - # via - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via jaraco.collections -jinja2==3.1.4 - # via -r requirements/base.txt -jmespath==1.0.1 - # via -r requirements/base.txt -looseversion==1.0.2 - # via -r requirements/base.txt -markupsafe==2.1.2 - # via - # -r requirements/base.txt - # jinja2 -more-itertools==5.0.0 - # via - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -msgpack==1.0.2 - # via -r requirements/base.txt -packaging==22.0 - # via -r requirements/base.txt -portend==2.4 - # via cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via -r requirements/base.txt -pycparser==2.17 - # via cffi -pycryptodomex==3.19.1 - # via -r requirements/crypto.txt -pyopenssl==24.0.0 - # via -r requirements/static/pkg/freebsd.in -python-dateutil==2.8.1 - # via - # -r requirements/static/pkg/freebsd.in - # croniter -python-gnupg==0.4.8 - # via -r requirements/static/pkg/freebsd.in -pytz==2022.1 - # via - # croniter - # tempora -pyyaml==6.0.1 - # via -r requirements/base.txt -pyzmq==23.2.0 - # via -r requirements/zeromq.txt -requests==2.31.0 ; python_version < "3.10" - # via -r requirements/base.txt -setproctitle==1.3.2 - # via -r requirements/static/pkg/freebsd.in -six==1.16.0 - # via - # cheroot - # more-itertools - # python-dateutil -tempora==4.1.1 - # via portend -timelib==0.2.5 - # via -r requirements/static/pkg/freebsd.in -urllib3==1.26.18 - # via requests -zc.lockfile==1.4 - # via cherrypy -zipp==3.5.0 - # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/pkg/py3.8/linux.txt b/requirements/static/pkg/py3.8/linux.txt deleted file mode 100644 index 81f0e4c6d5c..00000000000 --- a/requirements/static/pkg/py3.8/linux.txt +++ /dev/null @@ -1,114 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/pkg/py3.8/linux.txt requirements/base.txt requirements/static/pkg/linux.in requirements/zeromq.txt -# -certifi==2023.07.22 ; python_version < "3.10" - # via - # -r requirements/base.txt - # requests -cffi==1.14.6 - # via cryptography -charset-normalizer==3.2.0 - # via requests -cheroot==8.5.2 - # via cherrypy -cherrypy==18.6.1 - # via -r requirements/static/pkg/linux.in -contextvars==2.4 - # via -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via -r requirements/base.txt -cryptography==42.0.5 - # via - # -r requirements/base.txt - # -r requirements/static/pkg/linux.in - # pyopenssl -distro==1.5.0 - # via -r requirements/base.txt -idna==3.7 - # via requests -immutables==0.15 - # via contextvars -importlib-metadata==4.6.4 - # via -r requirements/static/pkg/linux.in -jaraco.classes==3.2.1 - # via jaraco.collections -jaraco.collections==3.4.0 - # via cherrypy -jaraco.functools==2.0 - # via - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via jaraco.collections -jinja2==3.1.4 - # via -r requirements/base.txt -jmespath==1.0.1 - # via -r requirements/base.txt -looseversion==1.0.2 - # via -r requirements/base.txt -markupsafe==2.1.2 - # via - # -r requirements/base.txt - # jinja2 -more-itertools==5.0.0 - # via - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -msgpack==1.0.2 - # via -r requirements/base.txt -packaging==22.0 - # via -r requirements/base.txt -portend==2.4 - # via cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via -r requirements/base.txt -pycparser==2.17 - # via cffi -pycryptodomex==3.19.1 - # via -r requirements/crypto.txt -pyopenssl==24.0.0 - # via -r requirements/static/pkg/linux.in -python-dateutil==2.8.1 - # via - # -r requirements/static/pkg/linux.in - # croniter -python-gnupg==0.4.8 - # via -r requirements/static/pkg/linux.in -pytz==2022.1 - # via - # croniter - # tempora -pyyaml==6.0.1 - # via -r requirements/base.txt -pyzmq==23.2.0 - # via -r requirements/zeromq.txt -requests==2.31.0 ; python_version < "3.10" - # via -r requirements/base.txt -rpm-vercmp==0.1.2 - # via -r requirements/static/pkg/linux.in -setproctitle==1.3.2 - # via -r requirements/static/pkg/linux.in -six==1.16.0 - # via - # cheroot - # more-itertools - # python-dateutil -tempora==4.1.1 - # via portend -timelib==0.2.5 - # via -r requirements/static/pkg/linux.in -urllib3==1.26.18 - # via requests -zc.lockfile==1.4 - # via cherrypy -zipp==3.5.0 - # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/pkg/py3.8/windows.txt b/requirements/static/pkg/py3.8/windows.txt deleted file mode 100644 index 6a848bf5530..00000000000 --- a/requirements/static/pkg/py3.8/windows.txt +++ /dev/null @@ -1,143 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/pkg/py3.8/windows.txt requirements/static/pkg/windows.in requirements/windows.txt -# -certifi==2023.07.22 ; python_version < "3.10" - # via - # -r requirements/base.txt - # requests -cffi==1.14.6 - # via - # -r requirements/windows.txt - # clr-loader - # cryptography -charset-normalizer==3.2.0 - # via requests -cheroot==8.5.2 - # via cherrypy -cherrypy==18.6.1 - # via -r requirements/windows.txt -clr-loader==0.2.4 - # via pythonnet -contextvars==2.4 - # via -r requirements/base.txt -cryptography==42.0.5 - # via - # -r requirements/base.txt - # -r requirements/windows.txt - # pyopenssl -distro==1.5.0 - # via -r requirements/base.txt -gitdb==4.0.7 - # via gitpython -gitpython==3.1.41 - # via -r requirements/windows.txt -idna==3.7 - # via requests -immutables==0.15 - # via contextvars -importlib-metadata==4.6.4 - # via -r requirements/windows.txt -ioloop==0.1a0 - # via -r requirements/windows.txt -jaraco.classes==3.2.1 - # via jaraco.collections -jaraco.collections==3.3.0 - # via cherrypy -jaraco.functools==2.0 - # via - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.0 - # via jaraco.collections -jinja2==3.1.4 - # via -r requirements/base.txt -jmespath==1.0.1 - # via -r requirements/base.txt -looseversion==1.0.2 - # via -r requirements/base.txt -lxml==4.9.1 - # via -r requirements/windows.txt -markupsafe==2.1.2 - # via - # -r requirements/base.txt - # jinja2 -more-itertools==8.2.0 - # via - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -msgpack==1.0.2 - # via -r requirements/base.txt -packaging==22.0 - # via -r requirements/base.txt -portend==2.6 - # via cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via -r requirements/base.txt -pyasn1==0.4.8 - # via -r requirements/windows.txt -pycparser==2.21 - # via - # -r requirements/windows.txt - # cffi -pycryptodomex==3.19.1 - # via -r requirements/crypto.txt -pymssql==2.3.0 - # via -r requirements/windows.txt -pyopenssl==24.0.0 - # via -r requirements/windows.txt -python-dateutil==2.8.1 - # via -r requirements/windows.txt -python-gnupg==0.4.8 - # via -r requirements/windows.txt -pythonnet==3.0.1 - # via -r requirements/windows.txt -pytz==2022.1 - # via tempora -pywin32==305 - # via - # -r requirements/windows.txt - # cherrypy - # wmi -pyyaml==6.0.1 - # via -r requirements/base.txt -pyzmq==25.0.2 ; sys_platform == "win32" - # via -r requirements/zeromq.txt -requests==2.31.0 ; python_version < "3.10" - # via - # -r requirements/base.txt - # -r requirements/windows.txt -setproctitle==1.3.2 - # via -r requirements/windows.txt -six==1.15.0 - # via - # cheroot - # python-dateutil -smmap==4.0.0 - # via gitdb -tempora==4.1.1 - # via portend -timelib==0.2.5 - # via -r requirements/windows.txt -urllib3==1.26.18 - # via - # -r requirements/windows.txt - # requests -wheel==0.38.4 - # via -r requirements/windows.txt -wmi==1.5.1 - # via -r requirements/windows.txt -xmltodict==0.13.0 - # via -r requirements/windows.txt -zc.lockfile==2.0 - # via cherrypy -zipp==3.5.0 - # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/pkg/py3.9/darwin.txt b/requirements/static/pkg/py3.9/darwin.txt deleted file mode 100644 index 3f0e827f089..00000000000 --- a/requirements/static/pkg/py3.9/darwin.txt +++ /dev/null @@ -1,132 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/pkg/py3.9/darwin.txt requirements/darwin.txt requirements/static/pkg/darwin.in -# -apache-libcloud==2.5.0 - # via -r requirements/darwin.txt -certifi==2023.07.22 ; python_version < "3.10" - # via - # -r requirements/base.txt - # requests -cffi==1.14.6 - # via cryptography -charset-normalizer==3.2.0 - # via requests -cheroot==8.5.2 - # via cherrypy -cherrypy==18.6.1 - # via -r requirements/darwin.txt -contextvars==2.4 - # via -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via -r requirements/base.txt -cryptography==42.0.5 - # via - # -r requirements/base.txt - # -r requirements/darwin.txt - # pyopenssl -distro==1.5.0 - # via -r requirements/base.txt -gitdb==4.0.7 - # via gitpython -gitpython==3.1.41 - # via -r requirements/darwin.txt -idna==3.7 - # via - # -r requirements/darwin.txt - # requests -immutables==0.15 - # via contextvars -importlib-metadata==6.0.0 - # via -r requirements/darwin.txt -jaraco.classes==3.2.1 - # via jaraco.collections -jaraco.collections==3.4.0 - # via cherrypy -jaraco.functools==2.0 - # via - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via jaraco.collections -jinja2==3.1.4 - # via -r requirements/base.txt -jmespath==1.0.1 - # via -r requirements/base.txt -linode-python==1.1.1 - # via -r requirements/darwin.txt -looseversion==1.0.2 - # via -r requirements/base.txt -markupsafe==2.1.2 - # via - # -r requirements/base.txt - # jinja2 -more-itertools==8.2.0 - # via - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -msgpack==1.0.2 - # via -r requirements/base.txt -packaging==22.0 - # via -r requirements/base.txt -portend==2.6 - # via cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via -r requirements/base.txt -pyasn1==0.4.8 - # via -r requirements/darwin.txt -pycparser==2.21 - # via - # -r requirements/darwin.txt - # cffi -pycryptodomex==3.19.1 - # via -r requirements/crypto.txt -pyopenssl==24.0.0 - # via -r requirements/darwin.txt -python-dateutil==2.8.0 - # via - # -r requirements/darwin.txt - # croniter -python-gnupg==0.4.8 - # via -r requirements/darwin.txt -pytz==2022.1 - # via - # croniter - # tempora -pyyaml==6.0.1 - # via -r requirements/base.txt -pyzmq==25.1.2 ; sys_platform == "darwin" - # via -r requirements/zeromq.txt -requests==2.31.0 ; python_version < "3.10" - # via - # -r requirements/base.txt - # apache-libcloud - # vultr -setproctitle==1.3.2 - # via -r requirements/darwin.txt -six==1.16.0 - # via - # cheroot - # python-dateutil -smmap==4.0.0 - # via gitdb -tempora==4.1.1 - # via portend -timelib==0.2.5 - # via -r requirements/darwin.txt -urllib3==1.26.18 - # via requests -vultr==1.0.1 - # via -r requirements/darwin.txt -zc.lockfile==2.0 - # via cherrypy -zipp==3.5.0 - # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/pkg/py3.9/freebsd.txt b/requirements/static/pkg/py3.9/freebsd.txt deleted file mode 100644 index 78dbbf27f28..00000000000 --- a/requirements/static/pkg/py3.9/freebsd.txt +++ /dev/null @@ -1,116 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/pkg/py3.9/freebsd.txt requirements/base.txt requirements/static/pkg/freebsd.in requirements/zeromq.txt -# -certifi==2023.07.22 ; python_version < "3.10" - # via - # -r requirements/base.txt - # requests -cffi==1.14.6 - # via cryptography -charset-normalizer==3.2.0 - # via requests -cheroot==8.5.2 - # via cherrypy -cherrypy==18.6.1 - # via -r requirements/static/pkg/freebsd.in -contextvars==2.4 - # via -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via -r requirements/base.txt -cryptography==42.0.5 - # via - # -r requirements/base.txt - # -r requirements/static/pkg/freebsd.in - # pyopenssl -distro==1.5.0 - # via - # -r requirements/base.txt - # -r requirements/static/pkg/freebsd.in -idna==3.7 - # via requests -immutables==0.15 - # via contextvars -importlib-metadata==6.0.0 - # via -r requirements/static/pkg/freebsd.in -jaraco.classes==3.2.1 - # via jaraco.collections -jaraco.collections==3.4.0 - # via cherrypy -jaraco.functools==2.0 - # via - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via jaraco.collections -jinja2==3.1.4 - # via -r requirements/base.txt -jmespath==1.0.1 - # via -r requirements/base.txt -looseversion==1.0.2 - # via -r requirements/base.txt -markupsafe==2.1.2 - # via - # -r requirements/base.txt - # jinja2 -more-itertools==5.0.0 - # via - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -msgpack==1.0.2 - # via -r requirements/base.txt -packaging==22.0 - # via -r requirements/base.txt -portend==2.4 - # via cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via -r requirements/base.txt -pycparser==2.21 ; python_version >= "3.9" - # via - # -r requirements/static/pkg/freebsd.in - # cffi -pycryptodomex==3.19.1 - # via -r requirements/crypto.txt -pyopenssl==24.0.0 - # via -r requirements/static/pkg/freebsd.in -python-dateutil==2.8.1 - # via - # -r requirements/static/pkg/freebsd.in - # croniter -python-gnupg==0.4.8 - # via -r requirements/static/pkg/freebsd.in -pytz==2022.1 - # via - # croniter - # tempora -pyyaml==6.0.1 - # via -r requirements/base.txt -pyzmq==23.2.0 - # via -r requirements/zeromq.txt -requests==2.31.0 ; python_version < "3.10" - # via -r requirements/base.txt -setproctitle==1.3.2 - # via -r requirements/static/pkg/freebsd.in -six==1.16.0 - # via - # cheroot - # more-itertools - # python-dateutil -tempora==4.1.1 - # via portend -timelib==0.2.5 - # via -r requirements/static/pkg/freebsd.in -urllib3==1.26.18 - # via requests -zc.lockfile==1.4 - # via cherrypy -zipp==3.5.0 - # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/pkg/py3.9/linux.txt b/requirements/static/pkg/py3.9/linux.txt deleted file mode 100644 index 3f0c1b8b138..00000000000 --- a/requirements/static/pkg/py3.9/linux.txt +++ /dev/null @@ -1,116 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/pkg/py3.9/linux.txt requirements/base.txt requirements/static/pkg/linux.in requirements/zeromq.txt -# -certifi==2023.07.22 ; python_version < "3.10" - # via - # -r requirements/base.txt - # requests -cffi==1.14.6 - # via cryptography -charset-normalizer==3.2.0 - # via requests -cheroot==8.5.2 - # via cherrypy -cherrypy==18.6.1 - # via -r requirements/static/pkg/linux.in -contextvars==2.4 - # via -r requirements/base.txt -croniter==2.0.5 ; sys_platform != "win32" - # via -r requirements/base.txt -cryptography==42.0.5 - # via - # -r requirements/base.txt - # -r requirements/static/pkg/linux.in - # pyopenssl -distro==1.5.0 - # via -r requirements/base.txt -idna==3.7 - # via requests -immutables==0.15 - # via contextvars -importlib-metadata==6.0.0 - # via -r requirements/static/pkg/linux.in -jaraco.classes==3.2.1 - # via jaraco.collections -jaraco.collections==3.4.0 - # via cherrypy -jaraco.functools==2.0 - # via - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.1 - # via jaraco.collections -jinja2==3.1.4 - # via -r requirements/base.txt -jmespath==1.0.1 - # via -r requirements/base.txt -looseversion==1.0.2 - # via -r requirements/base.txt -markupsafe==2.1.2 - # via - # -r requirements/base.txt - # jinja2 -more-itertools==5.0.0 - # via - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -msgpack==1.0.2 - # via -r requirements/base.txt -packaging==22.0 - # via -r requirements/base.txt -portend==2.4 - # via cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via -r requirements/base.txt -pycparser==2.21 ; python_version >= "3.9" - # via - # -r requirements/static/pkg/linux.in - # cffi -pycryptodomex==3.19.1 - # via -r requirements/crypto.txt -pyopenssl==24.0.0 - # via -r requirements/static/pkg/linux.in -python-dateutil==2.8.1 - # via - # -r requirements/static/pkg/linux.in - # croniter -python-gnupg==0.4.8 - # via -r requirements/static/pkg/linux.in -pytz==2022.1 - # via - # croniter - # tempora -pyyaml==6.0.1 - # via -r requirements/base.txt -pyzmq==23.2.0 - # via -r requirements/zeromq.txt -requests==2.31.0 ; python_version < "3.10" - # via -r requirements/base.txt -rpm-vercmp==0.1.2 - # via -r requirements/static/pkg/linux.in -setproctitle==1.3.2 - # via -r requirements/static/pkg/linux.in -six==1.16.0 - # via - # cheroot - # more-itertools - # python-dateutil -tempora==4.1.1 - # via portend -timelib==0.2.5 - # via -r requirements/static/pkg/linux.in -urllib3==1.26.18 - # via requests -zc.lockfile==1.4 - # via cherrypy -zipp==3.5.0 - # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/static/pkg/py3.9/windows.txt b/requirements/static/pkg/py3.9/windows.txt deleted file mode 100644 index afa060a8fef..00000000000 --- a/requirements/static/pkg/py3.9/windows.txt +++ /dev/null @@ -1,143 +0,0 @@ -# -# This file is autogenerated by pip-compile -# To update, run: -# -# pip-compile --no-emit-index-url --output-file=requirements/static/pkg/py3.9/windows.txt requirements/static/pkg/windows.in requirements/windows.txt -# -certifi==2023.07.22 ; python_version < "3.10" - # via - # -r requirements/base.txt - # requests -cffi==1.14.6 - # via - # -r requirements/windows.txt - # clr-loader - # cryptography -charset-normalizer==3.2.0 - # via requests -cheroot==8.5.2 - # via cherrypy -cherrypy==18.6.1 - # via -r requirements/windows.txt -clr-loader==0.2.4 - # via pythonnet -contextvars==2.4 - # via -r requirements/base.txt -cryptography==42.0.5 - # via - # -r requirements/base.txt - # -r requirements/windows.txt - # pyopenssl -distro==1.5.0 - # via -r requirements/base.txt -gitdb==4.0.7 - # via gitpython -gitpython==3.1.41 - # via -r requirements/windows.txt -idna==3.7 - # via requests -immutables==0.15 - # via contextvars -importlib-metadata==6.0.0 - # via -r requirements/windows.txt -ioloop==0.1a0 - # via -r requirements/windows.txt -jaraco.classes==3.2.1 - # via jaraco.collections -jaraco.collections==3.3.0 - # via cherrypy -jaraco.functools==2.0 - # via - # cheroot - # jaraco.text - # tempora -jaraco.text==3.5.0 - # via jaraco.collections -jinja2==3.1.4 - # via -r requirements/base.txt -jmespath==1.0.1 - # via -r requirements/base.txt -looseversion==1.0.2 - # via -r requirements/base.txt -lxml==4.9.1 - # via -r requirements/windows.txt -markupsafe==2.1.2 - # via - # -r requirements/base.txt - # jinja2 -more-itertools==8.2.0 - # via - # cheroot - # cherrypy - # jaraco.classes - # jaraco.functools -msgpack==1.0.2 - # via -r requirements/base.txt -packaging==22.0 - # via -r requirements/base.txt -portend==2.6 - # via cherrypy -psutil==5.8.0 ; python_version <= "3.9" - # via -r requirements/base.txt -pyasn1==0.4.8 - # via -r requirements/windows.txt -pycparser==2.21 - # via - # -r requirements/windows.txt - # cffi -pycryptodomex==3.19.1 - # via -r requirements/crypto.txt -pymssql==2.3.0 - # via -r requirements/windows.txt -pyopenssl==24.0.0 - # via -r requirements/windows.txt -python-dateutil==2.8.1 - # via -r requirements/windows.txt -python-gnupg==0.4.8 - # via -r requirements/windows.txt -pythonnet==3.0.1 - # via -r requirements/windows.txt -pytz==2022.1 - # via tempora -pywin32==305 - # via - # -r requirements/windows.txt - # cherrypy - # wmi -pyyaml==6.0.1 - # via -r requirements/base.txt -pyzmq==25.0.2 ; sys_platform == "win32" - # via -r requirements/zeromq.txt -requests==2.31.0 ; python_version < "3.10" - # via - # -r requirements/base.txt - # -r requirements/windows.txt -setproctitle==1.3.2 - # via -r requirements/windows.txt -six==1.15.0 - # via - # cheroot - # python-dateutil -smmap==4.0.0 - # via gitdb -tempora==4.1.1 - # via portend -timelib==0.2.5 - # via -r requirements/windows.txt -urllib3==1.26.18 - # via - # -r requirements/windows.txt - # requests -wheel==0.38.4 - # via -r requirements/windows.txt -wmi==1.5.1 - # via -r requirements/windows.txt -xmltodict==0.13.0 - # via -r requirements/windows.txt -zc.lockfile==2.0 - # via cherrypy -zipp==3.5.0 - # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools From 784dea3884f534f13e125a3e76a7b70d3bb5ca3e Mon Sep 17 00:00:00 2001 From: David Murphy Date: Wed, 12 Feb 2025 15:03:25 -0700 Subject: [PATCH 028/101] Restored support for Python 3.9 to test if build now completes successfully --- .pre-commit-config.yaml | 267 ++++++ requirements/static/ci/py3.9/changelog.txt | 40 + requirements/static/ci/py3.9/cloud.txt | 802 ++++++++++++++++++ .../static/ci/py3.9/darwin-crypto.txt | 10 + requirements/static/ci/py3.9/darwin.txt | 571 +++++++++++++ requirements/static/ci/py3.9/docs.txt | 227 +++++ .../static/ci/py3.9/freebsd-crypto.txt | 10 + requirements/static/ci/py3.9/freebsd.txt | 557 ++++++++++++ requirements/static/ci/py3.9/lint.txt | 774 +++++++++++++++++ requirements/static/ci/py3.9/linux-crypto.txt | 10 + requirements/static/ci/py3.9/linux.txt | 596 +++++++++++++ .../static/ci/py3.9/tools-virustotal.txt | 28 + requirements/static/ci/py3.9/tools.txt | 67 ++ .../static/ci/py3.9/windows-crypto.txt | 10 + requirements/static/ci/py3.9/windows.txt | 513 +++++++++++ requirements/static/pkg/py3.9/darwin.txt | 132 +++ requirements/static/pkg/py3.9/freebsd.txt | 116 +++ requirements/static/pkg/py3.9/linux.txt | 116 +++ requirements/static/pkg/py3.9/windows.txt | 143 ++++ 19 files changed, 4989 insertions(+) create mode 100644 requirements/static/ci/py3.9/changelog.txt create mode 100644 requirements/static/ci/py3.9/cloud.txt create mode 100644 requirements/static/ci/py3.9/darwin-crypto.txt create mode 100644 requirements/static/ci/py3.9/darwin.txt create mode 100644 requirements/static/ci/py3.9/docs.txt create mode 100644 requirements/static/ci/py3.9/freebsd-crypto.txt create mode 100644 requirements/static/ci/py3.9/freebsd.txt create mode 100644 requirements/static/ci/py3.9/lint.txt create mode 100644 requirements/static/ci/py3.9/linux-crypto.txt create mode 100644 requirements/static/ci/py3.9/linux.txt create mode 100644 requirements/static/ci/py3.9/tools-virustotal.txt create mode 100644 requirements/static/ci/py3.9/tools.txt create mode 100644 requirements/static/ci/py3.9/windows-crypto.txt create mode 100644 requirements/static/ci/py3.9/windows.txt create mode 100644 requirements/static/pkg/py3.9/darwin.txt create mode 100644 requirements/static/pkg/py3.9/freebsd.txt create mode 100644 requirements/static/pkg/py3.9/linux.txt create mode 100644 requirements/static/pkg/py3.9/windows.txt diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 76f319da7d3..54af518f710 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -145,6 +145,20 @@ repos: rev: "4.8" hooks: + - id: pip-tools-compile + alias: compile-pkg-linux-3.9-zmq-requirements + name: Linux Packaging Py3.9 ZeroMQ Requirements + files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(linux\.in|py3\.9/linux\.txt))$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --platform=linux + - --include=requirements/base.txt + - --include=requirements/zeromq.txt + - --no-emit-index-url + - requirements/static/pkg/linux.in - id: pip-tools-compile alias: compile-pkg-linux-3.10-zmq-requirements @@ -191,6 +205,20 @@ repos: - --no-emit-index-url - requirements/static/pkg/linux.in + - id: pip-tools-compile + alias: compile-pkg-freebsd-3.9-zmq-requirements + name: FreeBSD Packaging Py3.9 ZeroMQ Requirements + files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(freebsd\.in|py3\.9/freebsd\.txt))$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --platform=freebsd + - --include=requirements/base.txt + - --include=requirements/zeromq.txt + - --no-emit-index-url + - requirements/static/pkg/freebsd.in - id: pip-tools-compile alias: compile-pkg-freebsd-3.10-zmq-requirements @@ -237,6 +265,20 @@ repos: - --no-emit-index-url - requirements/static/pkg/freebsd.in + - id: pip-tools-compile + alias: compile-pkg-darwin-3.9-zmq-requirements + name: Darwin Packaging Py3.9 ZeroMQ Requirements + files: ^(requirements/((base|zeromq|crypto|darwin)\.txt|static/pkg/(darwin\.in|py3\.9/darwin\.txt)))$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --platform=darwin + - --include=requirements/darwin.txt + - --no-emit-index-url + - requirements/static/pkg/darwin.in + - id: pip-tools-compile alias: compile-pkg-darwin-3.10-zmq-requirements name: Darwin Packaging Py3.10 ZeroMQ Requirements @@ -279,6 +321,20 @@ repos: - --no-emit-index-url - requirements/static/pkg/darwin.in + - id: pip-tools-compile + alias: compile-pkg-windows-3.9-zmq-requirements + name: Windows Packaging Py3.9 ZeroMQ Requirements + files: ^requirements/((base|zeromq|crypto|windows)\.txt|static/pkg/(windows\.in|py3\.9/windows\.txt))$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --platform=windows + - --include=requirements/windows.txt + - --no-emit-index-url + - requirements/static/pkg/windows.in + - id: pip-tools-compile alias: compile-pkg-windows-3.10-zmq-requirements name: Windows Packaging Py3.10 ZeroMQ Requirements @@ -324,6 +380,24 @@ repos: # <---- Packaging Requirements ------------------------------------------------------------------------------------- # ----- CI Requirements -------------------------------------------------------------------------------------------> + - id: pip-tools-compile + alias: compile-ci-linux-3.9-zmq-requirements + name: Linux CI Py3.9 ZeroMQ Requirements + files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(linux\.in|common\.in)|py3\.9/linux\.txt))$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --platform=linux + - --include=requirements/base.txt + - --include=requirements/zeromq.txt + - --include=requirements/pytest.txt + - --include=requirements/static/pkg/linux.in + - --include=requirements/static/ci/common.in + - --no-emit-index-url + - requirements/static/ci/linux.in + - id: pip-tools-compile alias: compile-ci-linux-3.10-zmq-requirements name: Linux CI Py3.10 ZeroMQ Requirements @@ -378,6 +452,20 @@ repos: - --no-emit-index-url - requirements/static/ci/linux.in + - id: pip-tools-compile + alias: compile-ci-linux-crypto-3.9-requirements + name: Linux CI Py3.9 Crypto Requirements + files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.9/linux-crypto\.txt))$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --platform=linux + - --out-prefix=linux + - --no-emit-index-url + - requirements/static/ci/crypto.in + - id: pip-tools-compile alias: compile-ci-linux-crypto-3.10-requirements name: Linux CI Py3.10 Crypto Requirements @@ -420,6 +508,23 @@ repos: - --no-emit-index-url - requirements/static/ci/crypto.in + - id: pip-tools-compile + alias: compile-ci-freebsd-3.9-zmq-requirements + name: FreeBSD CI Py3.9 ZeroMQ Requirements + files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(freebsd|common)\.in|py3\.9/freebsd\.txt))$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --platform=freebsd + - --include=requirements/base.txt + - --include=requirements/zeromq.txt + - --include=requirements/pytest.txt + - --include=requirements/static/pkg/freebsd.in + - --include=requirements/static/ci/common.in + - --no-emit-index-url + - requirements/static/ci/freebsd.in - id: pip-tools-compile alias: compile-ci-freebsd-3.10-zmq-requirements @@ -475,6 +580,21 @@ repos: - --no-emit-index-url - requirements/static/ci/freebsd.in + - id: pip-tools-compile + alias: compile-ci-freebsd-crypto-3.9-requirements + name: FreeBSD CI Py3.9 Crypto Requirements + files: ^requirements/(crypto\.txt|static/ci/crypto\.in)$ + files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.9/freebsd-crypto\.txt))$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --platform=freebsd + - --out-prefix=freebsd + - --no-emit-index-url + - requirements/static/ci/crypto.in + - id: pip-tools-compile alias: compile-ci-freebsd-crypto-3.10-requirements name: FreeBSD CI Py3.10 Crypto Requirements @@ -518,6 +638,23 @@ repos: - --no-emit-index-url - requirements/static/ci/crypto.in + - id: pip-tools-compile + alias: compile-ci-darwin-3.9-zmq-requirements + name: Darwin CI Py3.9 ZeroMQ Requirements + files: ^(requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(darwin|common)\.in|py3\.9/darwin\.txt)))$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --platform=darwin + - --include=requirements/darwin.txt + - --include=requirements/pytest.txt + - --include=requirements/static/pkg/darwin.in + - --include=requirements/static/ci/common.in + - --no-emit-index-url + - requirements/static/ci/darwin.in + - id: pip-tools-compile alias: compile-ci-darwin-3.10-zmq-requirements name: Darwin CI Py3.10 ZeroMQ Requirements @@ -569,6 +706,20 @@ repos: - --no-emit-index-url - requirements/static/ci/darwin.in + - id: pip-tools-compile + alias: compile-ci-darwin-crypto-3.9-requirements + name: Darwin CI Py3.9 Crypto Requirements + files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.9/darwin-crypto\.txt))$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --platform=darwin + - --out-prefix=darwin + - --no-emit-index-url + - requirements/static/ci/crypto.in + - id: pip-tools-compile alias: compile-ci-darwin-crypto-3.10-requirements name: Darwin CI Py3.10 Crypto Requirements @@ -611,6 +762,23 @@ repos: - --no-emit-index-url - requirements/static/ci/crypto.in + - id: pip-tools-compile + alias: compile-ci-windows-3.9-zmq-requirements + name: Windows CI Py3.9 ZeroMQ Requirements + files: requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(windows|common)\.in|py3\.9/windows\.txt))$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --platform=windows + - --include=requirements/windows.txt + - --include=requirements/pytest.txt + - --include=requirements/static/pkg/windows.in + - --include=requirements/static/ci/common.in + - --no-emit-index-url + - requirements/static/ci/windows.in + - id: pip-tools-compile alias: compile-ci-windows-3.10-zmq-requirements name: Windows CI Py3.10 ZeroMQ Requirements @@ -662,6 +830,20 @@ repos: - --no-emit-index-url - requirements/static/ci/windows.in + - id: pip-tools-compile + alias: compile-ci-windows-crypto-3.9-requirements + name: Windows CI Py3.9 Crypto Requirements + files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.9/windows-crypto\.txt))$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --platform=windows + - --out-prefix=windows + - --no-emit-index-url + - requirements/static/ci/crypto.in + - id: pip-tools-compile alias: compile-ci-windows-crypto-3.10-requirements name: Windows CI Py3.10 Crypto Requirements @@ -708,6 +890,23 @@ repos: # ----- Cloud CI Requirements -------------------------------------------------------------------------------------> + - id: pip-tools-compile + alias: compile-ci-cloud-3.9-requirements + name: Cloud CI Py3.9 Requirements + files: ^requirements/((base|zeromq|pytest)\.txt|static/(pkg/linux\.in|ci/((cloud|common)\.in|py3\.9/cloud\.txt)))$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --include=requirements/base.txt + - --include=requirements/zeromq.txt + - --include=requirements/pytest.txt + - --include=requirements/static/pkg/linux.in + - --include=requirements/static/ci/common.in + - --no-emit-index-url + - requirements/static/ci/cloud.in + - id: pip-tools-compile alias: compile-ci-cloud-3.10-requirements name: Cloud CI Py3.10 Requirements @@ -761,6 +960,21 @@ repos: # <---- Cloud CI Requirements -------------------------------------------------------------------------------------- # ----- Doc CI Requirements ---------------------------------------------------------------------------------------> + - id: pip-tools-compile + alias: compile-doc-requirements + name: Docs CI Py3.9 Requirements + files: ^requirements/((base|zeromq|pytest)\.txt|static/ci/(docs|common|linux)\.in|static/pkg/linux\.in|static/pkg/.*/linux\.txt)$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --platform=linux + - --include=requirements/base.txt + - --include=requirements/zeromq.txt + - --no-emit-index-url + - requirements/static/ci/docs.in + - id: pip-tools-compile alias: compile-doc-requirements name: Docs CI Py3.10 Requirements @@ -810,6 +1024,24 @@ repos: # ----- Lint CI Requirements --------------------------------------------------------------------------------------> + - id: pip-tools-compile + alias: compile-ci-lint-3.9-requirements + name: Lint CI Py3.9 Requirements + files: ^requirements/((base|zeromq)\.txt|static/(pkg/linux\.in|ci/(linux\.in|common\.in|lint\.in|py3\.9/linux\.txt)))$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --platform=linux + - --include=requirements/base.txt + - --include=requirements/zeromq.txt + - --include=requirements/static/pkg/linux.in + - --include=requirements/static/ci/linux.in + - --include=requirements/static/ci/common.in + - --no-emit-index-url + - requirements/static/ci/lint.in + - id: pip-tools-compile alias: compile-ci-lint-3.10-requirements name: Lint CI Py3.10 Requirements @@ -867,6 +1099,19 @@ repos: # <---- Lint CI Requirements --------------------------------------------------------------------------------------- # ----- Changelog -------------------------------------------------------------------------------------------------> + - id: pip-tools-compile + alias: compile-ci-changelog-3.9-requirements + name: Changelog CI Py3.9 Requirements + files: ^requirements/static/ci/(changelog\.in|py3\.9/(changelog|linux)\.txt)$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --platform=linux + - --no-emit-index-url + - requirements/static/ci/changelog.in + - id: pip-tools-compile alias: compile-ci-changelog-3.10-requirements name: Changelog CI Py3.10 Requirements @@ -908,6 +1153,18 @@ repos: # <---- Changelog -------------------------------------------------------------------------------------------------- # ----- Tools ----------------------------------------------------------------------------------------------------> + - id: pip-tools-compile + alias: compile-ci-tools-3.9-requirements + name: Linux CI Py3.9 Tools Requirements + files: ^requirements/static/ci/(tools\.in|py3.9/(tools|linux)\.txt)$ + pass_filenames: false + args: + - -v + - --build-isolation + - --py-version=3.9 + - --no-emit-index-url + - requirements/static/ci/tools.in + - id: pip-tools-compile alias: compile-ci-tools-3.10-requirements name: Linux CI Py3.10 Tools Requirements @@ -944,6 +1201,16 @@ repos: - --no-emit-index-url - requirements/static/ci/tools.in + - id: pip-tools-compile + alias: compile-ci-tools-virustotal-3.9-requirements + name: Linux CI Py3.9 Tools virustotal Requirements + files: ^requirements/static/ci/(tools(-virustotal)?\.in|py3.9/(tools(-virustotal)?|linux)\.txt)$ + pass_filenames: false + args: + - -v + - --py-version=3.9 + - requirements/static/ci/tools-virustotal.in + - id: pip-tools-compile alias: compile-ci-tools-virustotal-3.10-requirements name: Linux CI Py3.10 Tools virustotal Requirements diff --git a/requirements/static/ci/py3.9/changelog.txt b/requirements/static/ci/py3.9/changelog.txt new file mode 100644 index 00000000000..3d917941d49 --- /dev/null +++ b/requirements/static/ci/py3.9/changelog.txt @@ -0,0 +1,40 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/changelog.txt requirements/static/ci/changelog.in +# +click-default-group==1.2.2 + # via towncrier +click==7.1.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # click-default-group + # towncrier +incremental==17.5.0 + # via towncrier +jinja2==3.1.4 + # via + # -c requirements/static/ci/py3.9/linux.txt + # towncrier +looseversion==1.0.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/changelog.in +markupsafe==2.1.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # jinja2 +packaging==22.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/changelog.in +tomli==2.0.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # towncrier +towncrier==22.12.0 + # via -r requirements/static/ci/changelog.in + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/static/ci/py3.9/cloud.txt b/requirements/static/ci/py3.9/cloud.txt new file mode 100644 index 00000000000..b24fdf78b10 --- /dev/null +++ b/requirements/static/ci/py3.9/cloud.txt @@ -0,0 +1,802 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/cloud.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/cloud.in requirements/static/ci/common.in requirements/static/pkg/linux.in requirements/zeromq.txt +# +aiohttp==3.9.4 + # via + # -c requirements/static/ci/py3.9/linux.txt + # etcd3-py +aiosignal==1.2.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # aiohttp +apache-libcloud==2.5.0 ; sys_platform != "win32" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/cloud.in + # -r requirements/static/ci/common.in +asn1crypto==1.3.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # certvalidator + # oscrypto +async-timeout==4.0.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # aiohttp +attrs==23.1.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # aiohttp + # jsonschema + # pytest-salt-factories + # pytest-shell-utilities + # pytest-skip-markers + # pytest-system-statistics +backports.entry-points-selectable==1.1.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # virtualenv +bcrypt==4.1.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # paramiko +boto3==1.21.46 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # moto +boto==2.49.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +botocore==1.24.46 + # via + # -c requirements/static/ci/py3.9/linux.txt + # boto3 + # moto + # s3transfer +cachetools==4.2.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # google-auth +cassandra-driver==3.23.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +certifi==2023.07.22 ; python_version < "3.10" + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # kubernetes + # requests +certvalidator==0.11.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # vcert +cffi==1.14.6 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # cryptography + # napalm + # pynacl +charset-normalizer==3.2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # requests +cheetah3==3.2.6.post2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +cheroot==8.5.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # cherrypy +cherrypy==18.6.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # -r requirements/static/pkg/linux.in +ciscoconfparse==1.5.19 + # via + # -c requirements/static/ci/py3.9/linux.txt + # napalm +click==7.1.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # geomet +clustershell==1.8.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +colorama==0.4.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # ciscoconfparse +contextvars==2.4 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +croniter==2.0.5 ; sys_platform != "win32" + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +cryptography==42.0.5 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # -r requirements/static/pkg/linux.in + # etcd3-py + # moto + # paramiko + # pyopenssl + # pyspnego + # requests-ntlm + # smbprotocol + # trustme + # vcert +distlib==0.3.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # virtualenv +distro==1.5.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # pytest-skip-markers +dnspython==2.6.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # ciscoconfparse + # python-etcd +docker==7.1.0 ; python_version >= "3.8" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/pytest.txt +etcd3-py==0.1.6 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +exceptiongroup==1.0.4 + # via + # -c requirements/static/ci/py3.9/linux.txt + # pytest +filelock==3.0.12 + # via + # -c requirements/static/ci/py3.9/linux.txt + # virtualenv +flaky==3.8.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/pytest.txt +frozenlist==1.3.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # aiohttp + # aiosignal +future==0.18.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # napalm + # textfsm +genshi==0.7.5 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +geomet==0.1.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # cassandra-driver +gitdb==4.0.7 + # via + # -c requirements/static/ci/py3.9/linux.txt + # gitpython +gitpython==3.1.41 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +google-auth==2.1.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # kubernetes +idna==3.7 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # etcd3-py + # requests + # trustme + # yarl +immutables==0.15 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # contextvars +importlib-metadata==6.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/pkg/linux.in +iniconfig==1.0.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # pytest +ipaddress==1.0.22 + # via + # -c requirements/static/ci/py3.9/linux.txt + # kubernetes +jaraco.classes==3.2.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # jaraco.collections +jaraco.collections==3.4.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # cherrypy +jaraco.functools==2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # cheroot + # jaraco.text + # tempora +jaraco.text==3.5.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # jaraco.collections +jinja2==3.1.4 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # junos-eznc + # moto + # napalm +jmespath==1.0.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # -r requirements/static/ci/common.in + # boto3 + # botocore +jsonschema==3.2.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # napalm +jxmlease==1.0.1 ; sys_platform != "win32" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +kazoo==2.6.1 ; sys_platform != "win32" and sys_platform != "darwin" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +keyring==5.7.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +kubernetes==3.0.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +libnacl==1.7.1 ; sys_platform != "win32" and sys_platform != "darwin" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +looseversion==1.0.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +lxml==4.9.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc + # napalm + # ncclient +mako==1.2.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +markupsafe==2.1.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # jinja2 + # mako + # moto + # werkzeug +mock==5.1.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/pytest.txt +more-itertools==5.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/pytest.txt + # cheroot + # cherrypy + # jaraco.classes + # jaraco.functools +moto==3.0.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +msgpack==1.0.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # pytest-salt-factories +multidict==6.0.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # aiohttp + # yarl +napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +ncclient==0.6.4 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc +netaddr==0.7.19 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/cloud.in + # junos-eznc + # napalm + # pyeapi +netmiko==3.2.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # napalm +ntc-templates==1.4.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc +ntlm-auth==1.3.0 + # via requests-ntlm +oscrypto==1.2.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # certvalidator +packaging==22.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # pytest +paramiko==3.4.0 ; sys_platform != "win32" and sys_platform != "darwin" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # junos-eznc + # napalm + # ncclient + # netmiko + # scp +passlib==1.7.4 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # ciscoconfparse +pathtools==0.1.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # watchdog +platformdirs==2.2.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # virtualenv +pluggy==1.4.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # pytest +portend==2.4 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # cherrypy +profitbricks==4.1.3 + # via -r requirements/static/ci/cloud.in +psutil==5.8.0 ; python_version <= "3.9" + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # pytest-salt-factories + # pytest-shell-utilities + # pytest-system-statistics +pyasn1-modules==0.2.4 + # via + # -c requirements/static/ci/py3.9/linux.txt + # google-auth +pyasn1==0.4.8 + # via + # -c requirements/static/ci/py3.9/linux.txt + # pyasn1-modules + # rsa +pycparser==2.21 ; python_version >= "3.9" + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # -r requirements/static/pkg/linux.in + # cffi +pycryptodomex==3.19.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/crypto.txt +pyeapi==0.8.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # napalm +pyfakefs==5.3.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/pytest.txt +pyinotify==0.9.6 ; sys_platform != "win32" and sys_platform != "darwin" and platform_system != "openbsd" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +pynacl==1.5.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # paramiko +pyopenssl==24.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/pkg/linux.in + # etcd3-py +pyparsing==3.0.9 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc +pypsexec==0.1.0 + # via -r requirements/static/ci/cloud.in +pyrsistent==0.17.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # jsonschema +pyserial==3.4 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc + # netmiko +pyspnego==0.8.0 + # via + # -r requirements/static/ci/cloud.in + # smbprotocol +pytest-custom-exit-code==0.3.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/pytest.txt +pytest-helpers-namespace==2021.4.29 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/pytest.txt + # pytest-salt-factories + # pytest-shell-utilities +pytest-httpserver==1.0.8 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/pytest.txt +pytest-salt-factories==1.0.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/pytest.txt +pytest-shell-utilities==1.8.0 ; python_version <= "3.9" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/pytest.txt + # pytest-salt-factories +pytest-skip-markers==1.5.2 ; python_version >= "3.8" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/pytest.txt + # pytest-salt-factories + # pytest-shell-utilities + # pytest-system-statistics +pytest-subtests==0.4.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/pytest.txt +pytest-system-statistics==1.0.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # pytest-salt-factories +pytest-timeout==2.3.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/pytest.txt +pytest==8.1.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/pytest.txt + # pytest-custom-exit-code + # pytest-helpers-namespace + # pytest-salt-factories + # pytest-shell-utilities + # pytest-skip-markers + # pytest-subtests + # pytest-system-statistics + # pytest-timeout +python-dateutil==2.8.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/pkg/linux.in + # botocore + # croniter + # kubernetes + # moto + # vcert +python-etcd==0.4.5 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +python-gnupg==0.4.8 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/pkg/linux.in +pytz==2022.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # croniter + # moto + # tempora +pyvmomi==6.7.1.2018.12 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +pywinrm==0.3.0 + # via -r requirements/static/ci/cloud.in +pyyaml==6.0.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # clustershell + # junos-eznc + # kubernetes + # napalm + # pytest-salt-factories + # yamlordereddictloader +pyzmq==23.2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/zeromq.txt + # pytest-salt-factories +requests-ntlm==1.1.0 + # via pywinrm +requests==2.31.0 ; python_version < "3.10" + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # apache-libcloud + # docker + # etcd3-py + # kubernetes + # moto + # napalm + # profitbricks + # pyvmomi + # pywinrm + # requests-ntlm + # responses + # vcert +responses==0.10.6 + # via + # -c requirements/static/ci/py3.9/linux.txt + # moto +rfc3987==1.3.8 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +rpm-vercmp==0.1.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/pkg/linux.in +rsa==4.7.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # google-auth +s3transfer==0.5.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # boto3 +scp==0.13.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc + # napalm + # netmiko +semantic-version==2.9.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # etcd3-py +setproctitle==1.3.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/pkg/linux.in +six==1.16.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # cassandra-driver + # cheroot + # etcd3-py + # genshi + # geomet + # jsonschema + # junos-eznc + # kazoo + # kubernetes + # more-itertools + # ncclient + # profitbricks + # pypsexec + # python-dateutil + # pyvmomi + # pywinrm + # responses + # textfsm + # transitions + # vcert + # virtualenv + # websocket-client +smbprotocol==1.10.1 + # via + # -r requirements/static/ci/cloud.in + # pypsexec +smmap==4.0.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # gitdb +sqlparse==0.5.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +strict-rfc3339==0.7 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +tempora==4.1.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # portend +terminal==0.4.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # ntc-templates +textfsm==1.1.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # napalm + # netmiko + # ntc-templates +timelib==0.2.5 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/pkg/linux.in +toml==0.10.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +tomli==2.0.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # pytest +transitions==0.8.9 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc +trustme==1.1.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/pytest.txt +typing-extensions==4.8.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # pytest-shell-utilities + # pytest-system-statistics +urllib3==1.26.18 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # botocore + # docker + # kubernetes + # python-etcd + # requests +vcert==0.7.4 ; sys_platform != "win32" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +virtualenv==20.7.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # pytest-salt-factories +watchdog==0.10.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +websocket-client==0.40.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # kubernetes +wempy==0.2.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +werkzeug==3.0.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # moto + # pytest-httpserver +xmltodict==0.12.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # moto + # pywinrm +yamlordereddictloader==0.4.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc +yarl==1.7.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # aiohttp +zc.lockfile==1.4 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # cherrypy +zipp==3.5.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/static/ci/py3.9/darwin-crypto.txt b/requirements/static/ci/py3.9/darwin-crypto.txt new file mode 100644 index 00000000000..a4f143000dd --- /dev/null +++ b/requirements/static/ci/py3.9/darwin-crypto.txt @@ -0,0 +1,10 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/darwin-crypto.txt requirements/static/ci/crypto.in +# +m2crypto==0.38.0 + # via -r requirements/static/ci/crypto.in +pycryptodome==3.19.1 + # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.9/darwin.txt b/requirements/static/ci/py3.9/darwin.txt new file mode 100644 index 00000000000..66bddbb9630 --- /dev/null +++ b/requirements/static/ci/py3.9/darwin.txt @@ -0,0 +1,571 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/darwin.txt requirements/darwin.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/darwin.in requirements/static/pkg/darwin.in +# +aiohttp==3.9.4 + # via etcd3-py +aiosignal==1.2.0 + # via aiohttp +apache-libcloud==2.5.0 ; sys_platform != "win32" + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/darwin.txt + # -r requirements/static/ci/common.in +asn1crypto==1.3.0 + # via + # certvalidator + # oscrypto +async-timeout==4.0.2 + # via aiohttp +attrs==23.1.0 + # via + # aiohttp + # jsonschema + # pytest-salt-factories + # pytest-shell-utilities + # pytest-skip-markers + # pytest-system-statistics +backports.entry-points-selectable==1.1.0 + # via virtualenv +bcrypt==4.1.2 + # via + # -r requirements/static/ci/common.in + # paramiko +boto3==1.21.46 + # via + # -r requirements/static/ci/common.in + # moto +boto==2.49.0 + # via -r requirements/static/ci/common.in +botocore==1.24.46 + # via + # boto3 + # moto + # s3transfer +cachetools==3.1.0 + # via google-auth +cassandra-driver==3.23.0 + # via -r requirements/static/ci/common.in +certifi==2023.07.22 ; python_version < "3.10" + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/base.txt + # kubernetes + # requests +certvalidator==0.11.1 + # via vcert +cffi==1.14.6 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/static/ci/common.in + # cryptography + # napalm + # pygit2 + # pynacl +charset-normalizer==3.2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # requests +cheetah3==3.2.6.post2 + # via -r requirements/static/ci/common.in +cheroot==8.5.2 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # cherrypy +cherrypy==18.6.1 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/darwin.txt + # -r requirements/static/ci/common.in +ciscoconfparse==1.5.19 + # via napalm +click==7.0 + # via geomet +clustershell==1.8.1 + # via -r requirements/static/ci/common.in +colorama==0.4.3 + # via ciscoconfparse +contextvars==2.4 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/base.txt +croniter==2.0.5 ; sys_platform != "win32" + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/base.txt +cryptography==42.0.5 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/base.txt + # -r requirements/darwin.txt + # etcd3-py + # moto + # paramiko + # pyopenssl + # trustme + # vcert +distlib==0.3.2 + # via virtualenv +distro==1.5.0 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/base.txt + # pytest-skip-markers +dnspython==2.6.1 + # via + # -r requirements/static/ci/common.in + # ciscoconfparse + # python-etcd +docker==7.1.0 ; python_version >= "3.8" + # via -r requirements/pytest.txt +etcd3-py==0.1.6 + # via -r requirements/static/ci/common.in +exceptiongroup==1.0.4 + # via pytest +filelock==3.0.12 + # via virtualenv +flaky==3.8.1 + # via -r requirements/pytest.txt +frozenlist==1.3.0 + # via + # aiohttp + # aiosignal +future==0.18.3 + # via + # napalm + # textfsm +genshi==0.7.5 + # via -r requirements/static/ci/common.in +geomet==0.1.2 + # via cassandra-driver +gitdb==4.0.7 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # gitpython +gitpython==3.1.41 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/darwin.txt + # -r requirements/static/ci/common.in +google-auth==2.1.0 + # via kubernetes +hglib==2.6.1 + # via -r requirements/static/ci/darwin.in +idna==3.7 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/darwin.txt + # etcd3-py + # requests + # trustme + # yarl +immutables==0.15 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # contextvars +importlib-metadata==6.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/darwin.txt +iniconfig==1.0.1 + # via pytest +ipaddress==1.0.22 + # via kubernetes +jaraco.classes==3.2.1 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # jaraco.collections +jaraco.collections==3.4.0 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # cherrypy +jaraco.functools==2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # cheroot + # jaraco.text + # tempora +jaraco.text==3.5.1 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # jaraco.collections +jinja2==3.1.4 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/base.txt + # junos-eznc + # moto + # napalm +jmespath==1.0.1 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/base.txt + # -r requirements/static/ci/common.in + # boto3 + # botocore +jsonschema==3.2.0 + # via -r requirements/static/ci/common.in +junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" + # via + # -r requirements/static/ci/common.in + # napalm +jxmlease==1.0.1 ; sys_platform != "win32" + # via -r requirements/static/ci/common.in +keyring==5.7.1 + # via -r requirements/static/ci/common.in +kubernetes==3.0.0 + # via -r requirements/static/ci/common.in +linode-python==1.1.1 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/darwin.txt +looseversion==1.0.2 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/base.txt +lxml==4.9.1 + # via + # junos-eznc + # napalm + # ncclient +mako==1.2.2 + # via -r requirements/static/ci/common.in +markupsafe==2.1.2 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/base.txt + # jinja2 + # mako + # moto + # werkzeug +mercurial==6.0.1 + # via -r requirements/static/ci/darwin.in +mock==5.1.0 + # via -r requirements/pytest.txt +more-itertools==8.2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/pytest.txt + # cheroot + # cherrypy + # jaraco.classes + # jaraco.functools +moto==3.0.1 + # via -r requirements/static/ci/common.in +msgpack==1.0.2 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/base.txt + # pytest-salt-factories +multidict==6.0.2 + # via + # aiohttp + # yarl +napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" + # via -r requirements/static/ci/common.in +ncclient==0.6.4 + # via junos-eznc +netaddr==0.7.19 + # via + # junos-eznc + # napalm + # pyeapi +netmiko==3.2.0 + # via napalm +ntc-templates==1.4.1 + # via junos-eznc +oscrypto==1.2.0 + # via certvalidator +packaging==22.0 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/base.txt + # pytest +paramiko==3.4.0 + # via + # junos-eznc + # napalm + # ncclient + # netmiko + # scp +passlib==1.7.4 + # via + # -r requirements/static/ci/common.in + # ciscoconfparse +pathspec==0.9.0 + # via yamllint +pathtools==0.1.2 + # via watchdog +platformdirs==2.2.0 + # via virtualenv +pluggy==1.4.0 + # via pytest +portend==2.6 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # cherrypy +psutil==5.8.0 ; python_version <= "3.9" + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/base.txt + # pytest-salt-factories + # pytest-shell-utilities + # pytest-system-statistics +pyasn1-modules==0.2.4 + # via google-auth +pyasn1==0.4.8 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/darwin.txt + # pyasn1-modules + # rsa +pycparser==2.21 ; python_version >= "3.9" + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/darwin.txt + # -r requirements/static/ci/common.in + # cffi +pycryptodomex==3.19.1 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/crypto.txt +pyeapi==0.8.3 + # via napalm +pyfakefs==5.3.1 + # via -r requirements/pytest.txt +pygit2==1.13.1 + # via -r requirements/static/ci/darwin.in +pynacl==1.5.0 + # via + # -r requirements/static/ci/common.in + # paramiko +pyopenssl==24.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/darwin.txt + # etcd3-py +pyparsing==3.0.9 + # via junos-eznc +pyrsistent==0.17.3 + # via jsonschema +pyserial==3.4 + # via + # junos-eznc + # netmiko +pytest-custom-exit-code==0.3.0 + # via -r requirements/pytest.txt +pytest-helpers-namespace==2021.4.29 + # via + # -r requirements/pytest.txt + # pytest-salt-factories + # pytest-shell-utilities +pytest-httpserver==1.0.8 + # via -r requirements/pytest.txt +pytest-salt-factories==1.0.1 + # via -r requirements/pytest.txt +pytest-shell-utilities==1.8.0 ; python_version <= "3.9" + # via + # -r requirements/pytest.txt + # pytest-salt-factories +pytest-skip-markers==1.5.2 ; python_version >= "3.8" + # via + # -r requirements/pytest.txt + # pytest-salt-factories + # pytest-shell-utilities + # pytest-system-statistics +pytest-subtests==0.4.0 + # via -r requirements/pytest.txt +pytest-system-statistics==1.0.2 + # via pytest-salt-factories +pytest-timeout==2.3.1 + # via -r requirements/pytest.txt +pytest==8.1.1 + # via + # -r requirements/pytest.txt + # pytest-custom-exit-code + # pytest-helpers-namespace + # pytest-salt-factories + # pytest-shell-utilities + # pytest-skip-markers + # pytest-subtests + # pytest-system-statistics + # pytest-timeout +python-dateutil==2.8.0 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/darwin.txt + # botocore + # croniter + # kubernetes + # moto + # vcert +python-etcd==0.4.5 + # via -r requirements/static/ci/common.in +python-gnupg==0.4.8 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/darwin.txt +pytz==2022.1 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # croniter + # moto + # tempora +pyvmomi==6.7.1.2018.12 + # via -r requirements/static/ci/common.in +pyyaml==6.0.1 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/base.txt + # clustershell + # junos-eznc + # kubernetes + # napalm + # pytest-salt-factories + # yamllint + # yamlordereddictloader +pyzmq==25.1.2 ; sys_platform == "darwin" + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/zeromq.txt + # pytest-salt-factories +requests==2.31.0 ; python_version < "3.10" + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/base.txt + # apache-libcloud + # docker + # etcd3-py + # kubernetes + # moto + # napalm + # pyvmomi + # responses + # vcert + # vultr +responses==0.10.6 + # via moto +rfc3987==1.3.8 + # via -r requirements/static/ci/common.in +rsa==4.7.2 + # via google-auth +s3transfer==0.5.2 + # via boto3 +scp==0.13.2 + # via + # junos-eznc + # napalm + # netmiko +semantic-version==2.9.0 + # via etcd3-py +setproctitle==1.3.2 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/darwin.txt +six==1.16.0 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # cassandra-driver + # cheroot + # etcd3-py + # genshi + # geomet + # jsonschema + # junos-eznc + # kubernetes + # ncclient + # python-dateutil + # pyvmomi + # responses + # textfsm + # transitions + # vcert + # virtualenv + # websocket-client +smmap==4.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # gitdb +sqlparse==0.5.0 + # via -r requirements/static/ci/common.in +strict-rfc3339==0.7 + # via -r requirements/static/ci/common.in +tempora==4.1.1 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # portend +terminal==0.4.0 + # via ntc-templates +textfsm==1.1.0 + # via + # -r requirements/static/ci/common.in + # napalm + # netmiko + # ntc-templates +timelib==0.2.5 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/darwin.txt +toml==0.10.2 + # via -r requirements/static/ci/common.in +tomli==2.0.1 + # via pytest +transitions==0.8.9 + # via junos-eznc +trustme==1.1.0 + # via -r requirements/pytest.txt +typing-extensions==4.2.0 + # via + # pytest-shell-utilities + # pytest-system-statistics +urllib3==1.26.18 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # botocore + # docker + # kubernetes + # python-etcd + # requests +vcert==0.7.4 ; sys_platform != "win32" + # via -r requirements/static/ci/common.in +virtualenv==20.7.2 + # via + # -r requirements/static/ci/common.in + # pytest-salt-factories +vultr==1.0.1 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/darwin.txt +watchdog==0.10.3 + # via -r requirements/static/ci/common.in +websocket-client==0.40.0 + # via kubernetes +wempy==0.2.1 + # via -r requirements/static/ci/common.in +werkzeug==3.0.3 + # via + # moto + # pytest-httpserver +xmltodict==0.12.0 + # via moto +yamllint==1.26.3 + # via -r requirements/static/ci/darwin.in +yamlordereddictloader==0.4.0 + # via + # -r requirements/static/ci/darwin.in + # junos-eznc +yarl==1.7.2 + # via aiohttp +zc.lockfile==2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # cherrypy +zipp==3.5.0 + # via + # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/static/ci/py3.9/docs.txt b/requirements/static/ci/py3.9/docs.txt new file mode 100644 index 00000000000..9b9f3136276 --- /dev/null +++ b/requirements/static/ci/py3.9/docs.txt @@ -0,0 +1,227 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/docs.txt requirements/base.txt requirements/static/ci/docs.in requirements/zeromq.txt +# +alabaster==0.7.12 + # via sphinx +babel==2.9.1 + # via sphinx +certifi==2023.07.22 ; python_version < "3.10" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # requests +cffi==1.14.6 + # via + # -c requirements/static/ci/py3.9/linux.txt + # cryptography +charset-normalizer==3.2.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # requests +cheroot==8.5.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # cherrypy +cherrypy==18.6.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/docs.in +contextvars==2.4 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +croniter==2.0.5 ; sys_platform != "win32" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +cryptography==42.0.5 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +distro==1.5.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +docutils==0.19 + # via sphinx +idna==3.7 + # via + # -c requirements/static/ci/py3.9/linux.txt + # requests +imagesize==1.4.1 + # via sphinx +immutables==0.15 + # via + # -c requirements/static/ci/py3.9/linux.txt + # contextvars +importlib-metadata==6.0.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # sphinx +jaraco.classes==3.2.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # jaraco.collections +jaraco.collections==3.4.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # cherrypy +jaraco.functools==2.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # cheroot + # jaraco.text + # tempora +jaraco.text==3.5.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # jaraco.collections +jinja2==3.1.4 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # myst-docutils + # sphinx +jmespath==1.0.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +linkify-it-py==1.0.3 + # via myst-docutils +looseversion==1.0.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +markdown-it-py==2.2.0 + # via + # mdit-py-plugins + # myst-docutils +markupsafe==2.1.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # jinja2 +mdit-py-plugins==0.3.3 + # via myst-docutils +mdurl==0.1.2 + # via markdown-it-py +more-itertools==5.0.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # cheroot + # cherrypy + # jaraco.classes + # jaraco.functools +msgpack==1.0.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +myst-docutils[linkify]==0.18.1 + # via -r requirements/static/ci/docs.in +packaging==22.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # sphinx +portend==2.4 + # via + # -c requirements/static/ci/py3.9/linux.txt + # cherrypy +psutil==5.8.0 ; python_version <= "3.9" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +pycparser==2.21 ; python_version >= "3.9" + # via + # -c requirements/static/ci/py3.9/linux.txt + # cffi +pycryptodomex==3.19.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/crypto.txt +pyenchant==3.2.2 + # via sphinxcontrib-spelling +pygments==2.17.2 + # via sphinx +python-dateutil==2.8.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # croniter +pytz==2022.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # babel + # croniter + # tempora +pyyaml==6.0.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # myst-docutils +pyzmq==23.2.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/zeromq.txt +requests==2.31.0 ; python_version < "3.10" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # sphinx +six==1.16.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # cheroot + # more-itertools + # python-dateutil + # sphinxcontrib.httpdomain +snowballstemmer==2.1.0 + # via sphinx +sphinx==6.1.3 ; python_version >= "3.9" + # via + # -r requirements/static/ci/docs.in + # sphinxcontrib-spelling + # sphinxcontrib.httpdomain +sphinxcontrib-applehelp==1.0.2 + # via sphinx +sphinxcontrib-devhelp==1.0.2 + # via sphinx +sphinxcontrib-htmlhelp==2.0.1 + # via sphinx +sphinxcontrib-jsmath==1.0.1 + # via sphinx +sphinxcontrib-qthelp==1.0.3 + # via sphinx +sphinxcontrib-serializinghtml==1.1.5 + # via sphinx +sphinxcontrib-spelling==7.7.0 + # via -r requirements/static/ci/docs.in +sphinxcontrib.httpdomain==1.8.1 + # via -r requirements/static/ci/docs.in +tempora==4.1.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # portend +typing-extensions==4.8.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # myst-docutils +uc-micro-py==1.0.1 + # via linkify-it-py +urllib3==1.26.18 + # via + # -c requirements/static/ci/py3.9/linux.txt + # requests +zc.lockfile==1.4 + # via + # -c requirements/static/ci/py3.9/linux.txt + # cherrypy +zipp==3.5.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/static/ci/py3.9/freebsd-crypto.txt b/requirements/static/ci/py3.9/freebsd-crypto.txt new file mode 100644 index 00000000000..c0a7a18378f --- /dev/null +++ b/requirements/static/ci/py3.9/freebsd-crypto.txt @@ -0,0 +1,10 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/freebsd-crypto.txt requirements/static/ci/crypto.in +# +m2crypto==0.38.0 + # via -r requirements/static/ci/crypto.in +pycryptodome==3.19.1 + # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.9/freebsd.txt b/requirements/static/ci/py3.9/freebsd.txt new file mode 100644 index 00000000000..c7a81642b26 --- /dev/null +++ b/requirements/static/ci/py3.9/freebsd.txt @@ -0,0 +1,557 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/freebsd.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/freebsd.in requirements/static/pkg/freebsd.in requirements/zeromq.txt +# +aiohttp==3.9.4 + # via etcd3-py +aiosignal==1.2.0 + # via aiohttp +apache-libcloud==2.5.0 ; sys_platform != "win32" + # via -r requirements/static/ci/common.in +asn1crypto==1.3.0 + # via + # certvalidator + # oscrypto +async-timeout==4.0.2 + # via aiohttp +attrs==23.1.0 + # via + # aiohttp + # jsonschema + # pytest-salt-factories + # pytest-shell-utilities + # pytest-skip-markers + # pytest-system-statistics +backports.entry-points-selectable==1.1.0 + # via virtualenv +bcrypt==4.1.2 + # via + # -r requirements/static/ci/common.in + # paramiko +boto3==1.21.46 + # via + # -r requirements/static/ci/common.in + # moto +boto==2.49.0 + # via -r requirements/static/ci/common.in +botocore==1.24.46 + # via + # boto3 + # moto + # s3transfer +cachetools==3.1.0 + # via google-auth +cassandra-driver==3.24.0 + # via -r requirements/static/ci/common.in +certifi==2023.07.22 ; python_version < "3.10" + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/base.txt + # kubernetes + # requests +certvalidator==0.11.1 + # via vcert +cffi==1.14.6 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/static/ci/common.in + # cryptography + # napalm + # pygit2 + # pynacl +charset-normalizer==3.2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # requests +cheetah3==3.2.6.post2 + # via -r requirements/static/ci/common.in +cheroot==8.5.2 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # cherrypy +cherrypy==18.6.1 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/static/ci/common.in + # -r requirements/static/pkg/freebsd.in +ciscoconfparse==1.5.19 + # via napalm +click==7.1.2 + # via geomet +clustershell==1.8.3 + # via -r requirements/static/ci/common.in +colorama==0.4.3 + # via ciscoconfparse +contextvars==2.4 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/base.txt +croniter==2.0.5 ; sys_platform != "win32" + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/base.txt +cryptography==42.0.5 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/base.txt + # -r requirements/static/pkg/freebsd.in + # etcd3-py + # moto + # paramiko + # pyopenssl + # trustme + # vcert +distlib==0.3.2 + # via virtualenv +distro==1.5.0 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/base.txt + # -r requirements/static/pkg/freebsd.in + # pytest-skip-markers +dnspython==2.6.1 + # via + # -r requirements/static/ci/common.in + # ciscoconfparse + # python-etcd +docker==7.1.0 ; python_version >= "3.8" + # via -r requirements/pytest.txt +etcd3-py==0.1.6 + # via -r requirements/static/ci/common.in +exceptiongroup==1.0.4 + # via pytest +filelock==3.0.12 + # via virtualenv +flaky==3.8.1 + # via -r requirements/pytest.txt +frozenlist==1.3.0 + # via + # aiohttp + # aiosignal +future==0.18.3 + # via + # napalm + # textfsm +genshi==0.7.5 + # via -r requirements/static/ci/common.in +geomet==0.2.1.post1 + # via cassandra-driver +gitdb==4.0.7 + # via gitpython +gitpython==3.1.41 + # via -r requirements/static/ci/common.in +google-auth==2.1.0 + # via kubernetes +hglib==2.6.1 + # via -r requirements/static/ci/freebsd.in +idna==3.7 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # etcd3-py + # requests + # trustme + # yarl +immutables==0.15 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # contextvars +importlib-metadata==6.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/static/pkg/freebsd.in +iniconfig==1.0.1 + # via pytest +ipaddress==1.0.22 + # via kubernetes +jaraco.classes==3.2.1 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # jaraco.collections +jaraco.collections==3.4.0 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # cherrypy +jaraco.functools==2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # cheroot + # jaraco.text + # tempora +jaraco.text==3.5.1 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # jaraco.collections +jinja2==3.1.4 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/base.txt + # junos-eznc + # moto + # napalm +jmespath==1.0.1 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/base.txt + # -r requirements/static/ci/common.in + # boto3 + # botocore +jsonschema==3.2.0 + # via -r requirements/static/ci/common.in +junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" + # via + # -r requirements/static/ci/common.in + # napalm +jxmlease==1.0.1 ; sys_platform != "win32" + # via -r requirements/static/ci/common.in +kazoo==2.6.1 ; sys_platform != "win32" and sys_platform != "darwin" + # via -r requirements/static/ci/common.in +keyring==5.7.1 + # via -r requirements/static/ci/common.in +kubernetes==3.0.0 + # via -r requirements/static/ci/common.in +libnacl==1.7.1 ; sys_platform != "win32" and sys_platform != "darwin" + # via -r requirements/static/ci/common.in +looseversion==1.0.2 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/base.txt +lxml==4.9.1 + # via + # junos-eznc + # napalm + # ncclient +mako==1.2.2 + # via -r requirements/static/ci/common.in +markupsafe==2.1.2 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/base.txt + # jinja2 + # mako + # moto + # werkzeug +mercurial==6.0.1 + # via -r requirements/static/ci/freebsd.in +mock==5.1.0 + # via -r requirements/pytest.txt +more-itertools==5.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/pytest.txt + # cheroot + # cherrypy + # jaraco.classes + # jaraco.functools +moto==3.0.1 + # via -r requirements/static/ci/common.in +msgpack==1.0.2 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/base.txt + # pytest-salt-factories +multidict==6.0.2 + # via + # aiohttp + # yarl +napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" + # via -r requirements/static/ci/common.in +ncclient==0.6.4 + # via junos-eznc +netaddr==0.7.19 + # via + # junos-eznc + # napalm + # pyeapi +netmiko==3.2.0 + # via napalm +ntc-templates==1.4.1 + # via junos-eznc +oscrypto==1.2.0 + # via certvalidator +packaging==22.0 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/base.txt + # pytest +paramiko==3.4.0 ; sys_platform != "win32" and sys_platform != "darwin" + # via + # -r requirements/static/ci/common.in + # junos-eznc + # napalm + # ncclient + # netmiko + # scp +passlib==1.7.4 + # via + # -r requirements/static/ci/common.in + # ciscoconfparse +pathspec==0.9.0 + # via yamllint +pathtools==0.1.2 + # via watchdog +platformdirs==2.2.0 + # via virtualenv +pluggy==1.4.0 + # via pytest +portend==2.4 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # cherrypy +psutil==5.8.0 ; python_version <= "3.9" + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/base.txt + # pytest-salt-factories + # pytest-shell-utilities + # pytest-system-statistics +pyasn1-modules==0.2.4 + # via google-auth +pyasn1==0.4.8 + # via + # pyasn1-modules + # rsa +pycparser==2.21 ; python_version >= "3.9" + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/static/ci/common.in + # -r requirements/static/pkg/freebsd.in + # cffi +pycryptodomex==3.19.1 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/crypto.txt +pyeapi==0.8.3 + # via napalm +pyfakefs==5.3.1 + # via -r requirements/pytest.txt +pygit2==1.13.1 + # via -r requirements/static/ci/freebsd.in +pyinotify==0.9.6 ; sys_platform != "win32" and sys_platform != "darwin" and platform_system != "openbsd" + # via -r requirements/static/ci/common.in +pynacl==1.5.0 + # via + # -r requirements/static/ci/common.in + # paramiko +pyopenssl==24.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/static/pkg/freebsd.in + # etcd3-py +pyparsing==3.0.9 + # via junos-eznc +pyrsistent==0.17.3 + # via jsonschema +pyserial==3.4 + # via + # junos-eznc + # netmiko +pytest-custom-exit-code==0.3.0 + # via -r requirements/pytest.txt +pytest-helpers-namespace==2021.4.29 + # via + # -r requirements/pytest.txt + # pytest-salt-factories + # pytest-shell-utilities +pytest-httpserver==1.0.8 + # via -r requirements/pytest.txt +pytest-salt-factories==1.0.1 + # via -r requirements/pytest.txt +pytest-shell-utilities==1.8.0 ; python_version <= "3.9" + # via + # -r requirements/pytest.txt + # pytest-salt-factories +pytest-skip-markers==1.5.2 ; python_version >= "3.8" + # via + # -r requirements/pytest.txt + # pytest-salt-factories + # pytest-shell-utilities + # pytest-system-statistics +pytest-subtests==0.4.0 + # via -r requirements/pytest.txt +pytest-system-statistics==1.0.2 + # via pytest-salt-factories +pytest-timeout==2.3.1 + # via -r requirements/pytest.txt +pytest==8.1.1 + # via + # -r requirements/pytest.txt + # pytest-custom-exit-code + # pytest-helpers-namespace + # pytest-salt-factories + # pytest-shell-utilities + # pytest-skip-markers + # pytest-subtests + # pytest-system-statistics + # pytest-timeout +python-dateutil==2.8.1 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/static/pkg/freebsd.in + # botocore + # croniter + # kubernetes + # moto + # vcert +python-etcd==0.4.5 + # via -r requirements/static/ci/common.in +python-gnupg==0.4.8 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/static/pkg/freebsd.in +pytz==2022.1 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # croniter + # moto + # tempora +pyvmomi==6.7.1.2018.12 + # via -r requirements/static/ci/common.in +pyyaml==6.0.1 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/base.txt + # clustershell + # junos-eznc + # kubernetes + # napalm + # pytest-salt-factories + # yamllint + # yamlordereddictloader +pyzmq==23.2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/zeromq.txt + # pytest-salt-factories +requests==2.31.0 ; python_version < "3.10" + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/base.txt + # apache-libcloud + # docker + # etcd3-py + # kubernetes + # moto + # napalm + # pyvmomi + # responses + # vcert +responses==0.10.6 + # via moto +rfc3987==1.3.8 + # via -r requirements/static/ci/common.in +rsa==4.7.2 + # via google-auth +s3transfer==0.5.2 + # via boto3 +scp==0.13.2 + # via + # junos-eznc + # napalm + # netmiko +semantic-version==2.9.0 + # via etcd3-py +setproctitle==1.3.2 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/static/pkg/freebsd.in +six==1.16.0 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # cassandra-driver + # cheroot + # etcd3-py + # genshi + # geomet + # jsonschema + # junos-eznc + # kazoo + # kubernetes + # more-itertools + # ncclient + # python-dateutil + # pyvmomi + # responses + # textfsm + # transitions + # vcert + # virtualenv + # websocket-client +smmap==4.0.0 + # via gitdb +sqlparse==0.5.0 + # via -r requirements/static/ci/common.in +strict-rfc3339==0.7 + # via -r requirements/static/ci/common.in +tempora==4.1.1 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # portend +terminal==0.4.0 + # via ntc-templates +textfsm==1.1.0 + # via + # -r requirements/static/ci/common.in + # napalm + # netmiko + # ntc-templates +timelib==0.2.5 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/static/pkg/freebsd.in +toml==0.10.2 + # via -r requirements/static/ci/common.in +tomli==2.0.1 + # via pytest +transitions==0.8.9 + # via junos-eznc +trustme==1.1.0 + # via -r requirements/pytest.txt +typing-extensions==4.8.0 + # via + # pytest-shell-utilities + # pytest-system-statistics +urllib3==1.26.18 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # botocore + # docker + # kubernetes + # python-etcd + # requests +vcert==0.7.4 ; sys_platform != "win32" + # via -r requirements/static/ci/common.in +virtualenv==20.7.2 + # via + # -r requirements/static/ci/common.in + # pytest-salt-factories +watchdog==0.10.3 + # via -r requirements/static/ci/common.in +websocket-client==0.40.0 + # via kubernetes +wempy==0.2.1 + # via -r requirements/static/ci/common.in +werkzeug==3.0.3 + # via + # moto + # pytest-httpserver +xmltodict==0.12.0 + # via moto +yamllint==1.26.3 + # via -r requirements/static/ci/freebsd.in +yamlordereddictloader==0.4.0 + # via junos-eznc +yarl==1.7.2 + # via aiohttp +zc.lockfile==1.4 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # cherrypy +zipp==3.5.0 + # via + # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/static/ci/py3.9/lint.txt b/requirements/static/ci/py3.9/lint.txt new file mode 100644 index 00000000000..d23f65943db --- /dev/null +++ b/requirements/static/ci/py3.9/lint.txt @@ -0,0 +1,774 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/lint.txt requirements/base.txt requirements/static/ci/common.in requirements/static/ci/lint.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt +# +aiohttp==3.9.4 + # via + # -c requirements/static/ci/py3.9/linux.txt + # etcd3-py +aiosignal==1.2.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # aiohttp +apache-libcloud==2.5.0 ; sys_platform != "win32" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +apscheduler==3.6.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # python-telegram-bot +asn1crypto==1.3.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # certvalidator + # oscrypto +astroid==3.1.0 + # via pylint +async-timeout==4.0.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # aiohttp +attrs==23.1.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # aiohttp + # jsonschema +backports.entry-points-selectable==1.1.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # virtualenv +bcrypt==4.1.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # paramiko +boto3==1.21.46 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # moto +boto==2.49.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +botocore==1.24.46 + # via + # -c requirements/static/ci/py3.9/linux.txt + # boto3 + # moto + # s3transfer +cachetools==4.2.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # google-auth + # python-telegram-bot +cassandra-driver==3.23.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +certifi==2023.07.22 ; python_version < "3.10" + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # kubernetes + # python-telegram-bot + # requests +certvalidator==0.11.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # vcert +cffi==1.14.6 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # cryptography + # napalm + # pygit2 + # pynacl +charset-normalizer==3.2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # requests +cheetah3==3.2.6.post2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +cheroot==8.5.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # cherrypy +cherrypy==18.6.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # -r requirements/static/pkg/linux.in +ciscoconfparse==1.5.19 + # via + # -c requirements/static/ci/py3.9/linux.txt + # napalm +click==7.1.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # geomet +clustershell==1.8.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +colorama==0.4.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # ciscoconfparse +contextvars==2.4 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +croniter==2.0.5 ; sys_platform != "win32" + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +cryptography==42.0.5 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # -r requirements/static/pkg/linux.in + # etcd3-py + # moto + # paramiko + # pyopenssl + # vcert +dill==0.3.8 + # via pylint +distlib==0.3.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # virtualenv +distro==1.5.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +dnspython==2.6.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # ciscoconfparse + # python-etcd +docker==7.1.0 ; python_version >= "3.8" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/lint.in +etcd3-py==0.1.6 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +filelock==3.0.12 + # via + # -c requirements/static/ci/py3.9/linux.txt + # virtualenv +frozenlist==1.3.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # aiohttp + # aiosignal +future==0.18.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # napalm + # textfsm +genshi==0.7.5 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +geomet==0.1.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # cassandra-driver +gitdb==4.0.7 + # via + # -c requirements/static/ci/py3.9/linux.txt + # gitpython +gitpython==3.1.41 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +google-auth==2.1.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # kubernetes +hglib==2.6.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/linux.in +idna==3.7 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # etcd3-py + # requests + # yarl +immutables==0.15 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # contextvars +importlib-metadata==6.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/pkg/linux.in +ipaddress==1.0.22 + # via + # -c requirements/static/ci/py3.9/linux.txt + # kubernetes +isort==4.3.21 + # via pylint +jaraco.classes==3.2.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # jaraco.collections +jaraco.collections==3.4.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # cherrypy +jaraco.functools==2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # cheroot + # jaraco.text + # tempora +jaraco.text==3.5.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # jaraco.collections +jinja2==3.1.4 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # junos-eznc + # moto + # napalm +jmespath==1.0.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # -r requirements/static/ci/common.in + # boto3 + # botocore +jsonschema==3.2.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # napalm +jxmlease==1.0.1 ; sys_platform != "win32" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +kazoo==2.6.1 ; sys_platform != "win32" and sys_platform != "darwin" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +keyring==5.7.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +kubernetes==3.0.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +libnacl==1.7.1 ; sys_platform != "win32" and sys_platform != "darwin" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +looseversion==1.0.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +lxml==4.9.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc + # napalm + # ncclient +mako==1.2.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +markupsafe==2.1.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # jinja2 + # mako + # moto + # werkzeug +mccabe==0.6.1 + # via pylint +mercurial==6.0.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/linux.in +more-itertools==5.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # cheroot + # cherrypy + # jaraco.classes + # jaraco.functools +moto==3.0.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +msgpack==1.0.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +multidict==6.0.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # aiohttp + # yarl +napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +ncclient==0.6.4 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc +netaddr==0.7.19 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc + # napalm + # pyeapi +netmiko==3.2.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # napalm +ntc-templates==1.4.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc +oscrypto==1.2.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # certvalidator +packaging==22.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +paramiko==3.4.0 ; sys_platform != "win32" and sys_platform != "darwin" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # junos-eznc + # napalm + # ncclient + # netmiko + # scp +passlib==1.7.4 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # ciscoconfparse +pathspec==0.9.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # yamllint +pathtools==0.1.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # watchdog +platformdirs==2.2.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # pylint + # virtualenv +portend==2.4 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # cherrypy +psutil==5.8.0 ; python_version <= "3.9" + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt +pyasn1-modules==0.2.4 + # via + # -c requirements/static/ci/py3.9/linux.txt + # google-auth +pyasn1==0.4.8 + # via + # -c requirements/static/ci/py3.9/linux.txt + # pyasn1-modules + # rsa +pycparser==2.21 ; python_version >= "3.9" + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # -r requirements/static/pkg/linux.in + # cffi +pycryptodomex==3.19.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/crypto.txt +pyeapi==0.8.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # napalm +pygit2==1.13.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/linux.in +pyiface==0.0.11 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/linux.in +pyinotify==0.9.6 ; sys_platform != "win32" and sys_platform != "darwin" and platform_system != "openbsd" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +pyjwt==2.4.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # twilio +pylint==3.1.0 + # via + # -r requirements/static/ci/lint.in + # saltpylint +pymysql==1.1.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/linux.in +pynacl==1.5.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # paramiko +pyopenssl==24.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/pkg/linux.in + # etcd3-py +pyparsing==3.0.9 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc +pyrsistent==0.17.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # jsonschema +pyserial==3.4 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc + # netmiko +python-consul==1.1.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/linux.in +python-dateutil==2.8.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/pkg/linux.in + # botocore + # croniter + # kubernetes + # moto + # vcert +python-etcd==0.4.5 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +python-gnupg==0.4.8 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/pkg/linux.in +python-telegram-bot==13.7 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/linux.in +pytz==2022.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # apscheduler + # croniter + # moto + # python-telegram-bot + # tempora + # twilio +pyvmomi==6.7.1.2018.12 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +pyyaml==6.0.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # clustershell + # junos-eznc + # kubernetes + # napalm + # yamllint + # yamlordereddictloader +pyzmq==23.2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/zeromq.txt +redis-py-cluster==2.1.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/linux.in +redis==3.5.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # redis-py-cluster +requests==2.31.0 ; python_version < "3.10" + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt + # apache-libcloud + # docker + # etcd3-py + # kubernetes + # moto + # napalm + # python-consul + # pyvmomi + # responses + # twilio + # vcert +responses==0.10.6 + # via + # -c requirements/static/ci/py3.9/linux.txt + # moto +rfc3987==1.3.8 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +rpm-vercmp==0.1.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/pkg/linux.in +rsa==4.7.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # google-auth +s3transfer==0.5.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # boto3 +saltpylint==2024.2.5 + # via -r requirements/static/ci/lint.in +scp==0.13.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc + # napalm + # netmiko +semantic-version==2.9.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # etcd3-py +setproctitle==1.3.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/pkg/linux.in +six==1.16.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # apscheduler + # cassandra-driver + # cheroot + # etcd3-py + # genshi + # geomet + # jsonschema + # junos-eznc + # kazoo + # kubernetes + # more-itertools + # ncclient + # python-consul + # python-dateutil + # pyvmomi + # responses + # textfsm + # transitions + # vcert + # virtualenv + # websocket-client +slack-bolt==1.15.5 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/linux.in +slack-sdk==3.19.5 + # via + # -c requirements/static/ci/py3.9/linux.txt + # slack-bolt +smmap==4.0.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # gitdb +sqlparse==0.5.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +strict-rfc3339==0.7 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +tempora==4.1.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # portend +terminal==0.4.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # ntc-templates +textfsm==1.1.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # napalm + # netmiko + # ntc-templates +timelib==0.2.5 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/pkg/linux.in +toml==0.10.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in + # -r requirements/static/ci/lint.in +tomli==2.0.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # pylint +tomlkit==0.12.3 + # via pylint +tornado==6.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # python-telegram-bot +transitions==0.8.9 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc +twilio==7.9.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/linux.in +typing-extensions==4.8.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # astroid + # pylint +tzlocal==3.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # apscheduler +urllib3==1.26.18 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # botocore + # docker + # kubernetes + # python-etcd + # requests +vcert==0.7.4 ; sys_platform != "win32" + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +virtualenv==20.7.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +watchdog==0.10.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +websocket-client==0.40.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # kubernetes +wempy==0.2.1 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/common.in +werkzeug==3.0.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # moto +xmltodict==0.12.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # moto +yamllint==1.26.3 + # via + # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/static/ci/linux.in +yamlordereddictloader==0.4.0 + # via + # -c requirements/static/ci/py3.9/linux.txt + # junos-eznc +yarl==1.7.2 + # via + # -c requirements/static/ci/py3.9/linux.txt + # aiohttp +zc.lockfile==1.4 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # cherrypy +zipp==3.5.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/py3.9/linux.txt + # importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/static/ci/py3.9/linux-crypto.txt b/requirements/static/ci/py3.9/linux-crypto.txt new file mode 100644 index 00000000000..ee8633b39fb --- /dev/null +++ b/requirements/static/ci/py3.9/linux-crypto.txt @@ -0,0 +1,10 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/linux-crypto.txt requirements/static/ci/crypto.in +# +m2crypto==0.38.0 + # via -r requirements/static/ci/crypto.in +pycryptodome==3.19.1 + # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.9/linux.txt b/requirements/static/ci/py3.9/linux.txt new file mode 100644 index 00000000000..fd5f770ef99 --- /dev/null +++ b/requirements/static/ci/py3.9/linux.txt @@ -0,0 +1,596 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/linux.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt +# +aiohttp==3.9.4 + # via etcd3-py +aiosignal==1.2.0 + # via aiohttp +apache-libcloud==2.5.0 ; sys_platform != "win32" + # via -r requirements/static/ci/common.in +apscheduler==3.6.3 + # via python-telegram-bot +asn1crypto==1.3.0 + # via + # certvalidator + # oscrypto +async-timeout==4.0.2 + # via aiohttp +attrs==23.1.0 + # via + # aiohttp + # jsonschema + # pytest-salt-factories + # pytest-shell-utilities + # pytest-skip-markers + # pytest-system-statistics +backports.entry-points-selectable==1.1.0 + # via virtualenv +bcrypt==4.1.2 + # via + # -r requirements/static/ci/common.in + # paramiko +boto3==1.21.46 + # via + # -r requirements/static/ci/common.in + # moto +boto==2.49.0 + # via -r requirements/static/ci/common.in +botocore==1.24.46 + # via + # boto3 + # moto + # s3transfer +cachetools==4.2.2 + # via + # google-auth + # python-telegram-bot +cassandra-driver==3.23.0 + # via -r requirements/static/ci/common.in +certifi==2023.07.22 ; python_version < "3.10" + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/base.txt + # kubernetes + # python-telegram-bot + # requests +certvalidator==0.11.1 + # via vcert +cffi==1.14.6 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/static/ci/common.in + # cryptography + # napalm + # pygit2 + # pynacl +charset-normalizer==3.2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # requests +cheetah3==3.2.6.post2 + # via -r requirements/static/ci/common.in +cheroot==8.5.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # cherrypy +cherrypy==18.6.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/static/ci/common.in + # -r requirements/static/pkg/linux.in +ciscoconfparse==1.5.19 + # via napalm +click==7.1.1 + # via geomet +clustershell==1.8.3 + # via -r requirements/static/ci/common.in +colorama==0.4.3 + # via ciscoconfparse +contextvars==2.4 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/base.txt +croniter==2.0.5 ; sys_platform != "win32" + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/base.txt +cryptography==42.0.5 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/base.txt + # -r requirements/static/pkg/linux.in + # etcd3-py + # moto + # paramiko + # pyopenssl + # trustme + # vcert +distlib==0.3.2 + # via virtualenv +distro==1.5.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/base.txt + # pytest-skip-markers +dnspython==2.6.1 + # via + # -r requirements/static/ci/common.in + # ciscoconfparse + # python-etcd +docker==7.1.0 ; python_version >= "3.8" + # via -r requirements/pytest.txt +etcd3-py==0.1.6 + # via -r requirements/static/ci/common.in +exceptiongroup==1.0.4 + # via pytest +filelock==3.0.12 + # via virtualenv +flaky==3.8.1 + # via -r requirements/pytest.txt +frozenlist==1.3.0 + # via + # aiohttp + # aiosignal +future==0.18.3 + # via + # napalm + # textfsm +genshi==0.7.5 + # via -r requirements/static/ci/common.in +geomet==0.1.2 + # via cassandra-driver +gitdb==4.0.7 + # via gitpython +gitpython==3.1.41 + # via -r requirements/static/ci/common.in +google-auth==2.1.0 + # via kubernetes +hglib==2.6.1 + # via -r requirements/static/ci/linux.in +idna==3.7 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # etcd3-py + # requests + # trustme + # yarl +immutables==0.15 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # contextvars +importlib-metadata==6.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/static/pkg/linux.in +iniconfig==1.0.1 + # via pytest +ipaddress==1.0.22 + # via kubernetes +jaraco.classes==3.2.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # jaraco.collections +jaraco.collections==3.4.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # cherrypy +jaraco.functools==2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # cheroot + # jaraco.text + # tempora +jaraco.text==3.5.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # jaraco.collections +jinja2==3.1.4 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/base.txt + # junos-eznc + # moto + # napalm +jmespath==1.0.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/base.txt + # -r requirements/static/ci/common.in + # boto3 + # botocore +jsonschema==3.2.0 + # via -r requirements/static/ci/common.in +junos-eznc==2.4.0 ; sys_platform != "win32" and python_version <= "3.10" + # via + # -r requirements/static/ci/common.in + # napalm +jxmlease==1.0.1 ; sys_platform != "win32" + # via -r requirements/static/ci/common.in +kazoo==2.6.1 ; sys_platform != "win32" and sys_platform != "darwin" + # via -r requirements/static/ci/common.in +keyring==5.7.1 + # via -r requirements/static/ci/common.in +kubernetes==3.0.0 + # via -r requirements/static/ci/common.in +libnacl==1.7.1 ; sys_platform != "win32" and sys_platform != "darwin" + # via -r requirements/static/ci/common.in +looseversion==1.0.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/base.txt +lxml==4.9.1 + # via + # junos-eznc + # napalm + # ncclient +mako==1.2.2 + # via -r requirements/static/ci/common.in +markupsafe==2.1.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/base.txt + # jinja2 + # mako + # moto + # werkzeug +mercurial==6.0.1 + # via -r requirements/static/ci/linux.in +mock==5.1.0 + # via -r requirements/pytest.txt +more-itertools==5.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/pytest.txt + # cheroot + # cherrypy + # jaraco.classes + # jaraco.functools +moto==3.0.1 + # via -r requirements/static/ci/common.in +msgpack==1.0.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/base.txt + # pytest-salt-factories +multidict==6.0.2 + # via + # aiohttp + # yarl +napalm==3.1.0 ; sys_platform != "win32" and python_version < "3.10" + # via -r requirements/static/ci/common.in +ncclient==0.6.4 + # via junos-eznc +netaddr==0.7.19 + # via + # junos-eznc + # napalm + # pyeapi +netmiko==3.2.0 + # via napalm +ntc-templates==1.4.1 + # via junos-eznc +oscrypto==1.2.0 + # via certvalidator +packaging==22.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/base.txt + # pytest +paramiko==3.4.0 ; sys_platform != "win32" and sys_platform != "darwin" + # via + # -r requirements/static/ci/common.in + # junos-eznc + # napalm + # ncclient + # netmiko + # scp +passlib==1.7.4 + # via + # -r requirements/static/ci/common.in + # ciscoconfparse +pathspec==0.9.0 + # via yamllint +pathtools==0.1.2 + # via watchdog +platformdirs==2.2.0 + # via virtualenv +pluggy==1.4.0 + # via pytest +portend==2.4 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # cherrypy +psutil==5.8.0 ; python_version <= "3.9" + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/base.txt + # pytest-salt-factories + # pytest-shell-utilities + # pytest-system-statistics +pyasn1-modules==0.2.4 + # via google-auth +pyasn1==0.4.8 + # via + # pyasn1-modules + # rsa +pycparser==2.21 ; python_version >= "3.9" + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/static/ci/common.in + # -r requirements/static/pkg/linux.in + # cffi +pycryptodomex==3.19.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/crypto.txt +pyeapi==0.8.3 + # via napalm +pyfakefs==5.3.1 + # via -r requirements/pytest.txt +pygit2==1.13.1 + # via -r requirements/static/ci/linux.in +pyiface==0.0.11 + # via -r requirements/static/ci/linux.in +pyinotify==0.9.6 ; sys_platform != "win32" and sys_platform != "darwin" and platform_system != "openbsd" + # via -r requirements/static/ci/common.in +pyjwt==2.4.0 + # via twilio +pymysql==1.1.1 + # via -r requirements/static/ci/linux.in +pynacl==1.5.0 + # via + # -r requirements/static/ci/common.in + # paramiko +pyopenssl==24.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/static/pkg/linux.in + # etcd3-py +pyparsing==3.0.9 + # via junos-eznc +pyrsistent==0.17.3 + # via jsonschema +pyserial==3.4 + # via + # junos-eznc + # netmiko +pytest-custom-exit-code==0.3.0 + # via -r requirements/pytest.txt +pytest-helpers-namespace==2021.4.29 + # via + # -r requirements/pytest.txt + # pytest-salt-factories + # pytest-shell-utilities +pytest-httpserver==1.0.8 + # via -r requirements/pytest.txt +pytest-salt-factories==1.0.1 + # via -r requirements/pytest.txt +pytest-shell-utilities==1.8.0 ; python_version <= "3.9" + # via + # -r requirements/pytest.txt + # pytest-salt-factories +pytest-skip-markers==1.5.2 ; python_version >= "3.8" + # via + # -r requirements/pytest.txt + # pytest-salt-factories + # pytest-shell-utilities + # pytest-system-statistics +pytest-subtests==0.4.0 + # via -r requirements/pytest.txt +pytest-system-statistics==1.0.2 + # via pytest-salt-factories +pytest-timeout==2.3.1 + # via -r requirements/pytest.txt +pytest==8.1.1 + # via + # -r requirements/pytest.txt + # pytest-custom-exit-code + # pytest-helpers-namespace + # pytest-salt-factories + # pytest-shell-utilities + # pytest-skip-markers + # pytest-subtests + # pytest-system-statistics + # pytest-timeout +python-consul==1.1.0 + # via -r requirements/static/ci/linux.in +python-dateutil==2.8.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/static/pkg/linux.in + # botocore + # croniter + # kubernetes + # moto + # vcert +python-etcd==0.4.5 + # via -r requirements/static/ci/common.in +python-gnupg==0.4.8 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/static/pkg/linux.in +python-telegram-bot==13.7 + # via -r requirements/static/ci/linux.in +pytz==2022.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # apscheduler + # croniter + # moto + # python-telegram-bot + # tempora + # twilio +pyvmomi==6.7.1.2018.12 + # via -r requirements/static/ci/common.in +pyyaml==6.0.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/base.txt + # clustershell + # junos-eznc + # kubernetes + # napalm + # pytest-salt-factories + # yamllint + # yamlordereddictloader +pyzmq==23.2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/zeromq.txt + # pytest-salt-factories +redis-py-cluster==2.1.3 + # via -r requirements/static/ci/linux.in +redis==3.5.3 + # via redis-py-cluster +requests==2.31.0 ; python_version < "3.10" + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/base.txt + # apache-libcloud + # docker + # etcd3-py + # kubernetes + # moto + # napalm + # python-consul + # pyvmomi + # responses + # twilio + # vcert +responses==0.10.6 + # via moto +rfc3987==1.3.8 + # via -r requirements/static/ci/common.in +rpm-vercmp==0.1.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/static/pkg/linux.in +rsa==4.7.2 + # via google-auth +s3transfer==0.5.2 + # via boto3 +scp==0.13.2 + # via + # junos-eznc + # napalm + # netmiko +semantic-version==2.9.0 + # via etcd3-py +setproctitle==1.3.2 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/static/pkg/linux.in +six==1.16.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # apscheduler + # cassandra-driver + # cheroot + # etcd3-py + # genshi + # geomet + # jsonschema + # junos-eznc + # kazoo + # kubernetes + # more-itertools + # ncclient + # python-consul + # python-dateutil + # pyvmomi + # responses + # textfsm + # transitions + # vcert + # virtualenv + # websocket-client +slack-bolt==1.15.5 + # via -r requirements/static/ci/linux.in +slack-sdk==3.19.5 + # via slack-bolt +smmap==4.0.0 + # via gitdb +sqlparse==0.5.0 + # via -r requirements/static/ci/common.in +strict-rfc3339==0.7 + # via -r requirements/static/ci/common.in +tempora==4.1.1 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # portend +terminal==0.4.0 + # via ntc-templates +textfsm==1.1.0 + # via + # -r requirements/static/ci/common.in + # napalm + # netmiko + # ntc-templates +timelib==0.2.5 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/static/pkg/linux.in +toml==0.10.2 + # via -r requirements/static/ci/common.in +tomli==2.0.1 + # via pytest +tornado==6.1 + # via python-telegram-bot +transitions==0.8.9 + # via junos-eznc +trustme==1.1.0 + # via -r requirements/pytest.txt +twilio==7.9.2 + # via -r requirements/static/ci/linux.in +typing-extensions==4.8.0 + # via + # pytest-shell-utilities + # pytest-system-statistics +tzlocal==3.0 + # via apscheduler +urllib3==1.26.18 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # botocore + # docker + # kubernetes + # python-etcd + # requests +vcert==0.7.4 ; sys_platform != "win32" + # via -r requirements/static/ci/common.in +virtualenv==20.7.2 + # via + # -r requirements/static/ci/common.in + # pytest-salt-factories +watchdog==0.10.3 + # via -r requirements/static/ci/common.in +websocket-client==0.40.0 + # via kubernetes +wempy==0.2.1 + # via -r requirements/static/ci/common.in +werkzeug==3.0.3 + # via + # moto + # pytest-httpserver +xmltodict==0.12.0 + # via moto +yamllint==1.26.3 + # via -r requirements/static/ci/linux.in +yamlordereddictloader==0.4.0 + # via junos-eznc +yarl==1.7.2 + # via aiohttp +zc.lockfile==1.4 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # cherrypy +zipp==3.5.0 + # via + # -c requirements/static/ci/../pkg/py3.9/linux.txt + # importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/static/ci/py3.9/tools-virustotal.txt b/requirements/static/ci/py3.9/tools-virustotal.txt new file mode 100644 index 00000000000..371670a183b --- /dev/null +++ b/requirements/static/ci/py3.9/tools-virustotal.txt @@ -0,0 +1,28 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --output-file=requirements/static/ci/py3.9/tools-virustotal.txt requirements/static/ci/tools-virustotal.in +# +certifi==2023.7.22 + # via + # -c requirements/static/ci/../ci/py3.9/tools.txt + # requests +charset-normalizer==3.2.0 + # via + # -c requirements/static/ci/../ci/py3.9/tools.txt + # requests +idna==3.7 + # via + # -c requirements/static/ci/../ci/py3.9/tools.txt + # requests +requests==2.31.0 + # via + # -c requirements/static/ci/../ci/py3.9/tools.txt + # virustotal3 +urllib3==1.26.18 + # via + # -c requirements/static/ci/../ci/py3.9/tools.txt + # requests +virustotal3==1.0.8 + # via -r requirements/static/ci/tools-virustotal.in diff --git a/requirements/static/ci/py3.9/tools.txt b/requirements/static/ci/py3.9/tools.txt new file mode 100644 index 00000000000..ce108ecbe21 --- /dev/null +++ b/requirements/static/ci/py3.9/tools.txt @@ -0,0 +1,67 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/tools.txt requirements/static/ci/tools.in +# +annotated-types==0.6.0 + # via pydantic +attrs==20.3.0 + # via + # -r requirements/static/ci/tools.in + # python-tools-scripts +boto3==1.26.147 + # via -r requirements/static/ci/tools.in +botocore==1.29.147 + # via + # boto3 + # s3transfer +certifi==2023.7.22 + # via requests +charset-normalizer==3.2.0 + # via requests +idna==3.7 + # via requests +jinja2==3.1.4 + # via -r requirements/static/ci/tools.in +jmespath==1.0.1 + # via + # boto3 + # botocore +markdown-it-py==2.2.0 + # via rich +markupsafe==2.1.2 + # via jinja2 +mdurl==0.1.2 + # via markdown-it-py +packaging==22.0 + # via -r requirements/static/ci/tools.in +pydantic-core==2.16.2 + # via pydantic +pydantic==2.6.1 + # via python-tools-scripts +pygments==2.17.2 + # via rich +python-dateutil==2.8.1 + # via botocore +python-tools-scripts==0.20.0 + # via -r requirements/static/ci/tools.in +pyyaml==6.0.1 + # via -r requirements/static/ci/tools.in +requests==2.31.0 + # via python-tools-scripts +rich==13.3.5 + # via python-tools-scripts +s3transfer==0.6.1 + # via boto3 +six==1.16.0 + # via python-dateutil +typing-extensions==4.9.0 + # via + # pydantic + # pydantic-core + # python-tools-scripts +urllib3==1.26.18 + # via + # botocore + # requests diff --git a/requirements/static/ci/py3.9/windows-crypto.txt b/requirements/static/ci/py3.9/windows-crypto.txt new file mode 100644 index 00000000000..f86205bbf2e --- /dev/null +++ b/requirements/static/ci/py3.9/windows-crypto.txt @@ -0,0 +1,10 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/windows-crypto.txt requirements/static/ci/crypto.in +# +m2crypto==0.38.0 + # via -r requirements/static/ci/crypto.in +pycryptodome==3.19.1 + # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.9/windows.txt b/requirements/static/ci/py3.9/windows.txt new file mode 100644 index 00000000000..5c9bd25c8ef --- /dev/null +++ b/requirements/static/ci/py3.9/windows.txt @@ -0,0 +1,513 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/windows.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/windows.in requirements/static/pkg/windows.in requirements/windows.txt +# +aiohttp==3.9.4 + # via etcd3-py +aiosignal==1.2.0 + # via aiohttp +async-timeout==4.0.2 + # via aiohttp +attrs==23.1.0 + # via + # aiohttp + # jsonschema + # pytest-salt-factories + # pytest-shell-utilities + # pytest-skip-markers + # pytest-system-statistics +backports.entry-points-selectable==1.1.0 + # via virtualenv +bcrypt==4.1.2 + # via -r requirements/static/ci/common.in +boto3==1.21.46 + # via + # -r requirements/static/ci/common.in + # moto +boto==2.49.0 + # via -r requirements/static/ci/common.in +botocore==1.24.46 + # via + # boto3 + # moto + # s3transfer +cachetools==3.1.0 + # via google-auth +cassandra-driver==3.23.0 + # via -r requirements/static/ci/common.in +certifi==2023.07.22 ; python_version < "3.10" + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/base.txt + # kubernetes + # requests +cffi==1.14.6 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/static/ci/common.in + # -r requirements/windows.txt + # clr-loader + # cryptography + # pygit2 + # pynacl +charset-normalizer==3.2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # requests +cheetah3==3.2.6.post2 + # via -r requirements/static/ci/common.in +cheroot==8.5.2 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # cherrypy +cherrypy==18.6.1 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/static/ci/common.in + # -r requirements/windows.txt +click==7.1.2 + # via geomet +clr-loader==0.2.4 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # pythonnet +clustershell==1.8.3 + # via -r requirements/static/ci/common.in +colorama==0.4.1 + # via pytest +contextvars==2.4 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/base.txt +cryptography==42.0.5 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/base.txt + # -r requirements/windows.txt + # etcd3-py + # moto + # pyopenssl + # requests-ntlm + # trustme +distlib==0.3.2 + # via virtualenv +distro==1.5.0 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/base.txt + # pytest-skip-markers +dmidecode==0.9.0 + # via -r requirements/static/ci/windows.in +dnspython==2.6.1 + # via + # -r requirements/static/ci/common.in + # python-etcd +docker==7.1.0 ; python_version >= "3.8" + # via -r requirements/pytest.txt +etcd3-py==0.1.6 + # via -r requirements/static/ci/common.in +exceptiongroup==1.0.4 + # via pytest +filelock==3.0.12 + # via virtualenv +flaky==3.8.1 + # via -r requirements/pytest.txt +frozenlist==1.3.0 + # via + # aiohttp + # aiosignal +future==1.0.0 + # via textfsm +genshi==0.7.5 + # via -r requirements/static/ci/common.in +geomet==0.1.2 + # via cassandra-driver +gitdb==4.0.7 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # gitpython +gitpython==3.1.41 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/static/ci/common.in + # -r requirements/windows.txt +google-auth==2.1.0 + # via kubernetes +idna==3.7 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # etcd3-py + # requests + # trustme + # yarl +immutables==0.15 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # contextvars +importlib-metadata==6.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt +iniconfig==1.0.1 + # via pytest +ioloop==0.1a0 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt +ipaddress==1.0.22 + # via kubernetes +jaraco.classes==3.2.1 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # jaraco.collections +jaraco.collections==3.3.0 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # cherrypy +jaraco.functools==2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # cheroot + # jaraco.text + # tempora +jaraco.text==3.5.0 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # jaraco.collections +jinja2==3.1.4 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/base.txt + # moto +jmespath==1.0.1 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/base.txt + # -r requirements/static/ci/common.in + # boto3 + # botocore +jsonschema==3.2.0 + # via -r requirements/static/ci/common.in +keyring==5.7.1 + # via -r requirements/static/ci/common.in +kubernetes==3.0.0 + # via -r requirements/static/ci/common.in +looseversion==1.0.2 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/base.txt +lxml==4.9.1 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt +mako==1.2.2 + # via -r requirements/static/ci/common.in +markupsafe==2.1.2 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/base.txt + # jinja2 + # mako + # moto + # werkzeug +mock==5.1.0 + # via -r requirements/pytest.txt +more-itertools==8.2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/pytest.txt + # cheroot + # cherrypy + # jaraco.classes + # jaraco.functools +moto==3.0.1 + # via -r requirements/static/ci/common.in +msgpack==1.0.2 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/base.txt + # pytest-salt-factories +multidict==6.0.2 + # via + # aiohttp + # yarl +ntlm-auth==1.5.0 + # via requests-ntlm +packaging==22.0 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/base.txt + # pytest +passlib==1.7.4 + # via -r requirements/static/ci/common.in +patch==1.16 + # via -r requirements/static/ci/windows.in +pathspec==0.9.0 + # via yamllint +pathtools==0.1.2 + # via watchdog +platformdirs==2.2.0 + # via virtualenv +pluggy==1.4.0 + # via pytest +portend==2.6 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # cherrypy +psutil==5.8.0 ; python_version <= "3.9" + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/base.txt + # pytest-salt-factories + # pytest-shell-utilities + # pytest-system-statistics +pyasn1-modules==0.2.4 + # via google-auth +pyasn1==0.4.8 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt + # pyasn1-modules + # rsa +pycparser==2.21 ; python_version >= "3.9" + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/static/ci/common.in + # -r requirements/windows.txt + # cffi +pycryptodomex==3.19.1 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/crypto.txt +pyfakefs==5.3.1 + # via -r requirements/pytest.txt +pygit2==1.13.1 + # via -r requirements/static/ci/windows.in +pymssql==2.3.0 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt +pynacl==1.5.0 + # via -r requirements/static/ci/common.in +pyopenssl==24.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt + # etcd3-py +pyrsistent==0.17.3 + # via jsonschema +pytest-custom-exit-code==0.3.0 + # via -r requirements/pytest.txt +pytest-helpers-namespace==2021.4.29 + # via + # -r requirements/pytest.txt + # pytest-salt-factories + # pytest-shell-utilities +pytest-httpserver==1.0.8 + # via -r requirements/pytest.txt +pytest-salt-factories==1.0.1 + # via -r requirements/pytest.txt +pytest-shell-utilities==1.8.0 ; python_version <= "3.9" + # via + # -r requirements/pytest.txt + # pytest-salt-factories +pytest-skip-markers==1.5.2 ; python_version >= "3.8" + # via + # -r requirements/pytest.txt + # pytest-salt-factories + # pytest-shell-utilities + # pytest-system-statistics +pytest-subtests==0.4.0 + # via -r requirements/pytest.txt +pytest-system-statistics==1.0.2 + # via pytest-salt-factories +pytest-timeout==2.3.1 + # via -r requirements/pytest.txt +pytest==8.1.1 + # via + # -r requirements/pytest.txt + # pytest-custom-exit-code + # pytest-helpers-namespace + # pytest-salt-factories + # pytest-shell-utilities + # pytest-skip-markers + # pytest-subtests + # pytest-system-statistics + # pytest-timeout +python-dateutil==2.8.1 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt + # botocore + # kubernetes + # moto +python-etcd==0.4.5 + # via -r requirements/static/ci/common.in +python-gnupg==0.4.8 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt +pythonnet==3.0.1 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt +pytz==2022.1 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # moto + # tempora +pyvmomi==6.7.1.2018.12 + # via -r requirements/static/ci/common.in +pywin32==305 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt + # cherrypy + # docker + # pytest-skip-markers + # wmi +pywinrm==0.4.1 + # via -r requirements/static/ci/windows.in +pyyaml==6.0.1 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/base.txt + # clustershell + # kubernetes + # pytest-salt-factories + # yamllint +pyzmq==25.0.2 ; sys_platform == "win32" + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/zeromq.txt + # pytest-salt-factories +requests-ntlm==1.1.0 + # via pywinrm +requests==2.31.0 ; python_version < "3.10" + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/base.txt + # -r requirements/windows.txt + # docker + # etcd3-py + # kubernetes + # moto + # pyvmomi + # pywinrm + # requests-ntlm + # responses +responses==0.10.6 + # via moto +rfc3987==1.3.8 + # via -r requirements/static/ci/common.in +rsa==4.7.2 + # via google-auth +s3transfer==0.5.2 + # via boto3 +sed==0.3.1 + # via -r requirements/static/ci/windows.in +semantic-version==2.9.0 + # via etcd3-py +setproctitle==1.3.2 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt +six==1.15.0 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # cassandra-driver + # cheroot + # etcd3-py + # genshi + # geomet + # jsonschema + # kubernetes + # python-dateutil + # pyvmomi + # pywinrm + # responses + # textfsm + # virtualenv + # websocket-client +smmap==4.0.0 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # gitdb +sqlparse==0.5.0 + # via -r requirements/static/ci/common.in +strict-rfc3339==0.7 + # via -r requirements/static/ci/common.in +tempora==4.1.1 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # portend +textfsm==1.1.3 + # via -r requirements/static/ci/common.in +timelib==0.2.5 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt +toml==0.10.2 + # via -r requirements/static/ci/common.in +tomli==2.0.1 + # via pytest +trustme==1.1.0 + # via -r requirements/pytest.txt +typing-extensions==4.2.0 + # via + # pytest-shell-utilities + # pytest-system-statistics +urllib3==1.26.18 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt + # botocore + # docker + # kubernetes + # python-etcd + # requests +virtualenv==20.7.2 + # via + # -r requirements/static/ci/common.in + # pytest-salt-factories +watchdog==0.10.3 + # via -r requirements/static/ci/common.in +websocket-client==0.40.0 + # via kubernetes +wempy==0.2.1 + # via -r requirements/static/ci/common.in +werkzeug==3.0.3 + # via + # moto + # pytest-httpserver +wheel==0.38.4 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt +wmi==1.5.1 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt +xmltodict==0.13.0 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt + # moto + # pywinrm +yamllint==1.26.3 + # via -r requirements/static/ci/windows.in +yarl==1.7.2 + # via aiohttp +zc.lockfile==2.0 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # cherrypy +zipp==3.5.0 + # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/static/pkg/py3.9/darwin.txt b/requirements/static/pkg/py3.9/darwin.txt new file mode 100644 index 00000000000..3f0e827f089 --- /dev/null +++ b/requirements/static/pkg/py3.9/darwin.txt @@ -0,0 +1,132 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/pkg/py3.9/darwin.txt requirements/darwin.txt requirements/static/pkg/darwin.in +# +apache-libcloud==2.5.0 + # via -r requirements/darwin.txt +certifi==2023.07.22 ; python_version < "3.10" + # via + # -r requirements/base.txt + # requests +cffi==1.14.6 + # via cryptography +charset-normalizer==3.2.0 + # via requests +cheroot==8.5.2 + # via cherrypy +cherrypy==18.6.1 + # via -r requirements/darwin.txt +contextvars==2.4 + # via -r requirements/base.txt +croniter==2.0.5 ; sys_platform != "win32" + # via -r requirements/base.txt +cryptography==42.0.5 + # via + # -r requirements/base.txt + # -r requirements/darwin.txt + # pyopenssl +distro==1.5.0 + # via -r requirements/base.txt +gitdb==4.0.7 + # via gitpython +gitpython==3.1.41 + # via -r requirements/darwin.txt +idna==3.7 + # via + # -r requirements/darwin.txt + # requests +immutables==0.15 + # via contextvars +importlib-metadata==6.0.0 + # via -r requirements/darwin.txt +jaraco.classes==3.2.1 + # via jaraco.collections +jaraco.collections==3.4.0 + # via cherrypy +jaraco.functools==2.0 + # via + # cheroot + # jaraco.text + # tempora +jaraco.text==3.5.1 + # via jaraco.collections +jinja2==3.1.4 + # via -r requirements/base.txt +jmespath==1.0.1 + # via -r requirements/base.txt +linode-python==1.1.1 + # via -r requirements/darwin.txt +looseversion==1.0.2 + # via -r requirements/base.txt +markupsafe==2.1.2 + # via + # -r requirements/base.txt + # jinja2 +more-itertools==8.2.0 + # via + # cheroot + # cherrypy + # jaraco.classes + # jaraco.functools +msgpack==1.0.2 + # via -r requirements/base.txt +packaging==22.0 + # via -r requirements/base.txt +portend==2.6 + # via cherrypy +psutil==5.8.0 ; python_version <= "3.9" + # via -r requirements/base.txt +pyasn1==0.4.8 + # via -r requirements/darwin.txt +pycparser==2.21 + # via + # -r requirements/darwin.txt + # cffi +pycryptodomex==3.19.1 + # via -r requirements/crypto.txt +pyopenssl==24.0.0 + # via -r requirements/darwin.txt +python-dateutil==2.8.0 + # via + # -r requirements/darwin.txt + # croniter +python-gnupg==0.4.8 + # via -r requirements/darwin.txt +pytz==2022.1 + # via + # croniter + # tempora +pyyaml==6.0.1 + # via -r requirements/base.txt +pyzmq==25.1.2 ; sys_platform == "darwin" + # via -r requirements/zeromq.txt +requests==2.31.0 ; python_version < "3.10" + # via + # -r requirements/base.txt + # apache-libcloud + # vultr +setproctitle==1.3.2 + # via -r requirements/darwin.txt +six==1.16.0 + # via + # cheroot + # python-dateutil +smmap==4.0.0 + # via gitdb +tempora==4.1.1 + # via portend +timelib==0.2.5 + # via -r requirements/darwin.txt +urllib3==1.26.18 + # via requests +vultr==1.0.1 + # via -r requirements/darwin.txt +zc.lockfile==2.0 + # via cherrypy +zipp==3.5.0 + # via importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/static/pkg/py3.9/freebsd.txt b/requirements/static/pkg/py3.9/freebsd.txt new file mode 100644 index 00000000000..78dbbf27f28 --- /dev/null +++ b/requirements/static/pkg/py3.9/freebsd.txt @@ -0,0 +1,116 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/pkg/py3.9/freebsd.txt requirements/base.txt requirements/static/pkg/freebsd.in requirements/zeromq.txt +# +certifi==2023.07.22 ; python_version < "3.10" + # via + # -r requirements/base.txt + # requests +cffi==1.14.6 + # via cryptography +charset-normalizer==3.2.0 + # via requests +cheroot==8.5.2 + # via cherrypy +cherrypy==18.6.1 + # via -r requirements/static/pkg/freebsd.in +contextvars==2.4 + # via -r requirements/base.txt +croniter==2.0.5 ; sys_platform != "win32" + # via -r requirements/base.txt +cryptography==42.0.5 + # via + # -r requirements/base.txt + # -r requirements/static/pkg/freebsd.in + # pyopenssl +distro==1.5.0 + # via + # -r requirements/base.txt + # -r requirements/static/pkg/freebsd.in +idna==3.7 + # via requests +immutables==0.15 + # via contextvars +importlib-metadata==6.0.0 + # via -r requirements/static/pkg/freebsd.in +jaraco.classes==3.2.1 + # via jaraco.collections +jaraco.collections==3.4.0 + # via cherrypy +jaraco.functools==2.0 + # via + # cheroot + # jaraco.text + # tempora +jaraco.text==3.5.1 + # via jaraco.collections +jinja2==3.1.4 + # via -r requirements/base.txt +jmespath==1.0.1 + # via -r requirements/base.txt +looseversion==1.0.2 + # via -r requirements/base.txt +markupsafe==2.1.2 + # via + # -r requirements/base.txt + # jinja2 +more-itertools==5.0.0 + # via + # cheroot + # cherrypy + # jaraco.classes + # jaraco.functools +msgpack==1.0.2 + # via -r requirements/base.txt +packaging==22.0 + # via -r requirements/base.txt +portend==2.4 + # via cherrypy +psutil==5.8.0 ; python_version <= "3.9" + # via -r requirements/base.txt +pycparser==2.21 ; python_version >= "3.9" + # via + # -r requirements/static/pkg/freebsd.in + # cffi +pycryptodomex==3.19.1 + # via -r requirements/crypto.txt +pyopenssl==24.0.0 + # via -r requirements/static/pkg/freebsd.in +python-dateutil==2.8.1 + # via + # -r requirements/static/pkg/freebsd.in + # croniter +python-gnupg==0.4.8 + # via -r requirements/static/pkg/freebsd.in +pytz==2022.1 + # via + # croniter + # tempora +pyyaml==6.0.1 + # via -r requirements/base.txt +pyzmq==23.2.0 + # via -r requirements/zeromq.txt +requests==2.31.0 ; python_version < "3.10" + # via -r requirements/base.txt +setproctitle==1.3.2 + # via -r requirements/static/pkg/freebsd.in +six==1.16.0 + # via + # cheroot + # more-itertools + # python-dateutil +tempora==4.1.1 + # via portend +timelib==0.2.5 + # via -r requirements/static/pkg/freebsd.in +urllib3==1.26.18 + # via requests +zc.lockfile==1.4 + # via cherrypy +zipp==3.5.0 + # via importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/static/pkg/py3.9/linux.txt b/requirements/static/pkg/py3.9/linux.txt new file mode 100644 index 00000000000..3f0c1b8b138 --- /dev/null +++ b/requirements/static/pkg/py3.9/linux.txt @@ -0,0 +1,116 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/pkg/py3.9/linux.txt requirements/base.txt requirements/static/pkg/linux.in requirements/zeromq.txt +# +certifi==2023.07.22 ; python_version < "3.10" + # via + # -r requirements/base.txt + # requests +cffi==1.14.6 + # via cryptography +charset-normalizer==3.2.0 + # via requests +cheroot==8.5.2 + # via cherrypy +cherrypy==18.6.1 + # via -r requirements/static/pkg/linux.in +contextvars==2.4 + # via -r requirements/base.txt +croniter==2.0.5 ; sys_platform != "win32" + # via -r requirements/base.txt +cryptography==42.0.5 + # via + # -r requirements/base.txt + # -r requirements/static/pkg/linux.in + # pyopenssl +distro==1.5.0 + # via -r requirements/base.txt +idna==3.7 + # via requests +immutables==0.15 + # via contextvars +importlib-metadata==6.0.0 + # via -r requirements/static/pkg/linux.in +jaraco.classes==3.2.1 + # via jaraco.collections +jaraco.collections==3.4.0 + # via cherrypy +jaraco.functools==2.0 + # via + # cheroot + # jaraco.text + # tempora +jaraco.text==3.5.1 + # via jaraco.collections +jinja2==3.1.4 + # via -r requirements/base.txt +jmespath==1.0.1 + # via -r requirements/base.txt +looseversion==1.0.2 + # via -r requirements/base.txt +markupsafe==2.1.2 + # via + # -r requirements/base.txt + # jinja2 +more-itertools==5.0.0 + # via + # cheroot + # cherrypy + # jaraco.classes + # jaraco.functools +msgpack==1.0.2 + # via -r requirements/base.txt +packaging==22.0 + # via -r requirements/base.txt +portend==2.4 + # via cherrypy +psutil==5.8.0 ; python_version <= "3.9" + # via -r requirements/base.txt +pycparser==2.21 ; python_version >= "3.9" + # via + # -r requirements/static/pkg/linux.in + # cffi +pycryptodomex==3.19.1 + # via -r requirements/crypto.txt +pyopenssl==24.0.0 + # via -r requirements/static/pkg/linux.in +python-dateutil==2.8.1 + # via + # -r requirements/static/pkg/linux.in + # croniter +python-gnupg==0.4.8 + # via -r requirements/static/pkg/linux.in +pytz==2022.1 + # via + # croniter + # tempora +pyyaml==6.0.1 + # via -r requirements/base.txt +pyzmq==23.2.0 + # via -r requirements/zeromq.txt +requests==2.31.0 ; python_version < "3.10" + # via -r requirements/base.txt +rpm-vercmp==0.1.2 + # via -r requirements/static/pkg/linux.in +setproctitle==1.3.2 + # via -r requirements/static/pkg/linux.in +six==1.16.0 + # via + # cheroot + # more-itertools + # python-dateutil +tempora==4.1.1 + # via portend +timelib==0.2.5 + # via -r requirements/static/pkg/linux.in +urllib3==1.26.18 + # via requests +zc.lockfile==1.4 + # via cherrypy +zipp==3.5.0 + # via importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/static/pkg/py3.9/windows.txt b/requirements/static/pkg/py3.9/windows.txt new file mode 100644 index 00000000000..afa060a8fef --- /dev/null +++ b/requirements/static/pkg/py3.9/windows.txt @@ -0,0 +1,143 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --no-emit-index-url --output-file=requirements/static/pkg/py3.9/windows.txt requirements/static/pkg/windows.in requirements/windows.txt +# +certifi==2023.07.22 ; python_version < "3.10" + # via + # -r requirements/base.txt + # requests +cffi==1.14.6 + # via + # -r requirements/windows.txt + # clr-loader + # cryptography +charset-normalizer==3.2.0 + # via requests +cheroot==8.5.2 + # via cherrypy +cherrypy==18.6.1 + # via -r requirements/windows.txt +clr-loader==0.2.4 + # via pythonnet +contextvars==2.4 + # via -r requirements/base.txt +cryptography==42.0.5 + # via + # -r requirements/base.txt + # -r requirements/windows.txt + # pyopenssl +distro==1.5.0 + # via -r requirements/base.txt +gitdb==4.0.7 + # via gitpython +gitpython==3.1.41 + # via -r requirements/windows.txt +idna==3.7 + # via requests +immutables==0.15 + # via contextvars +importlib-metadata==6.0.0 + # via -r requirements/windows.txt +ioloop==0.1a0 + # via -r requirements/windows.txt +jaraco.classes==3.2.1 + # via jaraco.collections +jaraco.collections==3.3.0 + # via cherrypy +jaraco.functools==2.0 + # via + # cheroot + # jaraco.text + # tempora +jaraco.text==3.5.0 + # via jaraco.collections +jinja2==3.1.4 + # via -r requirements/base.txt +jmespath==1.0.1 + # via -r requirements/base.txt +looseversion==1.0.2 + # via -r requirements/base.txt +lxml==4.9.1 + # via -r requirements/windows.txt +markupsafe==2.1.2 + # via + # -r requirements/base.txt + # jinja2 +more-itertools==8.2.0 + # via + # cheroot + # cherrypy + # jaraco.classes + # jaraco.functools +msgpack==1.0.2 + # via -r requirements/base.txt +packaging==22.0 + # via -r requirements/base.txt +portend==2.6 + # via cherrypy +psutil==5.8.0 ; python_version <= "3.9" + # via -r requirements/base.txt +pyasn1==0.4.8 + # via -r requirements/windows.txt +pycparser==2.21 + # via + # -r requirements/windows.txt + # cffi +pycryptodomex==3.19.1 + # via -r requirements/crypto.txt +pymssql==2.3.0 + # via -r requirements/windows.txt +pyopenssl==24.0.0 + # via -r requirements/windows.txt +python-dateutil==2.8.1 + # via -r requirements/windows.txt +python-gnupg==0.4.8 + # via -r requirements/windows.txt +pythonnet==3.0.1 + # via -r requirements/windows.txt +pytz==2022.1 + # via tempora +pywin32==305 + # via + # -r requirements/windows.txt + # cherrypy + # wmi +pyyaml==6.0.1 + # via -r requirements/base.txt +pyzmq==25.0.2 ; sys_platform == "win32" + # via -r requirements/zeromq.txt +requests==2.31.0 ; python_version < "3.10" + # via + # -r requirements/base.txt + # -r requirements/windows.txt +setproctitle==1.3.2 + # via -r requirements/windows.txt +six==1.15.0 + # via + # cheroot + # python-dateutil +smmap==4.0.0 + # via gitdb +tempora==4.1.1 + # via portend +timelib==0.2.5 + # via -r requirements/windows.txt +urllib3==1.26.18 + # via + # -r requirements/windows.txt + # requests +wheel==0.38.4 + # via -r requirements/windows.txt +wmi==1.5.1 + # via -r requirements/windows.txt +xmltodict==0.13.0 + # via -r requirements/windows.txt +zc.lockfile==2.0 + # via cherrypy +zipp==3.5.0 + # via importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +# setuptools From 81885bace30f9fa30d885f193f48b80a5b9b76f1 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Thu, 13 Feb 2025 09:39:33 -0700 Subject: [PATCH 029/101] Added changelog entry --- changelog/67729.deprecated.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog/67729.deprecated.md diff --git a/changelog/67729.deprecated.md b/changelog/67729.deprecated.md new file mode 100644 index 00000000000..9f736524b67 --- /dev/null +++ b/changelog/67729.deprecated.md @@ -0,0 +1 @@ +Removed support for end of life Python 3.7 and 3.8 from pre-commit and requirements From 4fe15bc4fab7ebf5a5438679b0980044a1b11dc1 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Thu, 13 Feb 2025 16:01:57 -0700 Subject: [PATCH 030/101] Attempt to use python3 provided by relenv --- .github/actions/cached-virtualenv/action.yml | 3 ++- .github/actions/setup-python-tools-scripts/action.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/actions/cached-virtualenv/action.yml b/.github/actions/cached-virtualenv/action.yml index a24b805599d..fc4f1a978cc 100644 --- a/.github/actions/cached-virtualenv/action.yml +++ b/.github/actions/cached-virtualenv/action.yml @@ -31,7 +31,8 @@ runs: id: get-python-version uses: ./.github/actions/get-python-version with: - python-binary: python3 + ## DGM python-binary: python3 + python-binary: /__w/salt/salt/artifacts/salt/bin/python3 - name: Setup Cache Key shell: bash diff --git a/.github/actions/setup-python-tools-scripts/action.yml b/.github/actions/setup-python-tools-scripts/action.yml index 21390a12c4a..25fdf7b8e59 100644 --- a/.github/actions/setup-python-tools-scripts/action.yml +++ b/.github/actions/setup-python-tools-scripts/action.yml @@ -25,7 +25,8 @@ runs: id: get-python-version uses: ./.github/actions/get-python-version with: - python-binary: python3 + ## DGM python-binary: python3 + python-binary: /__w/salt/salt/artifacts/salt/bin/python3 - name: Define Cache Hash id: venv-hash From e9895ca4803195d32bb39e34449da8cc3fe7a9f9 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Thu, 13 Feb 2025 16:05:18 -0700 Subject: [PATCH 031/101] Revert change, wrong issue branch was used --- .github/actions/cached-virtualenv/action.yml | 3 +-- .github/actions/setup-python-tools-scripts/action.yml | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/actions/cached-virtualenv/action.yml b/.github/actions/cached-virtualenv/action.yml index fc4f1a978cc..a24b805599d 100644 --- a/.github/actions/cached-virtualenv/action.yml +++ b/.github/actions/cached-virtualenv/action.yml @@ -31,8 +31,7 @@ runs: id: get-python-version uses: ./.github/actions/get-python-version with: - ## DGM python-binary: python3 - python-binary: /__w/salt/salt/artifacts/salt/bin/python3 + python-binary: python3 - name: Setup Cache Key shell: bash diff --git a/.github/actions/setup-python-tools-scripts/action.yml b/.github/actions/setup-python-tools-scripts/action.yml index 25fdf7b8e59..21390a12c4a 100644 --- a/.github/actions/setup-python-tools-scripts/action.yml +++ b/.github/actions/setup-python-tools-scripts/action.yml @@ -25,8 +25,7 @@ runs: id: get-python-version uses: ./.github/actions/get-python-version with: - ## DGM python-binary: python3 - python-binary: /__w/salt/salt/artifacts/salt/bin/python3 + python-binary: python3 - name: Define Cache Hash id: venv-hash From 3f2b63f5bca75728e71cc2e3b62be852047895ef Mon Sep 17 00:00:00 2001 From: David Murphy Date: Fri, 14 Feb 2025 09:20:49 -0700 Subject: [PATCH 032/101] Added blank line to force rebuild --- .pre-commit-config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 54af518f710..1ed4c7d83e5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -380,6 +380,7 @@ repos: # <---- Packaging Requirements ------------------------------------------------------------------------------------- # ----- CI Requirements -------------------------------------------------------------------------------------------> + - id: pip-tools-compile alias: compile-ci-linux-3.9-zmq-requirements name: Linux CI Py3.9 ZeroMQ Requirements From b5b850167b19bed7f591a1c8efefddd709fd7aa6 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Thu, 20 Feb 2025 23:50:36 -0700 Subject: [PATCH 033/101] Fix pre-commit --- salt/_logging/impl.py | 31 ++++++++++--------------------- salt/modules/baredoc.py | 9 ++++----- salt/modules/deb_postgres.py | 6 +++--- salt/utils/http.py | 2 +- tests/conftest.py | 7 +------ tests/support/pkg.py | 10 +++++----- 6 files changed, 24 insertions(+), 41 deletions(-) diff --git a/salt/_logging/impl.py b/salt/_logging/impl.py index 2a12ddf3f94..e24fecced4d 100644 --- a/salt/_logging/impl.py +++ b/salt/_logging/impl.py @@ -280,27 +280,16 @@ class SaltLoggingClass(LOGGING_LOGGER_CLASS, metaclass=LoggingMixinMeta): else: extra["exc_info_on_loglevel"] = exc_info_on_loglevel - if sys.version_info < (3, 8): - LOGGING_LOGGER_CLASS._log( - self, - level, - msg, - args, - exc_info=exc_info, - extra=extra, - stack_info=stack_info, - ) - else: - LOGGING_LOGGER_CLASS._log( - self, - level, - msg, - args, - exc_info=exc_info, - extra=extra, - stack_info=stack_info, - stacklevel=stacklevel, - ) + LOGGING_LOGGER_CLASS._log( + self, + level, + msg, + args, + exc_info=exc_info, + extra=extra, + stack_info=stack_info, + stacklevel=stacklevel, + ) def makeRecord( self, diff --git a/salt/modules/baredoc.py b/salt/modules/baredoc.py index 7513b546919..1d91ade25a6 100644 --- a/salt/modules/baredoc.py +++ b/salt/modules/baredoc.py @@ -10,7 +10,6 @@ import ast import itertools import logging import os -from typing import Dict, List import salt.utils.doc import salt.utils.files @@ -36,7 +35,7 @@ def _get_module_name(tree, filename: str) -> str: return module_name -def _get_func_aliases(tree) -> Dict: +def _get_func_aliases(tree) -> dict: """ Get __func_alias__ dict for mapping function names """ @@ -54,7 +53,7 @@ def _get_func_aliases(tree) -> Dict: return fun_aliases -def _get_args(function: str) -> Dict: +def _get_args(function: str) -> dict: """ Given a function def, returns arguments and defaults """ @@ -128,7 +127,7 @@ def _parse_module_docs(module_path, mod_name=None): return salt.utils.doc.strip_rst(ret) -def _parse_module_functions(module_py: str, return_type: str) -> Dict: +def _parse_module_functions(module_py: str, return_type: str) -> dict: """ Parse module files for proper module_name and function name, then gather functions and possibly arguments @@ -161,7 +160,7 @@ def _parse_module_functions(module_py: str, return_type: str) -> Dict: return ret -def _get_files(name=False, type="states", return_type="args") -> List: +def _get_files(name=False, type="states", return_type="args") -> list: """ Determine if modules/states directories or files are requested diff --git a/salt/modules/deb_postgres.py b/salt/modules/deb_postgres.py index e43f87f0fbd..ecd339e08f2 100644 --- a/salt/modules/deb_postgres.py +++ b/salt/modules/deb_postgres.py @@ -75,7 +75,7 @@ def cluster_create( cmd += ["--data-checksums"] if wal_segsize: cmd += ["--wal-segsize", wal_segsize] - cmdstr = " ".join([shlex.quote(c) for c in cmd]) + cmdstr = shlex.join(cmd) ret = __salt__["cmd.run_all"](cmdstr, python_shell=False) if ret.get("retcode", 0) != 0: log.error("Error creating a Postgresql cluster %s/%s", version, name) @@ -96,7 +96,7 @@ def cluster_list(verbose=False): salt '*' postgres.cluster_list verbose=True """ cmd = [salt.utils.path.which("pg_lsclusters"), "--no-header"] - ret = __salt__["cmd.run_all"](" ".join([shlex.quote(c) for c in cmd])) + ret = __salt__["cmd.run_all"](shlex.join(cmd)) if ret.get("retcode", 0) != 0: log.error("Error listing clusters") cluster_dict = _parse_pg_lscluster(ret["stdout"]) @@ -140,7 +140,7 @@ def cluster_remove(version, name="main", stop=False): if stop: cmd += ["--stop"] cmd += [str(version), name] - cmdstr = " ".join([shlex.quote(c) for c in cmd]) + cmdstr = shlex.join(cmd) ret = __salt__["cmd.run_all"](cmdstr, python_shell=False) # FIXME - return Boolean ? if ret.get("retcode", 0) != 0: diff --git a/salt/utils/http.py b/salt/utils/http.py index 824a9b2310a..50f1f3428bb 100644 --- a/salt/utils/http.py +++ b/salt/utils/http.py @@ -643,7 +643,7 @@ def query( decode_body=decode_body, ) return ret - except (socket.herror, OSError, socket.timeout, socket.gaierror) as exc: + except (socket.herror, OSError, TimeoutError, socket.gaierror) as exc: if status is True: ret["status"] = 0 ret["error"] = str(exc) diff --git a/tests/conftest.py b/tests/conftest.py index c9e10f93a19..edf27fc5c20 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -864,12 +864,7 @@ def integration_files_dir(salt_factories): for child in (PYTESTS_DIR / "integration" / "files").iterdir(): destpath = dirname / child.name if child.is_dir(): - if sys.version_info >= (3, 8): - shutil.copytree(str(child), str(destpath), dirs_exist_ok=True) - else: - if destpath.exists(): - shutil.rmtree(str(destpath), ignore_errors=True) - shutil.copytree(str(child), str(destpath)) + shutil.copytree(str(child), str(destpath), dirs_exist_ok=True) else: shutil.copyfile(str(child), str(destpath)) return dirname diff --git a/tests/support/pkg.py b/tests/support/pkg.py index 78282073e1a..61a9cb8d15b 100644 --- a/tests/support/pkg.py +++ b/tests/support/pkg.py @@ -8,7 +8,7 @@ import re import shutil import textwrap import time -from typing import TYPE_CHECKING, Dict, List +from typing import TYPE_CHECKING import attr import distro @@ -50,7 +50,7 @@ class SaltPkgInstall: ssm_bin: pathlib.Path = attr.ib(default=None) bin_dir: pathlib.Path = attr.ib(default=None) install_dir: pathlib.Path = attr.ib(init=False) - binary_paths: Dict[str, List[pathlib.Path]] = attr.ib(init=False) + binary_paths: dict[str, list[pathlib.Path]] = attr.ib(init=False) config_path: str = attr.ib(init=False) conf_dir: pathlib.Path = attr.ib() @@ -79,8 +79,8 @@ class SaltPkgInstall: pkg_mngr: str = attr.ib(init=False) rm_pkg: str = attr.ib(init=False) dbg_pkg: str = attr.ib(init=False) - salt_pkgs: List[str] = attr.ib(init=False) - pkgs: List[str] = attr.ib(factory=list) + salt_pkgs: list[str] = attr.ib(init=False) + pkgs: list[str] = attr.ib(factory=list) file_ext: bool = attr.ib(default=None) relenv: bool = attr.ib(default=True) @@ -1558,7 +1558,7 @@ class ApiRequest: account: TestAccount = attr.ib(repr=False) session: requests.Session = attr.ib(init=False, repr=False) api_uri: str = attr.ib(init=False) - auth_data: Dict[str, str] = attr.ib(init=False) + auth_data: dict[str, str] = attr.ib(init=False) @session.default def _default_session(self): From 5e19e2db1801c8c2bf81cd844e74ae1a556034cf Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Fri, 21 Feb 2025 03:05:01 -0700 Subject: [PATCH 034/101] more pre-commmit fixes --- salt/modules/postgres.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/salt/modules/postgres.py b/salt/modules/postgres.py index d9664ac840a..85656cc2612 100644 --- a/salt/modules/postgres.py +++ b/salt/modules/postgres.py @@ -269,7 +269,7 @@ def _run_initdb( "postgres.timeout", default=_DEFAULT_COMMAND_TIMEOUT_SECS ), ) - cmdstr = " ".join([shlex.quote(c) for c in cmd]) + cmdstr = shlex.join(cmd) ret = __salt__["cmd.run_all"](cmdstr, python_shell=False, **kwargs) if ret.get("retcode", 0) != 0: From c16232efadd6eae2ca3ffd91e754d04fcb2fba62 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Tue, 25 Feb 2025 11:47:48 -0700 Subject: [PATCH 035/101] Getting nightly builds running again for 3006.x --- salt/_logging/impl.py | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/salt/_logging/impl.py b/salt/_logging/impl.py index e24fecced4d..77ef47ff735 100644 --- a/salt/_logging/impl.py +++ b/salt/_logging/impl.py @@ -280,16 +280,29 @@ class SaltLoggingClass(LOGGING_LOGGER_CLASS, metaclass=LoggingMixinMeta): else: extra["exc_info_on_loglevel"] = exc_info_on_loglevel - LOGGING_LOGGER_CLASS._log( - self, - level, - msg, - args, - exc_info=exc_info, - extra=extra, - stack_info=stack_info, - stacklevel=stacklevel, - ) + try: + LOGGING_LOGGER_CLASS._log( + self, + level, + msg, + args, + exc_info=exc_info, + extra=extra, + stack_info=stack_info, + stacklevel=stacklevel, + ) + except TypeError: + # stacklevel was introduced in Py 3.8 + # must be running on old OS with Python 3.6 or 3.7 + LOGGING_LOGGER_CLASS._log( + self, + level, + msg, + args, + exc_info=exc_info, + extra=extra, + stack_info=stack_info, + ) def makeRecord( self, From d09a741c4e656315923c2a7f6bd025a560e42974 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Tue, 25 Feb 2025 16:14:55 -0700 Subject: [PATCH 036/101] Pull in restart workflow changes from master --- .github/workflows/workflow-finished.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/workflow-finished.yml b/.github/workflows/workflow-finished.yml index 3a472463487..65216aab515 100644 --- a/.github/workflows/workflow-finished.yml +++ b/.github/workflows/workflow-finished.yml @@ -3,14 +3,8 @@ run-name: Workflow Finished ${{ github.event.workflow_run.display_title }} (${{ on: workflow_run: - workflows: - - Nightly - - Scheduled - - Stage Release - branches: - - 3006.x - - 3007.x - - master + workflows: ["Nightly", "Scheduled", "Stage Release"] + branches: ["3006.x", "3007.x", "master"] types: - completed From 53a7e67f36e769c072bda00e1e042bbe92710fc9 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Tue, 25 Feb 2025 16:45:35 -0700 Subject: [PATCH 037/101] Pull in workflow changes from master --- .github/workflows/workflow-finished.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/workflow-finished.yml b/.github/workflows/workflow-finished.yml index 3a472463487..65216aab515 100644 --- a/.github/workflows/workflow-finished.yml +++ b/.github/workflows/workflow-finished.yml @@ -3,14 +3,8 @@ run-name: Workflow Finished ${{ github.event.workflow_run.display_title }} (${{ on: workflow_run: - workflows: - - Nightly - - Scheduled - - Stage Release - branches: - - 3006.x - - 3007.x - - master + workflows: ["Nightly", "Scheduled", "Stage Release"] + branches: ["3006.x", "3007.x", "master"] types: - completed From 24a58e8211c00b6ba4974651f3881947378278c9 Mon Sep 17 00:00:00 2001 From: Georg Pfuetzenreuter Date: Wed, 12 Feb 2025 17:33:25 +0100 Subject: [PATCH 038/101] Set virtual grain in Podman systemd container Correctly handle the systemd-detect-virt output to identify a Podman container running systemd as what it is instead of as a physical machine. Signed-off-by: Georg Pfuetzenreuter --- changelog/67733.fixed.md | 1 + salt/grains/core.py | 4 ++++ tests/pytests/unit/grains/test_core.py | 31 ++++++++++++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 changelog/67733.fixed.md diff --git a/changelog/67733.fixed.md b/changelog/67733.fixed.md new file mode 100644 index 00000000000..242f65ec762 --- /dev/null +++ b/changelog/67733.fixed.md @@ -0,0 +1 @@ +Set correct virtual grain in systemd based Podman containers diff --git a/salt/grains/core.py b/salt/grains/core.py index e033284aa87..65c50b5d9ca 100644 --- a/salt/grains/core.py +++ b/salt/grains/core.py @@ -929,6 +929,10 @@ def _virtual(osdata): grains["virtual"] = "container" grains["virtual_subtype"] = "LXC" break + elif "podman" in output: + grains["virtual"] = "container" + grains["virtual_subtype"] = "Podman" + break elif "amazon" in output: grains["virtual"] = "Nitro" grains["virtual_subtype"] = "Amazon EC2" diff --git a/tests/pytests/unit/grains/test_core.py b/tests/pytests/unit/grains/test_core.py index b7a53b0a546..25b3a58b7b6 100644 --- a/tests/pytests/unit/grains/test_core.py +++ b/tests/pytests/unit/grains/test_core.py @@ -1847,6 +1847,37 @@ def test_lxc_virtual_with_virt_what(): assert ret["virtual_subtype"] == "LXC" +@pytest.mark.skip_on_windows +def test_podman_virtual_with_systemd_detect_virt(): + """ + Test if virtual grains are parsed correctly in Podman using systemd-detect-virt. + """ + + def _which_side_effect(path): + if path == "systemd-detect-virt": + return "/usr/bin/systemd-detect-virt" + return None + + with patch.object( + salt.utils.platform, "is_windows", MagicMock(return_value=False) + ), patch.object( + salt.utils.path, + "which", + MagicMock(return_value=True, side_effect=_which_side_effect), + ), patch.dict( + core.__salt__, + { + "cmd.run_all": MagicMock( + return_value={"pid": 78, "retcode": 0, "stderr": "", "stdout": "podman"} + ) + }, + ): + osdata = {"kernel": "test"} + ret = core._virtual(osdata) + assert ret["virtual"] == "container" + assert ret["virtual_subtype"] == "Podman" + + @pytest.mark.skip_on_windows def test_container_inside_virtual_machine(): """ From 2b41383e2be38b5299200f68fc78ad930165c0b2 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Fri, 21 Feb 2025 14:13:15 -0700 Subject: [PATCH 039/101] Allow pre-commit to be cancelled sooner --- .github/workflows/pre-commit-action.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pre-commit-action.yml b/.github/workflows/pre-commit-action.yml index fa9cacd1f66..f1ee6027e5b 100644 --- a/.github/workflows/pre-commit-action.yml +++ b/.github/workflows/pre-commit-action.yml @@ -48,14 +48,14 @@ jobs: cache-seed: ${{ inputs.cache-seed }} - name: Check ALL Files On Branch - if: github.event_name != 'pull_request' + if: ${{ !cancelled() && github.event_name != 'pull_request' }} env: SKIP: lint-salt,lint-tests,remove-import-headers,rstcheck run: | pre-commit run --show-diff-on-failure --color=always --all-files - name: Check Changed Files On PR - if: github.event_name == 'pull_request' && fromJSON(inputs.changed-files)['repo'] + if: ${{ !cancelled() && github.event_name == 'pull_request' && fromJSON(inputs.changed-files)['repo'] }} env: SKIP: lint-salt,lint-tests GH_ACTIONS_ANNOTATE: "1" @@ -63,6 +63,6 @@ jobs: pre-commit run --show-diff-on-failure --color=always --files ${{ join(fromJSON(inputs.changed-files)['repo_files'], ' ') }} - name: Check Docs On Deleted Files - if: github.event_name == 'pull_request' && fromJSON(inputs.changed-files)['deleted'] + if: ${{ !cancelled() && github.event_name == 'pull_request' && fromJSON(inputs.changed-files)['deleted'] }} run: | pre-commit run --show-diff-on-failure --color=always check-docs --files ${{ join(fromJSON(inputs.changed-files)['deleted_files'], ' ') }} From 680f27f9b8d954edc69c08f025a2de62958c54c1 Mon Sep 17 00:00:00 2001 From: Twangboy Date: Fri, 21 Feb 2025 09:51:35 -0700 Subject: [PATCH 040/101] Fix stacktrace with unmapped account names --- changelog/66637.fixed.md | 4 + salt/modules/win_file.py | 5 +- salt/utils/win_dacl.py | 78 +++++++++++-------- .../utils/win_dacl/test_get_name.py | 22 ++++-- 4 files changed, 71 insertions(+), 38 deletions(-) create mode 100644 changelog/66637.fixed.md diff --git a/changelog/66637.fixed.md b/changelog/66637.fixed.md new file mode 100644 index 00000000000..12b6759245f --- /dev/null +++ b/changelog/66637.fixed.md @@ -0,0 +1,4 @@ +Fixes an issue when getting account names using the get_name function in the +win_dacl.py salt util. Capability SIDs return ``None``. SIDs for deleted +accounts return the SID. SIDs for domain accounts where the system is not +connected to the domain return the SID. diff --git a/salt/modules/win_file.py b/salt/modules/win_file.py index a2e4d0124dc..5c3130539d9 100644 --- a/salt/modules/win_file.py +++ b/salt/modules/win_file.py @@ -494,13 +494,14 @@ def get_group(path, follow_symlinks=True): def uid_to_user(uid): """ - Convert a uid to a user name + Convert a User ID (uid) to a username Args: uid (str): The user id to lookup Returns: - str: The name of the user + str: The name of the user. The ``uid`` will be returned if there is no + corresponding username CLI Example: diff --git a/salt/utils/win_dacl.py b/salt/utils/win_dacl.py index 346dac41de5..0a628736ec9 100644 --- a/salt/utils/win_dacl.py +++ b/salt/utils/win_dacl.py @@ -125,7 +125,7 @@ should match what you see when you look at the properties for an object. - subfolders_only: Applies to all containers beneath this object - files_only: Applies to all file objects beneath this object - .. NOTE:: + .. note:: 'applies to' properties can only be modified on directories. Files will always be ``this_folder_only``. @@ -883,10 +883,7 @@ def dacl(obj_name=None, obj_type="file"): """ # Get the principal from the sid (object sid) sid = win32security.ConvertSidToStringSid(ace[2]) - try: - principal = get_name(sid) - except CommandExecutionError: - principal = sid + principal = get_name(sid) # Get the ace type ace_type = self.ace_type[ace[0][0]] @@ -1194,14 +1191,17 @@ def get_name(principal): principal (str): Find the Normalized name based on this. Can be a PySID object, a SID - string, or a user name in any capitalization. + string, or a username in any capitalization. .. note:: - Searching based on the user name can be slow on hosts connected + Searching based on the username can be slow on hosts connected to large Active Directory domains. Returns: - str: The name that corresponds to the passed principal + str: The username that corresponds to the passed principal. If there is + no corresponding username, the string SID will be returned. + Capability SIDs will return ``None``. + Usage: @@ -1246,7 +1246,7 @@ def get_name(principal): name = f"NT Service\\{name}" return name - except (pywintypes.error, TypeError) as exc: + except pywintypes.error as exc: # Microsoft introduced the concept of Capability SIDs in Windows 8 # https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/security-identifiers#capability-sids # https://support.microsoft.com/en-us/help/4502539/some-sids-do-not-resolve-into-friendly-names @@ -1254,11 +1254,26 @@ def get_name(principal): # These types of SIDs do not resolve, so we'll just ignore them for this # All capability SIDs begin with `S-1-15-3`, so we'll only throw an # error when the sid does not begin with `S-1-15-3` - if not str_sid.startswith("S-1-15-3"): - message = f'Error resolving "{principal}"' - if type(exc) == pywintypes.error: - win_error = win32api.FormatMessage(exc.winerror).rstrip("\n") - message = f"{message}: {win_error}" + # 1332: No mapping between account names and security IDs was done + if exc.winerror == 1332: + # Capability SID, return None + if str_sid.startswith("S-1-15-3"): + log.debug("Name mapping not available for capability SID: %s", str_sid) + return None + + # User does not exist on the system or is on a disconnected domain + # Return the SID + else: + log.debug( + f"Could not resolve SID: %s\nThe user has either been removed" + " from the system or is a domain user and the system is not" + " connected to the domain" + ) + return str_sid + + # Some other unknown error + else: + message = f'Error resolving "{principal}: {exc.strerror}"' log.exception(message) raise CommandExecutionError(message, exc) @@ -2242,13 +2257,19 @@ def _check_perms(obj_name, obj_type, new_perms, access_mode, ret, test_mode=Fals cur_perms = get_permissions(obj_name=obj_name, obj_type=obj_type) changes = {} for user in new_perms: - applies_to_text = "" # Check that user exists: - try: - user_name = get_name(principal=user) - except CommandExecutionError: + user_name = get_name(principal=user) + # username will be the SID if there is no corresponding username + if user_name == get_sid_string(principal=user): ret["comment"].append( - '{} Perms: User "{}" missing from Target System'.format( + "{} Perms: Could not find a corresponding username for: {}".format( + access_mode.capitalize(), user + ) + ) + continue + if user_name is None: + ret["comment"].append( + "{} Perms: Skipping Capability SID: {}".format( access_mode.capitalize(), user ) ) @@ -2471,7 +2492,7 @@ def check_perms( log.debug("Resetting permissions for %s", obj_name) cur_perms = get_permissions(obj_name=obj_name, obj_type=obj_type) for user_name in cur_perms["Not Inherited"]: - # case insensitive dictionary search + # case-insensitive dictionary search if user_name not in {get_name(k) for k in (grant_perms or {})}: if "grant" in cur_perms["Not Inherited"][user_name]: ret["changes"].setdefault("remove_perms", {}) @@ -2489,7 +2510,7 @@ def check_perms( ret["changes"]["remove_perms"].update( {user_name: cur_perms["Not Inherited"][user_name]} ) - # case insensitive dictionary search + # case-insensitive dictionary search if user_name not in {get_name(k) for k in (deny_perms or {})}: if "deny" in cur_perms["Not Inherited"][user_name]: ret["changes"].setdefault("remove_perms", {}) @@ -2541,7 +2562,7 @@ def check_perms( log.debug("Resetting permissions for %s", obj_name) cur_perms = get_permissions(obj_name=obj_name, obj_type=obj_type) for user_name in cur_perms["Not Inherited"]: - # case insensitive dictionary search + # case-insensitive dictionary search if user_name not in {get_name(k) for k in (grant_perms or {})}: if "grant" in cur_perms["Not Inherited"][user_name]: rm_permissions( @@ -2550,7 +2571,7 @@ def check_perms( ace_type="grant", obj_type=obj_type, ) - # case insensitive dictionary search + # case-insensitive dictionary search if user_name not in {get_name(k) for k in (deny_perms or {})}: if "deny" in cur_perms["Not Inherited"][user_name]: rm_permissions( @@ -2582,14 +2603,9 @@ def _set_perms(obj_dacl, obj_type, new_perms, cur_perms, access_mode): ret = {} for user in new_perms: # Check that user exists: - try: - user_name = get_name(user) - except CommandExecutionError: - log.debug( - '%s Perms: User "%s" missing from Target System', - access_mode.capitalize(), - user, - ) + user_name = get_name(user) + # We want to skip unmapped usernames + if user_name == get_sid_string(user): continue # Get applies_to diff --git a/tests/pytests/functional/utils/win_dacl/test_get_name.py b/tests/pytests/functional/utils/win_dacl/test_get_name.py index f35c1336ec4..3f3f1e33901 100644 --- a/tests/pytests/functional/utils/win_dacl/test_get_name.py +++ b/tests/pytests/functional/utils/win_dacl/test_get_name.py @@ -9,9 +9,11 @@ import pytest import salt.exceptions import salt.utils.win_dacl +from tests.support.mock import patch # Third-party libs try: + import pywintypes import win32security HAS_WIN32 = True @@ -84,12 +86,22 @@ def test_get_name_capability_sid(): assert salt.utils.win_dacl.get_name(sid_obj) is None -def test_get_name_error(): +def test_get_name_unmapped_sid(): """ - Test get_name with an un mapped SID, should throw a CommandExecutionError + Test get_name with an un mapped SID, should return the passed sid """ test_sid = "S-1-2-3-4" sid_obj = win32security.ConvertStringSidToSid(test_sid) - with pytest.raises(salt.exceptions.CommandExecutionError) as exc: - salt.utils.win_dacl.get_name(sid_obj) - assert "No mapping between account names" in exc.value.message + assert salt.utils.win_dacl.get_name(sid_obj) == test_sid + + +def test_get_name_error(): + """ + Test get_name with an unexpected error, should throw a CommandExecutionError + """ + test_sid = "S-1-2-3-4" + sid_obj = win32security.ConvertStringSidToSid(test_sid) + with patch("win32security.LookupAccountSid", side_effect=pywintypes.error): + with pytest.raises(salt.exceptions.CommandExecutionError) as exc: + salt.utils.win_dacl.get_name(sid_obj) + assert "Error resolving" in exc.value.message From 685d330cc0e6bcedf77ed834ee0812ef330850c9 Mon Sep 17 00:00:00 2001 From: Twangboy Date: Fri, 21 Feb 2025 10:09:30 -0700 Subject: [PATCH 041/101] Fix some lint --- salt/utils/win_dacl.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/salt/utils/win_dacl.py b/salt/utils/win_dacl.py index 0a628736ec9..70779588262 100644 --- a/salt/utils/win_dacl.py +++ b/salt/utils/win_dacl.py @@ -1265,9 +1265,10 @@ def get_name(principal): # Return the SID else: log.debug( - f"Could not resolve SID: %s\nThe user has either been removed" - " from the system or is a domain user and the system is not" - " connected to the domain" + "Could not resolve SID: %s\nThe user has either been removed " + "from the system or is a domain user and the system is not " + "connected to the domain", + str_sid, ) return str_sid From adf62acf9c5bdda6c107c4907cfdcf52d7caffb5 Mon Sep 17 00:00:00 2001 From: twangboy Date: Fri, 28 Feb 2025 09:56:35 -0700 Subject: [PATCH 042/101] Update Windows build scripts --- pkg/windows/install_salt.ps1 | 19 + pkg/windows/msi/build_pkg.ps1 | 75 +- .../nsis/installer/Salt-Minion-Setup.nsi | 1175 ++++++++++------- pkg/windows/nsis/tests/setup.ps1 | 3 +- pkg/windows/prep_salt.ps1 | 1 - 5 files changed, 713 insertions(+), 560 deletions(-) diff --git a/pkg/windows/install_salt.ps1 b/pkg/windows/install_salt.ps1 index 670ea38a473..50bb0a71f5f 100644 --- a/pkg/windows/install_salt.ps1 +++ b/pkg/windows/install_salt.ps1 @@ -197,6 +197,25 @@ if ( $PKG ) { } } +# Create pywin32.pth file +if ( -not ( Test-Path -Path "$SCRIPTS_DIR\pywin32.pth" ) ) { + Write-Host "Creating pywin32.pth file: " -NoNewline + $content = "# .pth file for the PyWin32 extensions`n" + ` + "win32`n" + ` + "win32\lib" + ` + "Pythonwin" + ` + "# And some hackery to deal with environments where the post_install script`n" + ` + "# isn't run." + ` + "import pywin32_bootstrap" + Set-Content -Path "$SCRIPTS_DIR\pywin32.pth" -Value $content + if ( Test-Path -Path "$SCRIPTS_DIR\pywin32.pth") { + Write-Result "Success" -ForegroundColor Green + } else { + Write-Result "Failed" -ForegroundColor Red + exit 1 + } +} + # Remove PyWin32 PostInstall & testall scripts if ( Test-Path -Path "$SCRIPTS_DIR\pywin32_*" ) { Write-Host "Removing pywin32 post-install scripts: " -NoNewline diff --git a/pkg/windows/msi/build_pkg.ps1 b/pkg/windows/msi/build_pkg.ps1 index 6eb028f9d76..1f15fd763b3 100644 --- a/pkg/windows/msi/build_pkg.ps1 +++ b/pkg/windows/msi/build_pkg.ps1 @@ -51,14 +51,11 @@ function VerifyOrDownload ($local_file, $URL, $SHA256) { $filename = Split-Path $local_file -leaf if ( Test-Path -Path $local_file ) { Write-Host "Verifying hash for $filename`: " -NoNewline - $hash = (Get-FileHash $local_file).Hash - if ( $hash -eq $SHA256 ) { + if ( (Get-FileHash $local_file).Hash -eq $SHA256 ) { Write-Result "Verified" -ForegroundColor Green return } else { Write-Result "Failed Hash" -ForegroundColor Red - Write-Host "Found Hash: $hash" - Write-Host "Expected Hash: $SHA256" Remove-Item -Path $local_file -Force } } @@ -90,11 +87,6 @@ $SCRIPT_DIR = (Get-ChildItem "$($myInvocation.MyCommand.Definition)").Direct $RUNTIME_DIR = [System.Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory() $CSC_BIN = "$RUNTIME_DIR\csc.exe" -[DateTime]$origin = "1970-01-01 00:00:00" -$hash_time = $(git show -s --format=%at) -$TIME_STAMP = $origin.AddSeconds($hash_time) - - if ( $BUILD_ARCH -eq "64bit" ) { $BUILD_ARCH = "AMD64" } else { @@ -479,71 +471,6 @@ $states | ForEach-Object { } Write-Result "Success" -ForegroundColor Green -#------------------------------------------------------------------------------- -# Remove compiled files -#------------------------------------------------------------------------------- -# We have to do this again because we use the Relenv Python to get the build -# architecture. This recreates some of the pycache files that were removed -# in the prep_salt script -Write-Host "Removing __pycache__ directories: " -NoNewline -$found = Get-ChildItem -Path "$BUILDENV_DIR" -Filter "__pycache__" -Recurse -$found | ForEach-Object { - Remove-Item -Path "$($_.FullName)" -Recurse -Force - if ( Test-Path -Path "$($_.FullName)" ) { - Write-Result "Failed" -ForegroundColor Red - Write-Host "Failed to remove: $($_.FullName)" - exit 1 - } -} -Write-Result "Success" -ForegroundColor Green - -# If we try to remove *.pyc with the same Get-ChildItem that we used to remove -# __pycache__ directories, it won't be able to find them because they are no -# longer present -# This probably won't find any *.pyc files, but just in case -$remove = "*.pyc", - "*.chm" -$remove | ForEach-Object { - Write-Host "Removing unneeded $_ files: " -NoNewline - $found = Get-ChildItem -Path "$BUILDENV_DIR" -Filter $_ -Recurse - $found | ForEach-Object { - Remove-Item -Path "$($_.FullName)" -Recurse -Force - if ( Test-Path -Path "$($_.FullName)" ) { - Write-Result "Failed" -ForegroundColor Red - Write-Host "Failed to remove: $($_.FullName)" - exit 1 - } - } - Write-Result "Success" -ForegroundColor Green -} - -#------------------------------------------------------------------------------- -# Set timestamps on Files -#------------------------------------------------------------------------------- -# We're doing this on the dlls that were created above - -Write-Host "Setting time stamp on all files: " -NoNewline -$found = Get-ChildItem -Path $BUILDENV_DIR -Recurse -$found | ForEach-Object { - $_.CreationTime = $TIME_STAMP - $_.LastAccessTime = $TIME_STAMP - $_.LastWriteTime = $TIME_STAMP -} -Write-Result "Success" -ForegroundColor Green - -Write-Host "Setting time stamp on installer dlls: " -NoNewline -$found = Get-ChildItem -Path $SCRIPT_DIR -Filter "*.dll" -Recurse -$found | ForEach-Object { - $_.CreationTime = $TIME_STAMP - $_.LastAccessTime = $TIME_STAMP - $_.LastWriteTime = $TIME_STAMP -} -Write-Result "Success" -ForegroundColor Green - -#------------------------------------------------------------------------------- -# Let's start building the MSI -#------------------------------------------------------------------------------- - # move conf folder up one dir because it must not be discovered twice and xslt is difficult Write-Host "Remove configs from discovery: " -NoNewline Move-Item -Path "$DISCOVER_CONFDIR" ` diff --git a/pkg/windows/nsis/installer/Salt-Minion-Setup.nsi b/pkg/windows/nsis/installer/Salt-Minion-Setup.nsi index f055036eed6..144af739c87 100644 --- a/pkg/windows/nsis/installer/Salt-Minion-Setup.nsi +++ b/pkg/windows/nsis/installer/Salt-Minion-Setup.nsi @@ -1,3 +1,5 @@ +# This file must be UNICODE + !define PRODUCT_NAME "Salt Minion" !define PRODUCT_PUBLISHER "SaltStack, Inc" !define PRODUCT_WEB_SITE "http://saltproject.io" @@ -9,7 +11,6 @@ !define PRODUCT_RUN_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\salt-run.exe" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM" -!define /date TIME_STAMP "%Y-%m-%d-%H-%M-%S" # Request admin rights RequestExecutionLevel admin @@ -25,6 +26,7 @@ RequestExecutionLevel admin !include "WinVer.nsh" !include "x64.nsh" ${StrLoc} +${StrRep} ${StrStrAdv} # Required by MoveFileFolder.nsh @@ -47,7 +49,7 @@ ${StrStrAdv} !endif # Get Estimated Size from CLI argument /DEstimatedSize -!ifdef PythonArchitecture +!ifdef EstimatedSize !define ESTIMATED_SIZE "${EstimatedSize}" !else # Default @@ -66,11 +68,26 @@ ${StrStrAdv} !define BUILD_TYPE "Python 3" !define OUTFILE "Salt-Minion-${PRODUCT_VERSION}-Py3-${CPUARCH}-Setup.exe" -# Part of the Trim function for Strings +VIProductVersion "1.0.0.0" # This actually updates File Version +VIAddVersionKey FileVersion "1.0.0.0" # This doesn't seem to do anything, but you'll get a warning without it +VIAddVersionKey "ProductName" "${PRODUCT_NAME}" +VIAddVersionKey "LegalTrademarks" "${PRODUCT_NAME} is a trademark of ${PRODUCT_PUBLISHER}" +VIAddVersionKey "LegalCopyright" "© ${PRODUCT_PUBLISHER}" +VIAddVersionKey "FileDescription" "${PRODUCT_NAME} Installer" +VIAddVersionKey "ProductVersion" "${PRODUCT_VERSION}" + +################################################################################ +# Early defines +################################################################################ + !define Trim "!insertmacro Trim" !macro Trim ResultVar String Push "${String}" - Call Trim + !ifdef __UNINSTALL__ + Call un.Trim + !else + Call Trim + !endif Pop "${ResultVar}" !macroend @@ -83,14 +100,50 @@ ${StrStrAdv} Pop "${Length}" !macroend -# Part of the StrContains function for Strings -!define StrContains "!insertmacro StrContains" -!macro StrContains OUT NEEDLE HAYSTACK - Push "${HAYSTACK}" - Push "${NEEDLE}" - Call StrContains - Pop "${OUT}" +# Variables for Logging +Var LogFile +Var TimeStamp +Var cmdLineParams +Var logFileHandle +Var msg + +# Followed this: https://nsis.sourceforge.io/StrRep +!define LogMsg '!insertmacro LogMsg' +!macro LogMsg _msg + Push "${_msg}" + !ifdef __UNINSTALL__ + Call un.LogMsg + !else + Call LogMsg + !endif !macroend +!macro Func_LogMsg un + Function ${un}LogMsg + Pop $msg + ${If} $TimeStamp == "" + ${GetTime} "" "L" $0 $1 $2 $3 $4 $5 $6 + StrCpy $TimeStamp "$2-$1-$0_$4-$5-$6" + ${EndIf} + ${If} $LogFile == "" + !ifdef __UNINSTALL__ + StrCpy $LogFile "$TEMP\SaltInstaller\$TimeStamp-uninstall.log" + !else + StrCpy $LogFile "$TEMP\SaltInstaller\$TimeStamp-install.log" + !endif + ${IfNot} ${FileExists} "$TEMP\SaltInstaller\*.*" + CreateDirectory "$TEMP\SaltInstaller" + ${EndIf} + ${EndIf} + ${Trim} $msg $msg + DetailPrint "$msg" + FileOpen $logFileHandle "$LogFile" a + FileSeek $logFileHandle 0 END + FileWrite $logFileHandle "$msg$\r$\n" + FileClose $logFileHandle + FunctionEnd +!macroend +!insertmacro Func_LogMsg "" +!insertmacro Func_LogMsg "un." ############################################################################### @@ -538,31 +591,32 @@ SectionEnd # Hidden section (-) to install VCRedist Section -install_vcredist_2022 + ${DisableX64FSRedirection} + Var /GLOBAL VcRedistName - Var /GLOBAL VcRedistReg + # Determine which architecture needs to be installed + ${if} ${runningx64} + strcpy $VcRedistName "vcredist_x64_2022" + ${else} + strcpy $VcRedistName "vcredist_x86_2022" + ${endif} + detailPrint "Selected $VcRedistName installer" - # Only install 64bit VCRedist on 64bit machines - # Use RunningX64 here to get the Architecture for the system running the - # installer. - # 2013 >= 21005 - # 2015 >= 23026 - # 2017 >= 25008 - # 2019 >= 27508 - # 2022 >= 30704 - ${If} ${RunningX64} - StrCpy $VcRedistName "vcredist_x64_2022" - StrCpy $VcRedistReg "SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x64" - ${Else} - StrCpy $VcRedistName "vcredist_x86_2022" - StrCpy $VcRedistReg "SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x86" - ${EndIf} + # Check for the presence of vcruntime140.dll + IfFileExists "$WINDIR\System32\vcruntime140.dll" file_found - # Detecting VCRedist Installation - detailPrint "Checking for $VcRedistName..." - ReadRegDword $0 HKLM $VcRedistReg "Bld" - ${If} $0 < 30704 + file_not_found: + detailPrint "$VcRedistName not found" + # Install Call InstallVCRedist - ${EndIf} + Goto end_of_section + + file_found: + detailPrint "$VcRedistName found, install will continue" + + end_of_section: + + ${EnableX64FSRedirection} SectionEnd @@ -570,8 +624,7 @@ SectionEnd Function InstallVCRedist detailPrint "System requires $VcRedistName" MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 \ - "$VcRedistName is currently not installed. Would you like to \ - install?" \ + "$VcRedistName is currently not installed. Would you like to install?" \ /SD IDYES IDYES InstallVcRedist detailPrint "$VcRedistName not installed" @@ -627,28 +680,44 @@ Function InstallVCRedist FunctionEnd -Section "MainSection" SEC01 +Section "Install" Install01 ${If} $MoveExistingConfig == 1 + ${LogMsg} "Moving existing config to $APPDATA\Salt Project\Salt" + # This makes the $APPDATA variable point to the ProgramData folder # instead of the current user's roaming AppData folder + ${LogMsg} "Set context to all users" SetShellVarContext all - detailPrint "Moving existing config to $APPDATA\Salt Project\Salt" # Make sure the target directory exists - nsExec::Exec "md $APPDATA\Salt Project\Salt" + ${LogMsg} "Creating rootdir in ProgramData" + CreateDirectory "$APPDATA\Salt Project\Salt" + # Take ownership of the C:\salt directory - detailPrint "Taking ownership: $RootDir" - nsExec::Exec "takeown /F $RootDir /R" + ${LogMsg} "Taking ownership: $RootDir" + nsExec::ExecToStack "takeown /F $RootDir /R" + pop $0 # ExitCode + pop $1 # StdOut + ${If} $0 == 0 + ${LogMsg} "Success" + ${Else} + ${LogMsg} "Failed$\r$\nExitCode: $0$\r$\nStdOut: $1" + ${EndIf} # Move the C:\salt directory to the new location StrCpy $switch_overwrite 0 - detailPrint "Moving $RootDir to $APPDATA" - IfFileExists "$RootDir\conf" 0 +2 - !insertmacro MoveFolder "$RootDir\conf" "$APPDATA\Salt Project\Salt\conf" "*.*" - IfFileExists "$RootDir\srv" 0 +2 - !insertmacro MoveFolder "$RootDir\srv" "$APPDATA\Salt Project\Salt\srv" "*.*" - IfFileExists "$RootDir\var" 0 +2 - !insertmacro MoveFolder "$RootDir\var" "$APPDATA\Salt Project\Salt\var" "*.*" + ${If} ${FileExists} "$RootDir\conf\*.*" + ${LogMsg} "Moving $RootDir\conf to $APPDATA" + !insertmacro MoveFolder "$RootDir\conf" "$APPDATA\Salt Project\Salt\conf" "*.*" + ${EndIf} + ${If} ${FileExists} "$RootDir\srv\*.*" + ${LogMsg} "Moving $RootDir\srv to $APPDATA" + !insertmacro MoveFolder "$RootDir\srv" "$APPDATA\Salt Project\Salt\srv" "*.*" + ${EndIf} + ${If} ${FileExists} "$RootDir\var\*.*" + ${LogMsg} "Moving $RootDir\var to $APPDATA" + !insertmacro MoveFolder "$RootDir\var" "$APPDATA\Salt Project\Salt\var" "*.*" + ${EndIf} # Make RootDir the new location StrCpy $RootDir "$APPDATA\Salt Project\Salt" ${EndIf} @@ -657,20 +726,32 @@ Section "MainSection" SEC01 Call BackupExistingConfig ${EndIf} - # Install files to the Installation Directory + ${LogMsg} "Setting outpath to $INSTDIR" SetOutPath "$INSTDIR\" + ${LogMsg} "Setting Overwrite off" SetOverwrite off + ${LogMsg} "Copying files" File /r "..\..\buildenv\" # Set up Root Directory + ${LogMsg} "Creating directory structure" CreateDirectory "$RootDir\conf\pki\minion" CreateDirectory "$RootDir\conf\minion.d" CreateDirectory "$RootDir\var\cache\salt\minion\extmods\grains" CreateDirectory "$RootDir\var\cache\salt\minion\proc" CreateDirectory "$RootDir\var\log\salt" CreateDirectory "$RootDir\var\run" - nsExec::Exec 'icacls $RootDir /inheritance:r /grant:r "*S-1-5-32-544":(OI)(CI)F /grant:r "*S-1-5-18":(OI)(CI)F' + + ${LogMsg} "Setting permissions on RootDir" + nsExec::ExecToStack 'icacls "$RootDir" /inheritance:r /grant:r "*S-1-5-32-544":(OI)(CI)F /grant:r "*S-1-5-18":(OI)(CI)F' + pop $0 # ExitCode + pop $1 # StdOut + ${If} $0 == 0 + ${LogMsg} "Success" + ${Else} + ${LogMsg} "Failed$\r$\nExitCode: $0$\r$\nStdOut: $1" + ${EndIf} SectionEnd @@ -679,24 +760,28 @@ Function .onInit # This function gets executed before any other. This is where we will # detect existing installations and config to be used by the installer + ${LogMsg} "Running ${OUTFILE}" + # Make sure we do not allow 32-bit Salt on 64-bit systems # This is the system the installer is running on ${If} ${RunningX64} # This is the Python architecture the installer was built with ${If} ${CPUARCH} == "x86" - MessageBox MB_OK|MB_ICONEXCLAMATION \ - "Detected 64-bit Operating system.$\n$\n\ - Please install the 64-bit version of Salt on this operating system." \ - /SD IDOK + StrCpy $msg "Detected 64-bit Operating system.$\n\ + Please install the 64-bit version of Salt on this operating system." + ${LogMsg} $msg + MessageBox MB_OK|MB_ICONEXCLAMATION $msg /SD IDOK + ${LogMsg} "Aborting" Abort ${EndIf} ${Else} # This is the Python architecture the installer was built with ${If} ${CPUARCH} == "AMD64" - MessageBox MB_OK|MB_ICONEXCLAMATION \ - "Detected 32-bit Operating system.$\n$\n\ - Please install the 32-bit version of Salt on this operating system." \ - /SD IDOK + StrCpy $msg "Detected 32-bit Operating system.$\n\ + Please install the 32-bit version of Salt on this operating system." + ${LogMsg} $msg + MessageBox MB_OK|MB_ICONEXCLAMATION $msg /SD IDOK + ${LogMsg} "Aborting" Abort ${EndIf} ${EndIf} @@ -706,14 +791,14 @@ Function .onInit # Uninstall msi-installed salt # Source: https://nsis-dev.github.io/NSIS-Forums/html/t-303468.html - # TODO: Add a message box here confirming the uninstall of the MSI !define upgradecode {FC6FB3A2-65DE-41A9-AD91-D10A402BD641} # Salt upgrade code StrCpy $0 0 + ${LogMsg} "Looking for MSI installation" loop: System::Call 'MSI::MsiEnumRelatedProducts(t "${upgradecode}",i0,i r0,t.r1)i.r2' ${If} $2 = 0 - # Now $1 contains the product code - DetailPrint product:$1 + # Now $1 contains the product code + ${LogMsg} product:$1 push $R0 StrCpy $R0 $1 Call UninstallMSI @@ -728,33 +813,48 @@ Function .onInit # NOTE: custom config is passed on the CLI. The GUI has its own checking # NOTE: when the user selects a custom config. ${If} $ConfigType == "Custom Config" - IfFileExists "$CustomConfig" checkExistingInstallation 0 + ${LogMsg} "Verifying custom config" + ${If} ${FileExists} "$CustomConfig" + ${LogMsg} "Found full path to custom config: $CustomConfig" + Goto checkExistingInstallation + ${EndIf} + ${If} ${FileExists} "$EXEDIR\$CustomConfig" + ${LogMsg} "Found custom config with the install binary: $CustomConfig" + Goto checkExistingInstallation + ${EndIf} + ${LogMsg} "Custom config not found. Aborting" Abort ${EndIf} checkExistingInstallation: # Check for existing installation + ${LogMsg} "Checking for existing installation" # The NSIS installer is a 32bit application and will use the WOW6432Node # in the registry by default. We need to look in the 64 bit location on # 64 bit systems ${If} ${RunningX64} + + ${LogMsg} "Setting registry context to 64-bit" # https://nsis.sourceforge.io/Docs/Chapter4.html#setregview SetRegView 64 # View the 64 bit portion of the registry - ${EndIf} - ReadRegStr $R0 HKLM \ - "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \ - "UninstallString" - - # Puts the nullsoft installer back to its default - SetRegView 32 # Set it back to the 32 bit portion of the registry - - # If not found, look in 32 bit - ${If} $R0 == "" + ${LogMsg} "Reading uninstall string" ReadRegStr $R0 HKLM \ "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \ "UninstallString" + + # Puts the nullsoft installer back to its default + ${LogMsg} "Setting registry context to 32-bit" + SetRegView 32 # Set it back to the 32 bit portion of the registry + + ${Else} + + ${LogMsg} "Reading uninstall string" + ReadRegStr $R0 HKLM \ + "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \ + "UninstallString" + ${EndIf} # If it's empty it's not installed @@ -763,33 +863,41 @@ Function .onInit # Set InstDir to the parent directory so that we can uninstall it ${GetParent} $R0 $INSTDIR + ${LogMsg} "Found existing installation at $R0" + # Found existing installation, prompt to uninstall - MessageBox MB_OKCANCEL|MB_USERICON \ - "${PRODUCT_NAME} is already installed.$\n$\n\ - Click `OK` to remove the existing installation." \ - /SD IDOK IDOK uninst + StrCpy $msg "${PRODUCT_NAME} is already installed.$\n\ + Click `OK` to remove the existing installation." + ${LogMsg} $msg + MessageBox MB_OKCANCEL|MB_USERICON $msg /SD IDOK IDOK uninst + ${LogMsg} "Aborting" Abort uninst: # Get current Silent status + ${LogMsg} "Getting current silent setting" StrCpy $R0 0 ${If} ${Silent} StrCpy $R0 1 ${EndIf} # Turn on Silent mode + ${LogMsg} "Setting to silent mode" SetSilent silent # Don't remove all directories when upgrading (old method) + ${LogMsg} "Setting uninstaller to not delete the install dir" StrCpy $DeleteInstallDir 0 # Don't remove RootDir when upgrading (new method) + ${LogMsg} "Setting uninstaller to not delete the root dir" StrCpy $DeleteRootDir 0 # Uninstall silently Call uninstallSalt + ${LogMsg} "Resetting silent setting to original" # Set it back to Normal mode, if that's what it was before ${If} $R0 == 0 SetSilent normal @@ -803,6 +911,7 @@ Function .onInit ${If} $ExistingConfigFound == 0 ${AndIf} $ConfigType == "Existing Config" + ${LogMsg} "Existing config not found, using Default config" StrCpy $ConfigType "Default Config" ${EndIf} @@ -811,13 +920,19 @@ FunctionEnd Function BackupExistingConfig - ${If} $ExistingConfigFound == 1 # If existing config found + ${If} $ExistingConfigFound == 1 # If existing config found ${AndIfNot} $ConfigType == "Existing Config" # If not using Existing Config # Backup the minion config - Rename "$RootDir\conf\minion" "$RootDir\conf\minion-${TIME_STAMP}.bak" - IfFileExists "$RootDir\conf\minion.d" 0 +2 - Rename "$RootDir\conf\minion.d" "$RootDir\conf\minion.d-${TIME_STAMP}.bak" + ${If} ${FileExists} "$RootDir\conf\minion" + ${LogMsg} "Renaming existing config file" + Rename "$RootDir\conf\minion" "$RootDir\conf\minion-$TimeStamp.bak" + ${EndIf} + + ${If} ${FileExists} "$RootDir\conf\minion.d\*.*" + ${LogMsg} "Renaming existing config directory" + Rename "$RootDir\conf\minion.d" "$RootDir\conf\minion.d-$TimeStamp.bak" + ${EndIf} ${EndIf} @@ -828,17 +943,21 @@ Function BackupExistingConfig # Check for a file name # Named file should be in the same directory as the installer + ${LogMsg} "Make sure config directory is exists" + ${LogMsg} "Path: $RootDir\conf" CreateDirectory "$RootDir\conf" - IfFileExists "$EXEDIR\$CustomConfig" 0 checkFullPath + + ${If} ${FileExists} "$EXEDIR\$CustomConfig" + ${LogMsg} "Copying custom config from path relative to installer" + ${LogMsg} "Path: $EXEDIR\$CustomConfig" CopyFiles /SILENT /FILESONLY "$EXEDIR\$CustomConfig" "$RootDir\conf\minion" - goto finished - - # Maybe it was a full path to a file - checkFullPath: - IfFileExists "$CustomConfig" 0 finished + ${ElseIf} ${FileExists} "$CustomConfig" + ${LogMsg} "Copying custom config from full path" + ${LogMsg} "Path: $CustomConfig" CopyFiles /SILENT /FILESONLY "$CustomConfig" "$RootDir\conf\minion" - - finished: + ${Else} + ${LogMsg} "Custom config not found, default values will be used" + ${EndIf} ${EndIf} @@ -847,6 +966,7 @@ FunctionEnd Section -Post + ${LogMsg} "Writing uninstaller" WriteUninstaller "$INSTDIR\uninst.exe" # The NSIS installer is a 32bit application and will use the WOW6432Node in @@ -854,9 +974,11 @@ Section -Post # systems ${If} ${RunningX64} # https://nsis.sourceforge.io/Docs/Chapter4.html#setregview + ${LogMsg} "Setting registry context to 64-bit registry" SetRegView 64 # View 64 bit portion of the registry ${EndIf} + ${LogMsg} "Updating installation information in the registry" # Write Uninstall Registry Entries WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \ "DisplayName" "$(^Name)" @@ -873,17 +995,20 @@ Section -Post WriteRegStr HKLM "SYSTEM\CurrentControlSet\services\salt-minion" \ "DependOnService" "nsi" + ${LogMsg} "Getting estimated size" # If ESTIMATED_SIZE is not set, calculated it ${If} ${ESTIMATED_SIZE} == 0 - ${GetSize} "$INSTDIR" "/S=OK" $0 $1 $2 + ${GetSize} "$INSTDIR" "/S=OK" $R0 $R1 $R2 ${Else} - StrCpy $0 ${ESTIMATED_SIZE} + StrCpy $R0 ${ESTIMATED_SIZE} ${Endif} - IntFmt $0 "0x%08X" $0 + IntFmt $R0 "0x%08X" $R0 + ${LogMsg} "Setting estimated size: $R0" WriteRegDWORD ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \ - "EstimatedSize" "$0" + "EstimatedSize" "$R0" # Write Commandline Registry Entries + ${LogMsg} "Registering salt commands for the cli" WriteRegStr HKLM "${PRODUCT_CALL_REGKEY}" "" "$INSTDIR\salt-call.exe" WriteRegStr HKLM "${PRODUCT_CALL_REGKEY}" "Path" "$INSTDIR\" WriteRegStr HKLM "${PRODUCT_MINION_REGKEY}" "" "$INSTDIR\salt-minion.exe" @@ -895,64 +1020,124 @@ Section -Post # variable so we'll just do that whether it's new location or old. # Check for Program Files - # Set the current setting for INSTDIR... we'll only change it if it contains - # Program Files - StrCpy $RegInstDir $INSTDIR - - # Program Files # We want to use the environment variables instead of the hardcoded path - ${StrContains} $0 "Program Files" $INSTDIR - StrCmp $0 "" +2 # If it's empty, skip the next line - StrCpy $RegInstDir "%ProgramFiles%\Salt Project\Salt" - - # Check for ProgramData - # Set the current setting for RootDir. we'll only change it if it contains - # ProgramData - StrCpy $RegRootDir $RootDir - - # We want to use the environment variables instead of the hardcoded path - ${StrContains} $0 "ProgramData" $RootDir - StrCmp $0 "" +2 # If it's empty, skip the next line - StrCpy $RegRootDir "%ProgramData%\Salt Project\Salt" + # when setting values in the registry + ${LogMsg} "Getting registry values for install_dir and root_dir" + ${If} ${RunningX64} + ${StrRep} "$RegInstDir" "$INSTDIR" "$ProgramFiles64" "%PROGRAMFILES%" + ${Else} + ${StrRep} "$RegInstDir" "$INSTDIR" "$ProgramFiles" "%PROGRAMFILES%" + ${EndIf} + ${LogMsg} "install_dir: $RegInstDir" + SetShellVarContext all + ${StrRep} "$RegRootDir" "$RootDir" "$APPDATA" "%PROGRAMDATA%" + ${LogMsg} "root_dir: $RegRootDir" + ${LogMsg} "Writing install_dir and root_dir to the registry" WriteRegExpandStr HKLM "SOFTWARE\Salt Project\Salt" "install_dir" "$RegInstDir" WriteRegExpandStr HKLM "SOFTWARE\Salt Project\Salt" "root_dir" "$RegRootDir" # Puts the nullsoft installer back to its default + ${LogMsg} "Setting registry context back to 32-bit" SetRegView 32 # Set it back to the 32 bit portion of the registry # Register the Salt-Minion Service - nsExec::Exec `$INSTDIR\ssm.exe install salt-minion "$INSTDIR\salt-minion.exe" -c """$RootDir\conf""" -l quiet` - nsExec::Exec "$INSTDIR\ssm.exe set salt-minion Description Salt Minion from saltstack.com" - nsExec::Exec "$INSTDIR\ssm.exe set salt-minion Start SERVICE_AUTO_START" - nsExec::Exec "$INSTDIR\ssm.exe set salt-minion AppStopMethodConsole 24000" - nsExec::Exec "$INSTDIR\ssm.exe set salt-minion AppStopMethodWindow 2000" - nsExec::Exec "$INSTDIR\ssm.exe set salt-minion AppRestartDelay 60000" + ${LogMsg} "Registering the salt-minion service" + nsExec::ExecToStack `"$INSTDIR\ssm.exe" install salt-minion "$INSTDIR\salt-minion.exe" -c """$RootDir\conf""" -l quiet` + pop $0 # ExitCode + pop $1 # StdOut + ${IfNot} $0 == 0 + StrCpy $msg "Failed to register the salt minion service.$\n\ + ExitCode: $0$\n\ + StdOut: $1" + ${LogMsg} $msg + MessageBox MB_OK|MB_ICONEXCLAMATION $msg /SD IDOK IDOK + ${LogMsg} "Aborting" + Abort + ${Else} + ${LogMsg} "Setting service description" + nsExec::ExecToStack "$INSTDIR\ssm.exe set salt-minion Description Salt Minion from saltstack.com" + pop $0 # ExitCode + pop $1 # StdOut + ${If} $0 == 0 + ${LogMsg} "Success" + ${Else} + ${LogMsg} "Failed$\r$\nExitCode: $0$\r$\nStdOut: $1" + ${EndIf} + ${LogMsg} "Setting service autostart" + nsExec::ExecToStack "$INSTDIR\ssm.exe set salt-minion Start SERVICE_AUTO_START" + pop $0 # ExitCode + pop $1 # StdOut + ${If} $0 == 0 + ${LogMsg} "Success" + ${Else} + ${LogMsg} "Failed$\r$\nExitCode: $0$\r$\nStdOut: $1" + ${EndIf} + ${LogMsg} "Setting service console stop method" + nsExec::ExecToStack "$INSTDIR\ssm.exe set salt-minion AppStopMethodConsole 24000" + pop $0 # ExitCode + pop $1 # StdOut + ${If} $0 == 0 + ${LogMsg} "Success" + ${Else} + ${LogMsg} "Failed$\r$\nExitCode: $0$\r$\nStdOut: $1" + ${EndIf} + ${LogMsg} "Setting service windows stop method" + nsExec::ExecToStack "$INSTDIR\ssm.exe set salt-minion AppStopMethodWindow 2000" + pop $0 # ExitCode + pop $1 # StdOut + ${If} $0 == 0 + ${LogMsg} "Success" + ${Else} + ${LogMsg} "Failed$\r$\nExitCode: $0$\r$\nStdOut: $1" + ${EndIf} + ${LogMsg} "Setting service app restart delay" + nsExec::ExecToStack "$INSTDIR\ssm.exe set salt-minion AppRestartDelay 60000" + pop $0 # ExitCode + pop $1 # StdOut + ${If} $0 == 0 + ${LogMsg} "Success" + ${Else} + ${LogMsg} "Failed$\r$\nExitCode: $0$\r$\nStdOut: $1" + ${EndIf} + ${EndIf} # There is a default minion config laid down in the $INSTDIR directory ${Switch} $ConfigType ${Case} "Existing Config" + ${LogMsg} "Using existing config" # If this is an Existing Config, we don't do anything ${Break} ${Case} "Custom Config" + ${LogMsg} "Using custom config" # If this is a Custom Config, update the custom config Call updateMinionConfig ${Break} ${Case} "Default Config" + ${LogMsg} "Using default config" # If this is the Default Config, we move it and update it StrCpy $switch_overwrite 1 - !insertmacro MoveFolder "$INSTDIR\configs" "$RootDir\conf" "*.*" Call updateMinionConfig ${Break} ${EndSwitch} # Delete the configs directory that came with the installer + ${LogMsg} "Removing configs directory" RMDir /r "$INSTDIR\configs" # Add $INSTDIR in the Path + ${LogMsg} "Adding salt to the path" EnVar::SetHKLM EnVar::AddValue Path "$INSTDIR" + Pop $0 + ${If} $0 == 0 + ${LogMsg} "Success" + ${Else} + # See this table for Error Codes: + # https://github.com/GsNSIS/EnVar#error-codes + ${LogMsg} "Failed. Error Code: $0" + ${EndIf} SectionEnd @@ -961,14 +1146,38 @@ Function .onInstSuccess # If StartMinionDelayed is 1, then set the service to start delayed ${If} $StartMinionDelayed == 1 - nsExec::Exec "$INSTDIR\ssm.exe set salt-minion Start SERVICE_DELAYED_AUTO_START" + ${LogMsg} "Setting the salt-minion service to start delayed" + nsExec::ExecToStack "$INSTDIR\ssm.exe set salt-minion Start SERVICE_DELAYED_AUTO_START" + pop $0 # ExitCode + pop $1 # StdOut + ${If} $0 == 0 + ${LogMsg} "Success" + ${Else} + ${LogMsg} "Failed$\r$\nExitCode: $0$\r$\nStdOut: $1" + ${EndIf} ${EndIf} # If start-minion is 1, then start the service ${If} $StartMinion == 1 - nsExec::Exec 'net start salt-minion' + ${LogMsg} "Starting the salt-minion service" + nsExec::ExecToStack "$INSTDIR\ssm.exe start salt-minion" + pop $0 # ExitCode + pop $1 # StdOut + ${If} $0 == 0 + ${LogMsg} "Success" + ${Else} + ${LogMsg} "Failed$\r$\nExitCode: $0$\r$\nStdOut: $1" + ${EndIf} ${EndIf} + ${LogMsg} "Salt installation complete" + + # I don't know of another way to fix this. The installer hangs intermittently + # This will force kill the installer process. This must be the last thing that + # is run. + StrCpy $1 "wmic Path win32_process where $\"name like '$EXEFILE'$\" Call Terminate" + nsExec::Exec $1 + FunctionEnd @@ -976,12 +1185,15 @@ Function un.onInit Call un.parseUninstallerCommandLineSwitches - MessageBox MB_USERICON|MB_YESNO|MB_DEFBUTTON1 \ - "Are you sure you want to completely remove $(^Name) and all of its \ - components?" \ - /SD IDYES IDYES +2 + StrCpy $msg "Are you sure you want to completely remove $(^Name) and all \ + of its components?" + ${LogMsg} $msg + MessageBox MB_USERICON|MB_YESNO|MB_DEFBUTTON1 $msg /SD IDYES IDYES continue_remove + ${LogMsg} "Aborting" Abort + continue_remove: + FunctionEnd @@ -990,8 +1202,17 @@ Section Uninstall Call un.uninstallSalt # Remove $INSTDIR from the Path + ${LogMsg} "Removing salt from the path" EnVar::SetHKLM EnVar::DeleteValue Path "$INSTDIR" + Pop $0 + ${If} $0 == 0 + ${LogMsg} "Success" + ${Else} + # See this table for Error Codes: + # https://github.com/GsNSIS/EnVar#error-codes + ${LogMsg} "Failed. Error Code: $0" + ${EndIf} SectionEnd @@ -1001,57 +1222,64 @@ Function ${un}uninstallSalt # WARNING: Any changes made here need to be reflected in the MSI uninstaller # Make sure we're in the right directory + ${LogMsg} "Detecting INSTDIR" ${If} $INSTDIR == "c:\salt\Scripts" - StrCpy $INSTDIR "C:\salt" + StrCpy $INSTDIR "C:\salt" ${EndIf} # $ProgramFiles is different depending on the CPU Architecture # https://nsis.sourceforge.io/Reference/$PROGRAMFILES # x86 : C:\Program Files # x64 : C:\Program Files (x86) ${If} $INSTDIR == "$ProgramFiles\Salt Project\Salt\Scripts" - StrCpy $INSTDIR "$ProgramFiles\Salt Project\Salt" + StrCpy $INSTDIR "$ProgramFiles\Salt Project\Salt" ${EndIf} # $ProgramFiles64 is the C:\Program Files directory ${If} $INSTDIR == "$ProgramFiles64\Salt Project\Salt\Scripts" - StrCpy $INSTDIR "$ProgramFiles64\Salt Project\Salt" + StrCpy $INSTDIR "$ProgramFiles64\Salt Project\Salt" ${EndIf} + ${LogMsg} "INSTDIR: $INSTDIR" - # Stop and Remove salt-minion service - nsExec::Exec "net stop salt-minion" - nsExec::Exec "sc delete salt-minion" + # Only attempt to remove the services if ssm.exe is present" + ${If} ${FileExists} "$INSTDIR\ssm.exe" - # Stop and remove the salt-master service - nsExec::Exec "net stop salt-master" - nsExec::Exec "sc delete salt-master" + ${LogMsg} "ssm.exe found" - # We need to make sure the service is stopped and removed before deleting - # any files - StrCpy $0 1 # Tries - StrCpy $1 1 # Service Present - loop: - detailPrint "Verifying salt-minion deletion: try $0" - nsExec::ExecToStack 'net start | FIND /C /I "salt-minion"' - pop $2 # First on the stack is the return code - pop $1 # Next on the stack is standard out (service present) - ${If} $1 == 1 - ${If} $0 < 5 - IntOp $0 $0 + 1 - Sleep 1000 - goto loop - ${Else} - MessageBox MB_OK|MB_ICONEXCLAMATION \ - "Failed to remove salt-minion service" \ - /SD IDOK - Abort - ${EndIf} + # Stop and Remove salt-minion service + ${LogMsg} "Stopping salt-minion service" + nsExec::ExecToStack "$INSTDIR\ssm.exe stop salt-minion" + pop $0 # ExitCode + pop $1 # StdOut + ${If} $0 == 0 + ${LogMsg} "Success" + ${Else} + ${LogMsg} "Failed$\r$\nExitCode: $0$\r$\nStdOut: $1" ${EndIf} + ${LogMsg} "Removing salt-minion service" + nsExec::ExecToStack "$INSTDIR\ssm.exe remove salt-minion confirm" + pop $0 # ExitCode + pop $1 # StdOut + ${If} $0 == 0 + ${LogMsg} "Success" + ${Else} + ${LogMsg} "Failed$\r$\nExitCode: $0$\r$\nStdOut: $1" + Abort + ${EndIf} + + ${Else} + + ${LogMsg} "ssm.exe not found" + + ${EndIf} + # Remove files + ${LogMsg} "Deleting individual files" Delete "$INSTDIR\multi-minion*" Delete "$INSTDIR\salt*" Delete "$INSTDIR\ssm.exe" Delete "$INSTDIR\uninst.exe" Delete "$INSTDIR\vcredist.exe" + ${LogMsg} "Deleting directories" RMDir /r "$INSTDIR\DLLs" RMDir /r "$INSTDIR\Include" RMDir /r "$INSTDIR\Lib" @@ -1064,37 +1292,24 @@ Function ${un}uninstallSalt # the registry by default. We need to look in the 64 bit location on 64 bit # systems ${If} ${RunningX64} + + ${LogMsg} "Removing 64-bit registry items" # https://nsis.sourceforge.io/Docs/Chapter4.html#setregview SetRegView 64 # View the 64 bit portion of the registry - # Get Root Directory from the Registry (64 bit) - ReadRegStr $RootDir HKLM "SOFTWARE\Salt Project\Salt" "root_dir" - - # Remove Registry entries - DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" - - # Remove Command Line Registry entries - DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_CALL_REGKEY}" - DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_CP_REGKEY}" - DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_KEY_REGKEY}" - DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_MASTER_REGKEY}" - DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_MINION_REGKEY}" - DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_RUN_REGKEY}" - DeleteRegKey HKLM "SOFTWARE\Salt Project" ${EndIf} - # Remove everything in the 32 bit registry - SetRegView 32 # Set it to 32 bit - - ${If} $RootDir == "" - # Get Root Directory from the Registry (32 bit) - ReadRegStr $RootDir HKLM "SOFTWARE\Salt Project\Salt" "root_dir" - ${EndIf} + ${LogMsg} "Getting RootDir from 64-bit registry" + # Get Root Directory from the Registry (64 bit) + ReadRegStr $RootDir HKLM "SOFTWARE\Salt Project\Salt" "root_dir" + ${LogMsg} "RootDir: $RootDir" # Remove Registry entries + ${LogMsg} "Deleting Add/Remove programs entries" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" # Remove Command Line Registry entries + ${LogMsg} "Deleting Command Line Registry Entries" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_CALL_REGKEY}" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_CP_REGKEY}" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_KEY_REGKEY}" @@ -1105,8 +1320,10 @@ Function ${un}uninstallSalt # SystemDrive is not a built in NSIS constant, so we need to get it from # the environment variables + ${LogMsg} "Getting System Drive" ReadEnvStr $0 "SystemDrive" # Get the SystemDrive env var StrCpy $SysDrive "$0\" + ${LogMsg} "SystemDrive: $SysDrive" # Automatically close when finished SetAutoClose true @@ -1118,11 +1335,13 @@ Function ${un}uninstallSalt # directory is also the root_dir which includes the config and pki # directories ${IfNot} $DeleteInstallDir == 1 - MessageBox MB_YESNO|MB_DEFBUTTON2|MB_USERICON \ - "Would you like to completely remove $INSTDIR and all of its contents?" \ - /SD IDNO IDNO finished + StrCpy $msg "Would you like to completely remove $INSTDIR and all \ + of its contents?" + ${LogMsg} $msg + MessageBox MB_YESNO|MB_DEFBUTTON2|MB_USERICON $msg /SD IDNO IDNO finished ${EndIf} + ${LogMsg} "Removing INSTDIR" SetOutPath "$SysDrive" # Can't remove CWD RMDir /r "$INSTDIR" @@ -1133,18 +1352,19 @@ Function ${un}uninstallSalt # and pki directories. These directories will not be removed during # an upgrade. ${IfNot} $DeleteRootDir == 1 - MessageBox MB_YESNO|MB_DEFBUTTON2|MB_USERICON \ - "Would you like to completely remove the entire Salt \ + StrCpy $msg "Would you like to completely remove the entire Salt \ Installation? This includes the following:$\n\ - Extra Pip Packages ($INSTDIR\extras-3.##)$\n\ - Minion Config ($RootDir\conf)$\n\ - - Minion PKIs ($RootDir\conf\pki)"\ - /SD IDNO IDNO finished + - Minion PKIs ($RootDir\conf\pki)" + ${LogMsg} $msg + MessageBox MB_YESNO|MB_DEFBUTTON2|MB_USERICON $msg /SD IDNO IDNO finished ${EndIf} # New Method Installation # This makes the $APPDATA variable point to the ProgramData folder instead # of the current user's roaming AppData folder + ${LogMsg} "Setting Shell Context to All Users" SetShellVarContext all # We can always remove the Installation Directory on New Method Installs @@ -1157,6 +1377,7 @@ Function ${un}uninstallSalt ${AndIf} $INSTDIR != $ProgramFiles64 ${AndIf} $INSTDIR != $SysDrive ${AndIf} $INSTDIR != $WinDir + ${LogMsg} "Removing INSTDIR" SetOutPath "$SysDrive" # Can't remove CWD RMDir /r $INSTDIR ${EndIf} @@ -1166,11 +1387,14 @@ Function ${un}uninstallSalt # We want to remove ProgramFiles\Salt Project # Only delete Salt Project directory if it's in Program Files # Otherwise, we can't guess where the user may have installed salt - ${GetParent} $INSTDIR $0 # Get parent directory (Salt Project) - ${If} $0 == "$ProgramFiles\Salt Project" # Make sure it's ProgramFiles - ${OrIf} $0 == "$ProgramFiles64\Salt Project" # Make sure it's Program Files (x86) + ${LogMsg} "Getting InstDir Parent Directory" + ${GetParent} $INSTDIR $R0 # Get parent directory (Salt Project) + ${LogMsg} "Parent: $R0" + ${If} $R0 == "$ProgramFiles\Salt Project" # Make sure it's ProgramFiles + ${OrIf} $R0 == "$ProgramFiles64\Salt Project" # Make sure it's Program Files (x86) + ${LogMsg} "Removing Salt Project directory from Program Files" SetOutPath "$SysDrive" # Can't remove CWD - RMDir /r $0 + RMDir /r $R0 ${EndIf} # If RootDir is still empty, use C:\salt @@ -1181,32 +1405,45 @@ Function ${un}uninstallSalt # Expand any environment variables ExpandEnvStrings $RootDir $RootDir + ${LogMsg} "Removing RootDir: $RootDir" + # Remove the Salt Project directory in ProgramData # The Salt Project directory will only ever be in ProgramData # It is not user selectable - ${GetParent} $RootDir $0 # Get parent directory - ${If} $0 == "$APPDATA\Salt Project" # Make sure it's not ProgramData + ${LogMsg} "Getting RootDir Parent Directory" + ${GetParent} $RootDir $R0 # Get parent directory + ${LogMsg} "Parent: $R0" + ${If} $R0 == "$APPDATA\Salt Project" # Make sure it's not ProgramData + ${LogMsg} "Removing Parent Directory from APPDATA" SetOutPath "$SysDrive" # Can't remove CWD - RMDir /r $0 + RMDir /r $R0 ${EndIf} ${EndIf} finished: + ${LogMsg} "Uninstall Complete" FunctionEnd !macroend - - !insertmacro uninstallSalt "" !insertmacro uninstallSalt "un." Function un.onUninstSuccess + HideWindow - MessageBox MB_OK|MB_USERICON \ - "$(^Name) was successfully removed from your computer." \ - /SD IDOK + + StrCpy $msg "$(^Name) was successfully removed from your computer." + ${LogMsg} $msg + MessageBox MB_OK|MB_USERICON $msg /SD IDOK + + # I don't know of another way to fix this. The installer hangs intermittently + # This will force kill the installer process. This must be the last thing that + # is run. + StrCpy $1 "wmic Path win32_process where $\"name like '$EXEFILE'$\" Call Terminate" + nsExec::Exec $1 + FunctionEnd @@ -1228,38 +1465,42 @@ FunctionEnd # # ${Trim} $0 $1 ; Trimmed String, String to Trim #------------------------------------------------------------------------------ -Function Trim +!macro Func_Trim un + Function ${un}Trim - Exch $R1 # Original string - Push $R2 + Exch $R1 # Original string + Push $R2 - Loop: - StrCpy $R2 "$R1" 1 - StrCmp "$R2" " " TrimLeft - StrCmp "$R2" "$\r" TrimLeft - StrCmp "$R2" "$\n" TrimLeft - StrCmp "$R2" "$\t" TrimLeft - GoTo Loop2 - TrimLeft: - StrCpy $R1 "$R1" "" 1 - Goto Loop + Loop: + StrCpy $R2 "$R1" 1 + StrCmp "$R2" " " TrimLeft + StrCmp "$R2" "$\r" TrimLeft + StrCmp "$R2" "$\n" TrimLeft + StrCmp "$R2" "$\t" TrimLeft + GoTo Loop2 + TrimLeft: + StrCpy $R1 "$R1" "" 1 + Goto Loop - Loop2: - StrCpy $R2 "$R1" 1 -1 - StrCmp "$R2" " " TrimRight - StrCmp "$R2" "$\r" TrimRight - StrCmp "$R2" "$\n" TrimRight - StrCmp "$R2" "$\t" TrimRight - GoTo Done - TrimRight: - StrCpy $R1 "$R1" -1 - Goto Loop2 + Loop2: + StrCpy $R2 "$R1" 1 -1 + StrCmp "$R2" " " TrimRight + StrCmp "$R2" "$\r" TrimRight + StrCmp "$R2" "$\n" TrimRight + StrCmp "$R2" "$\t" TrimRight + GoTo Done + TrimRight: + StrCpy $R1 "$R1" -1 + Goto Loop2 - Done: - Pop $R2 - Exch $R1 + Done: + Pop $R2 + Exch $R1 -FunctionEnd + FunctionEnd +!macroend +!insertmacro Func_Trim "" +!insertmacro Func_Trim "un." #------------------------------------------------------------------------------ @@ -1351,53 +1592,6 @@ Function Explode FunctionEnd -#------------------------------------------------------------------------------ -# StrContains -# -# This function does a case sensitive searches for an occurrence of a substring in a string. -# It returns the substring if it is found. -# Otherwise it returns null(""). -# Written by kenglish_hi -# Adapted from StrReplace written by dandaman32 -#------------------------------------------------------------------------------ -Function StrContains - - # Initialize variables - Var /GLOBAL STR_HAYSTACK - Var /GLOBAL STR_NEEDLE - Var /GLOBAL STR_CONTAINS_VAR_1 - Var /GLOBAL STR_CONTAINS_VAR_2 - Var /GLOBAL STR_CONTAINS_VAR_3 - Var /GLOBAL STR_CONTAINS_VAR_4 - Var /GLOBAL STR_RETURN_VAR - - Exch $STR_NEEDLE - Exch 1 - Exch $STR_HAYSTACK - # Uncomment to debug - #MessageBox MB_OK 'STR_NEEDLE = $STR_NEEDLE STR_HAYSTACK = $STR_HAYSTACK ' - StrCpy $STR_RETURN_VAR "" - StrCpy $STR_CONTAINS_VAR_1 -1 - StrLen $STR_CONTAINS_VAR_2 $STR_NEEDLE - StrLen $STR_CONTAINS_VAR_4 $STR_HAYSTACK - - loop: - IntOp $STR_CONTAINS_VAR_1 $STR_CONTAINS_VAR_1 + 1 - StrCpy $STR_CONTAINS_VAR_3 $STR_HAYSTACK $STR_CONTAINS_VAR_2 $STR_CONTAINS_VAR_1 - StrCmp $STR_CONTAINS_VAR_3 $STR_NEEDLE found - StrCmp $STR_CONTAINS_VAR_1 $STR_CONTAINS_VAR_4 done - Goto loop - - found: - StrCpy $STR_RETURN_VAR $STR_NEEDLE - Goto done - - done: - Pop $STR_NEEDLE # Prevent "invalid opcode" errors and keep the stack clean - Exch $STR_RETURN_VAR -FunctionEnd - - #------------------------------------------------------------------------------ # UninstallMSI Function # - Uninstalls MSI by product code @@ -1438,6 +1632,8 @@ Function getExistingInstallation # This function also sets the RootDir and INSTDIR variables used by the # installer. + ${LogMsg} "Detecting existing installation" + # Reset ExistingInstallation StrCpy $ExistingInstallation 0 @@ -1445,6 +1641,7 @@ Function getExistingInstallation # Use RunningX64 here to get the Architecture for the system running the # installer. # There are 3 scenarios here: + ${LogMsg} "Setting Default InstDir" ${If} ${RunningX64} StrCpy $INSTDIR "$ProgramFiles64\Salt Project\Salt" ${Else} @@ -1457,6 +1654,7 @@ Function getExistingInstallation SetShellVarContext all # Set default location of for salt config + ${LogMsg} "Setting Default RootDir" StrCpy $RootDir "$APPDATA\Salt Project\Salt" # The NSIS installer is a 32bit application and will use the WOW6432Node in @@ -1468,9 +1666,14 @@ Function getExistingInstallation ${EndIf} # Check for existing new method installation from registry + ${LogMsg} "Looking for New Method installation" + # Look for `install_dir` in HKLM\SOFTWARE\Salt Project\Salt + ${LogMsg} "Getting INSTDIR from Registry" ReadRegStr $R0 HKLM "SOFTWARE\Salt Project\Salt" "install_dir" StrCmp $R0 "" checkOldInstallation + + ${LogMsg} "Detected existing installation" StrCpy $ExistingInstallation 1 # Set INSTDIR to the location in the registry @@ -1478,31 +1681,39 @@ Function getExistingInstallation # Expand any environment variables it contains ExpandEnvStrings $INSTDIR $INSTDIR + ${LogMsg} "INSTDIR: $INSTDIR" + # Set RootDir, if defined + ${LogMsg} "Getting RootDir" ReadRegStr $R0 HKLM "SOFTWARE\Salt Project\Salt" "root_dir" StrCmp $R0 "" finished StrCpy $RootDir $R0 # Expand any environment variables it contains ExpandEnvStrings $RootDir $RootDir + ${LogMsg} "RootDir: $RootDir" Goto finished # Check for existing old method installation # Look for `python.exe` in C:\salt\bin checkOldInstallation: + ${LogMsg} "Looking for Old Method installation" IfFileExists "C:\salt\bin\python.exe" 0 newInstallation StrCpy $ExistingInstallation 1 StrCpy $INSTDIR "C:\salt" StrCpy $RootDir "C:\salt" + ${LogMsg} "Found Old Method installation" Goto finished # This is a new installation # Check if custom location was passed via command line newInstallation: + ${LogMsg} "This is a New Installation" ${IfNot} $CustomLocation == "" StrCpy $INSTDIR $CustomLocation ${EndIf} finished: + ${LogMsg} "Finished detecting installation type" SetRegView 32 # View the 32 bit portion of the registry FunctionEnd @@ -1510,6 +1721,8 @@ FunctionEnd Function getExistingMinionConfig + ${LogMsg} "Getting existing Minion Config" + # Set Config Found Default Value StrCpy $ExistingConfigFound 0 @@ -1517,11 +1730,15 @@ Function getExistingMinionConfig # Root dir is usually ProgramData\Salt Project\Salt\conf though it may be # C:\salt\conf if Salt was installed the old way + ${LogMsg} "Looking for minion config in $RootDir" IfFileExists "$RootDir\conf\minion" check_owner + ${LogMsg} "Looking for minion config in C:\salt" IfFileExists "C:\salt\conf\minion" old_location confNotFound old_location: + ${LogMsg} "Found config in old location. Updating RootDir" StrCpy $RootDir "C:\salt" + ${LogMsg} "RootDir: $RootDir" check_owner: # We need to verify the owner of the config directory (C:\salt\conf) to @@ -1556,27 +1773,40 @@ Function getExistingMinionConfig # running the install with the silent option (/S) it will backup the # untrusted config directory and continue with the default config. + ${LogMsg} "Validating permissions to config" AccessControl::GetFileOwner /SID "$RootDir\conf" Pop $0 # Check for valid SIDs StrCmp $0 "S-1-5-32-544" correct_owner # Administrators Group (NullSoft) StrCmp $0 "S-1-5-18" correct_owner # Local System (MSI) - MessageBox MB_YESNO \ - "Insecure config found at $RootDir\conf. If you continue, the \ + StrCpy $msg "Insecure config found at $RootDir\conf. If you continue, the \ config directory will be renamed to $RootDir\conf.insecure \ - and the default config will be used. Continue?" \ - /SD IDYES IDYES insecure_config + and the default config will be used. Continue?" + ${LogMsg} $msg + MessageBox MB_YESNO $msg /SD IDYES IDYES insecure_config + ${LogMsg} "Aborting" Abort insecure_config: # Backing up insecure config - Rename "$RootDir\conf" "$RootDir\conf.insecure-${TIME_STAMP}" + ${LogMsg} "Backing up insecure config" + Rename "$RootDir\conf" "$RootDir\conf.insecure-$TimeStamp" Goto confNotFound correct_owner: + ${LogMsg} "Found existing config with correct permissions" StrCpy $ExistingConfigFound 1 + ${LogMsg} "Opening minion config read-only" + ClearErrors FileOpen $0 "$RootDir\conf\minion" r + IfErrors 0 get_config_values + ${LogMsg} "There was an error opening the minion config" + ${LogMsg} "Config values will not be detected" + Goto set_default_values + + get_config_values: + ${LogMsg} "Getting config values from existing config" confLoop: ClearErrors # clear Errors @@ -1616,17 +1846,21 @@ Function getExistingMinionConfig Goto confLoop EndOfFile: - FileClose $0 + FileClose $0 confNotFound: + ${LogMsg} "Config not found" - # Set Default Config Values if not found - ${If} $MasterHost_Cfg == "" - StrCpy $MasterHost_Cfg "salt" - ${EndIf} - ${If} $MinionName_Cfg == "" - StrCpy $MinionName_Cfg "hostname" - ${EndIf} + set_default_values: + # Set Default Config Values if not found + ${If} $MasterHost_Cfg == "" + ${LogMsg} "Setting master host setting to default: salt" + StrCpy $MasterHost_Cfg "salt" + ${EndIf} + ${If} $MinionName_Cfg == "" + ${LogMsg} "Setting minion id setting to default: hostname" + StrCpy $MinionName_Cfg "hostname" + ${EndIf} FunctionEnd @@ -1634,38 +1868,69 @@ FunctionEnd Var cfg_line Var chk_line Var lst_check +Var tgt_file +Var tmp_file Function updateMinionConfig - ClearErrors - FileOpen $0 "$RootDir\conf\minion" "r" # open target file for reading - GetTempFileName $R0 # get new temp file name - FileOpen $1 $R0 "w" # open temp file for writing - StrCpy $ConfigWriteMaster 1 # write the master config value StrCpy $ConfigWriteMinion 1 # write the minion config value + ${If} $MasterHost == "" # if master is empty + ${OrIf} $MasterHost == "salt" # or if master is 'salt' + StrCpy $ConfigWriteMaster 0 # no need to write master config + ${EndIf} # close if statement + ${If} $MinionName == "" # if minion is empty + ${OrIf} $MinionName == "hostname" # and if minion is not 'hostname' + StrCpy $ConfigWriteMinion 0 # no need to write minion config + ${EndIf} # close if statement + + ${If} $ConfigWriteMaster == 0 + ${AndIf} $ConfigWriteMinion == 0 + ${LogMsg} "No config values to update. Config will not be updated" + Goto update_minion_config_finished + ${EndIf} + + ${LogMsg} "Updating Minion Config" + + ${LogMsg} "Opening target file: $RootDir\conf\minion" + ClearErrors + FileOpen $tgt_file "$RootDir\conf\minion" r # open target file for reading + ${If} ${Errors} + ${LogMsg} "Target file could not be opened read-only" + ${LogMsg} "Minion config will not be updated" + Goto update_minion_config_finished + ${EndIf} + + GetTempFileName $R0 # get new temp file name + ${LogMsg} "Opening temp file: $R0" + ClearErrors + FileOpen $tmp_file "$R0" w # open temp file for writing + ${If} ${Errors} + ${LogMsg} "Temp file could not be opened for writing" + ${LogMsg} "Minion config will not be updated" + Goto update_minion_config_finished + ${EndIf} + loop: # loop through each line - FileRead $0 $cfg_line # read line from target file - IfErrors done # end if errors are encountered (end of line) + ${LogMsg} "Reading line from target config file" + ClearErrors + FileRead $tgt_file $cfg_line # read line from target file + ${If} ${Errors} + ${LogMsg} "Error: Most likely reached End-Of-File" + Goto done + ${EndIf} loop_after_read: StrCpy $lst_check 0 # list check not performed - ${If} $MasterHost == "" # if master is empty - ${OrIf} $MasterHost == "salt" # or if master is 'salt' - StrCpy $ConfigWriteMaster 0 # no need to write master config - ${EndIf} # close if statement - ${If} $MinionName == "" # if minion is empty - ${OrIf} $MinionName == "hostname" # and if minion is not 'hostname' - StrCpy $ConfigWriteMinion 0 # no need to write minion config - ${EndIf} # close if statement - ${If} $ConfigWriteMaster == 1 # if we need to write master config ${StrLoc} $3 $cfg_line "master:" ">" # where is 'master:' in this line ${If} $3 == 0 # is it in the first... ${OrIf} $3 == 1 # or second position (account for comments) + ${LogMsg} "Found master. Updating temp config" + ${Explode} $9 "," $MasterHost # Split the hostname on commas, $9 is the number of items found ${If} $9 == 1 # 1 means only a single master was passed StrCpy $cfg_line "master: $MasterHost$\r$\n" # write the master @@ -1684,7 +1949,7 @@ Function updateMinionConfig # Remove remaining items in list ${While} $lst_check == 0 # while list item found - FileRead $0 $chk_line # read line from target file + FileRead $tgt_file $chk_line # read line from target file IfErrors done # end if errors are encountered (end of line) ${StrLoc} $3 $chk_line " - " ">" # where is 'master:' in this line ${If} $3 == "" # is it in the first... @@ -1703,12 +1968,21 @@ Function updateMinionConfig ${StrLoc} $3 $cfg_line "id:" ">" # where is 'id:' in this line ${If} $3 == 0 # is it in the first... ${OrIf} $3 == 1 # or the second position (account for comments) + ${LogMsg} "Found minion ID. Updating temp config" StrCpy $cfg_line "id: $MinionName$\r$\n" # write the minion config setting StrCpy $ConfigWriteMinion 0 # minion value written to config ${EndIf} # close if statement ${EndIf} # close if statement - FileWrite $1 $cfg_line # write changed or unchanged line to temp file + ClearErrors + ${LogMsg} "Writing config line(s) to temp file" + # Enable this line for troubleshooting + # ${LogMsg} "cfg_line: $cfg_line" + FileWrite $tmp_file $cfg_line # write changed or unchanged line to temp file + ${If} ${Errors} + ${LogMsg} "There was an error writing new config line(s) to temp file" + Goto update_minion_config_finished + ${EndIf} ${If} $lst_check == 1 # master not written to the config StrCpy $cfg_line $chk_line @@ -1722,6 +1996,8 @@ Function updateMinionConfig # Does master config still need to be written ${If} $ConfigWriteMaster == 1 # master not written to the config + ${LogMsg} "Master not found in existing config. Appending to the bottom" + ${Explode} $9 "," $MasterHost # split the hostname on commas, $9 is the number of items found ${If} $9 == 1 # 1 means only a single master was passed StrCpy $cfg_line "master: $MasterHost" # write the master @@ -1737,268 +2013,201 @@ Function updateMinionConfig Goto loop_explode_2 # do it again ${EndIf} # close if statement ${EndIf} # close if statement - FileWrite $1 $cfg_line # write changed or unchanged line to temp file + + ClearErrors + ${LogMsg} "Writing master config to temp file" + FileWrite $tmp_file $cfg_line # write changed or unchanged line to temp file + ${If} ${Errors} + ${LogMsg} "There was an error writing master config to the temp file" + ${LogMsg} "cfg_line: $cfg_line" + Goto update_minion_config_finished + ${EndIf} ${EndIf} # close if statement ${If} $ConfigWriteMinion == 1 # minion ID not written to the config + ${LogMsg} "Minion ID not found in existing config. Appending to the bottom" StrCpy $cfg_line "$\r$\nid: $MinionName" # write the minion config setting - FileWrite $1 $cfg_line # write changed or unchanged line to temp file + + ClearErrors + ${LogMsg} "Writing minion id to temp config file" + FileWrite $tmp_file $cfg_line # write changed or unchanged line to temp file + ${If} ${Errors} + ${LogMsg} "There was an error writing minion id to temop config file" + ${LogMsg} "cfg_line: $cfg_line" + Goto update_minion_config_finished + ${EndIf} ${EndIf} # close if statement - FileClose $0 # close target file - FileClose $1 # close temp file + ${LogMsg} "Closing config files" + FileClose $tgt_file # close target file + FileClose $tmp_file # close temp file + ${LogMsg} "Deleting target config" Delete "$RootDir\conf\minion" # delete target file + ${LogMsg} "Copying new target config" CopyFiles /SILENT $R0 "$RootDir\conf\minion" # copy temp file to target file + ${LogMsg} "Deleting old temp file" Delete $R0 # delete temp file + update_minion_config_finished: + ${LogMsg} "Update minion config finished" + FunctionEnd Function un.parseUninstallerCommandLineSwitches - # Load the parameters - ${GetParameters} $R0 - - # Display Help - ClearErrors - ${GetOptions} $R0 "/?" $R1 - IfErrors display_un_help_not_found - - # Using a message box here - # I couldn't get the console output to work with the uninstaller - MessageBox MB_OK \ - "Help for Salt Minion Uninstallation\ - $\n\ - $\n==============================================\ - $\n\ - $\n/delete-install-dir$\tDelete the installation directory that contains the\ - $\n$\t$\tconfig and pki directories. Default is to not delete\ - $\n$\t$\tthe installation directory\ - $\n\ - $\n$\t$\tThis applies to old method installations where\ - $\n$\t$\tthe root directory and the installation directory\ - $\n$\t$\tare the same (C:\salt)\ - $\n\ - $\n/delete-root-dir$\tDelete the root directory that contains the config\ - $\n$\t$\tand pki directories. Also removes the installation directory\ - $\n$\t$\tincluding the extras directory. Default is to not delete\ - $\n\ - $\n$\t$\tThis applies to new method installations where the\ - $\n$\t$\troot directory is in ProgramData and the installation\ - $\n$\t$\tdirectory is user defined, usually Program Files\ - $\n\ - $\n/S$\t$\tUninstall Salt silently\ - $\n\ - $\n/?$\t$\tDisplay this help screen\ - $\n\ - $\n--------------------------------------------------------------------------------------------\ - $\n\ - $\nExamples:\ - $\n\ - $\n$\tuninst.exe /S\ - $\n\ - $\n$\tuninst.exe /S /delete-root-dir\ - $\n\ - $\n==============================================" - - Abort - - display_un_help_not_found: + ${LogMsg} "Parsing command line parameters for the Uninstaller" # Load the parameters - ${GetParameters} $R0 + ${GetParameters} $cmdLineParams # Uninstaller: Remove Installation Directory + ${LogMsg} "Checking /delete-install-dir" ClearErrors - ${GetOptions} $R0 "/delete-install-dir" $R1 - IfErrors delete_install_dir_not_found - StrCpy $DeleteInstallDir 1 - delete_install_dir_not_found: + ${GetOptions} $cmdLineParams "/delete-install-dir" $R1 + ${If} ${Errors} + ${LogMsg} "/delete-install-dir not found" + ${Else} + ${LogMsg} "Found /delete-install-dir" + StrCpy $DeleteInstallDir 1 + ${EndIf} # Uninstaller: Remove Root Directory + ${LogMsg} "Checking /delete-root-dir" ClearErrors - ${GetOptions} $R0 "/delete-root-dir" $R1 - IfErrors delete_root_dir_not_found - StrCpy $DeleteRootDir 1 - delete_root_dir_not_found: + ${GetOptions} $cmdLineParams "/delete-root-dir" $R1 + ${If} ${Errors} + ${LogMsg} "/delete-root-dir not found" + ${Else} + ${LogMsg} "Found /delete-root-dir" + StrCpy $DeleteRootDir 1 + ${EndIf} FunctionEnd Function parseInstallerCommandLineSwitches + ${LogMsg} "Parsing command line parameters for the Installer" + # Load the parameters - ${GetParameters} $R0 - - # Display Help - ClearErrors - ${GetOptions} $R0 "/?" $R1 - IfErrors display_help_not_found - - System::Call 'kernel32::GetStdHandle(i -11)i.r0' - System::Call 'kernel32::AttachConsole(i -1)i.r1' - ${If} $0 = 0 - ${OrIf} $1 = 0 - System::Call 'kernel32::AllocConsole()' - System::Call 'kernel32::GetStdHandle(i -11)i.r0' - ${EndIf} - FileWrite $0 "$\n" - FileWrite $0 "$\n" - FileWrite $0 "Help for Salt Minion installation$\n" - FileWrite $0 "===============================================================================$\n" - FileWrite $0 "$\n" - FileWrite $0 "/minion-name=$\t$\tA string value to set the minion name. Default value is$\n" - FileWrite $0 "$\t$\t$\t'hostname'. Setting the minion name causes the installer$\n" - FileWrite $0 "$\t$\t$\tto use the default config or a custom config if defined$\n" - FileWrite $0 "$\n" - FileWrite $0 "/master=$\t$\tA string value to set the IP address or hostname of the$\n" - FileWrite $0 "$\t$\t$\tmaster. Default value is 'salt'. You may pass a single$\n" - FileWrite $0 "$\t$\t$\tmaster or a comma-separated list of masters. Setting$\n" - FileWrite $0 "$\t$\t$\tthe master will cause the installer to use the default$\n" - FileWrite $0 "$\t$\t$\tconfig or a custom config if defined$\n" - FileWrite $0 "$\n" - FileWrite $0 "/start-minion=$\t$\t1 will start the minion service, 0 will not.$\n" - FileWrite $0 "$\t$\t$\tDefault is 1$\n" - FileWrite $0 "$\n" - FileWrite $0 "/start-minion-delayed$\tSet the minion start type to 'Automatic (Delayed Start)'$\n" - FileWrite $0 "$\n" - FileWrite $0 "/default-config$\t$\tOverwrite the existing config if present with the$\n" - FileWrite $0 "$\t$\t$\tdefault config for salt. Default is to use the existing$\n" - FileWrite $0 "$\t$\t$\tconfig if present. If /master and/or /minion-name is$\n" - FileWrite $0 "$\t$\t$\tpassed, those values will be used to update the new$\n" - FileWrite $0 "$\t$\t$\tdefault config$\n" - FileWrite $0 "$\n" - FileWrite $0 "$\t$\t$\tAny existing config will be backed up by appending$\n" - FileWrite $0 "$\t$\t$\ta timestamp and a .bak extension. That includes$\n" - FileWrite $0 "$\t$\t$\tthe minion file and the minion.d directory$\n" - FileWrite $0 "$\n" - FileWrite $0 "/custom-config=$\t$\tA string value specifying the name of a custom config$\n" - FileWrite $0 "$\t$\t$\tfile in the same path as the installer or the full path$\n" - FileWrite $0 "$\t$\t$\tto a custom config file. If /master and/or /minion-name$\n" - FileWrite $0 "$\t$\t$\tis passed, those values will be used to update the new$\n" - FileWrite $0 "$\t$\t$\tcustom config$\n" - FileWrite $0 "$\n" - FileWrite $0 "$\t$\t$\tAny existing config will be backed up by appending$\n" - FileWrite $0 "$\t$\t$\ta timestamp and a .bak extension. That includes$\n" - FileWrite $0 "$\t$\t$\tthe minion file and the minion.d directory$\n" - FileWrite $0 "$\n" - FileWrite $0 "/install-dir=$\t$\tSpecify the installation location for the Salt binaries.$\n" - FileWrite $0 "$\t$\t$\tThis will be ignored for existing installations.$\n" - FileWrite $0 "$\n" - FileWrite $0 "/move-config$\t$\tIf config is found at C:\salt it will be moved to %ProgramData%$\n" - FileWrite $0 "$\n" - FileWrite $0 "/S$\t$\t$\tInstall Salt silently$\n" - FileWrite $0 "$\n" - FileWrite $0 "/?$\t$\t$\tDisplay this help screen$\n" - FileWrite $0 "$\n" - FileWrite $0 "-------------------------------------------------------------------------------$\n" - FileWrite $0 "$\n" - FileWrite $0 "Examples:$\n" - FileWrite $0 "$\n" - FileWrite $0 " $EXEFILE /S$\n" - FileWrite $0 "$\n" - FileWrite $0 " $EXEFILE /S /minion-name=myminion /master=master.mydomain.com /start-minion-delayed$\n" - FileWrite $0 "$\n" - FileWrite $0 " $EXEFILE /S /minion-name=myminion /master=master.mydomain.com /install-dir=$\"C:\Software\salt$\"$\n" - FileWrite $0 "$\n" - FileWrite $0 "===============================================================================$\n" - FileWrite $0 "$\n" - System::Free $0 - System::Free $1 - System::Call 'kernel32::FreeConsole()' - - # Give the user back the prompt - !define VK_RETURN 0x0D ; Enter Key - !define KEYEVENTF_EXTENDEDKEY 0x0001 - !define KEYEVENTF_KEYUP 0x0002 - System::Call "user32::keybd_event(i${VK_RETURN}, i0x45, i${KEYEVENTF_EXTENDEDKEY}|0, i0)" - System::Call "user32::keybd_event(i${VK_RETURN}, i0x45, i${KEYEVENTF_EXTENDEDKEY}|${KEYEVENTF_KEYUP}, i0)" - Abort - - display_help_not_found: - - # Set default value for Use Existing Config - StrCpy $ConfigType "Existing Config" + ${GetParameters} $cmdLineParams + ${LogMsg} "Passed: $cmdLineParams" # Check for start-minion switches - # /start-service is to be deprecated, so we must check for both - ${GetOptions} $R0 "/start-service=" $R1 - ${GetOptions} $R0 "/start-minion=" $R2 - - # Service: Start Salt Minion - ${IfNot} $R2 == "" + ${LogMsg} "Checking for /start-minion" + ${GetOptions} $cmdLineParams "/start-minion=" $R1 + ${IfNot} $R1 == "" + ${LogMsg} "Found /start-minion=$R1" # If start-minion was passed something, then set it - StrCpy $StartMinion $R2 - ${ElseIfNot} $R1 == "" - # If start-service was passed something, then set StartMinion to that StrCpy $StartMinion $R1 - MessageBox MB_OK|MB_ICONINFORMATION \ - "`/start-service` is being deprecated. Please use `/start-minion` \ - instead." /SD IDOK ${Else} # Otherwise default to 1 + ${LogMsg} "/start-minion not found. Using default" StrCpy $StartMinion 1 ${EndIf} # Service: Minion Startup Type Delayed + ${LogMsg} "Checking for /start-minion-delayed" ClearErrors - ${GetOptions} $R0 "/start-minion-delayed" $R1 - IfErrors start_minion_delayed_not_found - StrCpy $StartMinionDelayed 1 - start_minion_delayed_not_found: + ${GetOptions} $cmdLineParams "/start-minion-delayed" $R1 + ${If} ${Errors} + ${LogMsg} "/start-minion-delayed not found" + ${Else} + ${LogMsg} "Found /start-minion-delayed" + StrCpy $StartMinionDelayed 1 + ${EndIf} + + # Set default value for Use Existing Config + StrCpy $ConfigType "Existing Config" # Minion Config: Master IP/Name # If setting master, we don't want to use existing config - ${GetOptions} $R0 "/master=" $R1 - ${IfNot} $R1 == "" + ${LogMsg} "Checking for /master" + ${GetOptions} $cmdLineParams "/master=" $R1 + ${If} ${Errors} + ${LogMsg} "/master= not found. Using default" + StrCpy $MasterHost "salt" + ${ElseIfNot} $R1 == "" + ${LogMsg} "Found /master=$R1" StrCpy $MasterHost $R1 StrCpy $ConfigType "Default Config" - ${ElseIf} $MasterHost == "" + ${Else} + ${LogMsg} "/master found, but value not passed. Using default value" StrCpy $MasterHost "salt" ${EndIf} # Minion Config: Minion ID # If setting minion id, we don't want to use existing config - ${GetOptions} $R0 "/minion-name=" $R1 - ${IfNot} $R1 == "" + ${LogMsg} "Checking for /minion-name" + ${GetOptions} $cmdLineParams "/minion-name=" $R1 + ${If} ${Errors} + ${LogMsg} "/minion-name= not found. Using default" + StrCpy $MinionName "hostname" + ${ElseIfNot} $R1 == "" + ${LogMsg} "Found /minion-name=$R1" StrCpy $MinionName $R1 StrCpy $ConfigType "Default Config" - ${ElseIf} $MinionName == "" + ${Else} + ${LogMsg} "/minion-name= found, but value not passed. Using default" StrCpy $MinionName "hostname" ${EndIf} # Use Default Config + ${LogMsg} "Checking for /default-config" ClearErrors - ${GetOptions} $R0 "/default-config" $R1 - IfErrors default_config_not_found - StrCpy $ConfigType "Default Config" - default_config_not_found: + ${GetOptions} $cmdLineParams "/default-config" $R1 + ${If} ${Errors} + ${LogMsg} "/default-config not found" + ${Else} + ${LogMsg} "Found /default-config" + StrCpy $ConfigType "Default Config" + ${EndIf} # Use Custom Config # Set default value for Use Custom Config - StrCpy $CustomConfig "" + ${LogMsg} "Checking for /custom-config" # Existing config will get a `.bak` extension - ${GetOptions} $R0 "/custom-config=" $R1 - ${IfNot} $R1 == "" - # A Custom Config was passed, set it + ${GetOptions} $cmdLineParams "/custom-config=" $R1 + ${If} ${Errors} + ${LogMsg} "/custom-config= not found" + StrCpy $CustomConfig "" + ${ElseIfNot} $R1 == "" + ${LogMsg} "Found /custom-config=$R1" StrCpy $CustomConfig $R1 StrCpy $ConfigType "Custom Config" + ${Else} + ${LogMsg} "/custom-config= found, but value not passed" + StrCpy $CustomConfig "" ${EndIf} # Set Install Location + ${LogMsg} "Checking for /install-dir" ClearErrors - ${GetOptions} $R0 "/install-dir=" $R1 - ${IfNot} $R1 == "" + ${GetOptions} $cmdLineParams "/install-dir=" $R1 + ${If} ${Errors} + ${LogMsg} "/install-dir= not found" + StrCpy $CustomLocation "" + ${ElseIfNot} $R1 == "" # A Custom Location was passed, set it + ${LogMsg} "Found /install-dir=$R1" StrCpy $CustomLocation $R1 + ${Else} + ${LogMsg} "/install-dir= found, but value not passed" + StrCpy $CustomConfig "" ${EndIf} # Set Move Config Option + ${LogMsg} "Checking for /move-config" ClearErrors - ${GetOptions} $R0 "/move-config" $R1 - IfErrors move_config_not_found - StrCpy $MoveExistingConfig 1 - move_config_not_found: + ${GetOptions} $cmdLineParams "/move-config" $R1 + ${If} ${Errors} + ${LogMsg} "/move-config not found" + StrCpy $MoveExistingConfig 0 + ${Else} + ${LogMsg} "Found /move-config" + StrCpy $MoveExistingConfig 1 + ${EndIf} FunctionEnd diff --git a/pkg/windows/nsis/tests/setup.ps1 b/pkg/windows/nsis/tests/setup.ps1 index 2b136f66600..d63b4ed972a 100644 --- a/pkg/windows/nsis/tests/setup.ps1 +++ b/pkg/windows/nsis/tests/setup.ps1 @@ -94,8 +94,7 @@ $prereq_files | ForEach-Object { } } -$binary_files = @("python.exe", "ssm.exe") - +$binary_files = @("python.exe") $binary_files | ForEach-Object { Write-Host "Creating $_`: " -NoNewline Set-Content -Path "$BUILDENV_DIR\$_" -Value "binary" diff --git a/pkg/windows/prep_salt.ps1 b/pkg/windows/prep_salt.ps1 index c35b6e65546..b4d3ee93dea 100644 --- a/pkg/windows/prep_salt.ps1 +++ b/pkg/windows/prep_salt.ps1 @@ -163,7 +163,6 @@ if ( ! (Test-Path -Path "$BUILD_DIR\ssm.exe") ) { Write-Result "Failed" -ForegroundColor Red exit 1 } - Write-Host $SSM_URL } # Copy the multiminion scripts to the Build directory From dd2c86d84411c0704897c500e20612f3a9ccda20 Mon Sep 17 00:00:00 2001 From: Twangboy Date: Thu, 27 Feb 2025 14:14:20 -0700 Subject: [PATCH 043/101] Add list_repo_pkgs to win_pkg module --- changelog/67171.fixed.md | 3 + salt/modules/win_pkg.py | 70 ++++++++++++++++++- .../functional/modules/test_win_pkg.py | 63 +++++++++++++++-- tests/pytests/functional/states/test_pkg.py | 36 +++++++++- 4 files changed, 166 insertions(+), 6 deletions(-) create mode 100644 changelog/67171.fixed.md diff --git a/changelog/67171.fixed.md b/changelog/67171.fixed.md new file mode 100644 index 00000000000..d0d51a507ac --- /dev/null +++ b/changelog/67171.fixed.md @@ -0,0 +1,3 @@ +Fix a stacktrace on Windows with pkg.installed and test=True. The +`pkg.list_repo_pkgs` function does not exist on Windows. This uses the +`pkg.list_available` function instead for Windows. diff --git a/salt/modules/win_pkg.py b/salt/modules/win_pkg.py index 8b834bbd33e..52ed0b92c88 100644 --- a/salt/modules/win_pkg.py +++ b/salt/modules/win_pkg.py @@ -45,6 +45,7 @@ import re import sys import time import urllib.parse +from fnmatch import fnmatch from functools import cmp_to_key import salt.fileserver @@ -275,6 +276,11 @@ def list_available(*names, **kwargs): return_dict_always (bool): Default ``False`` dict when a single package name is queried. + reverse_sort (bool): + Sort the versions for latest to oldest + + .. versionadded:: 3007.2 + Returns: dict: The package name with its available versions @@ -298,12 +304,15 @@ def list_available(*names, **kwargs): return_dict_always = salt.utils.data.is_true( kwargs.get("return_dict_always", False) ) + reverse_sort = salt.utils.data.is_true(kwargs.get("reverse_sort", False)) if len(names) == 1 and not return_dict_always: pkginfo = _get_package_info(names[0], saltenv=saltenv) if not pkginfo: return "" versions = sorted( - list(pkginfo.keys()), key=cmp_to_key(_reverse_cmp_pkg_versions) + list(pkginfo.keys()), + key=cmp_to_key(_reverse_cmp_pkg_versions), + reverse=reverse_sort, ) else: versions = {} @@ -314,11 +323,70 @@ def list_available(*names, **kwargs): verlist = sorted( list(pkginfo.keys()) if pkginfo else [], key=cmp_to_key(_reverse_cmp_pkg_versions), + reverse=reverse_sort, ) versions[name] = verlist return versions +def list_repo_pkgs(*args, saltenv="base", **kwargs): + """ + .. versionadded:: 3007.2 + + This function was added to match a similar function in Linux. It will + return all available packages. Optionally, package names (and name globs) + can be passed and the results will be filtered to packages matching those + names. + + This function can be helpful in discovering the version or repo to specify + in a :mod:`pkg.installed ` state. + + The return data will be a dictionary mapping package names to a list of + version numbers, ordered from newest to oldest. For example: + + .. code-block:: python + + { + 'bash': ['4.3-14ubuntu1.1', + '4.3-14ubuntu1'], + 'nginx': ['1.10.0-0ubuntu0.16.04.4', + '1.9.15-0ubuntu1'] + } + + CLI Examples: + + .. code-block:: bash + + salt '*' pkg.list_repo_pkgs + salt '*' pkg.list_repo_pkgs foo bar baz + """ + + # Get all the repo data + pkgs = get_repo_data(saltenv=saltenv).get("repo", {}) + + # Generate a list of packages and their available versions + repo_pkgs = {} + for pkg in pkgs: + repo_pkgs.update({pkg: list(pkgs[pkg].keys())}) + + # If no args passed, just return everything + if not args: + return repo_pkgs + + # Loop through the args and return info for each specified package + ret = {} + for arg in args: + for pkg in repo_pkgs: + if fnmatch(pkg, arg): + ret.update({pkg: repo_pkgs[pkg]}) + + # If ret is empty, return everything + if not ret: + ret = repo_pkgs + + return ret + + def version(*names, **kwargs): """ Returns a string representing the package version or an empty string if not diff --git a/tests/pytests/functional/modules/test_win_pkg.py b/tests/pytests/functional/modules/test_win_pkg.py index 6bcfaa9bd84..8742a1c2c9c 100644 --- a/tests/pytests/functional/modules/test_win_pkg.py +++ b/tests/pytests/functional/modules/test_win_pkg.py @@ -13,9 +13,26 @@ def pkg_def_contents(state_tree): my-software: '1.0.1': full_name: 'My Software' - installer: 'C:\files\mysoftware.msi' + installer: 'C:\files\mysoftware101.msi' install_flags: '/qn /norestart' - uninstaller: 'C:\files\mysoftware.msi' + uninstaller: 'C:\files\mysoftware101.msi' + uninstall_flags: '/qn /norestart' + msiexec: True + reboot: False + '1.0.2': + full_name: 'My Software' + installer: 'C:\files\mysoftware102.msi' + install_flags: '/qn /norestart' + uninstaller: 'C:\files\mysoftware102.msi' + uninstall_flags: '/qn /norestart' + msiexec: True + reboot: False + your-software: + '1.0.0': + full_name: 'Your Software' + installer: 'C:\files\yoursoftware101.msi' + install_flags: '/qn /norestart' + uninstaller: 'C:\files\yoursoftware101.msi' uninstall_flags: '/qn /norestart' msiexec: True reboot: False @@ -27,9 +44,47 @@ def pkg(modules): yield modules.pkg -def test_refresh_db(pkg, pkg_def_contents, state_tree, minion_opts): +@pytest.fixture(scope="function") +def repo(pkg, state_tree, pkg_def_contents): assert len(pkg.get_package_info("my-software")) == 0 repo_dir = state_tree / "winrepo_ng" with pytest.helpers.temp_file("my-software.sls", pkg_def_contents, repo_dir): pkg.refresh_db() - assert len(pkg.get_package_info("my-software")) == 1 + + +def test_refresh_db(pkg, repo): + assert len(pkg.get_package_info("my-software")) == 2 + assert len(pkg.get_package_info("your-software")) == 1 + + +@pytest.mark.parametrize( + "as_dict, reverse, expected", + [ + (False, False, ["1.0.1", "1.0.2"]), + (False, True, ["1.0.2", "1.0.1"]), + (True, False, {"my-software": ["1.0.1", "1.0.2"]}), + (True, True, {"my-software": ["1.0.2", "1.0.1"]}), + ], +) +def test_list_available(pkg, repo, as_dict, reverse, expected): + result = pkg.list_available( + "my-software", return_dict_always=as_dict, reverse_sort=reverse + ) + assert result == expected + + +@pytest.mark.parametrize( + "pkg_name, expected", + [ + ("my-software", {"my-software": ["1.0.1", "1.0.2"]}), + ("my-soft*", {"my-software": ["1.0.1", "1.0.2"]}), + ("your-software", {"your-software": ["1.0.0"]}), + (None, {"my-software": ["1.0.1", "1.0.2"], "your-software": ["1.0.0"]}), + ], +) +def test_list_repo_pkgs(pkg, repo, pkg_name, expected): + if pkg_name is None: + result = pkg.list_repo_pkgs() + else: + result = pkg.list_repo_pkgs(pkg_name) + assert result == expected diff --git a/tests/pytests/functional/states/test_pkg.py b/tests/pytests/functional/states/test_pkg.py index d179eaa4ca0..31f85ef1133 100644 --- a/tests/pytests/functional/states/test_pkg.py +++ b/tests/pytests/functional/states/test_pkg.py @@ -58,7 +58,7 @@ def refresh_keys(grains, modules): def PKG_TARGETS(grains): _PKG_TARGETS = ["figlet", "sl"] if grains["os"] == "Windows": - _PKG_TARGETS = ["npp_x64", "winrar"] + _PKG_TARGETS = ["npp_x64", "putty"] elif grains["os"] == "Amazon": if grains["osfinger"] == "Amazon Linux-2023": _PKG_TARGETS = ["lynx", "gnuplot-minimal"] @@ -225,6 +225,29 @@ def install_7zip(modules): assert "22.01.00.0" not in versions +@pytest.fixture(scope="module") +def pkg_def_contents(state_tree): + return r""" + my-software: + '1.0.1': + full_name: 'My Software' + installer: 'C:\files\mysoftware101.msi' + install_flags: '/qn /norestart' + uninstaller: 'C:\files\mysoftware101.msi' + uninstall_flags: '/qn /norestart' + msiexec: True + reboot: False + '1.0.2': + full_name: 'My Software' + installer: 'C:\files\mysoftware102.msi' + install_flags: '/qn /norestart' + uninstaller: 'C:\files\mysoftware102.msi' + uninstall_flags: '/qn /norestart' + msiexec: True + reboot: False + """ + + @pytest.mark.requires_salt_modules("pkg.version") @pytest.mark.requires_salt_states("pkg.installed", "pkg.removed") @pytest.mark.slow_test @@ -1126,3 +1149,14 @@ def test_pkg_removed_with_version_multiple(install_7zip, modules, states): assert ret.result is True current = modules.pkg.version("7zip") assert "22.01.00.0" in current + + +@pytest.mark.skip_unless_on_windows() +def test_pkg_latest_test_true(states, modules, state_tree, pkg_def_contents): + repo_dir = state_tree / "winrepo_ng" + with pytest.helpers.temp_file("my-software.sls", pkg_def_contents, repo_dir): + modules.pkg.refresh_db() + assert len(modules.pkg.get_package_info("my-software")) == 2 + result = states.pkg.latest("my-software", test=True) + expected = {"my-software": {"new": "1.0.2", "old": ""}} + assert result.changes == expected From 4fa83b77a4272d81e055d33407287365a7dc151c Mon Sep 17 00:00:00 2001 From: twangboy Date: Tue, 4 Mar 2025 09:16:25 -0700 Subject: [PATCH 044/101] Fix some failing tests --- salt/modules/win_pkg.py | 26 ++++++++++++++----- .../functional/modules/test_win_pkg.py | 7 ++--- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/salt/modules/win_pkg.py b/salt/modules/win_pkg.py index 52ed0b92c88..9d1ee62bd8c 100644 --- a/salt/modules/win_pkg.py +++ b/salt/modules/win_pkg.py @@ -367,7 +367,15 @@ def list_repo_pkgs(*args, saltenv="base", **kwargs): # Generate a list of packages and their available versions repo_pkgs = {} for pkg in pkgs: - repo_pkgs.update({pkg: list(pkgs[pkg].keys())}) + repo_pkgs.update( + { + pkg: sorted( + list(pkgs[pkg].keys()), + key=cmp_to_key(_reverse_cmp_pkg_versions), + reverse=True, + ) + } + ) # If no args passed, just return everything if not args: @@ -376,13 +384,17 @@ def list_repo_pkgs(*args, saltenv="base", **kwargs): # Loop through the args and return info for each specified package ret = {} for arg in args: + if "=" in arg: + pkg_name, pkg_version = arg.split("=") + else: + pkg_name = arg + pkg_version = "" for pkg in repo_pkgs: - if fnmatch(pkg, arg): - ret.update({pkg: repo_pkgs[pkg]}) - - # If ret is empty, return everything - if not ret: - ret = repo_pkgs + if fnmatch(pkg, pkg_name): + if pkg_version and pkg_version in repo_pkgs[pkg]: + ret.setdefault(pkg, []).append(pkg_version) + else: + ret.setdefault(pkg, []).extend(repo_pkgs[pkg]) return ret diff --git a/tests/pytests/functional/modules/test_win_pkg.py b/tests/pytests/functional/modules/test_win_pkg.py index 8742a1c2c9c..1b8bb35ca83 100644 --- a/tests/pytests/functional/modules/test_win_pkg.py +++ b/tests/pytests/functional/modules/test_win_pkg.py @@ -76,10 +76,11 @@ def test_list_available(pkg, repo, as_dict, reverse, expected): @pytest.mark.parametrize( "pkg_name, expected", [ - ("my-software", {"my-software": ["1.0.1", "1.0.2"]}), - ("my-soft*", {"my-software": ["1.0.1", "1.0.2"]}), + ("my-software", {"my-software": ["1.0.2", "1.0.1"]}), + ("my-software=1.0.1", {"my-software": ["1.0.1"]}), + ("my-soft*", {"my-software": ["1.0.2", "1.0.1"]}), ("your-software", {"your-software": ["1.0.0"]}), - (None, {"my-software": ["1.0.1", "1.0.2"], "your-software": ["1.0.0"]}), + (None, {"my-software": ["1.0.2", "1.0.1"], "your-software": ["1.0.0"]}), ], ) def test_list_repo_pkgs(pkg, repo, pkg_name, expected): From c44e8e3a660733a5525c059b07011d851d20f730 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Wed, 5 Mar 2025 16:14:46 -0700 Subject: [PATCH 045/101] Removed dependency on bsdmainutils package for Debian and Ubuntu --- changelog/67184.removed.md | 1 + pkg/debian/control | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 changelog/67184.removed.md diff --git a/changelog/67184.removed.md b/changelog/67184.removed.md new file mode 100644 index 00000000000..a088d8bcfbd --- /dev/null +++ b/changelog/67184.removed.md @@ -0,0 +1 @@ +Removed dependency on bsdmainutils package for Debian and Ubuntu diff --git a/pkg/debian/control b/pkg/debian/control index c08d99d5e23..4f1a2b96352 100644 --- a/pkg/debian/control +++ b/pkg/debian/control @@ -79,8 +79,7 @@ Package: salt-minion Architecture: amd64 arm64 Replaces: salt-common (<= 3006.4) Breaks: salt-common (<= 3006.4) -Depends: bsdmainutils, - dctrl-tools, +Depends: dctrl-tools, salt-common (= ${source:Version}), ${misc:Depends} Recommends: debconf-utils, dmidecode, net-tools From aeecd6b7b2621175a2e0f02299292bcd99d63cf0 Mon Sep 17 00:00:00 2001 From: twangboy Date: Fri, 20 Sep 2024 10:57:48 -0600 Subject: [PATCH 046/101] Use cmd /c with runas on Windows to allow compound commands --- changelog/44736.fixed.md | 2 + salt/utils/win_runas.py | 12 ++++-- .../functional/utils/test_win_runas.py | 38 +++++++++++++++++++ tests/support/pytest/helpers.py | 3 +- 4 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 changelog/44736.fixed.md create mode 100644 tests/pytests/functional/utils/test_win_runas.py diff --git a/changelog/44736.fixed.md b/changelog/44736.fixed.md new file mode 100644 index 00000000000..eee06decc06 --- /dev/null +++ b/changelog/44736.fixed.md @@ -0,0 +1,2 @@ +Commands on Windows are now prefixed with ``cmd /c`` so that compound +commands (commands separated by ``&&``) run properly when using ``runas`` diff --git a/salt/utils/win_runas.py b/salt/utils/win_runas.py index fc8c9c82be5..5faf01d3e80 100644 --- a/salt/utils/win_runas.py +++ b/salt/utils/win_runas.py @@ -187,8 +187,10 @@ def runas(cmdLine, username, password=None, cwd=None): | win32process.CREATE_SUSPENDED ) + flags = win32con.STARTF_USESTDHANDLES + flags |= win32con.STARTF_USESHOWWINDOW startup_info = salt.platform.win.STARTUPINFO( - dwFlags=win32con.STARTF_USESTDHANDLES, + dwFlags=flags, hStdInput=stdin_read.handle, hStdOutput=stdout_write.handle, hStdError=stderr_write.handle, @@ -204,7 +206,7 @@ def runas(cmdLine, username, password=None, cwd=None): int(user_token), logonflags=1, applicationname=None, - commandline=cmdLine, + commandline=f'cmd /c "{cmdLine}"', currentdirectory=cwd, creationflags=creationflags, startupinfo=startup_info, @@ -286,8 +288,10 @@ def runas_unpriv(cmd, username, password, cwd=None): dupin = salt.platform.win.DuplicateHandle(srchandle=stdin, inherit=True) # Get startup info structure + flags = win32con.STARTF_USESTDHANDLES + flags |= win32con.STARTF_USESHOWWINDOW startup_info = salt.platform.win.STARTUPINFO( - dwFlags=win32con.STARTF_USESTDHANDLES, + dwFlags=flags, hStdInput=dupin, hStdOutput=c2pwrite, hStdError=errwrite, @@ -300,7 +304,7 @@ def runas_unpriv(cmd, username, password, cwd=None): domain=domain, password=password, logonflags=salt.platform.win.LOGON_WITH_PROFILE, - commandline=cmd, + commandline=f'cmd /c "{cmd}"', startupinfo=startup_info, currentdirectory=cwd, ) diff --git a/tests/pytests/functional/utils/test_win_runas.py b/tests/pytests/functional/utils/test_win_runas.py new file mode 100644 index 00000000000..e6f06d6948c --- /dev/null +++ b/tests/pytests/functional/utils/test_win_runas.py @@ -0,0 +1,38 @@ +""" +Test the win_runas util +""" + +import pytest + +import salt.utils.win_runas as win_runas + +pytestmark = [ + pytest.mark.windows_whitelisted, + pytest.mark.skip_unless_on_windows, +] + + +@pytest.fixture +def user(): + with pytest.helpers.create_account() as account: + yield account + + +def test_runas(user): + cmd = "hostname && echo foo" + result = win_runas.runas( + cmdLine=cmd, + username=user.username, + password=user.password, + ) + assert "foo" in result["stdout"] + + +def test_runas_unpriv(user): + cmd = "hostname && echo foo" + result = win_runas.runas_unpriv( + cmd=cmd, + username=user.username, + password=user.password, + ) + assert "foo" in result["stdout"] diff --git a/tests/support/pytest/helpers.py b/tests/support/pytest/helpers.py index 8766607a49f..78de282ba95 100644 --- a/tests/support/pytest/helpers.py +++ b/tests/support/pytest/helpers.py @@ -332,8 +332,9 @@ class TestAccount: if salt.utils.platform.is_windows(): log.debug("Configuring system account: %s", self) ret = self.sminion.functions.user.update( - self.username, password_never_expires=True + self.username, expired=False, password_never_expires=True ) + assert ret is True if salt.utils.platform.is_darwin() or salt.utils.platform.is_windows(): password = self.password else: From 905f8c98268988493ce0be6626c9cfb9c445465c Mon Sep 17 00:00:00 2001 From: twangboy Date: Wed, 16 Oct 2024 13:30:17 -0600 Subject: [PATCH 047/101] Add try to the keywords list --- salt/modules/cmdmod.py | 2 +- tests/pytests/unit/modules/test_cmdmod.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/salt/modules/cmdmod.py b/salt/modules/cmdmod.py index fe1d4412d00..5ec3a6f6a45 100644 --- a/salt/modules/cmdmod.py +++ b/salt/modules/cmdmod.py @@ -293,7 +293,7 @@ def _prep_powershell_cmd(win_shell, cmd, encoded_cmd): # Commands that are a specific keyword behave differently. They fail if # you add a "&" to the front. Add those here as we find them: - keywords = ["$", "&", ".", "Configuration"] + keywords = ["$", "&", ".", "Configuration", "try"] for keyword in keywords: if cmd.startswith(keyword): diff --git a/tests/pytests/unit/modules/test_cmdmod.py b/tests/pytests/unit/modules/test_cmdmod.py index e1f2a604cd1..10d154b98d2 100644 --- a/tests/pytests/unit/modules/test_cmdmod.py +++ b/tests/pytests/unit/modules/test_cmdmod.py @@ -1064,6 +1064,7 @@ def test_prep_powershell_cmd_no_powershell(): [ ("Write-Host foo", "& Write-Host foo"), ("$PSVersionTable", "$PSVersionTable"), + ("try {this} catch {that}", "try {this} catch {that}"), ], ) def test_prep_powershell_cmd(cmd, parsed): From 61890f79af4f14ecb479f547b073297e5d18f8ee Mon Sep 17 00:00:00 2001 From: twangboy Date: Wed, 16 Oct 2024 15:01:33 -0600 Subject: [PATCH 048/101] Suppress stacktrace with runas with no password --- salt/platform/win.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/salt/platform/win.py b/salt/platform/win.py index ec63dbe319f..f2f26c14864 100644 --- a/salt/platform/win.py +++ b/salt/platform/win.py @@ -185,7 +185,12 @@ class HANDLE(wintypes.HANDLE): def Close(self, CloseHandle=kernel32.CloseHandle): if self and not getattr(self, "closed", False): - CloseHandle(self.Detach()) + try: + CloseHandle(self.Detach()) + except Exception: + # Suppress the error when there is no handle (WinError 6) + if ctypes.get_last_error() == 6: + pass __del__ = Close From af906c795edde2a8994102348be581e1a0f225f4 Mon Sep 17 00:00:00 2001 From: twangboy Date: Wed, 16 Oct 2024 15:30:20 -0600 Subject: [PATCH 049/101] use whoami in the tests --- salt/platform/win.py | 2 +- tests/pytests/functional/utils/test_win_runas.py | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/salt/platform/win.py b/salt/platform/win.py index f2f26c14864..a521fdd974c 100644 --- a/salt/platform/win.py +++ b/salt/platform/win.py @@ -187,7 +187,7 @@ class HANDLE(wintypes.HANDLE): if self and not getattr(self, "closed", False): try: CloseHandle(self.Detach()) - except Exception: + except OSError: # Suppress the error when there is no handle (WinError 6) if ctypes.get_last_error() == 6: pass diff --git a/tests/pytests/functional/utils/test_win_runas.py b/tests/pytests/functional/utils/test_win_runas.py index e6f06d6948c..91a30afb736 100644 --- a/tests/pytests/functional/utils/test_win_runas.py +++ b/tests/pytests/functional/utils/test_win_runas.py @@ -18,21 +18,22 @@ def user(): yield account -def test_runas(user): - cmd = "hostname && echo foo" +def test_compound_runas(user): + cmd = "hostname && whoami" result = win_runas.runas( cmdLine=cmd, username=user.username, password=user.password, ) - assert "foo" in result["stdout"] + assert user.username in result["stdout"] -def test_runas_unpriv(user): - cmd = "hostname && echo foo" +def test_compound_runas_unpriv(user): + cmd = "hostname && whoami" + print(user.username) result = win_runas.runas_unpriv( cmd=cmd, username=user.username, password=user.password, ) - assert "foo" in result["stdout"] + assert user.username in result["stdout"] From 4524d8a54a53b6fd0a2c0e57e55f8db761e95c60 Mon Sep 17 00:00:00 2001 From: twangboy Date: Thu, 17 Oct 2024 09:08:46 -0600 Subject: [PATCH 050/101] Add some troubleshooting code --- tests/pytests/functional/utils/test_win_runas.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/pytests/functional/utils/test_win_runas.py b/tests/pytests/functional/utils/test_win_runas.py index 91a30afb736..acab35171ed 100644 --- a/tests/pytests/functional/utils/test_win_runas.py +++ b/tests/pytests/functional/utils/test_win_runas.py @@ -4,6 +4,8 @@ Test the win_runas util import pytest +import salt.modules.win_useradd as win_user +import salt.utils.win_functions as win_functions import salt.utils.win_runas as win_runas pytestmark = [ @@ -30,7 +32,8 @@ def test_compound_runas(user): def test_compound_runas_unpriv(user): cmd = "hostname && whoami" - print(user.username) + is_admin = win_functions.is_admin(user.username) + user_info = win_user.info(user.username) result = win_runas.runas_unpriv( cmd=cmd, username=user.username, From ab9e02a1a96f36a7d238ffeaf327a858942c3da9 Mon Sep 17 00:00:00 2001 From: twangboy Date: Fri, 18 Oct 2024 14:58:07 -0600 Subject: [PATCH 051/101] Fix hanging test --- salt/modules/cmdmod.py | 10 +++++----- salt/utils/win_runas.py | 10 ++++++++-- tests/pytests/functional/utils/test_win_runas.py | 4 ---- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/salt/modules/cmdmod.py b/salt/modules/cmdmod.py index 5ec3a6f6a45..cb7aec28bb9 100644 --- a/salt/modules/cmdmod.py +++ b/salt/modules/cmdmod.py @@ -296,7 +296,7 @@ def _prep_powershell_cmd(win_shell, cmd, encoded_cmd): keywords = ["$", "&", ".", "Configuration", "try"] for keyword in keywords: - if cmd.startswith(keyword): + if cmd.lower().startswith(keyword.lower()): new_cmd.extend(["-Command", f"{cmd.strip()}"]) break else: @@ -4096,16 +4096,16 @@ def powershell( # ConvertTo-JSON is only available on PowerShell 3.0 and later psversion = shell_info("powershell")["psversion"] if salt.utils.versions.version_cmp(psversion, "2.0") == 1: - cmd += " | ConvertTo-JSON" + cmd += " | ConvertTo-JSON " if depth is not None: - cmd += f" -Depth {depth}" + cmd += f"-Depth {depth} " # Put the whole command inside a try / catch block # Some errors in PowerShell are not "Terminating Errors" and will not be # caught in a try/catch block. For example, the `Get-WmiObject` command will # often return a "Non Terminating Error". To fix this, make sure # `-ErrorAction Stop` is set in the powershell command - cmd = "try {" + cmd + '} catch { "{}" }' + cmd = "try { " + cmd + ' } catch { "{}" }' if encode_cmd: # Convert the cmd to UTF-16LE without a BOM and base64 encode. @@ -4117,7 +4117,7 @@ def powershell( cmd = salt.utils.stringutils.to_str(cmd) encoded_cmd = True else: - cmd = f"{{{cmd}}}" + cmd = f"{{ {cmd} }}" encoded_cmd = False # Retrieve the response, while overriding shell with 'powershell' diff --git a/salt/utils/win_runas.py b/salt/utils/win_runas.py index 5faf01d3e80..aa2df51dbfc 100644 --- a/salt/utils/win_runas.py +++ b/salt/utils/win_runas.py @@ -199,6 +199,9 @@ def runas(cmdLine, username, password=None, cwd=None): # Create the environment for the user env = create_env(user_token, False) + if "&&" in cmdLine: + cmdLine = f'cmd /c "{cmdLine}"' + hProcess = None try: # Start the process in a suspended state. @@ -206,7 +209,7 @@ def runas(cmdLine, username, password=None, cwd=None): int(user_token), logonflags=1, applicationname=None, - commandline=f'cmd /c "{cmdLine}"', + commandline=cmdLine, currentdirectory=cwd, creationflags=creationflags, startupinfo=startup_info, @@ -297,6 +300,9 @@ def runas_unpriv(cmd, username, password, cwd=None): hStdError=errwrite, ) + if "&&" in cmd: + cmd = f'cmd /c "{cmd}"' + try: # Run command and return process info structure process_info = salt.platform.win.CreateProcessWithLogonW( @@ -304,7 +310,7 @@ def runas_unpriv(cmd, username, password, cwd=None): domain=domain, password=password, logonflags=salt.platform.win.LOGON_WITH_PROFILE, - commandline=f'cmd /c "{cmd}"', + commandline=cmd, startupinfo=startup_info, currentdirectory=cwd, ) diff --git a/tests/pytests/functional/utils/test_win_runas.py b/tests/pytests/functional/utils/test_win_runas.py index acab35171ed..e06e784df72 100644 --- a/tests/pytests/functional/utils/test_win_runas.py +++ b/tests/pytests/functional/utils/test_win_runas.py @@ -4,8 +4,6 @@ Test the win_runas util import pytest -import salt.modules.win_useradd as win_user -import salt.utils.win_functions as win_functions import salt.utils.win_runas as win_runas pytestmark = [ @@ -32,8 +30,6 @@ def test_compound_runas(user): def test_compound_runas_unpriv(user): cmd = "hostname && whoami" - is_admin = win_functions.is_admin(user.username) - user_info = win_user.info(user.username) result = win_runas.runas_unpriv( cmd=cmd, username=user.username, From 8c8792d81bdd61c318b7c41bb7d1f6db0f7a81f0 Mon Sep 17 00:00:00 2001 From: twangboy Date: Fri, 20 Sep 2024 10:57:48 -0600 Subject: [PATCH 052/101] Use cmd /c with runas on Windows to allow compound commands --- salt/utils/win_runas.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/salt/utils/win_runas.py b/salt/utils/win_runas.py index aa2df51dbfc..c9efa865117 100644 --- a/salt/utils/win_runas.py +++ b/salt/utils/win_runas.py @@ -209,7 +209,7 @@ def runas(cmdLine, username, password=None, cwd=None): int(user_token), logonflags=1, applicationname=None, - commandline=cmdLine, + commandline=f'cmd /c "{cmdLine}"', currentdirectory=cwd, creationflags=creationflags, startupinfo=startup_info, @@ -310,7 +310,7 @@ def runas_unpriv(cmd, username, password, cwd=None): domain=domain, password=password, logonflags=salt.platform.win.LOGON_WITH_PROFILE, - commandline=cmd, + commandline=f'cmd /c "{cmd}"', startupinfo=startup_info, currentdirectory=cwd, ) From 0d47d9100603fdddcf5de9b676625e5eae737164 Mon Sep 17 00:00:00 2001 From: twangboy Date: Thu, 17 Oct 2024 09:08:46 -0600 Subject: [PATCH 053/101] Add some troubleshooting code --- tests/pytests/functional/utils/test_win_runas.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/pytests/functional/utils/test_win_runas.py b/tests/pytests/functional/utils/test_win_runas.py index e06e784df72..eb88763485d 100644 --- a/tests/pytests/functional/utils/test_win_runas.py +++ b/tests/pytests/functional/utils/test_win_runas.py @@ -4,6 +4,8 @@ Test the win_runas util import pytest +import salt.modules.win_useradd as win_user +import salt.utils.win_functions as win_functions import salt.utils.win_runas as win_runas pytestmark = [ From 8663f32962b3099eb805a5006681201320114eb3 Mon Sep 17 00:00:00 2001 From: twangboy Date: Fri, 18 Oct 2024 14:58:07 -0600 Subject: [PATCH 054/101] Fix hanging test --- salt/utils/win_runas.py | 4 ++-- tests/pytests/functional/utils/test_win_runas.py | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/salt/utils/win_runas.py b/salt/utils/win_runas.py index c9efa865117..aa2df51dbfc 100644 --- a/salt/utils/win_runas.py +++ b/salt/utils/win_runas.py @@ -209,7 +209,7 @@ def runas(cmdLine, username, password=None, cwd=None): int(user_token), logonflags=1, applicationname=None, - commandline=f'cmd /c "{cmdLine}"', + commandline=cmdLine, currentdirectory=cwd, creationflags=creationflags, startupinfo=startup_info, @@ -310,7 +310,7 @@ def runas_unpriv(cmd, username, password, cwd=None): domain=domain, password=password, logonflags=salt.platform.win.LOGON_WITH_PROFILE, - commandline=f'cmd /c "{cmd}"', + commandline=cmd, startupinfo=startup_info, currentdirectory=cwd, ) diff --git a/tests/pytests/functional/utils/test_win_runas.py b/tests/pytests/functional/utils/test_win_runas.py index eb88763485d..e06e784df72 100644 --- a/tests/pytests/functional/utils/test_win_runas.py +++ b/tests/pytests/functional/utils/test_win_runas.py @@ -4,8 +4,6 @@ Test the win_runas util import pytest -import salt.modules.win_useradd as win_user -import salt.utils.win_functions as win_functions import salt.utils.win_runas as win_runas pytestmark = [ From b128203e9c506db94544c383efada0a10944f4bc Mon Sep 17 00:00:00 2001 From: twangboy Date: Wed, 5 Mar 2025 11:26:30 -0700 Subject: [PATCH 055/101] Pass lastexitcode through to retcode --- changelog/60884.fixed.md | 2 ++ salt/modules/cmdmod.py | 5 +++- .../functional/modules/cmd/test_script.py | 17 +++++++++++ .../functional/utils/test_win_runas.py | 30 +++++++++++++++---- 4 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 changelog/60884.fixed.md diff --git a/changelog/60884.fixed.md b/changelog/60884.fixed.md new file mode 100644 index 00000000000..85f074e7b67 --- /dev/null +++ b/changelog/60884.fixed.md @@ -0,0 +1,2 @@ +Fix an issue with cmd.script in Windows so that the exit code from a script will +be passed through to the retcode of the state diff --git a/salt/modules/cmdmod.py b/salt/modules/cmdmod.py index cb7aec28bb9..dd01fb11c87 100644 --- a/salt/modules/cmdmod.py +++ b/salt/modules/cmdmod.py @@ -283,7 +283,10 @@ def _prep_powershell_cmd(win_shell, cmd, encoded_cmd): new_cmd.append("-Command") if isinstance(cmd, list): cmd = " ".join(cmd) - new_cmd.append(f"& {cmd.strip()}") + # We need to append $LASTEXITCODE here to return the actual exit code + # from the script. Otherwise, it will always return 1 on any non-zero + # exit code failure. Issue: #60884 + new_cmd.append(f"& {cmd.strip()}; exit $LASTEXITCODE") elif encoded_cmd: new_cmd.extend(["-EncodedCommand", f"{cmd}"]) else: diff --git a/tests/pytests/functional/modules/cmd/test_script.py b/tests/pytests/functional/modules/cmd/test_script.py index dcdd632fa70..9cd8fa85e08 100644 --- a/tests/pytests/functional/modules/cmd/test_script.py +++ b/tests/pytests/functional/modules/cmd/test_script.py @@ -13,6 +13,17 @@ def cmd(modules): return modules.cmd +@pytest.fixture(scope="module") +def exitcode_script(state_tree): + exit_code = 12345 + script_contents = f""" + Write-Host "Expected exit code: {exit_code}" + exit {exit_code} + """ + with pytest.helpers.temp_file("exit_code.ps1", script_contents, state_tree): + yield exit_code + + @pytest.fixture(params=["powershell", "pwsh"]) def shell(request): """ @@ -85,3 +96,9 @@ def test_windows_script_args_powershell_runas(cmd, shell, account, issue_56195): ) assert ret["stdout"] == password + + +@pytest.mark.skip_unless_on_windows(reason="Minion is not Windows") +def test_windows_script_exitcode(cmd, shell, exitcode_script): + ret = cmd.script("salt://exit_code.ps1", shell=shell, saltenv="base") + assert ret["retcode"] == exitcode_script diff --git a/tests/pytests/functional/utils/test_win_runas.py b/tests/pytests/functional/utils/test_win_runas.py index e06e784df72..b6bdabec375 100644 --- a/tests/pytests/functional/utils/test_win_runas.py +++ b/tests/pytests/functional/utils/test_win_runas.py @@ -18,21 +18,39 @@ def user(): yield account -def test_compound_runas(user): - cmd = "hostname && whoami" +@pytest.mark.parametrize( + "cmd, expected", + [ + ("hostname && whoami", "username"), + ("hostname && echo foo", "foo"), + ("hostname && python --version", "Python"), + ], +) +def test_compound_runas(user, cmd, expected): + if expected == "username": + expected = user.username result = win_runas.runas( cmdLine=cmd, username=user.username, password=user.password, ) - assert user.username in result["stdout"] + assert expected in result["stdout"] -def test_compound_runas_unpriv(user): - cmd = "hostname && whoami" +@pytest.mark.parametrize( + "cmd, expected", + [ + ("hostname && whoami", "username"), + ("hostname && echo foo", "foo"), + ("hostname && python --version", "Python"), + ], +) +def test_compound_runas_unpriv(user, cmd, expected): + if expected == "username": + expected = user.username result = win_runas.runas_unpriv( cmd=cmd, username=user.username, password=user.password, ) - assert user.username in result["stdout"] + assert expected in result["stdout"] From c2bb925bc6317ff5963469db6bd01f6a6f12ded7 Mon Sep 17 00:00:00 2001 From: twangboy Date: Wed, 5 Mar 2025 13:26:33 -0700 Subject: [PATCH 056/101] Fix checking retcodes with runas on Windows --- changelog/59977.fixed.md | 2 + salt/modules/cmdmod.py | 162 ++++++++++-------- .../functional/modules/cmd/test_run_win.py | 50 ++++++ 3 files changed, 139 insertions(+), 75 deletions(-) create mode 100644 changelog/59977.fixed.md create mode 100644 tests/pytests/functional/modules/cmd/test_run_win.py diff --git a/changelog/59977.fixed.md b/changelog/59977.fixed.md new file mode 100644 index 00000000000..9069a8d621b --- /dev/null +++ b/changelog/59977.fixed.md @@ -0,0 +1,2 @@ +Fixed an issue on Windows where checking success_retcodes when using the +runas parameter would fail. Now success_retcodes are checked correctly diff --git a/salt/modules/cmdmod.py b/salt/modules/cmdmod.py index dd01fb11c87..4c7fd40d02a 100644 --- a/salt/modules/cmdmod.py +++ b/salt/modules/cmdmod.py @@ -458,8 +458,6 @@ def _run( if isinstance(cmd, (list, tuple)): cmd = " ".join(cmd) - return win_runas(cmd, runas, password, cwd) - if runas and salt.utils.platform.is_darwin(): # We need to insert the user simulation into the command itself and not # just run it from the environment on macOS as that method doesn't work @@ -492,7 +490,7 @@ def _run( # hang. runas = None - if runas: + if runas and not salt.utils.platform.is_windows(): # Save the original command before munging it try: pwd.getpwnam(runas) @@ -513,7 +511,7 @@ def _run( else: use_sudo = True - if runas or group: + if (runas or group) and not salt.utils.platform.is_windows(): try: # Getting the environment for the runas user # Use markers to thwart any stdout noise @@ -752,90 +750,104 @@ def _run( if not use_vt: # This is where the magic happens - try: + + if runas and salt.utils.platform.is_windows(): + + # We can't use TimedProc with runas on Windows if change_windows_codepage: salt.utils.win_chcp.set_codepage_id(windows_codepage) - try: - proc = salt.utils.timed_subprocess.TimedProc(cmd, **new_kwargs) - except OSError as exc: - msg = "Unable to run command '{}' with the context '{}', reason: {}".format( - cmd if output_loglevel is not None else "REDACTED", - new_kwargs, - exc, - ) - raise CommandExecutionError(msg) - try: - proc.run() - except TimedProcTimeoutError as exc: - ret["stdout"] = str(exc) - ret["stderr"] = "" - ret["retcode"] = None - ret["pid"] = proc.process.pid - # ok return code for timeouts? - ret["retcode"] = 1 - return ret - finally: + ret = win_runas(cmd, runas, password, cwd) + if change_windows_codepage: salt.utils.win_chcp.set_codepage_id(previous_windows_codepage) - if output_loglevel != "quiet" and output_encoding is not None: - log.debug( - "Decoding output from command %s using %s encoding", - cmd, - output_encoding, - ) + else: + try: + if change_windows_codepage: + salt.utils.win_chcp.set_codepage_id(windows_codepage) + try: + proc = salt.utils.timed_subprocess.TimedProc(cmd, **new_kwargs) + except OSError as exc: + msg = "Unable to run command '{}' with the context '{}', reason: {}".format( + cmd if output_loglevel is not None else "REDACTED", + new_kwargs, + exc, + ) + raise CommandExecutionError(msg) - try: - out = salt.utils.stringutils.to_unicode( - proc.stdout, encoding=output_encoding - ) - except TypeError: - # stdout is None - out = "" - except UnicodeDecodeError: - out = salt.utils.stringutils.to_unicode( - proc.stdout, encoding=output_encoding, errors="replace" - ) - if output_loglevel != "quiet": - log.error( - "Failed to decode stdout from command %s, non-decodable " - "characters have been replaced", - _log_cmd(cmd), + try: + proc.run() + except TimedProcTimeoutError as exc: + ret["stdout"] = str(exc) + ret["stderr"] = "" + ret["retcode"] = None + ret["pid"] = proc.process.pid + # ok return code for timeouts? + ret["retcode"] = 1 + return ret + finally: + if change_windows_codepage: + salt.utils.win_chcp.set_codepage_id(previous_windows_codepage) + + if output_loglevel != "quiet" and output_encoding is not None: + log.debug( + "Decoding output from command %s using %s encoding", + cmd, + output_encoding, ) - try: - err = salt.utils.stringutils.to_unicode( - proc.stderr, encoding=output_encoding - ) - except TypeError: - # stderr is None - err = "" - except UnicodeDecodeError: - err = salt.utils.stringutils.to_unicode( - proc.stderr, encoding=output_encoding, errors="replace" - ) - if output_loglevel != "quiet": - log.error( - "Failed to decode stderr from command %s, non-decodable " - "characters have been replaced", - _log_cmd(cmd), + try: + out = salt.utils.stringutils.to_unicode( + proc.stdout, encoding=output_encoding ) + except TypeError: + # stdout is None + out = "" + except UnicodeDecodeError: + out = salt.utils.stringutils.to_unicode( + proc.stdout, encoding=output_encoding, errors="replace" + ) + if output_loglevel != "quiet": + log.error( + "Failed to decode stdout from command %s, non-decodable " + "characters have been replaced", + _log_cmd(cmd), + ) + + try: + err = salt.utils.stringutils.to_unicode( + proc.stderr, encoding=output_encoding + ) + except TypeError: + # stderr is None + err = "" + except UnicodeDecodeError: + err = salt.utils.stringutils.to_unicode( + proc.stderr, encoding=output_encoding, errors="replace" + ) + if output_loglevel != "quiet": + log.error( + "Failed to decode stderr from command %s, non-decodable " + "characters have been replaced", + _log_cmd(cmd), + ) + + # Encoded commands dump CLIXML data in stderr. It's not an actual error + if encoded_cmd and "CLIXML" in err: + err = "" + if rstrip: + if out is not None: + out = out.rstrip() + if err is not None: + err = err.rstrip() + ret["pid"] = proc.process.pid + ret["retcode"] = proc.process.returncode + ret["stdout"] = out + ret["stderr"] = err - # Encoded commands dump CLIXML data in stderr. It's not an actual error - if encoded_cmd and "CLIXML" in err: - err = "" - if rstrip: - if out is not None: - out = out.rstrip() - if err is not None: - err = err.rstrip() - ret["pid"] = proc.process.pid - ret["retcode"] = proc.process.returncode if ret["retcode"] in success_retcodes: ret["retcode"] = 0 - ret["stdout"] = out - ret["stderr"] = err if any( [stdo in ret["stdout"] for stdo in success_stdout] + [stde in ret["stderr"] for stde in success_stderr] diff --git a/tests/pytests/functional/modules/cmd/test_run_win.py b/tests/pytests/functional/modules/cmd/test_run_win.py new file mode 100644 index 00000000000..cf41eb50280 --- /dev/null +++ b/tests/pytests/functional/modules/cmd/test_run_win.py @@ -0,0 +1,50 @@ +import pytest + +pytestmark = [ + pytest.mark.core_test, + pytest.mark.windows_whitelisted, +] + + +@pytest.fixture(scope="module") +def account(): + with pytest.helpers.create_account() as _account: + yield _account + + +@pytest.mark.skip_unless_on_windows(reason="Minion is not Windows") +@pytest.mark.parametrize( + "exit_code, return_code, result", + [ + (300, 0, True), + (299, 299, False), + ], +) +def test_windows_script_exitcode(modules, state_tree, exit_code, return_code, result): + ret = modules.state.single( + "cmd.run", name=f"cmd.exe /c exit {exit_code}", success_retcodes=[2, 44, 300] + ) + assert ret.result is result + assert ret.filtered["changes"]["retcode"] == return_code + + +@pytest.mark.skip_unless_on_windows(reason="Minion is not Windows") +@pytest.mark.parametrize( + "exit_code, return_code, result", + [ + (300, 0, True), + (299, 299, False), + ], +) +def test_windows_script_exitcode_runas( + modules, state_tree, exit_code, return_code, result, account +): + ret = modules.state.single( + "cmd.run", + name=f"cmd.exe /c exit {exit_code}", + success_retcodes=[2, 44, 300], + runas=account.username, + password=account.password, + ) + assert ret.result is result + assert ret.filtered["changes"]["retcode"] == return_code From f8596ba15c018e1d44d50233cbf23b324d4fecd7 Mon Sep 17 00:00:00 2001 From: twangboy Date: Thu, 6 Mar 2025 08:26:59 -0700 Subject: [PATCH 057/101] Whitelist the test for Windows --- tests/pytests/unit/modules/test_cmdmod.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/pytests/unit/modules/test_cmdmod.py b/tests/pytests/unit/modules/test_cmdmod.py index 10d154b98d2..e15528aa1c3 100644 --- a/tests/pytests/unit/modules/test_cmdmod.py +++ b/tests/pytests/unit/modules/test_cmdmod.py @@ -24,6 +24,11 @@ from salt.exceptions import CommandExecutionError from tests.support.mock import MagicMock, Mock, MockTimedProc, mock_open, patch from tests.support.runtests import RUNTIME_VARS +pytestmark = [ + pytest.mark.core_test, + pytest.mark.windows_whitelisted, +] + DEFAULT_SHELL = "foo/bar" MOCK_SHELL_FILE = "# List of acceptable shells\n\n/bin/bash\n" @@ -1134,7 +1139,7 @@ def test_prep_powershell_cmd_script(): "-ExecutionPolicy", "Bypass", "-Command", - f"& {script}", + f"& {script}; exit $LASTEXITCODE", ] assert ret == expected From bf001967488065e6e396767d77e8c82855e4eb4f Mon Sep 17 00:00:00 2001 From: twangboy Date: Thu, 6 Mar 2025 11:09:48 -0700 Subject: [PATCH 058/101] Only run powershell tests on Windows --- tests/pytests/unit/modules/test_cmdmod.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/pytests/unit/modules/test_cmdmod.py b/tests/pytests/unit/modules/test_cmdmod.py index e15528aa1c3..5501d8a0517 100644 --- a/tests/pytests/unit/modules/test_cmdmod.py +++ b/tests/pytests/unit/modules/test_cmdmod.py @@ -1057,6 +1057,7 @@ def test_runas_env_sudo_group(bundled): ) +@pytest.mark.skip_unless_on_windows def test_prep_powershell_cmd_no_powershell(): with pytest.raises(CommandExecutionError): cmdmod._prep_powershell_cmd( @@ -1072,6 +1073,7 @@ def test_prep_powershell_cmd_no_powershell(): ("try {this} catch {that}", "try {this} catch {that}"), ], ) +@pytest.mark.skip_unless_on_windows def test_prep_powershell_cmd(cmd, parsed): """ Tests _prep_powershell_cmd returns correct cmd @@ -1095,6 +1097,7 @@ def test_prep_powershell_cmd(cmd, parsed): assert ret == expected +@pytest.mark.skip_unless_on_windows def test_prep_powershell_cmd_encoded(): """ Tests _prep_powershell_cmd returns correct cmd when encoded_cmd=True @@ -1120,6 +1123,7 @@ def test_prep_powershell_cmd_encoded(): assert ret == expected +@pytest.mark.skip_unless_on_windows def test_prep_powershell_cmd_script(): """ Tests _prep_powershell_cmd returns correct cmd when called from cmd.script @@ -1153,6 +1157,7 @@ def test_prep_powershell_cmd_script(): ('{"foo": "bar"}', '{"foo": "bar"}'), # Should leave unchanged ], ) +@pytest.mark.skip_unless_on_windows def test_prep_powershell_json(text, expected): """ Make sure the output is valid json From 59ddf3cf88ab87dd45912f7073892c675a5447ce Mon Sep 17 00:00:00 2001 From: David Murphy Date: Wed, 26 Feb 2025 15:25:57 -0700 Subject: [PATCH 059/101] Backport of dnf5 support from 3007 to 3006 --- changelog/67057.fixed.md | 1 + salt/modules/yumpkg.py | 33 ++++++++++++++--------- tests/pytests/unit/modules/test_yumpkg.py | 12 +++++++-- 3 files changed, 31 insertions(+), 15 deletions(-) create mode 100644 changelog/67057.fixed.md diff --git a/changelog/67057.fixed.md b/changelog/67057.fixed.md new file mode 100644 index 00000000000..2f719be4cde --- /dev/null +++ b/changelog/67057.fixed.md @@ -0,0 +1 @@ +Added support for dnf5 (backport from 3007) and update to its new command syntax changes since 2023 diff --git a/salt/modules/yumpkg.py b/salt/modules/yumpkg.py index 469aef35a1c..21e08ec1d3b 100644 --- a/salt/modules/yumpkg.py +++ b/salt/modules/yumpkg.py @@ -14,7 +14,8 @@ Support for YUM/DNF .. versionadded:: 3003 Support for ``tdnf`` on Photon OS. - +.. versionadded:: 3006.10 + Support for ``dnf5``` on Fedora 41 """ import configparser @@ -114,12 +115,12 @@ def _get_hold(line, pattern=__HOLD_PATTERN, full=True): dnf ==> vim-enhanced-2:7.4.827-1.fc22.* """ if full: - if _yum() == "dnf": + if _yum() in ("dnf", "dnf5"): lock_re = rf"({pattern}-\S+)" else: lock_re = rf"(\d+:{pattern}-\S+)" else: - if _yum() == "dnf": + if _yum() in ("dnf", "dnf5"): lock_re = rf"({pattern}-\S+)" else: lock_re = rf"\d+:({pattern}-\S+)" @@ -137,7 +138,7 @@ def _get_hold(line, pattern=__HOLD_PATTERN, full=True): def _yum(): """ - Determine package manager name (yum or dnf), + Determine package manager name (yum or dnf[5]), depending on the executable existence in $PATH. """ @@ -160,7 +161,10 @@ def _yum(): contextkey = "yum_bin" if contextkey not in context: for dir in os.environ.get("PATH", os.defpath).split(os.pathsep): - if _check(os.path.join(dir, "dnf")): + if _check(os.path.join(dir, "dnf5")): + context[contextkey] = "dnf5" + break + elif _check(os.path.join(dir, "dnf")): context[contextkey] = "dnf" break elif _check(os.path.join(dir, "tdnf")): @@ -268,10 +272,11 @@ def _check_versionlock(): def _get_options(**kwargs): """ - Returns a list of options to be used in the yum/dnf command, based on the + Returns a list of options to be used in the yum/dnf[5] command, based on the kwargs passed. """ # Get repo options from the kwargs + # dnf5 aliases dnf options, so no need to change fromrepo = kwargs.pop("fromrepo", "") repo = kwargs.pop("repo", "") disablerepo = kwargs.pop("disablerepo", "") @@ -1031,7 +1036,7 @@ def list_upgrades(refresh=True, **kwargs): cmd = ["--quiet"] cmd.extend(options) - cmd.extend(["list", "upgrades" if _yum() == "dnf" else "updates"]) + cmd.extend(["list", "upgrades" if _yum() in ("dnf", "dnf5") else "updates"]) out = _call_yum(cmd, ignore_retcode=True) if out["retcode"] != 0 and "Error:" in out: return {} @@ -1747,6 +1752,8 @@ def install( cmd.extend(["--best", "--allowerasing"]) _add_common_args(cmd) cmd.append("install" if pkg_type != "advisory" else "update") + if _yum() == "dnf5": + cmd.extend(["--best", "--allowerasing"]) cmd.extend(targets) out = _call_yum(cmd, ignore_retcode=False, redirect_stderr=True) if out["retcode"] != 0: @@ -1980,7 +1987,7 @@ def upgrade( salt '*' pkg.upgrade security=True exclude='kernel*' """ - if _yum() == "dnf" and not obsoletes: + if _yum() in ("dnf", "dnf5") and not obsoletes: # for dnf we can just disable obsoletes _setopt = [ opt @@ -2018,7 +2025,7 @@ def upgrade( cmd.append("upgrade" if not minimal else "upgrade-minimal") else: # do not force the removal of obsolete packages - if _yum() == "dnf": + if _yum() in ("dnf", "dnf5"): cmd.append("upgrade" if not minimal else "upgrade-minimal") else: # for yum we have to use update instead of upgrade @@ -2073,7 +2080,7 @@ def remove(name=None, pkgs=None, **kwargs): # pylint: disable=W0613 On minions running systemd>=205, `systemd-run(1)`_ is now used to isolate commands which modify installed packages from the ``salt-minion`` daemon's control group. This is done to keep systemd - from killing any yum/dnf commands spawned by Salt when the + from killing any yum/dnf[5] commands spawned by Salt when the ``salt-minion`` service is restarted. (see ``KillMode`` in the `systemd.kill(5)`_ manpage for more information). If desired, usage of `systemd-run(1)`_ can be suppressed by setting a :mod:`config option @@ -2192,7 +2199,7 @@ def purge(name=None, pkgs=None, **kwargs): # pylint: disable=W0613 On minions running systemd>=205, `systemd-run(1)`_ is now used to isolate commands which modify installed packages from the ``salt-minion`` daemon's control group. This is done to keep systemd - from killing any yum/dnf commands spawned by Salt when the + from killing any yum/dnf[5] commands spawned by Salt when the ``salt-minion`` service is restarted. (see ``KillMode`` in the `systemd.kill(5)`_ manpage for more information). If desired, usage of `systemd-run(1)`_ can be suppressed by setting a :mod:`config option @@ -2374,7 +2381,7 @@ def unhold(name=None, pkgs=None, sources=None, **kwargs): # pylint: disable=W06 ret[target] = {"name": target, "changes": {}, "result": False, "comment": ""} - if _yum() == "dnf": + if _yum() in ("dnf", "dnf5"): search_locks = [x for x in current_locks if x == target] else: # To accommodate yum versionlock's lack of support for removing @@ -3069,7 +3076,7 @@ def mod_repo(repo, basedir=None, **kwargs): if use_copr: # Is copr plugin installed? copr_plugin_name = "" - if _yum() == "dnf": + if _yum() in ("dnf", "dnf5"): copr_plugin_name = "dnf-plugins-core" else: copr_plugin_name = "yum-plugin-copr" diff --git a/tests/pytests/unit/modules/test_yumpkg.py b/tests/pytests/unit/modules/test_yumpkg.py index ed5e77faeb4..179f3113d55 100644 --- a/tests/pytests/unit/modules/test_yumpkg.py +++ b/tests/pytests/unit/modules/test_yumpkg.py @@ -78,7 +78,7 @@ def list_repos_var(): @pytest.fixture( - ids=["yum", "dnf"], + ids=["yum", "dnf", "dnf5"], params=[ { "context": {"yum_bin": "yum"}, @@ -90,6 +90,11 @@ def list_repos_var(): "grains": {"os": "Fedora", "osrelease": 27}, "cmd": ["dnf", "-y", "--best", "--allowerasing"], }, + { + "context": {"yum_bin": "dnf5"}, + "grains": {"os": "Fedora", "osrelease": 39}, + "cmd": ["dnf5", "-y"], + }, ], ) def yum_and_dnf(request): @@ -3193,7 +3198,10 @@ def test_59705_version_as_accidental_float_should_become_text( new, full_pkg_string, yum_and_dnf ): name = "fnord" - expected_cmd = yum_and_dnf + ["install", full_pkg_string] + expected_cmd = yum_and_dnf + ["install"] + if expected_cmd[0] == "dnf5": + expected_cmd += ["--best", "--allowerasing"] + expected_cmd += [full_pkg_string] cmd_mock = MagicMock( return_value={"pid": 12345, "retcode": 0, "stdout": "", "stderr": ""} ) From 002d02a5e7de2c407058ad5b27f8841e5bb331fc Mon Sep 17 00:00:00 2001 From: David Murphy Date: Mon, 3 Mar 2025 13:21:10 -0700 Subject: [PATCH 060/101] Added support and tests for dnf5 to services_need_restart for yum packages --- changelog/67177.fixed.md | 1 + salt/modules/yumpkg.py | 11 ++++++++--- tests/pytests/unit/modules/test_yumpkg.py | 9 +++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 changelog/67177.fixed.md diff --git a/changelog/67177.fixed.md b/changelog/67177.fixed.md new file mode 100644 index 00000000000..e91c8faead8 --- /dev/null +++ b/changelog/67177.fixed.md @@ -0,0 +1 @@ +Added support and tests for dnf5 to services_need_restart for yum packages diff --git a/salt/modules/yumpkg.py b/salt/modules/yumpkg.py index 21e08ec1d3b..c45dc92d64e 100644 --- a/salt/modules/yumpkg.py +++ b/salt/modules/yumpkg.py @@ -3541,12 +3541,17 @@ def services_need_restart(**kwargs): salt '*' pkg.services_need_restart """ - if _yum() != "dnf": - raise CommandExecutionError("dnf is required to list outdated services.") + if _yum() in ("dnf", "dnf5"): + raise CommandExecutionError( + "dnf or dnf5 is required to list outdated services." + ) if not salt.utils.systemd.booted(__context__): raise CommandExecutionError("systemd is required to list outdated services.") - cmd = ["dnf", "--quiet", "needs-restarting"] + if _yum() == "dnf5": + cmd = ["dnf5", "--quiet", "needs-restarting"] + else: + cmd = ["dnf", "--quiet", "needs-restarting"] dnf_output = __salt__["cmd.run_stdout"](cmd, python_shell=False) if not dnf_output: return [] diff --git a/tests/pytests/unit/modules/test_yumpkg.py b/tests/pytests/unit/modules/test_yumpkg.py index 179f3113d55..0412c72e144 100644 --- a/tests/pytests/unit/modules/test_yumpkg.py +++ b/tests/pytests/unit/modules/test_yumpkg.py @@ -3163,6 +3163,15 @@ def test_services_need_restart_no_dnf_output(): assert yumpkg.services_need_restart() == [] +def test_services_need_restart_no_dnf5_output(): + patch_yum = patch("salt.modules.yumpkg._yum", Mock(return_value="dnf5")) + patch_booted = patch("salt.utils.systemd.booted", Mock(return_value=True)) + mock_run_stdout = MagicMock(return_value="") + patch_run_stdout = patch.dict(yumpkg.__salt__, {"cmd.run_stdout": mock_run_stdout}) + with patch_yum, patch_booted, patch_run_stdout: + assert yumpkg.services_need_restart() == [] + + def test_61003_pkg_should_not_fail_when_target_not_in_old_pkgs(): patch_list_pkgs = patch( "salt.modules.yumpkg.list_pkgs", return_value={}, autospec=True From b01ae2ce28bddbf6a3ca2c0081b18a0e78396081 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Mon, 3 Mar 2025 14:26:36 -0700 Subject: [PATCH 061/101] Correct typo --- salt/modules/yumpkg.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/salt/modules/yumpkg.py b/salt/modules/yumpkg.py index c45dc92d64e..25f50faa330 100644 --- a/salt/modules/yumpkg.py +++ b/salt/modules/yumpkg.py @@ -3541,7 +3541,7 @@ def services_need_restart(**kwargs): salt '*' pkg.services_need_restart """ - if _yum() in ("dnf", "dnf5"): + if _yum() not in ("dnf", "dnf5"): raise CommandExecutionError( "dnf or dnf5 is required to list outdated services." ) From e98ecbc0d6201dfabbaf83e970a6e17c92e58dd3 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Tue, 4 Mar 2025 09:53:29 -0700 Subject: [PATCH 062/101] Replace hardcoded yum path in /var/cache to allow for dnf[5] --- salt/modules/yumpkg.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/salt/modules/yumpkg.py b/salt/modules/yumpkg.py index 25f50faa330..e51e72bcfde 100644 --- a/salt/modules/yumpkg.py +++ b/salt/modules/yumpkg.py @@ -3340,12 +3340,12 @@ def download(*packages, **kwargs): .. versionadded:: 2015.5.0 Download packages to the local disk. Requires ``yumdownloader`` from - ``yum-utils`` package. + ``yum-utils`` or ``dnf-utils`` package. .. note:: - ``yum-utils`` will already be installed on the minion if the package - was installed from the Fedora / EPEL repositories. + ``yum-utils`` or ``dnf-utils`` will already be installed on the minion + if the package was installed from the EPEL / Fedora repositories. CLI Example: @@ -3360,7 +3360,10 @@ def download(*packages, **kwargs): if not packages: raise SaltInvocationError("No packages were specified") - CACHE_DIR = "/var/cache/yum/packages" + ## DGM CACHE_DIR = "/var/cache/yum/packages" + CACHE_DIR = os.path.join("/var/cache/", _yum(), "/packages") + print(f"DGM download CACHE_DIR, '{CACHE_DIR}'", flush=True) + if not os.path.exists(CACHE_DIR): os.makedirs(CACHE_DIR) cached_pkgs = os.listdir(CACHE_DIR) From cd04e6f2f9ced46255a82cc45612a8d02c540ae8 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Tue, 4 Mar 2025 11:54:27 -0700 Subject: [PATCH 063/101] Updated hardcoded /var/cache/yum to use appropriate cache value provided by platform, for example /var/cache/dnf --- salt/modules/yumpkg.py | 7 ++----- tests/pytests/unit/modules/test_yumpkg.py | 25 +++++++++++++++-------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/salt/modules/yumpkg.py b/salt/modules/yumpkg.py index e51e72bcfde..6326e10cd62 100644 --- a/salt/modules/yumpkg.py +++ b/salt/modules/yumpkg.py @@ -1060,7 +1060,7 @@ def list_downloaded(**kwargs): salt '*' pkg.list_downloaded """ - CACHE_DIR = os.path.join("/var/cache/", _yum()) + CACHE_DIR = os.path.join("/var/cache", _yum()) ret = {} for root, dirnames, filenames in salt.utils.path.os_walk(CACHE_DIR): @@ -3360,10 +3360,7 @@ def download(*packages, **kwargs): if not packages: raise SaltInvocationError("No packages were specified") - ## DGM CACHE_DIR = "/var/cache/yum/packages" - CACHE_DIR = os.path.join("/var/cache/", _yum(), "/packages") - print(f"DGM download CACHE_DIR, '{CACHE_DIR}'", flush=True) - + CACHE_DIR = os.path.join("/var/cache", _yum(), "packages") if not os.path.exists(CACHE_DIR): os.makedirs(CACHE_DIR) cached_pkgs = os.listdir(CACHE_DIR) diff --git a/tests/pytests/unit/modules/test_yumpkg.py b/tests/pytests/unit/modules/test_yumpkg.py index 0412c72e144..cb2b0e995d4 100644 --- a/tests/pytests/unit/modules/test_yumpkg.py +++ b/tests/pytests/unit/modules/test_yumpkg.py @@ -926,7 +926,7 @@ def test_list_downloaded(): mock_walk = MagicMock( return_value=[ ( - "/var/cache/yum", + os.path.join("/var/cache", yumpkg._yum()), [], ["pkg1-3.1-16.1.x86_64.rpm", "pkg2-1.2-13.2.x86_64.rpm"], ) @@ -955,7 +955,9 @@ def test_list_downloaded(): "3.1": { "creation_date_time": "2023-10-05T14:01:22", "creation_date_time_t": 1696536082, - "path": "/var/cache/yum/pkg1-3.1-16.1.x86_64.rpm", + "path": os.path.join( + "/var/cache", yumpkg._yum(), "pkg1-3.1-16.1.x86_64.rpm" + ), "size": 75701688, }, }, @@ -963,7 +965,9 @@ def test_list_downloaded(): "1.2": { "creation_date_time": "2023-10-05T14:01:22", "creation_date_time_t": 1696536082, - "path": "/var/cache/yum/pkg2-1.2-13.2.x86_64.rpm", + "path": os.path.join( + "/var/cache", yumpkg._yum(), "pkg2-1.2-13.2.x86_64.rpm" + ), "size": 75701688, }, }, @@ -1150,11 +1154,12 @@ def test_download(): patch_salt = patch.dict(yumpkg.__salt__, dict_salt) with patch_which, patch_exists, patch_makedirs, patch_listdir, patch_salt: result = yumpkg.download("spongebob") - cmd = ["yumdownloader", "-q", "--destdir=/var/cache/yum/packages", "spongebob"] + cache_dir = os.path.join("/var/cache", yumpkg._yum(), "packages") + cmd = ["yumdownloader", "-q", f"--destdir={cache_dir}", "spongebob"] mock_run.assert_called_once_with( cmd, output_loglevel="trace", python_shell=False ) - expected = {"spongebob": "/var/cache/yum/packages/spongebob-1.2.rpm"} + expected = {"spongebob": f"{cache_dir}/spongebob-1.2.rpm"} assert result == expected @@ -1171,10 +1176,11 @@ def test_download_failed(): patch_salt = patch.dict(yumpkg.__salt__, dict_salt) with patch_which, patch_exists, patch_listdir, patch_unlink, patch_salt: result = yumpkg.download("spongebob", "patrick") + cache_dir = os.path.join("/var/cache", yumpkg._yum(), "packages") cmd = [ "yumdownloader", "-q", - "--destdir=/var/cache/yum/packages", + f"--destdir={cache_dir}", "spongebob", "patrick", ] @@ -1183,7 +1189,7 @@ def test_download_failed(): ) expected = { "_error": "The following package(s) failed to download: patrick", - "spongebob": "/var/cache/yum/packages/spongebob-1.2.rpm", + "spongebob": f"{cache_dir}/spongebob-1.2.rpm", } assert result == expected @@ -1207,11 +1213,12 @@ def test_download_to_purge(): patch_salt = patch.dict(yumpkg.__salt__, dict_salt) with patch_which, patch_exists, patch_listdir, patch_unlink, patch_salt: result = yumpkg.download("spongebob") - cmd = ["yumdownloader", "-q", "--destdir=/var/cache/yum/packages", "spongebob"] + cache_dir = os.path.join("/var/cache", yumpkg._yum(), "packages") + cmd = ["yumdownloader", "-q", f"--destdir={cache_dir}", "spongebob"] mock_run.assert_called_once_with( cmd, output_loglevel="trace", python_shell=False ) - expected = {"spongebob": "/var/cache/yum/packages/spongebob-1.2.rpm"} + expected = {"spongebob": f"{cache_dir}/spongebob-1.2.rpm"} assert result == expected From 3a852d18f6eb5c3bf0d70881831f9cc603cc598a Mon Sep 17 00:00:00 2001 From: David Murphy Date: Tue, 4 Mar 2025 14:07:37 -0700 Subject: [PATCH 064/101] Restored dnf5 install --downloadonly option --- salt/modules/yumpkg.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/salt/modules/yumpkg.py b/salt/modules/yumpkg.py index 6326e10cd62..747503b57bb 100644 --- a/salt/modules/yumpkg.py +++ b/salt/modules/yumpkg.py @@ -241,7 +241,7 @@ def _versionlock_pkg(grains=None): """ if grains is None: grains = __grains__ - if _yum() == "dnf": + if _yum() in ("dnf", "dnf5"): if grains["os"].lower() == "fedora": return ( "python3-dnf-plugin-versionlock" @@ -1988,7 +1988,7 @@ def upgrade( salt '*' pkg.upgrade security=True exclude='kernel*' """ if _yum() in ("dnf", "dnf5") and not obsoletes: - # for dnf we can just disable obsoletes + # for dnf[5] we can just disable obsoletes _setopt = [ opt for opt in salt.utils.args.split_input(kwargs.pop("setopt", [])) From 17c1c7a0bb992c2f562a6d7aaa42e2b4d18a2fbf Mon Sep 17 00:00:00 2001 From: David Murphy Date: Tue, 4 Mar 2025 17:12:57 -0700 Subject: [PATCH 065/101] Corrected option --upgrades for dnf[5] for function list_upgrades --- salt/modules/yumpkg.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/salt/modules/yumpkg.py b/salt/modules/yumpkg.py index 747503b57bb..83f5af2ff9b 100644 --- a/salt/modules/yumpkg.py +++ b/salt/modules/yumpkg.py @@ -1036,7 +1036,7 @@ def list_upgrades(refresh=True, **kwargs): cmd = ["--quiet"] cmd.extend(options) - cmd.extend(["list", "upgrades" if _yum() in ("dnf", "dnf5") else "updates"]) + cmd.extend(["list", "--upgrades" if _yum() in ("dnf", "dnf5") else "updates"]) out = _call_yum(cmd, ignore_retcode=True) if out["retcode"] != 0 and "Error:" in out: return {} From 17b15c9fc23eb994e1857f846016d8f0407c939e Mon Sep 17 00:00:00 2001 From: David Murphy Date: Tue, 4 Mar 2025 17:14:53 -0700 Subject: [PATCH 066/101] Added changelog for 67743 --- changelog/67743.fixed.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog/67743.fixed.md diff --git a/changelog/67743.fixed.md b/changelog/67743.fixed.md new file mode 100644 index 00000000000..2e926595677 --- /dev/null +++ b/changelog/67743.fixed.md @@ -0,0 +1 @@ +Corrected option --upgrades for dnf[5] for function list_upgrades From 7d93923b1a3f356a81b1f9459a64a7e90458dbca Mon Sep 17 00:00:00 2001 From: David Murphy Date: Tue, 4 Mar 2025 17:20:18 -0700 Subject: [PATCH 067/101] corrected dnf5 option --downloadonly for dnf5 install --- changelog/67769.fixed.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog/67769.fixed.md diff --git a/changelog/67769.fixed.md b/changelog/67769.fixed.md new file mode 100644 index 00000000000..bd7da12a7f0 --- /dev/null +++ b/changelog/67769.fixed.md @@ -0,0 +1 @@ +Corrected dnf5 option --downloadonly for dnf5 install From a83582cab1a999ab2f3c1e835d0e8b584768f938 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Wed, 5 Mar 2025 09:42:00 -0700 Subject: [PATCH 068/101] Updated dnf list tests for option --upgrades --- tests/pytests/unit/modules/test_yumpkg.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/pytests/unit/modules/test_yumpkg.py b/tests/pytests/unit/modules/test_yumpkg.py index cb2b0e995d4..04fa56986eb 100644 --- a/tests/pytests/unit/modules/test_yumpkg.py +++ b/tests/pytests/unit/modules/test_yumpkg.py @@ -874,7 +874,7 @@ def test_list_upgrades_dnf(): "--enablerepo=good", "--branch=foo", "list", - "upgrades", + "--upgrades", ], env={}, output_loglevel="trace", @@ -899,7 +899,7 @@ def test_list_upgrades_dnf(): "--enablerepo=good", "--branch=foo", "list", - "upgrades", + "--upgrades", ], env={}, output_loglevel="trace", From 8c725027db2f7df9e3bdc19c9c411875e6510b61 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Wed, 5 Mar 2025 20:01:37 -0700 Subject: [PATCH 069/101] Consolidate onedir deps and onedir actions --- .github/actions/build-onedir-salt/action.yml | 37 ++++++++++++-------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/.github/actions/build-onedir-salt/action.yml b/.github/actions/build-onedir-salt/action.yml index 0e3888cada6..aba669ae64c 100644 --- a/.github/actions/build-onedir-salt/action.yml +++ b/.github/actions/build-onedir-salt/action.yml @@ -29,21 +29,30 @@ runs: steps: - - name: Download Cached Deps Onedir Package Directory - id: onedir-bare-cache - uses: ./.github/actions/cache + #- name: Download Cached Deps Onedir Package Directory + # id: onedir-bare-cache + # uses: ./.github/actions/cache + # with: + # path: artifacts/${{ inputs.package-name }} + # key: > + # ${{ inputs.cache-prefix }}|${{ inputs.python-version }}|deps|${{ inputs.platform }}|${{ inputs.arch }}|${{ inputs.package-name }}|${{ + # hashFiles( + # format('{0}/.relenv/**/*.xz', github.workspace), + # 'requirements/static/pkg/*/*.txt', + # '.github/actions/build-onedir-deps/action.yml', + # '.github/workflows/build-deps-onedir-*.yml', + # 'cicd/shared-gh-workflows-context.yml' + # ) + # }} + + - name: Install Salt Packaging Dependencies into Relenv Onedir + uses: ./.github/actions/build-onedir-deps + # if: steps.onedir-bare-cache.outputs.cache-hit != 'true' with: - path: artifacts/${{ inputs.package-name }} - key: > - ${{ inputs.cache-prefix }}|${{ inputs.python-version }}|deps|${{ inputs.platform }}|${{ inputs.arch }}|${{ inputs.package-name }}|${{ - hashFiles( - format('{0}/.relenv/**/*.xz', github.workspace), - 'requirements/static/pkg/*/*.txt', - '.github/actions/build-onedir-deps/action.yml', - '.github/workflows/build-deps-onedir-*.yml', - 'cicd/shared-gh-workflows-context.yml' - ) - }} + platform: ${{ inputs.platform }} + arch: ${{ inputs.arch }} + python-version: "${{ inputs.python-version }}" + cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ inputs.salt-version }} - name: Download Source Tarball uses: actions/download-artifact@v4 From 3f96a2cde3c789f619923cdd438116885b361b1c Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Thu, 6 Mar 2025 16:12:58 -0700 Subject: [PATCH 070/101] Add USE_S3_CACHE environment to linux and mac --- .github/workflows/build-salt-onedir.yml | 44 ++++++++++++------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/build-salt-onedir.yml b/.github/workflows/build-salt-onedir.yml index 5c3078b2c96..39c5578eb0b 100644 --- a/.github/workflows/build-salt-onedir.yml +++ b/.github/workflows/build-salt-onedir.yml @@ -108,7 +108,7 @@ jobs: - ${{ matrix.arch == 'arm64' && 'macos-14' || 'macos-13' }} env: PIP_INDEX_URL: https://pypi.org/simple - + USE_S3_CACHE: 'false' steps: - name: "Check cores" shell: bash @@ -125,16 +125,6 @@ jobs: with: python-version: "3.10" - - name: Setup Relenv - id: setup-relenv - uses: ./.github/actions/setup-relenv - with: - platform: macos - arch: ${{ matrix.arch }} - version: ${{ inputs.relenv-version }} - cache-seed: ${{ inputs.cache-seed }} - python-version: ${{ inputs.python-version }} - - name: Setup Python Tools Scripts uses: ./.github/actions/setup-python-tools-scripts with: @@ -146,6 +136,16 @@ jobs: with: salt-version: "${{ inputs.salt-version }}" + - name: Setup Relenv + id: setup-relenv + uses: ./.github/actions/setup-relenv + with: + platform: macos + arch: ${{ matrix.arch }} + version: ${{ inputs.relenv-version }} + cache-seed: ${{ inputs.cache-seed }} + python-version: ${{ inputs.python-version }} + - name: Install Salt into Relenv Onedir uses: ./.github/actions/build-onedir-salt with: @@ -166,7 +166,7 @@ jobs: runs-on: windows-latest env: PIP_INDEX_URL: https://pypi.org/simple - + USE_S3_CACHE: 'false' steps: - name: "Throttle Builds" @@ -181,16 +181,6 @@ jobs: with: python-version: "3.10" - - name: Setup Relenv - id: setup-relenv - uses: ./.github/actions/setup-relenv - with: - platform: windows - arch: ${{ matrix.arch }} - version: ${{ inputs.relenv-version }} - cache-seed: ${{ inputs.cache-seed }} - python-version: ${{ inputs.python-version }} - - name: Setup Python Tools Scripts uses: ./.github/actions/setup-python-tools-scripts with: @@ -202,6 +192,16 @@ jobs: with: salt-version: "${{ inputs.salt-version }}" + - name: Setup Relenv + id: setup-relenv + uses: ./.github/actions/setup-relenv + with: + platform: windows + arch: ${{ matrix.arch }} + version: ${{ inputs.relenv-version }} + cache-seed: ${{ inputs.cache-seed }} + python-version: ${{ inputs.python-version }} + - name: Install Salt into Relenv Onedir uses: ./.github/actions/build-onedir-salt with: From 48f824af65f9102cdb5fc4fca58edd642f6388ec Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Thu, 6 Mar 2025 16:33:44 -0700 Subject: [PATCH 071/101] Remove onedir deps step --- .github/workflows/ci.yml | 16 ---------------- .github/workflows/nightly.yml | 16 ---------------- .github/workflows/scheduled.yml | 16 ---------------- .github/workflows/staging.yml | 16 ---------------- .github/workflows/templates/ci.yml.jinja | 22 ---------------------- 5 files changed, 86 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0cedb6d86bc..cfb314edccc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -398,26 +398,11 @@ jobs: with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - build-deps-onedir: - name: Build Onedir Dependencies - if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-deps-onedir'] }} - needs: - - prepare-workflow - uses: ./.github/workflows/build-deps-onedir.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - relenv-version: "0.18.0" - python-version: "3.10.15" - matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} - linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} - build-salt-onedir: name: Build Salt Onedir if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-salt-onedir'] }} needs: - prepare-workflow - - build-deps-onedir - build-source-tarball uses: ./.github/workflows/build-salt-onedir.yml with: @@ -637,7 +622,6 @@ jobs: - lint - nsis-tests - build-docs - - build-deps-onedir - build-salt-onedir - combine-all-code-coverage - build-ci-deps diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 997c4aaab94..1591bca4a2a 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -452,26 +452,11 @@ jobs: with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - build-deps-onedir: - name: Build Onedir Dependencies - if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-deps-onedir'] }} - needs: - - prepare-workflow - uses: ./.github/workflows/build-deps-onedir.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - relenv-version: "0.18.0" - python-version: "3.10.15" - matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} - linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} - build-salt-onedir: name: Build Salt Onedir if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-salt-onedir'] }} needs: - prepare-workflow - - build-deps-onedir - build-source-tarball uses: ./.github/workflows/build-salt-onedir.yml with: @@ -589,7 +574,6 @@ jobs: - lint - nsis-tests - build-docs - - build-deps-onedir - build-salt-onedir - build-pkgs-src - build-ci-deps diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 5b22b3ea2e6..23c02da8c1a 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -437,26 +437,11 @@ jobs: with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - build-deps-onedir: - name: Build Onedir Dependencies - if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-deps-onedir'] }} - needs: - - prepare-workflow - uses: ./.github/workflows/build-deps-onedir.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - relenv-version: "0.18.0" - python-version: "3.10.15" - matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} - linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} - build-salt-onedir: name: Build Salt Onedir if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-salt-onedir'] }} needs: - prepare-workflow - - build-deps-onedir - build-source-tarball uses: ./.github/workflows/build-salt-onedir.yml with: @@ -549,7 +534,6 @@ jobs: - lint - nsis-tests - build-docs - - build-deps-onedir - build-salt-onedir - build-ci-deps - test-packages diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index d46beeaa954..ad817e24532 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -438,26 +438,11 @@ jobs: with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - build-deps-onedir: - name: Build Onedir Dependencies - if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-deps-onedir'] }} - needs: - - prepare-workflow - uses: ./.github/workflows/build-deps-onedir.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - relenv-version: "0.18.0" - python-version: "3.10.15" - matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} - linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} - build-salt-onedir: name: Build Salt Onedir if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['build-salt-onedir'] }} needs: - prepare-workflow - - build-deps-onedir - build-source-tarball uses: ./.github/workflows/build-salt-onedir.yml with: @@ -682,7 +667,6 @@ jobs: - lint - nsis-tests - build-docs - - build-deps-onedir - build-salt-onedir - build-pkgs-src - upload-release-artifacts diff --git a/.github/workflows/templates/ci.yml.jinja b/.github/workflows/templates/ci.yml.jinja index f252c5ba46b..4de01a3d073 100644 --- a/.github/workflows/templates/ci.yml.jinja +++ b/.github/workflows/templates/ci.yml.jinja @@ -233,27 +233,6 @@ <%- endif %> - - <%- set job_name = "build-deps-onedir" %> - <%- if includes.get(job_name, True) %> - - <{ job_name }>: - <%- do conclusion_needs.append(job_name) %> - name: Build Onedir Dependencies - if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} - needs: - - prepare-workflow - uses: ./.github/workflows/build-deps-onedir.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - relenv-version: "<{ relenv_version }>" - python-version: "<{ python_version }>" - matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} - linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} - - <%- endif %> - <%- set job_name = "build-salt-onedir" %> <%- if includes.get(job_name, True) %> @@ -263,7 +242,6 @@ if: ${{ !cancelled() && fromJSON(needs.prepare-workflow.outputs.config)['jobs']['<{ job_name }>'] }} needs: - prepare-workflow - - build-deps-onedir - build-source-tarball uses: ./.github/workflows/build-salt-onedir.yml with: From 9dcb3de8e870f2a89a3bf1c2fc9dfb094b72c959 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Thu, 6 Mar 2025 16:55:59 -0700 Subject: [PATCH 072/101] Clean up cruft --- .github/actions/build-onedir-salt/action.yml | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/.github/actions/build-onedir-salt/action.yml b/.github/actions/build-onedir-salt/action.yml index aba669ae64c..abac7a8d9e0 100644 --- a/.github/actions/build-onedir-salt/action.yml +++ b/.github/actions/build-onedir-salt/action.yml @@ -29,25 +29,8 @@ runs: steps: - #- name: Download Cached Deps Onedir Package Directory - # id: onedir-bare-cache - # uses: ./.github/actions/cache - # with: - # path: artifacts/${{ inputs.package-name }} - # key: > - # ${{ inputs.cache-prefix }}|${{ inputs.python-version }}|deps|${{ inputs.platform }}|${{ inputs.arch }}|${{ inputs.package-name }}|${{ - # hashFiles( - # format('{0}/.relenv/**/*.xz', github.workspace), - # 'requirements/static/pkg/*/*.txt', - # '.github/actions/build-onedir-deps/action.yml', - # '.github/workflows/build-deps-onedir-*.yml', - # 'cicd/shared-gh-workflows-context.yml' - # ) - # }} - - name: Install Salt Packaging Dependencies into Relenv Onedir uses: ./.github/actions/build-onedir-deps - # if: steps.onedir-bare-cache.outputs.cache-hit != 'true' with: platform: ${{ inputs.platform }} arch: ${{ inputs.arch }} From 65e40daf0078f84c3eaa858487972a0eb1ccd0fc Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Thu, 6 Mar 2025 16:57:15 -0700 Subject: [PATCH 073/101] Remove dead code --- .github/workflows/build-deps-onedir.yml | 192 ------------------------ 1 file changed, 192 deletions(-) delete mode 100644 .github/workflows/build-deps-onedir.yml diff --git a/.github/workflows/build-deps-onedir.yml b/.github/workflows/build-deps-onedir.yml deleted file mode 100644 index a5f4f4fc6f6..00000000000 --- a/.github/workflows/build-deps-onedir.yml +++ /dev/null @@ -1,192 +0,0 @@ ---- -name: Build Packaging Dependencies Onedir - -on: - workflow_call: - inputs: - salt-version: - type: string - required: true - description: The Salt version to set prior to building packages. - cache-seed: - required: true - type: string - description: Seed used to invalidate caches - relenv-version: - required: true - type: string - description: The version of relenv to use - python-version: - required: true - type: string - description: The version of python to use with relenv - matrix: - required: true - type: string - description: Json job matrix config - linux_arm_runner: - required: true - type: string - description: Json job matrix config - -env: - RELENV_DATA: "${{ github.workspace }}/.relenv" - COLUMNS: 190 - AWS_MAX_ATTEMPTS: "10" - AWS_RETRY_MODE: "adaptive" - PIP_INDEX_URL: ${{ vars.PIP_INDEX_URL }} - PIP_TRUSTED_HOST: ${{ vars.PIP_TRUSTED_HOST }} - PIP_EXTRA_INDEX_URL: ${{ vars.PIP_EXTRA_INDEX_URL }} - PIP_DISABLE_PIP_VERSION_CHECK: "1" - -jobs: - - build-deps-linux: - name: Linux - if: ${{ toJSON(fromJSON(inputs.matrix)['linux']) != '[]' }} - runs-on: - - ${{ matrix.arch == 'x86_64' && 'ubuntu-24.04' || inputs.linux_arm_runner }} - strategy: - fail-fast: false - matrix: - include: ${{ fromJSON(inputs.matrix)['linux'] }} - env: - USE_S3_CACHE: 'false' - steps: - - - name: "Throttle Builds" - shell: bash - run: | - t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" - - - uses: actions/checkout@v4 - - - uses: actions/setup-python@v5 - with: - python-version: '3.10' - - - name: Setup Python Tools Scripts - uses: ./.github/actions/setup-python-tools-scripts - with: - cache-prefix: ${{ inputs.cache-seed }}|build-deps|linux|${{ matrix.arch }} - - - name: Setup Relenv - id: setup-relenv - uses: ./.github/actions/setup-relenv - with: - platform: linux - arch: ${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }} - version: ${{ inputs.relenv-version }} - cache-seed: ${{ inputs.cache-seed }} - python-version: ${{ inputs.python-version }} - - - name: Install Salt Packaging Dependencies into Relenv Onedir - uses: ./.github/actions/build-onedir-deps - with: - platform: linux - arch: ${{ matrix.arch }} - python-version: "${{ inputs.python-version }}" - cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ steps.setup-relenv.outputs.version }} - - build-deps-macos: - name: macOS - if: ${{ toJSON(fromJSON(inputs.matrix)['macos']) != '[]' }} - strategy: - fail-fast: false - max-parallel: 2 - matrix: - include: ${{ fromJSON(inputs.matrix)['macos'] }} - runs-on: - - ${{ matrix.arch == 'arm64' && 'macos-14' || 'macos-13' }} - env: - USE_S3_CACHE: 'false' - PIP_INDEX_URL: https://pypi.org/simple - steps: - - - name: "Check cores" - shell: bash - run: sysctl -n hw.ncpu - - - name: "Throttle Builds" - shell: bash - run: | - t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" - - - uses: actions/checkout@v4 - - - name: Set up Python 3.10 - uses: actions/setup-python@v5 - with: - python-version: "3.10" - - - name: Setup Python Tools Scripts - uses: ./.github/actions/setup-python-tools-scripts - with: - cache-prefix: ${{ inputs.cache-seed }}|build-deps|macos - - - name: Setup Relenv - id: setup-relenv - uses: ./.github/actions/setup-relenv - with: - platform: macos - arch: ${{ matrix.arch }} - version: ${{ inputs.relenv-version }} - cache-seed: ${{ inputs.cache-seed }} - python-version: ${{ inputs.python-version }} - - - name: Install Salt Packaging Dependencies into Relenv Onedir - uses: ./.github/actions/build-onedir-deps - with: - platform: macos - arch: ${{ matrix.arch }} - python-version: "${{ inputs.python-version }}" - cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ steps.setup-relenv.outputs.version }} - - build-deps-windows: - name: Windows - if: ${{ toJSON(fromJSON(inputs.matrix)['windows']) != '[]' }} - strategy: - fail-fast: false - max-parallel: 2 - matrix: - include: ${{ fromJSON(inputs.matrix)['windows'] }} - runs-on: windows-latest - env: - USE_S3_CACHE: 'false' - PIP_INDEX_URL: https://pypi.org/simple - steps: - - - name: "Throttle Builds" - shell: bash - run: | - t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" - - - uses: actions/checkout@v4 - - - name: Set up Python 3.10 - uses: actions/setup-python@v5 - with: - python-version: "3.10" - - - name: Setup Python Tools Scripts - uses: ./.github/actions/setup-python-tools-scripts - with: - cache-prefix: ${{ inputs.cache-seed }}|build-deps|windows|${{ matrix.arch }} - - - name: Setup Relenv - id: setup-relenv - uses: ./.github/actions/setup-relenv - with: - platform: windows - arch: ${{ matrix.arch }} - version: ${{ inputs.relenv-version }} - cache-seed: ${{ inputs.cache-seed }} - python-version: ${{ inputs.python-version }} - - - name: Install Salt Packaging Dependencies into Relenv Onedir - uses: ./.github/actions/build-onedir-deps - with: - platform: windows - arch: ${{ matrix.arch }} - python-version: "${{ inputs.python-version }}" - cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ steps.setup-relenv.outputs.version }} From bf0c1331d59ee1d43ce78d647b458967f9689a19 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Wed, 5 Mar 2025 19:08:11 -0700 Subject: [PATCH 074/101] Update requirements to account for cves Name Version ID Fix Versions ------------ ------- ------------------- ------------- jinja2 3.1.4 GHSA-q2x7-8rv6-6q7h 3.1.5 jinja2 3.1.4 GHSA-gmj6-6f8f-6699 3.1.5 urllib3 1.26.18 GHSA-34jh-p97f-mpxf 1.26.19,2.2.2 --- requirements/base.txt | 3 ++- requirements/darwin.txt | 1 - requirements/static/ci/py3.10/changelog.txt | 2 +- requirements/static/ci/py3.10/cloud.txt | 3 ++- requirements/static/ci/py3.10/darwin.txt | 4 ++-- requirements/static/ci/py3.10/docs.txt | 3 ++- requirements/static/ci/py3.10/freebsd.txt | 3 ++- requirements/static/ci/py3.10/lint.txt | 3 ++- requirements/static/ci/py3.10/linux.txt | 3 ++- requirements/static/ci/py3.10/windows.txt | 4 ++-- requirements/static/ci/py3.11/changelog.txt | 2 +- requirements/static/ci/py3.11/cloud.txt | 3 ++- requirements/static/ci/py3.11/darwin.txt | 4 ++-- requirements/static/ci/py3.11/docs.txt | 3 ++- requirements/static/ci/py3.11/freebsd.txt | 3 ++- requirements/static/ci/py3.11/lint.txt | 3 ++- requirements/static/ci/py3.11/linux.txt | 3 ++- requirements/static/ci/py3.11/windows.txt | 4 ++-- requirements/static/ci/py3.12/changelog.txt | 2 +- requirements/static/ci/py3.12/cloud.txt | 3 ++- requirements/static/ci/py3.12/darwin.txt | 4 ++-- requirements/static/ci/py3.12/docs.txt | 3 ++- requirements/static/ci/py3.12/freebsd.txt | 3 ++- requirements/static/ci/py3.12/lint.txt | 3 ++- requirements/static/ci/py3.12/linux.txt | 3 ++- requirements/static/ci/py3.12/windows.txt | 4 ++-- requirements/static/ci/py3.9/changelog.txt | 2 +- requirements/static/ci/py3.9/cloud.txt | 3 ++- requirements/static/ci/py3.9/darwin.txt | 4 ++-- requirements/static/ci/py3.9/docs.txt | 3 ++- requirements/static/ci/py3.9/freebsd.txt | 3 ++- requirements/static/ci/py3.9/lint.txt | 3 ++- requirements/static/ci/py3.9/linux.txt | 3 ++- requirements/static/ci/py3.9/windows.txt | 4 ++-- requirements/static/pkg/py3.10/darwin.txt | 7 ++++--- requirements/static/pkg/py3.10/freebsd.txt | 6 ++++-- requirements/static/pkg/py3.10/linux.txt | 6 ++++-- requirements/static/pkg/py3.10/windows.txt | 4 ++-- requirements/static/pkg/py3.11/darwin.txt | 7 ++++--- requirements/static/pkg/py3.11/freebsd.txt | 6 ++++-- requirements/static/pkg/py3.11/linux.txt | 6 ++++-- requirements/static/pkg/py3.11/windows.txt | 4 ++-- requirements/static/pkg/py3.12/darwin.txt | 7 ++++--- requirements/static/pkg/py3.12/freebsd.txt | 6 ++++-- requirements/static/pkg/py3.12/linux.txt | 6 ++++-- requirements/static/pkg/py3.12/windows.txt | 4 ++-- requirements/static/pkg/py3.9/darwin.txt | 7 ++++--- requirements/static/pkg/py3.9/freebsd.txt | 6 ++++-- requirements/static/pkg/py3.9/linux.txt | 6 ++++-- requirements/static/pkg/py3.9/windows.txt | 4 ++-- requirements/windows.txt | 1 - 51 files changed, 118 insertions(+), 79 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 91e74a2ba8d..bd8c8f5464d 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,6 +1,6 @@ --constraint=constraints.txt -Jinja2 +Jinja2>=3.1.5 jmespath msgpack>=1.0.0 PyYAML @@ -18,3 +18,4 @@ croniter>=0.3.0,!=0.3.22; sys_platform != 'win32' # We need contextvars for salt-ssh contextvars cryptography>=42.0.0 +urllib3>=1.26.18 diff --git a/requirements/darwin.txt b/requirements/darwin.txt index fc689ebb13b..859629c1bba 100644 --- a/requirements/darwin.txt +++ b/requirements/darwin.txt @@ -4,7 +4,6 @@ apache-libcloud>=2.4.0 cherrypy>=17.4.1 -cryptography>=41.0.3 gitpython>=3.1.37 idna>=2.8 linode-python>=1.1.1 diff --git a/requirements/static/ci/py3.10/changelog.txt b/requirements/static/ci/py3.10/changelog.txt index 224f482fa4c..69cb4cf7196 100644 --- a/requirements/static/ci/py3.10/changelog.txt +++ b/requirements/static/ci/py3.10/changelog.txt @@ -13,7 +13,7 @@ click==7.1.1 # towncrier incremental==17.5.0 # via towncrier -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/py3.10/linux.txt # towncrier diff --git a/requirements/static/ci/py3.10/cloud.txt b/requirements/static/ci/py3.10/cloud.txt index d40e35e3fea..9dda3411d06 100644 --- a/requirements/static/ci/py3.10/cloud.txt +++ b/requirements/static/ci/py3.10/cloud.txt @@ -250,7 +250,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.10/linux.txt # -c requirements/static/ci/py3.10/linux.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.10/linux.txt # -c requirements/static/ci/py3.10/linux.txt @@ -695,6 +695,7 @@ urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.10/linux.txt # -c requirements/static/ci/py3.10/linux.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.10/darwin.txt b/requirements/static/ci/py3.10/darwin.txt index 4a24aabb2a4..cd3db9f8bd5 100644 --- a/requirements/static/ci/py3.10/darwin.txt +++ b/requirements/static/ci/py3.10/darwin.txt @@ -94,7 +94,6 @@ cryptography==42.0.5 # via # -c requirements/static/ci/../pkg/py3.10/darwin.txt # -r requirements/base.txt - # -r requirements/darwin.txt # etcd3-py # moto # paramiko @@ -183,7 +182,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.10/darwin.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.10/darwin.txt # -r requirements/base.txt @@ -481,6 +480,7 @@ typing-extensions==4.2.0 urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.10/darwin.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.10/docs.txt b/requirements/static/ci/py3.10/docs.txt index 26970270a34..7c5058fd473 100644 --- a/requirements/static/ci/py3.10/docs.txt +++ b/requirements/static/ci/py3.10/docs.txt @@ -75,7 +75,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/py3.10/linux.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/py3.10/linux.txt # -r requirements/base.txt @@ -209,6 +209,7 @@ uc-micro-py==1.0.1 urllib3==1.26.18 # via # -c requirements/static/ci/py3.10/linux.txt + # -r requirements/base.txt # requests zc.lockfile==1.4 # via diff --git a/requirements/static/ci/py3.10/freebsd.txt b/requirements/static/ci/py3.10/freebsd.txt index 1a8587f2655..8b5a9980885 100644 --- a/requirements/static/ci/py3.10/freebsd.txt +++ b/requirements/static/ci/py3.10/freebsd.txt @@ -175,7 +175,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.10/freebsd.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.10/freebsd.txt # -r requirements/base.txt @@ -473,6 +473,7 @@ typing-extensions==4.8.0 urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.10/freebsd.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.10/lint.txt b/requirements/static/ci/py3.10/lint.txt index 041231763c9..ea4141917af 100644 --- a/requirements/static/ci/py3.10/lint.txt +++ b/requirements/static/ci/py3.10/lint.txt @@ -253,7 +253,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.10/linux.txt # -c requirements/static/ci/py3.10/linux.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.10/linux.txt # -c requirements/static/ci/py3.10/linux.txt @@ -682,6 +682,7 @@ urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.10/linux.txt # -c requirements/static/ci/py3.10/linux.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.10/linux.txt b/requirements/static/ci/py3.10/linux.txt index 8a573d009a4..0eccabbd225 100644 --- a/requirements/static/ci/py3.10/linux.txt +++ b/requirements/static/ci/py3.10/linux.txt @@ -184,7 +184,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.10/linux.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.10/linux.txt # -r requirements/base.txt @@ -522,6 +522,7 @@ tzlocal==3.0 urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.10/linux.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.10/windows.txt b/requirements/static/ci/py3.10/windows.txt index 3c271b0cd41..5891bb1ab4c 100644 --- a/requirements/static/ci/py3.10/windows.txt +++ b/requirements/static/ci/py3.10/windows.txt @@ -83,7 +83,6 @@ cryptography==42.0.5 # via # -c requirements/static/ci/../pkg/py3.10/windows.txt # -r requirements/base.txt - # -r requirements/windows.txt # etcd3-py # moto # pyopenssl @@ -174,7 +173,7 @@ jaraco.text==3.5.0 # via # -c requirements/static/ci/../pkg/py3.10/windows.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.10/windows.txt # -r requirements/base.txt @@ -456,6 +455,7 @@ typing-extensions==4.4.0 urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.10/windows.txt + # -r requirements/base.txt # -r requirements/windows.txt # botocore # docker diff --git a/requirements/static/ci/py3.11/changelog.txt b/requirements/static/ci/py3.11/changelog.txt index 2d5abe0e89a..21561502bcf 100644 --- a/requirements/static/ci/py3.11/changelog.txt +++ b/requirements/static/ci/py3.11/changelog.txt @@ -13,7 +13,7 @@ click==7.1.1 # towncrier incremental==17.5.0 # via towncrier -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/py3.11/linux.txt # towncrier diff --git a/requirements/static/ci/py3.11/cloud.txt b/requirements/static/ci/py3.11/cloud.txt index 460da41efc8..0d309c3ede4 100644 --- a/requirements/static/ci/py3.11/cloud.txt +++ b/requirements/static/ci/py3.11/cloud.txt @@ -242,7 +242,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.11/linux.txt # -c requirements/static/ci/py3.11/linux.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.11/linux.txt # -c requirements/static/ci/py3.11/linux.txt @@ -642,6 +642,7 @@ urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.11/linux.txt # -c requirements/static/ci/py3.11/linux.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.11/darwin.txt b/requirements/static/ci/py3.11/darwin.txt index 376053f2348..1d91f87b608 100644 --- a/requirements/static/ci/py3.11/darwin.txt +++ b/requirements/static/ci/py3.11/darwin.txt @@ -90,7 +90,6 @@ cryptography==42.0.5 # via # -c requirements/static/ci/../pkg/py3.11/darwin.txt # -r requirements/base.txt - # -r requirements/darwin.txt # etcd3-py # moto # pyopenssl @@ -176,7 +175,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.11/darwin.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.11/darwin.txt # -r requirements/base.txt @@ -442,6 +441,7 @@ typing-extensions==4.2.0 urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.11/darwin.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.11/docs.txt b/requirements/static/ci/py3.11/docs.txt index 4d78150e436..539a6049829 100644 --- a/requirements/static/ci/py3.11/docs.txt +++ b/requirements/static/ci/py3.11/docs.txt @@ -75,7 +75,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/py3.11/linux.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/py3.11/linux.txt # -r requirements/base.txt @@ -209,6 +209,7 @@ uc-micro-py==1.0.1 urllib3==1.26.18 # via # -c requirements/static/ci/py3.11/linux.txt + # -r requirements/base.txt # requests zc.lockfile==1.4 # via diff --git a/requirements/static/ci/py3.11/freebsd.txt b/requirements/static/ci/py3.11/freebsd.txt index f2822d4a2ad..6fb9c480ba4 100644 --- a/requirements/static/ci/py3.11/freebsd.txt +++ b/requirements/static/ci/py3.11/freebsd.txt @@ -171,7 +171,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.11/freebsd.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.11/freebsd.txt # -r requirements/base.txt @@ -439,6 +439,7 @@ typing-extensions==4.8.0 urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.11/freebsd.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.11/lint.txt b/requirements/static/ci/py3.11/lint.txt index 525ba97b080..55d27d2670d 100644 --- a/requirements/static/ci/py3.11/lint.txt +++ b/requirements/static/ci/py3.11/lint.txt @@ -249,7 +249,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.11/linux.txt # -c requirements/static/ci/py3.11/linux.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.11/linux.txt # -c requirements/static/ci/py3.11/linux.txt @@ -628,6 +628,7 @@ urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.11/linux.txt # -c requirements/static/ci/py3.11/linux.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.11/linux.txt b/requirements/static/ci/py3.11/linux.txt index 9887856537c..092ee3acc17 100644 --- a/requirements/static/ci/py3.11/linux.txt +++ b/requirements/static/ci/py3.11/linux.txt @@ -180,7 +180,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.11/linux.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.11/linux.txt # -r requirements/base.txt @@ -488,6 +488,7 @@ tzlocal==3.0 urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.11/linux.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.11/windows.txt b/requirements/static/ci/py3.11/windows.txt index 9fee82fa466..b4d59cc72be 100644 --- a/requirements/static/ci/py3.11/windows.txt +++ b/requirements/static/ci/py3.11/windows.txt @@ -81,7 +81,6 @@ cryptography==42.0.5 # via # -c requirements/static/ci/../pkg/py3.11/windows.txt # -r requirements/base.txt - # -r requirements/windows.txt # etcd3-py # moto # pyopenssl @@ -170,7 +169,7 @@ jaraco.text==3.5.0 # via # -c requirements/static/ci/../pkg/py3.11/windows.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.11/windows.txt # -r requirements/base.txt @@ -450,6 +449,7 @@ typing-extensions==4.4.0 urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.11/windows.txt + # -r requirements/base.txt # -r requirements/windows.txt # botocore # docker diff --git a/requirements/static/ci/py3.12/changelog.txt b/requirements/static/ci/py3.12/changelog.txt index f162bb76ad0..bc7cbf3cc3e 100644 --- a/requirements/static/ci/py3.12/changelog.txt +++ b/requirements/static/ci/py3.12/changelog.txt @@ -13,7 +13,7 @@ click==7.1.1 # towncrier incremental==17.5.0 # via towncrier -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/py3.12/linux.txt # towncrier diff --git a/requirements/static/ci/py3.12/cloud.txt b/requirements/static/ci/py3.12/cloud.txt index efbaf7aca33..4407bb19f7a 100644 --- a/requirements/static/ci/py3.12/cloud.txt +++ b/requirements/static/ci/py3.12/cloud.txt @@ -242,7 +242,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.12/linux.txt # -c requirements/static/ci/py3.12/linux.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.12/linux.txt # -c requirements/static/ci/py3.12/linux.txt @@ -642,6 +642,7 @@ urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.12/linux.txt # -c requirements/static/ci/py3.12/linux.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.12/darwin.txt b/requirements/static/ci/py3.12/darwin.txt index b3f19156670..463dc957d2b 100644 --- a/requirements/static/ci/py3.12/darwin.txt +++ b/requirements/static/ci/py3.12/darwin.txt @@ -90,7 +90,6 @@ cryptography==42.0.5 # via # -c requirements/static/ci/../pkg/py3.12/darwin.txt # -r requirements/base.txt - # -r requirements/darwin.txt # etcd3-py # moto # pyopenssl @@ -176,7 +175,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.12/darwin.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.12/darwin.txt # -r requirements/base.txt @@ -442,6 +441,7 @@ typing-extensions==4.2.0 urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.12/darwin.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.12/docs.txt b/requirements/static/ci/py3.12/docs.txt index 3c536f15de8..b0e281a09ab 100644 --- a/requirements/static/ci/py3.12/docs.txt +++ b/requirements/static/ci/py3.12/docs.txt @@ -75,7 +75,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/py3.12/linux.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/py3.12/linux.txt # -r requirements/base.txt @@ -209,6 +209,7 @@ uc-micro-py==1.0.1 urllib3==1.26.18 # via # -c requirements/static/ci/py3.12/linux.txt + # -r requirements/base.txt # requests zc.lockfile==1.4 # via diff --git a/requirements/static/ci/py3.12/freebsd.txt b/requirements/static/ci/py3.12/freebsd.txt index 74142860bb0..98d3d929eea 100644 --- a/requirements/static/ci/py3.12/freebsd.txt +++ b/requirements/static/ci/py3.12/freebsd.txt @@ -171,7 +171,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.12/freebsd.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.12/freebsd.txt # -r requirements/base.txt @@ -439,6 +439,7 @@ typing-extensions==4.8.0 urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.12/freebsd.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.12/lint.txt b/requirements/static/ci/py3.12/lint.txt index b796d01ed4c..ecec8972f07 100644 --- a/requirements/static/ci/py3.12/lint.txt +++ b/requirements/static/ci/py3.12/lint.txt @@ -249,7 +249,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.12/linux.txt # -c requirements/static/ci/py3.12/linux.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.12/linux.txt # -c requirements/static/ci/py3.12/linux.txt @@ -628,6 +628,7 @@ urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.12/linux.txt # -c requirements/static/ci/py3.12/linux.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.12/linux.txt b/requirements/static/ci/py3.12/linux.txt index c21d0cac0dd..f2074d7b47a 100644 --- a/requirements/static/ci/py3.12/linux.txt +++ b/requirements/static/ci/py3.12/linux.txt @@ -180,7 +180,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.12/linux.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.12/linux.txt # -r requirements/base.txt @@ -488,6 +488,7 @@ tzlocal==3.0 urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.12/linux.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.12/windows.txt b/requirements/static/ci/py3.12/windows.txt index 5affc00a7f0..fee287f71b7 100644 --- a/requirements/static/ci/py3.12/windows.txt +++ b/requirements/static/ci/py3.12/windows.txt @@ -81,7 +81,6 @@ cryptography==42.0.5 # via # -c requirements/static/ci/../pkg/py3.12/windows.txt # -r requirements/base.txt - # -r requirements/windows.txt # etcd3-py # moto # pyopenssl @@ -170,7 +169,7 @@ jaraco.text==3.5.0 # via # -c requirements/static/ci/../pkg/py3.12/windows.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.12/windows.txt # -r requirements/base.txt @@ -450,6 +449,7 @@ typing-extensions==4.4.0 urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.12/windows.txt + # -r requirements/base.txt # -r requirements/windows.txt # botocore # docker diff --git a/requirements/static/ci/py3.9/changelog.txt b/requirements/static/ci/py3.9/changelog.txt index 3d917941d49..260b3173824 100644 --- a/requirements/static/ci/py3.9/changelog.txt +++ b/requirements/static/ci/py3.9/changelog.txt @@ -13,7 +13,7 @@ click==7.1.1 # towncrier incremental==17.5.0 # via towncrier -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/py3.9/linux.txt # towncrier diff --git a/requirements/static/ci/py3.9/cloud.txt b/requirements/static/ci/py3.9/cloud.txt index b24fdf78b10..586ed66b569 100644 --- a/requirements/static/ci/py3.9/cloud.txt +++ b/requirements/static/ci/py3.9/cloud.txt @@ -261,7 +261,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.9/linux.txt # -c requirements/static/ci/py3.9/linux.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # -c requirements/static/ci/py3.9/linux.txt @@ -743,6 +743,7 @@ urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.9/darwin.txt b/requirements/static/ci/py3.9/darwin.txt index 66bddbb9630..1f21c145d63 100644 --- a/requirements/static/ci/py3.9/darwin.txt +++ b/requirements/static/ci/py3.9/darwin.txt @@ -99,7 +99,6 @@ cryptography==42.0.5 # via # -c requirements/static/ci/../pkg/py3.9/darwin.txt # -r requirements/base.txt - # -r requirements/darwin.txt # etcd3-py # moto # paramiko @@ -191,7 +190,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.9/darwin.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.9/darwin.txt # -r requirements/base.txt @@ -523,6 +522,7 @@ typing-extensions==4.2.0 urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.9/darwin.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.9/docs.txt b/requirements/static/ci/py3.9/docs.txt index 9b9f3136276..272755bb2a4 100644 --- a/requirements/static/ci/py3.9/docs.txt +++ b/requirements/static/ci/py3.9/docs.txt @@ -79,7 +79,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/py3.9/linux.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/py3.9/linux.txt # -r requirements/base.txt @@ -213,6 +213,7 @@ uc-micro-py==1.0.1 urllib3==1.26.18 # via # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt # requests zc.lockfile==1.4 # via diff --git a/requirements/static/ci/py3.9/freebsd.txt b/requirements/static/ci/py3.9/freebsd.txt index c7a81642b26..fadd48618e0 100644 --- a/requirements/static/ci/py3.9/freebsd.txt +++ b/requirements/static/ci/py3.9/freebsd.txt @@ -183,7 +183,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.9/freebsd.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.9/freebsd.txt # -r requirements/base.txt @@ -515,6 +515,7 @@ typing-extensions==4.8.0 urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.9/freebsd.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.9/lint.txt b/requirements/static/ci/py3.9/lint.txt index d23f65943db..7ca90596b31 100644 --- a/requirements/static/ci/py3.9/lint.txt +++ b/requirements/static/ci/py3.9/lint.txt @@ -255,7 +255,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.9/linux.txt # -c requirements/static/ci/py3.9/linux.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # -c requirements/static/ci/py3.9/linux.txt @@ -714,6 +714,7 @@ urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # -c requirements/static/ci/py3.9/linux.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.9/linux.txt b/requirements/static/ci/py3.9/linux.txt index fd5f770ef99..259a3d8bfdc 100644 --- a/requirements/static/ci/py3.9/linux.txt +++ b/requirements/static/ci/py3.9/linux.txt @@ -187,7 +187,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # -r requirements/base.txt @@ -554,6 +554,7 @@ tzlocal==3.0 urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -r requirements/base.txt # botocore # docker # kubernetes diff --git a/requirements/static/ci/py3.9/windows.txt b/requirements/static/ci/py3.9/windows.txt index 5c9bd25c8ef..80eb025639a 100644 --- a/requirements/static/ci/py3.9/windows.txt +++ b/requirements/static/ci/py3.9/windows.txt @@ -85,7 +85,6 @@ cryptography==42.0.5 # via # -c requirements/static/ci/../pkg/py3.9/windows.txt # -r requirements/base.txt - # -r requirements/windows.txt # etcd3-py # moto # pyopenssl @@ -176,7 +175,7 @@ jaraco.text==3.5.0 # via # -c requirements/static/ci/../pkg/py3.9/windows.txt # jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via # -c requirements/static/ci/../pkg/py3.9/windows.txt # -r requirements/base.txt @@ -462,6 +461,7 @@ typing-extensions==4.2.0 urllib3==1.26.18 # via # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/base.txt # -r requirements/windows.txt # botocore # docker diff --git a/requirements/static/pkg/py3.10/darwin.txt b/requirements/static/pkg/py3.10/darwin.txt index ccb85c35ee2..32d7f537f8f 100644 --- a/requirements/static/pkg/py3.10/darwin.txt +++ b/requirements/static/pkg/py3.10/darwin.txt @@ -25,7 +25,6 @@ croniter==2.0.5 ; sys_platform != "win32" cryptography==42.0.5 # via # -r requirements/base.txt - # -r requirements/darwin.txt # pyopenssl distro==1.5.0 # via -r requirements/base.txt @@ -52,7 +51,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt @@ -120,7 +119,9 @@ tempora==4.1.1 timelib==0.2.5 # via -r requirements/darwin.txt urllib3==1.26.18 - # via requests + # via + # -r requirements/base.txt + # requests vultr==1.0.1 # via -r requirements/darwin.txt zc.lockfile==2.0 diff --git a/requirements/static/pkg/py3.10/freebsd.txt b/requirements/static/pkg/py3.10/freebsd.txt index 332e944ecf5..20247ba05a5 100644 --- a/requirements/static/pkg/py3.10/freebsd.txt +++ b/requirements/static/pkg/py3.10/freebsd.txt @@ -46,7 +46,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt @@ -106,7 +106,9 @@ tempora==4.1.1 timelib==0.2.5 # via -r requirements/static/pkg/freebsd.in urllib3==1.26.18 - # via requests + # via + # -r requirements/base.txt + # requests zc.lockfile==1.4 # via cherrypy zipp==3.12.0 diff --git a/requirements/static/pkg/py3.10/linux.txt b/requirements/static/pkg/py3.10/linux.txt index 4708e14af5d..a13c3547ffc 100644 --- a/requirements/static/pkg/py3.10/linux.txt +++ b/requirements/static/pkg/py3.10/linux.txt @@ -44,7 +44,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt @@ -106,7 +106,9 @@ tempora==4.1.1 timelib==0.2.5 # via -r requirements/static/pkg/linux.in urllib3==1.26.18 - # via requests + # via + # -r requirements/base.txt + # requests zc.lockfile==1.4 # via cherrypy zipp==3.6.0 diff --git a/requirements/static/pkg/py3.10/windows.txt b/requirements/static/pkg/py3.10/windows.txt index ee99032daec..db1042c3383 100644 --- a/requirements/static/pkg/py3.10/windows.txt +++ b/requirements/static/pkg/py3.10/windows.txt @@ -26,7 +26,6 @@ contextvars==2.4 cryptography==42.0.5 # via # -r requirements/base.txt - # -r requirements/windows.txt # pyopenssl distro==1.5.0 # via -r requirements/base.txt @@ -53,7 +52,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.0 # via jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt @@ -125,6 +124,7 @@ timelib==0.2.5 # via -r requirements/windows.txt urllib3==1.26.18 # via + # -r requirements/base.txt # -r requirements/windows.txt # requests wheel==0.38.4 diff --git a/requirements/static/pkg/py3.11/darwin.txt b/requirements/static/pkg/py3.11/darwin.txt index 81f74925606..b2500b1bddd 100644 --- a/requirements/static/pkg/py3.11/darwin.txt +++ b/requirements/static/pkg/py3.11/darwin.txt @@ -25,7 +25,6 @@ croniter==2.0.5 ; sys_platform != "win32" cryptography==42.0.5 # via # -r requirements/base.txt - # -r requirements/darwin.txt # pyopenssl distro==1.5.0 # via -r requirements/base.txt @@ -52,7 +51,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt @@ -120,7 +119,9 @@ tempora==4.1.1 timelib==0.2.5 # via -r requirements/darwin.txt urllib3==1.26.18 - # via requests + # via + # -r requirements/base.txt + # requests vultr==1.0.1 # via -r requirements/darwin.txt zc.lockfile==2.0 diff --git a/requirements/static/pkg/py3.11/freebsd.txt b/requirements/static/pkg/py3.11/freebsd.txt index ddfb15ab43b..b3864af3c2b 100644 --- a/requirements/static/pkg/py3.11/freebsd.txt +++ b/requirements/static/pkg/py3.11/freebsd.txt @@ -46,7 +46,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt @@ -106,7 +106,9 @@ tempora==4.1.1 timelib==0.2.5 # via -r requirements/static/pkg/freebsd.in urllib3==1.26.18 - # via requests + # via + # -r requirements/base.txt + # requests zc.lockfile==1.4 # via cherrypy zipp==3.12.0 diff --git a/requirements/static/pkg/py3.11/linux.txt b/requirements/static/pkg/py3.11/linux.txt index c77f1b8293f..7996db1782e 100644 --- a/requirements/static/pkg/py3.11/linux.txt +++ b/requirements/static/pkg/py3.11/linux.txt @@ -44,7 +44,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt @@ -106,7 +106,9 @@ tempora==4.1.1 timelib==0.2.5 # via -r requirements/static/pkg/linux.in urllib3==1.26.18 - # via requests + # via + # -r requirements/base.txt + # requests zc.lockfile==1.4 # via cherrypy zipp==3.6.0 diff --git a/requirements/static/pkg/py3.11/windows.txt b/requirements/static/pkg/py3.11/windows.txt index 95f415ad362..1294553732c 100644 --- a/requirements/static/pkg/py3.11/windows.txt +++ b/requirements/static/pkg/py3.11/windows.txt @@ -26,7 +26,6 @@ contextvars==2.4 cryptography==42.0.5 # via # -r requirements/base.txt - # -r requirements/windows.txt # pyopenssl distro==1.5.0 # via -r requirements/base.txt @@ -53,7 +52,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.0 # via jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt @@ -125,6 +124,7 @@ timelib==0.2.5 # via -r requirements/windows.txt urllib3==1.26.18 # via + # -r requirements/base.txt # -r requirements/windows.txt # requests wheel==0.38.4 diff --git a/requirements/static/pkg/py3.12/darwin.txt b/requirements/static/pkg/py3.12/darwin.txt index 27c282a6798..59cf78a6deb 100644 --- a/requirements/static/pkg/py3.12/darwin.txt +++ b/requirements/static/pkg/py3.12/darwin.txt @@ -25,7 +25,6 @@ croniter==2.0.5 ; sys_platform != "win32" cryptography==42.0.5 # via # -r requirements/base.txt - # -r requirements/darwin.txt # pyopenssl distro==1.5.0 # via -r requirements/base.txt @@ -52,7 +51,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt @@ -120,7 +119,9 @@ tempora==4.1.1 timelib==0.2.5 # via -r requirements/darwin.txt urllib3==1.26.18 - # via requests + # via + # -r requirements/base.txt + # requests vultr==1.0.1 # via -r requirements/darwin.txt zc.lockfile==2.0 diff --git a/requirements/static/pkg/py3.12/freebsd.txt b/requirements/static/pkg/py3.12/freebsd.txt index 2a361dec5a4..b17533d52f3 100644 --- a/requirements/static/pkg/py3.12/freebsd.txt +++ b/requirements/static/pkg/py3.12/freebsd.txt @@ -46,7 +46,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt @@ -106,7 +106,9 @@ tempora==4.1.1 timelib==0.2.5 # via -r requirements/static/pkg/freebsd.in urllib3==1.26.18 - # via requests + # via + # -r requirements/base.txt + # requests zc.lockfile==1.4 # via cherrypy zipp==3.12.0 diff --git a/requirements/static/pkg/py3.12/linux.txt b/requirements/static/pkg/py3.12/linux.txt index af50baf542e..3b9885bf8a0 100644 --- a/requirements/static/pkg/py3.12/linux.txt +++ b/requirements/static/pkg/py3.12/linux.txt @@ -44,7 +44,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt @@ -106,7 +106,9 @@ tempora==4.1.1 timelib==0.2.5 # via -r requirements/static/pkg/linux.in urllib3==1.26.18 - # via requests + # via + # -r requirements/base.txt + # requests zc.lockfile==1.4 # via cherrypy zipp==3.6.0 diff --git a/requirements/static/pkg/py3.12/windows.txt b/requirements/static/pkg/py3.12/windows.txt index dc7316cff1d..690463c3a6e 100644 --- a/requirements/static/pkg/py3.12/windows.txt +++ b/requirements/static/pkg/py3.12/windows.txt @@ -26,7 +26,6 @@ contextvars==2.4 cryptography==42.0.5 # via # -r requirements/base.txt - # -r requirements/windows.txt # pyopenssl distro==1.5.0 # via -r requirements/base.txt @@ -53,7 +52,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.0 # via jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt @@ -125,6 +124,7 @@ timelib==0.2.5 # via -r requirements/windows.txt urllib3==1.26.18 # via + # -r requirements/base.txt # -r requirements/windows.txt # requests wheel==0.38.4 diff --git a/requirements/static/pkg/py3.9/darwin.txt b/requirements/static/pkg/py3.9/darwin.txt index 3f0e827f089..cfe7e5b5d87 100644 --- a/requirements/static/pkg/py3.9/darwin.txt +++ b/requirements/static/pkg/py3.9/darwin.txt @@ -25,7 +25,6 @@ croniter==2.0.5 ; sys_platform != "win32" cryptography==42.0.5 # via # -r requirements/base.txt - # -r requirements/darwin.txt # pyopenssl distro==1.5.0 # via -r requirements/base.txt @@ -52,7 +51,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt @@ -120,7 +119,9 @@ tempora==4.1.1 timelib==0.2.5 # via -r requirements/darwin.txt urllib3==1.26.18 - # via requests + # via + # -r requirements/base.txt + # requests vultr==1.0.1 # via -r requirements/darwin.txt zc.lockfile==2.0 diff --git a/requirements/static/pkg/py3.9/freebsd.txt b/requirements/static/pkg/py3.9/freebsd.txt index 78dbbf27f28..94c573c2172 100644 --- a/requirements/static/pkg/py3.9/freebsd.txt +++ b/requirements/static/pkg/py3.9/freebsd.txt @@ -46,7 +46,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt @@ -106,7 +106,9 @@ tempora==4.1.1 timelib==0.2.5 # via -r requirements/static/pkg/freebsd.in urllib3==1.26.18 - # via requests + # via + # -r requirements/base.txt + # requests zc.lockfile==1.4 # via cherrypy zipp==3.5.0 diff --git a/requirements/static/pkg/py3.9/linux.txt b/requirements/static/pkg/py3.9/linux.txt index 3f0c1b8b138..6ef5eb7440d 100644 --- a/requirements/static/pkg/py3.9/linux.txt +++ b/requirements/static/pkg/py3.9/linux.txt @@ -44,7 +44,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt @@ -106,7 +106,9 @@ tempora==4.1.1 timelib==0.2.5 # via -r requirements/static/pkg/linux.in urllib3==1.26.18 - # via requests + # via + # -r requirements/base.txt + # requests zc.lockfile==1.4 # via cherrypy zipp==3.5.0 diff --git a/requirements/static/pkg/py3.9/windows.txt b/requirements/static/pkg/py3.9/windows.txt index afa060a8fef..01dc82a8636 100644 --- a/requirements/static/pkg/py3.9/windows.txt +++ b/requirements/static/pkg/py3.9/windows.txt @@ -26,7 +26,6 @@ contextvars==2.4 cryptography==42.0.5 # via # -r requirements/base.txt - # -r requirements/windows.txt # pyopenssl distro==1.5.0 # via -r requirements/base.txt @@ -53,7 +52,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.0 # via jaraco.collections -jinja2==3.1.4 +jinja2==3.1.6 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt @@ -126,6 +125,7 @@ timelib==0.2.5 # via -r requirements/windows.txt urllib3==1.26.18 # via + # -r requirements/base.txt # -r requirements/windows.txt # requests wheel==0.38.4 diff --git a/requirements/windows.txt b/requirements/windows.txt index b2e14435bd7..43e9b7084d1 100644 --- a/requirements/windows.txt +++ b/requirements/windows.txt @@ -7,7 +7,6 @@ wmi>=1.5.1 pythonnet>=3.0.1 cffi>=1.14.5 cherrypy>=18.6.1 -cryptography>=41.0.3 gitpython>=3.1.37 ioloop>=0.1a0 lxml>=4.6.3 From 87dd674da23b976794487c6ec5a4ce5ca5259791 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Thu, 6 Mar 2025 17:03:37 -0700 Subject: [PATCH 075/101] Add changelog for updated dependencies --- changelog/67794.fixed.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 changelog/67794.fixed.md diff --git a/changelog/67794.fixed.md b/changelog/67794.fixed.md new file mode 100644 index 00000000000..0805655b1dc --- /dev/null +++ b/changelog/67794.fixed.md @@ -0,0 +1,2 @@ +Update jinja2 to 3.1.5, advisories GHSA-q2x7-8rv6-6q7h and GHSA-gmj6-6f8f-6699 +Update urllib3 to 1.26.18 advisories GHSA-34jh-p97f-mpxf From 05b01e268de710e908c0db0ed5b6c5cc00d9c507 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Thu, 6 Mar 2025 14:39:04 -0700 Subject: [PATCH 076/101] Update relenv to 0.18.1 --- .github/workflows/ci.yml | 14 +++++++------- .github/workflows/nightly.yml | 18 +++++++++--------- .github/workflows/release.yml | 2 +- .github/workflows/scheduled.yml | 14 +++++++------- .github/workflows/staging.yml | 18 +++++++++--------- changelog/67792.fixed.md | 2 ++ cicd/shared-gh-workflows-context.yml | 4 ++-- 7 files changed, 37 insertions(+), 35 deletions(-) create mode 100644 changelog/67792.fixed.md diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cfb314edccc..9bd47fe9428 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -408,8 +408,8 @@ jobs: with: cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - relenv-version: "0.18.0" - python-version: "3.10.15" + relenv-version: "0.18.1" + python-version: "3.10.16" matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} @@ -423,8 +423,8 @@ jobs: with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.18.0" - python-version: "3.10.15" + relenv-version: "0.18.1" + python-version: "3.10.16" source: "onedir" matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} @@ -440,7 +440,7 @@ jobs: nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.15 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.16 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} @@ -457,7 +457,7 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" nox-version: 2022.8.7 python-version: "3.10" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.15 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.16 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.config)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['pkg-test-matrix']) }} @@ -475,7 +475,7 @@ jobs: python-version: "3.10" testrun: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['testrun']) }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.15 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.16 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.config)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 1591bca4a2a..80b2662ec76 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -462,8 +462,8 @@ jobs: with: cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - relenv-version: "0.18.0" - python-version: "3.10.15" + relenv-version: "0.18.1" + python-version: "3.10.16" matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} @@ -477,8 +477,8 @@ jobs: with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.18.0" - python-version: "3.10.15" + relenv-version: "0.18.1" + python-version: "3.10.16" source: "onedir" matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} @@ -497,8 +497,8 @@ jobs: with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.18.0" - python-version: "3.10.15" + relenv-version: "0.18.1" + python-version: "3.10.16" source: "src" matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} @@ -518,7 +518,7 @@ jobs: nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.15 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.16 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} @@ -535,7 +535,7 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" nox-version: 2022.8.7 python-version: "3.10" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.15 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.16 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['pkg-test-matrix']) }} @@ -553,7 +553,7 @@ jobs: python-version: "3.10" testrun: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['testrun']) }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.15 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.16 skip-code-coverage: true workflow-slug: nightly default-timeout: 360 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e45acebda97..71ebbef5835 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -186,7 +186,7 @@ jobs: nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.15 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.16 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 23c02da8c1a..8f00357c8f8 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -447,8 +447,8 @@ jobs: with: cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - relenv-version: "0.18.0" - python-version: "3.10.15" + relenv-version: "0.18.1" + python-version: "3.10.16" matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} @@ -462,8 +462,8 @@ jobs: with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.18.0" - python-version: "3.10.15" + relenv-version: "0.18.1" + python-version: "3.10.16" source: "onedir" matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} @@ -479,7 +479,7 @@ jobs: nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.15 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.16 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} @@ -496,7 +496,7 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" nox-version: 2022.8.7 python-version: "3.10" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.15 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.16 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['pkg-test-matrix']) }} @@ -514,7 +514,7 @@ jobs: python-version: "3.10" testrun: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['testrun']) }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.15 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.16 skip-code-coverage: true workflow-slug: scheduled default-timeout: 360 diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index ad817e24532..3539bce4326 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -448,8 +448,8 @@ jobs: with: cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - relenv-version: "0.18.0" - python-version: "3.10.15" + relenv-version: "0.18.1" + python-version: "3.10.16" matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} @@ -463,8 +463,8 @@ jobs: with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.18.0" - python-version: "3.10.15" + relenv-version: "0.18.1" + python-version: "3.10.16" source: "onedir" matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} @@ -483,8 +483,8 @@ jobs: with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.18.0" - python-version: "3.10.15" + relenv-version: "0.18.1" + python-version: "3.10.16" source: "src" matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} @@ -504,7 +504,7 @@ jobs: nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.15 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.16 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['build-matrix']) }} linux_arm_runner: ${{ fromJSON(needs.prepare-workflow.outputs.config)['linux_arm_runner'] }} @@ -521,7 +521,7 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" nox-version: 2022.8.7 python-version: "3.10" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.15 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.16 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} matrix: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['pkg-test-matrix']) }} @@ -539,7 +539,7 @@ jobs: python-version: "3.10" testrun: ${{ toJSON(fromJSON(needs.prepare-workflow.outputs.config)['testrun']) }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.15 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.16 skip-code-coverage: true workflow-slug: staging default-timeout: 180 diff --git a/changelog/67792.fixed.md b/changelog/67792.fixed.md new file mode 100644 index 00000000000..ca00fc31ccf --- /dev/null +++ b/changelog/67792.fixed.md @@ -0,0 +1,2 @@ +Upgrade relenv to 0.18.1. Which includes python 3.10.16 and openssl 3.2.4. +Openssl 3.2.4 fixes CVE-2024-12797 and CVE-2024-13176 diff --git a/cicd/shared-gh-workflows-context.yml b/cicd/shared-gh-workflows-context.yml index d29eac0ad13..449d1b28713 100644 --- a/cicd/shared-gh-workflows-context.yml +++ b/cicd/shared-gh-workflows-context.yml @@ -1,6 +1,6 @@ nox_version: "2022.8.7" -python_version: "3.10.15" -relenv_version: "0.18.0" +python_version: "3.10.16" +relenv_version: "0.18.1" pr-testrun-slugs: - ubuntu-24.04-pkg - ubuntu-24.04 From 8e28d02e2f5d1156dd58da195aadceba114a9394 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Tue, 18 Feb 2025 20:30:59 -0700 Subject: [PATCH 077/101] Fix another round of coroutines being called incorrectly --- salt/minion.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/salt/minion.py b/salt/minion.py index 034b3b032cf..4a1a09c71c0 100644 --- a/salt/minion.py +++ b/salt/minion.py @@ -2527,6 +2527,7 @@ class Minion(MinionBase): } ) + @salt.ext.tornado.gen.coroutine def _fire_master_minion_start(self): include_grains = False if self.opts["start_event_grains"]: @@ -2534,13 +2535,13 @@ class Minion(MinionBase): # Send an event to the master that the minion is live if self.opts["enable_legacy_startup_events"]: # Old style event. Defaults to False in 3001 release. - self._fire_master_main( + yield self._fire_master_main( "Minion {} started at {}".format(self.opts["id"], time.asctime()), "minion_start", include_startup_grains=include_grains, ) # send name spaced event - self._fire_master_main( + yield self._fire_master_main( "Minion {} started at {}".format(self.opts["id"], time.asctime()), tagify([self.opts["id"], "start"], "minion"), include_startup_grains=include_grains, @@ -2975,7 +2976,7 @@ class Minion(MinionBase): # make the schedule to use the new 'functions' loader self.schedule.functions = self.functions self.pub_channel.on_recv(self._handle_payload) - self._fire_master_minion_start() + yield self._fire_master_minion_start() log.info("Minion is ready to receive requests!") # update scheduled job to run with the new master addr @@ -3224,7 +3225,7 @@ class Minion(MinionBase): self.setup_scheduler(before_connect=True) self.sync_connect_master() if self.connected: - self._fire_master_minion_start() + self.io_loop.add_callback(self._fire_master_minion_start) log.info("Minion is ready to receive requests!") # Make sure to gracefully handle SIGUSR1 @@ -3267,7 +3268,8 @@ class Minion(MinionBase): "minion is running under an init system." ) - self._fire_master_main( + self.io_loop.add_callback( + self._fire_master_main, "ping", "minion_ping", timeout_handler=ping_timeout_handler, From 97ea9a11fba03fb8070a2eff063c90b833e296ab Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Wed, 19 Feb 2025 17:16:30 -0700 Subject: [PATCH 078/101] Add test specific to minion start event --- tests/conftest.py | 1 + tests/pytests/integration/minion/conftest.py | 103 ++++++++++++++++++ .../integration/minion/test_job_return.py | 102 ----------------- .../integration/minion/test_start_event.py | 23 ++++ 4 files changed, 127 insertions(+), 102 deletions(-) create mode 100644 tests/pytests/integration/minion/conftest.py create mode 100644 tests/pytests/integration/minion/test_start_event.py diff --git a/tests/conftest.py b/tests/conftest.py index edf27fc5c20..aa96ef8508f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -803,6 +803,7 @@ def salt_factories_default_root_dir(salt_factories_default_root_dir): dictionary, then that's the value used, and not the one returned by this fixture. """ + print(f"WTF {salt_factories_default_root_dir}") if os.environ.get("CI") and pytestskipmarkers.utils.platform.is_windows(): tempdir = pathlib.Path( os.environ.get("RUNNER_TEMP", r"C:\Windows\Temp") diff --git a/tests/pytests/integration/minion/conftest.py b/tests/pytests/integration/minion/conftest.py new file mode 100644 index 00000000000..ee64a9ffca4 --- /dev/null +++ b/tests/pytests/integration/minion/conftest.py @@ -0,0 +1,103 @@ +import os +import shutil +import subprocess + +import pytest + +import salt.utils.platform +from tests.conftest import FIPS_TESTRUN + + +@pytest.fixture +def salt_master_1(request, salt_factories): + config_defaults = { + "open_mode": True, + "transport": request.config.getoption("--transport"), + } + config_overrides = { + "interface": "127.0.0.1", + "fips_mode": FIPS_TESTRUN, + "publish_signing_algorithm": ( + "PKCS1v15-SHA224" if FIPS_TESTRUN else "PKCS1v15-SHA1" + ), + } + + factory = salt_factories.salt_master_daemon( + "master-1", + defaults=config_defaults, + overrides=config_overrides, + extra_cli_arguments_after_first_start_failure=["--log-level=info"], + ) + with factory.started(start_timeout=120): + yield factory + + +@pytest.fixture +def salt_master_2(salt_factories, salt_master_1): + if salt.utils.platform.is_darwin() or salt.utils.platform.is_freebsd(): + subprocess.check_output(["ifconfig", "lo0", "alias", "127.0.0.2", "up"]) + + config_defaults = { + "open_mode": True, + "transport": salt_master_1.config["transport"], + } + config_overrides = { + "interface": "127.0.0.2", + "fips_mode": FIPS_TESTRUN, + "publish_signing_algorithm": ( + "PKCS1v15-SHA224" if FIPS_TESTRUN else "PKCS1v15-SHA1" + ), + } + + # Use the same ports for both masters, they are binding to different interfaces + for key in ( + "ret_port", + "publish_port", + ): + config_overrides[key] = salt_master_1.config[key] + factory = salt_factories.salt_master_daemon( + "master-2", + defaults=config_defaults, + overrides=config_overrides, + extra_cli_arguments_after_first_start_failure=["--log-level=info"], + ) + + # The secondary salt master depends on the primarily salt master fixture + # because we need to clone the keys + for keyfile in ("master.pem", "master.pub"): + shutil.copyfile( + os.path.join(salt_master_1.config["pki_dir"], keyfile), + os.path.join(factory.config["pki_dir"], keyfile), + ) + with factory.started(start_timeout=120): + yield factory + + +@pytest.fixture +def salt_minion_1(salt_master_1, salt_master_2): + config_defaults = { + "transport": salt_master_1.config["transport"], + } + + master_1_port = salt_master_1.config["ret_port"] + master_1_addr = salt_master_1.config["interface"] + master_2_port = salt_master_2.config["ret_port"] + master_2_addr = salt_master_2.config["interface"] + config_overrides = { + "master": [ + f"{master_1_addr}:{master_1_port}", + f"{master_2_addr}:{master_2_port}", + ], + "test.foo": "baz", + "fips_mode": FIPS_TESTRUN, + "encryption_algorithm": "OAEP-SHA224" if FIPS_TESTRUN else "OAEP-SHA1", + "signing_algorithm": "PKCS1v15-SHA224" if FIPS_TESTRUN else "PKCS1v15-SHA1", + } + factory = salt_master_1.salt_minion_daemon( + "minion-1", + defaults=config_defaults, + overrides=config_overrides, + extra_cli_arguments_after_first_start_failure=["--log-level=info"], + ) + with factory.started(start_timeout=120): + yield factory diff --git a/tests/pytests/integration/minion/test_job_return.py b/tests/pytests/integration/minion/test_job_return.py index c91748597dc..e4a76ae897c 100644 --- a/tests/pytests/integration/minion/test_job_return.py +++ b/tests/pytests/integration/minion/test_job_return.py @@ -1,107 +1,5 @@ -import os -import shutil -import subprocess - import pytest -import salt.utils.platform -from tests.conftest import FIPS_TESTRUN - - -@pytest.fixture -def salt_master_1(request, salt_factories): - config_defaults = { - "open_mode": True, - "transport": request.config.getoption("--transport"), - } - config_overrides = { - "interface": "127.0.0.1", - "fips_mode": FIPS_TESTRUN, - "publish_signing_algorithm": ( - "PKCS1v15-SHA224" if FIPS_TESTRUN else "PKCS1v15-SHA1" - ), - } - - factory = salt_factories.salt_master_daemon( - "master-1", - defaults=config_defaults, - overrides=config_overrides, - extra_cli_arguments_after_first_start_failure=["--log-level=info"], - ) - with factory.started(start_timeout=120): - yield factory - - -@pytest.fixture -def salt_master_2(salt_factories, salt_master_1): - if salt.utils.platform.is_darwin() or salt.utils.platform.is_freebsd(): - subprocess.check_output(["ifconfig", "lo0", "alias", "127.0.0.2", "up"]) - - config_defaults = { - "open_mode": True, - "transport": salt_master_1.config["transport"], - } - config_overrides = { - "interface": "127.0.0.2", - "fips_mode": FIPS_TESTRUN, - "publish_signing_algorithm": ( - "PKCS1v15-SHA224" if FIPS_TESTRUN else "PKCS1v15-SHA1" - ), - } - - # Use the same ports for both masters, they are binding to different interfaces - for key in ( - "ret_port", - "publish_port", - ): - config_overrides[key] = salt_master_1.config[key] - factory = salt_factories.salt_master_daemon( - "master-2", - defaults=config_defaults, - overrides=config_overrides, - extra_cli_arguments_after_first_start_failure=["--log-level=info"], - ) - - # The secondary salt master depends on the primarily salt master fixture - # because we need to clone the keys - for keyfile in ("master.pem", "master.pub"): - shutil.copyfile( - os.path.join(salt_master_1.config["pki_dir"], keyfile), - os.path.join(factory.config["pki_dir"], keyfile), - ) - with factory.started(start_timeout=120): - yield factory - - -@pytest.fixture -def salt_minion_1(salt_master_1, salt_master_2): - config_defaults = { - "transport": salt_master_1.config["transport"], - } - - master_1_port = salt_master_1.config["ret_port"] - master_1_addr = salt_master_1.config["interface"] - master_2_port = salt_master_2.config["ret_port"] - master_2_addr = salt_master_2.config["interface"] - config_overrides = { - "master": [ - f"{master_1_addr}:{master_1_port}", - f"{master_2_addr}:{master_2_port}", - ], - "test.foo": "baz", - "fips_mode": FIPS_TESTRUN, - "encryption_algorithm": "OAEP-SHA224" if FIPS_TESTRUN else "OAEP-SHA1", - "signing_algorithm": "PKCS1v15-SHA224" if FIPS_TESTRUN else "PKCS1v15-SHA1", - } - factory = salt_master_1.salt_minion_daemon( - "minion-1", - defaults=config_defaults, - overrides=config_overrides, - extra_cli_arguments_after_first_start_failure=["--log-level=info"], - ) - with factory.started(start_timeout=120): - yield factory - @pytest.mark.timeout_unless_on_windows(360) def test_job_return(salt_master_1, salt_master_2, salt_minion_1): diff --git a/tests/pytests/integration/minion/test_start_event.py b/tests/pytests/integration/minion/test_start_event.py new file mode 100644 index 00000000000..b6f1406e701 --- /dev/null +++ b/tests/pytests/integration/minion/test_start_event.py @@ -0,0 +1,23 @@ +import time + +import pytest + + +@pytest.fixture +def start(): + return time.time() + + +def test_minion_start_event( + start, event_listener, salt_master_1, salt_master_2, salt_minion_1 +): + start_events = event_listener.wait_for_events( + [ + (salt_master_1.id, f"salt/minion/{salt_minion_1.id}/start"), + (salt_master_2.id, f"salt/minion/{salt_minion_1.id}/start"), + ], + timeout=60, + after_time=start, + ) + assert not start_events.missed + assert len(start_events.matches) == 2 From 16064410f906cfbb056c7f55dad870f45a4d9971 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Wed, 19 Feb 2025 17:17:37 -0700 Subject: [PATCH 079/101] Add changelog for #66932 --- changelog/66932.fixed.md | 1 + tests/conftest.py | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 changelog/66932.fixed.md diff --git a/changelog/66932.fixed.md b/changelog/66932.fixed.md new file mode 100644 index 00000000000..6209b057fed --- /dev/null +++ b/changelog/66932.fixed.md @@ -0,0 +1 @@ +Ensure minion start event coroutines are run diff --git a/tests/conftest.py b/tests/conftest.py index aa96ef8508f..edf27fc5c20 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -803,7 +803,6 @@ def salt_factories_default_root_dir(salt_factories_default_root_dir): dictionary, then that's the value used, and not the one returned by this fixture. """ - print(f"WTF {salt_factories_default_root_dir}") if os.environ.get("CI") and pytestskipmarkers.utils.platform.is_windows(): tempdir = pathlib.Path( os.environ.get("RUNNER_TEMP", r"C:\Windows\Temp") From 7fb8eb538b28d212b24ee9b9f5e0ade747ee97f7 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Fri, 21 Feb 2025 15:14:54 -0700 Subject: [PATCH 080/101] Ensure file clients for runner, wheel, local and caller are available from the client_cache if called upon --- changelog/61416.fixed.md | 1 + salt/utils/reactor.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 changelog/61416.fixed.md diff --git a/changelog/61416.fixed.md b/changelog/61416.fixed.md new file mode 100644 index 00000000000..58dd7a27783 --- /dev/null +++ b/changelog/61416.fixed.md @@ -0,0 +1 @@ +Ensure file clients for runner, wheel, local and caller are available from the client_cache if called upon. diff --git a/salt/utils/reactor.py b/salt/utils/reactor.py index 0229738ec3c..cdfc927a35d 100644 --- a/salt/utils/reactor.py +++ b/salt/utils/reactor.py @@ -464,22 +464,42 @@ class ReactWrap: """ Wrap RunnerClient for executing :ref:`runner modules ` """ + # pylint: disable=unsupported-membership-test,unsupported-assignment-operation + if "runner" not in self.client_cache: + log.debug("reactor edge case: re-populating client_cache for runner") + low = {"state": "runner"} + self.populate_client_cache(low) return self.pool.fire_async(self.client_cache["runner"].low, args=(fun, kwargs)) def wheel(self, fun, **kwargs): """ Wrap Wheel to enable executing :ref:`wheel modules ` """ + # pylint: disable=unsupported-membership-test,unsupported-assignment-operation + if "wheel" not in self.client_cache: + log.debug("reactor edge case: re-populating client_cache for wheel") + low = {"state": "wheel"} + self.populate_client_cache(low) return self.pool.fire_async(self.client_cache["wheel"].low, args=(fun, kwargs)) def local(self, fun, tgt, **kwargs): """ Wrap LocalClient for running :ref:`execution modules ` """ + # pylint: disable=unsupported-membership-test,unsupported-assignment-operation + if "local" not in self.client_cache: + log.debug("reactor edge case: re-populating client_cache for local") + low = {"state": "local"} + self.populate_client_cache(low) self.client_cache["local"].cmd_async(tgt, fun, **kwargs) def caller(self, fun, **kwargs): """ Wrap LocalCaller to execute remote exec functions locally on the Minion """ + # pylint: disable=unsupported-membership-test,unsupported-assignment-operation + if "caller" not in self.client_cache: + log.debug("reactor edge case: re-populating client_cache for caller") + low = {"state": "caller"} + self.populate_client_cache(low) self.client_cache["caller"].cmd(fun, *kwargs["arg"], **kwargs["kwarg"]) From aa981a52cab0539ca41acad8f21613e203dcff40 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Tue, 25 Feb 2025 08:53:44 -0700 Subject: [PATCH 081/101] Conversion of tests/unit/utils/test_reactor.py to pytest --- tests/pytests/unit/utils/test_reactor2.py | 564 ++++++++++++++++++++++ 1 file changed, 564 insertions(+) create mode 100644 tests/pytests/unit/utils/test_reactor2.py diff --git a/tests/pytests/unit/utils/test_reactor2.py b/tests/pytests/unit/utils/test_reactor2.py new file mode 100644 index 00000000000..9a588669abd --- /dev/null +++ b/tests/pytests/unit/utils/test_reactor2.py @@ -0,0 +1,564 @@ +import codecs +import glob +import logging +import os +import textwrap + +import pytest + +import salt.loader +import salt.template +import salt.utils.data +import salt.utils.files +import salt.utils.reactor as reactor +import salt.utils.yaml +from tests.support.mock import MagicMock, Mock, mock_open, patch + +log = logging.getLogger(__name__) + +REACTOR_CONFIG = """\ +reactor: + - old_runner: + - /srv/reactor/old_runner.sls + - old_wheel: + - /srv/reactor/old_wheel.sls + - old_local: + - /srv/reactor/old_local.sls + - old_cmd: + - /srv/reactor/old_cmd.sls + - old_caller: + - /srv/reactor/old_caller.sls + - new_runner: + - /srv/reactor/new_runner.sls + - new_wheel: + - /srv/reactor/new_wheel.sls + - new_local: + - /srv/reactor/new_local.sls + - new_cmd: + - /srv/reactor/new_cmd.sls + - new_caller: + - /srv/reactor/new_caller.sls +""" + +REACTOR_DATA = { + "runner": {"data": {"message": "This is an error"}}, + "wheel": {"data": {"id": "foo"}}, + "local": {"data": {"pkg": "zsh", "repo": "updates"}}, + "cmd": {"data": {"pkg": "zsh", "repo": "updates"}}, + "caller": {"data": {"path": "/tmp/foo"}}, +} + +SLS = { + "/srv/reactor/old_runner.sls": textwrap.dedent( + """\ + raise_error: + runner.error.error: + - name: Exception + - message: {{ data['data']['message'] }} + """ + ), + "/srv/reactor/old_wheel.sls": textwrap.dedent( + """\ + remove_key: + wheel.key.delete: + - match: {{ data['data']['id'] }} + """ + ), + "/srv/reactor/old_local.sls": textwrap.dedent( + """\ + install_zsh: + local.state.single: + - tgt: test + - arg: + - pkg.installed + - {{ data['data']['pkg'] }} + - kwarg: + fromrepo: {{ data['data']['repo'] }} + """ + ), + "/srv/reactor/old_cmd.sls": textwrap.dedent( + """\ + install_zsh: + cmd.state.single: + - tgt: test + - arg: + - pkg.installed + - {{ data['data']['pkg'] }} + - kwarg: + fromrepo: {{ data['data']['repo'] }} + """ + ), + "/srv/reactor/old_caller.sls": textwrap.dedent( + """\ + touch_file: + caller.file.touch: + - args: + - {{ data['data']['path'] }} + """ + ), + "/srv/reactor/new_runner.sls": textwrap.dedent( + """\ + raise_error: + runner.error.error: + - args: + - name: Exception + - message: {{ data['data']['message'] }} + """ + ), + "/srv/reactor/new_wheel.sls": textwrap.dedent( + """\ + remove_key: + wheel.key.delete: + - args: + - match: {{ data['data']['id'] }} + """ + ), + "/srv/reactor/new_local.sls": textwrap.dedent( + """\ + install_zsh: + local.state.single: + - tgt: test + - args: + - fun: pkg.installed + - name: {{ data['data']['pkg'] }} + - fromrepo: {{ data['data']['repo'] }} + """ + ), + "/srv/reactor/new_cmd.sls": textwrap.dedent( + """\ + install_zsh: + cmd.state.single: + - tgt: test + - args: + - fun: pkg.installed + - name: {{ data['data']['pkg'] }} + - fromrepo: {{ data['data']['repo'] }} + """ + ), + "/srv/reactor/new_caller.sls": textwrap.dedent( + """\ + touch_file: + caller.file.touch: + - args: + - name: {{ data['data']['path'] }} + """ + ), +} + +LOW_CHUNKS = { + "old_runner": [ + { + "state": "runner", + "__id__": "raise_error", + "__sls__": "/srv/reactor/old_runner.sls", + "order": 1, + "fun": "error.error", + "name": "Exception", + "message": "This is an error", + } + ], + "old_wheel": [ + { + "state": "wheel", + "__id__": "remove_key", + "name": "remove_key", + "__sls__": "/srv/reactor/old_wheel.sls", + "order": 1, + "fun": "key.delete", + "match": "foo", + } + ], + "old_local": [ + { + "state": "local", + "__id__": "install_zsh", + "name": "install_zsh", + "__sls__": "/srv/reactor/old_local.sls", + "order": 1, + "tgt": "test", + "fun": "state.single", + "arg": ["pkg.installed", "zsh"], + "kwarg": {"fromrepo": "updates"}, + } + ], + "old_cmd": [ + { + "state": "local", + "__id__": "install_zsh", + "name": "install_zsh", + "__sls__": "/srv/reactor/old_cmd.sls", + "order": 1, + "tgt": "test", + "fun": "state.single", + "arg": ["pkg.installed", "zsh"], + "kwarg": {"fromrepo": "updates"}, + } + ], + "old_caller": [ + { + "state": "caller", + "__id__": "touch_file", + "name": "touch_file", + "__sls__": "/srv/reactor/old_caller.sls", + "order": 1, + "fun": "file.touch", + "args": ["/tmp/foo"], + } + ], + "new_runner": [ + { + "state": "runner", + "__id__": "raise_error", + "name": "raise_error", + "__sls__": "/srv/reactor/new_runner.sls", + "order": 1, + "fun": "error.error", + "args": [{"name": "Exception"}, {"message": "This is an error"}], + } + ], + "new_wheel": [ + { + "state": "wheel", + "__id__": "remove_key", + "name": "remove_key", + "__sls__": "/srv/reactor/new_wheel.sls", + "order": 1, + "fun": "key.delete", + "args": [{"match": "foo"}], + } + ], + "new_local": [ + { + "state": "local", + "__id__": "install_zsh", + "name": "install_zsh", + "__sls__": "/srv/reactor/new_local.sls", + "order": 1, + "tgt": "test", + "fun": "state.single", + "args": [ + {"fun": "pkg.installed"}, + {"name": "zsh"}, + {"fromrepo": "updates"}, + ], + } + ], + "new_cmd": [ + { + "state": "local", + "__id__": "install_zsh", + "name": "install_zsh", + "__sls__": "/srv/reactor/new_cmd.sls", + "order": 1, + "tgt": "test", + "fun": "state.single", + "args": [ + {"fun": "pkg.installed"}, + {"name": "zsh"}, + {"fromrepo": "updates"}, + ], + } + ], + "new_caller": [ + { + "state": "caller", + "__id__": "touch_file", + "name": "touch_file", + "__sls__": "/srv/reactor/new_caller.sls", + "order": 1, + "fun": "file.touch", + "args": [{"name": "/tmp/foo"}], + } + ], +} + +WRAPPER_CALLS = { + "old_runner": ( + "error.error", + { + "__state__": "runner", + "__id__": "raise_error", + "__sls__": "/srv/reactor/old_runner.sls", + "__user__": "Reactor", + "order": 1, + "arg": [], + "kwarg": {"name": "Exception", "message": "This is an error"}, + "name": "Exception", + "message": "This is an error", + }, + ), + "old_wheel": ( + "key.delete", + { + "__state__": "wheel", + "__id__": "remove_key", + "name": "remove_key", + "__sls__": "/srv/reactor/old_wheel.sls", + "order": 1, + "__user__": "Reactor", + "arg": ["foo"], + "kwarg": {}, + "match": "foo", + }, + ), + "old_local": { + "args": ("test", "state.single"), + "kwargs": { + "state": "local", + "__id__": "install_zsh", + "name": "install_zsh", + "__sls__": "/srv/reactor/old_local.sls", + "order": 1, + "arg": ["pkg.installed", "zsh"], + "kwarg": {"fromrepo": "updates"}, + }, + }, + "old_cmd": { + "args": ("test", "state.single"), + "kwargs": { + "state": "local", + "__id__": "install_zsh", + "name": "install_zsh", + "__sls__": "/srv/reactor/old_cmd.sls", + "order": 1, + "arg": ["pkg.installed", "zsh"], + "kwarg": {"fromrepo": "updates"}, + }, + }, + "old_caller": {"args": ("file.touch", "/tmp/foo"), "kwargs": {}}, + "new_runner": ( + "error.error", + { + "__state__": "runner", + "__id__": "raise_error", + "name": "raise_error", + "__sls__": "/srv/reactor/new_runner.sls", + "__user__": "Reactor", + "order": 1, + "arg": (), + "kwarg": {"name": "Exception", "message": "This is an error"}, + }, + ), + "new_wheel": ( + "key.delete", + { + "__state__": "wheel", + "__id__": "remove_key", + "name": "remove_key", + "__sls__": "/srv/reactor/new_wheel.sls", + "order": 1, + "__user__": "Reactor", + "arg": (), + "kwarg": {"match": "foo"}, + }, + ), + "new_local": { + "args": ("test", "state.single"), + "kwargs": { + "state": "local", + "__id__": "install_zsh", + "name": "install_zsh", + "__sls__": "/srv/reactor/new_local.sls", + "order": 1, + "arg": (), + "kwarg": {"fun": "pkg.installed", "name": "zsh", "fromrepo": "updates"}, + }, + }, + "new_cmd": { + "args": ("test", "state.single"), + "kwargs": { + "state": "local", + "__id__": "install_zsh", + "name": "install_zsh", + "__sls__": "/srv/reactor/new_cmd.sls", + "order": 1, + "arg": (), + "kwarg": {"fun": "pkg.installed", "name": "zsh", "fromrepo": "updates"}, + }, + }, + "new_caller": {"args": ("file.touch",), "kwargs": {"name": "/tmp/foo"}}, +} + + +# ----------------------------------------------------------------------------- +# FIXTURES +# ----------------------------------------------------------------------------- +@pytest.fixture(scope="module") +def master_opts(): + """ + In Salt's internal test suite, we often use something like + `AdaptedConfigurationTestCaseMixin.get_temp_config("master")`. + Replace this with however you retrieve your config opts in your own code/tests. + """ + opts = { + # Minimal stand-in for a real master config + "file_roots": {"base": []}, + "renderer": "jinja|yaml", + } + # Optionally parse the reactor config for convenience + reactor_config = salt.utils.yaml.safe_load(REACTOR_CONFIG) + opts.update(reactor_config) + return opts + + +@pytest.fixture(scope="module") +def test_reactor(master_opts): + """ + Create a Reactor instance for testing + """ + return reactor.Reactor(master_opts) + + +@pytest.fixture(scope="module") +def reaction_map(master_opts): + """ + Reaction map from the configured reactor + """ + return salt.utils.data.repack_dictlist(master_opts["reactor"]) + + +@pytest.fixture(scope="module") +def render_pipe(master_opts): + """ + Render pipeline + """ + renderers = salt.loader.render(master_opts, {}) + return [(renderers[x], "") for x in ("jinja", "yaml")] + + +# ----------------------------------------------------------------------------- +# TESTS for Reactor building the low chunks +# ----------------------------------------------------------------------------- +@pytest.mark.parametrize("schema", ["old", "new"]) +@pytest.mark.parametrize("rtype", list(REACTOR_DATA.keys())) +def test_reactor_reactions(schema, rtype, test_reactor, render_pipe): + """ + Ensure correct reactions are built from the configured SLS files and tag data. + """ + tag = f"{schema}_{rtype}" + reactors_list = test_reactor.list_reactors(tag) + + # Patch out globbing since these SLS files don't actually exist on disk + with patch.object(glob, "glob", MagicMock(side_effect=lambda x: [x])): + with patch.object(os.path, "isfile", MagicMock(return_value=True)): + with patch.object( + salt.utils.files, "is_empty", MagicMock(return_value=False) + ): + with patch.object( + codecs, "open", mock_open(read_data=SLS[reactors_list[0]]) + ): + with patch.object( + salt.template, + "template_shebang", + MagicMock(return_value=render_pipe), + ): + reactions = test_reactor.reactions( + tag, REACTOR_DATA[rtype], reactors_list + ) + assert reactions == LOW_CHUNKS[tag], f"Reactions did not match for tag: {tag}" + + +def test_list_reactors(test_reactor, reaction_map): + """ + Ensure list_reactors() returns the correct list of reactor SLS files for each tag. + """ + for schema in ("old", "new"): + for rtype in REACTOR_DATA: + tag = f"{schema}_{rtype}" + assert test_reactor.list_reactors(tag) == reaction_map[tag] + + +# ----------------------------------------------------------------------------- +# FIXTURE for Reactor Wrap +# ----------------------------------------------------------------------------- +@pytest.fixture(scope="module") +def react_wrap(master_opts): + """ + Create a ReactWrap instance + """ + return reactor.ReactWrap(master_opts) + + +# ----------------------------------------------------------------------------- +# TESTS for ReactWrap +# ----------------------------------------------------------------------------- +@pytest.mark.parametrize("schema", ["old", "new"]) +def test_runner(schema, react_wrap): + """ + Test runner reactions using both the old and new config schema + """ + tag = f"{schema}_runner" + chunk = LOW_CHUNKS[tag][0] + thread_pool = Mock() + thread_pool.fire_async = Mock() + with patch.object(react_wrap, "pool", thread_pool): + react_wrap.run(chunk) + thread_pool.fire_async.assert_called_with( + react_wrap.client_cache["runner"].low, + args=WRAPPER_CALLS[tag], + ) + + +@pytest.mark.parametrize("schema", ["old", "new"]) +def test_wheel(schema, react_wrap): + """ + Test wheel reactions using both the old and new config schema + """ + tag = f"{schema}_wheel" + chunk = LOW_CHUNKS[tag][0] + thread_pool = Mock() + thread_pool.fire_async = Mock() + with patch.object(react_wrap, "pool", thread_pool): + react_wrap.run(chunk) + thread_pool.fire_async.assert_called_with( + react_wrap.client_cache["wheel"].low, + args=WRAPPER_CALLS[tag], + ) + + +@pytest.mark.parametrize("schema", ["old", "new"]) +def test_local(schema, react_wrap): + """ + Test local reactions using both the old and new config schema + """ + tag = f"{schema}_local" + chunk = LOW_CHUNKS[tag][0] + client_cache = {"local": Mock()} + client_cache["local"].cmd_async = Mock() + with patch.object(react_wrap, "client_cache", client_cache): + react_wrap.run(chunk) + client_cache["local"].cmd_async.assert_called_with( + *WRAPPER_CALLS[tag]["args"], **WRAPPER_CALLS[tag]["kwargs"] + ) + + +@pytest.mark.parametrize("schema", ["old", "new"]) +def test_cmd(schema, react_wrap): + """ + Test cmd reactions (alias for 'local') using both the old and new config schema + """ + tag = f"{schema}_cmd" + chunk = LOW_CHUNKS[tag][0] + client_cache = {"local": Mock()} + client_cache["local"].cmd_async = Mock() + with patch.object(react_wrap, "client_cache", client_cache): + react_wrap.run(chunk) + client_cache["local"].cmd_async.assert_called_with( + *WRAPPER_CALLS[tag]["args"], **WRAPPER_CALLS[tag]["kwargs"] + ) + + +@pytest.mark.parametrize("schema", ["old", "new"]) +def test_caller(schema, react_wrap): + """ + Test caller reactions using both the old and new config schema + """ + tag = f"{schema}_caller" + chunk = LOW_CHUNKS[tag][0] + client_cache = {"caller": Mock()} + client_cache["caller"].cmd = Mock() + with patch.object(react_wrap, "client_cache", client_cache): + react_wrap.run(chunk) + client_cache["caller"].cmd.assert_called_with( + *WRAPPER_CALLS[tag]["args"], **WRAPPER_CALLS[tag]["kwargs"] + ) From 7639074fe5a37b9d9dcf1ac79597317a13579da6 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Tue, 25 Feb 2025 15:27:09 -0700 Subject: [PATCH 082/101] Updated test file --- tests/pytests/unit/utils/test_reactor2.py | 28 ++++++++++------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/tests/pytests/unit/utils/test_reactor2.py b/tests/pytests/unit/utils/test_reactor2.py index 9a588669abd..997859b50fa 100644 --- a/tests/pytests/unit/utils/test_reactor2.py +++ b/tests/pytests/unit/utils/test_reactor2.py @@ -384,45 +384,41 @@ WRAPPER_CALLS = { # FIXTURES # ----------------------------------------------------------------------------- @pytest.fixture(scope="module") -def master_opts(): - """ - In Salt's internal test suite, we often use something like - `AdaptedConfigurationTestCaseMixin.get_temp_config("master")`. - Replace this with however you retrieve your config opts in your own code/tests. - """ +def react_master_opts(master_opts): opts = { # Minimal stand-in for a real master config "file_roots": {"base": []}, "renderer": "jinja|yaml", } + master_opts.update(opts) # Optionally parse the reactor config for convenience reactor_config = salt.utils.yaml.safe_load(REACTOR_CONFIG) - opts.update(reactor_config) - return opts + master_opts.update(reactor_config) + return master_opts @pytest.fixture(scope="module") -def test_reactor(master_opts): +def test_reactor(react_master_opts): """ Create a Reactor instance for testing """ - return reactor.Reactor(master_opts) + return reactor.Reactor(react_master_opts) @pytest.fixture(scope="module") -def reaction_map(master_opts): +def reaction_map(react_master_opts): """ Reaction map from the configured reactor """ - return salt.utils.data.repack_dictlist(master_opts["reactor"]) + return salt.utils.data.repack_dictlist(react_master_opts["reactor"]) @pytest.fixture(scope="module") -def render_pipe(master_opts): +def render_pipe(react_master_opts): """ Render pipeline """ - renderers = salt.loader.render(master_opts, {}) + renderers = salt.loader.render(react_master_opts, {}) return [(renderers[x], "") for x in ("jinja", "yaml")] @@ -472,11 +468,11 @@ def test_list_reactors(test_reactor, reaction_map): # FIXTURE for Reactor Wrap # ----------------------------------------------------------------------------- @pytest.fixture(scope="module") -def react_wrap(master_opts): +def react_wrap(react_master_opts): """ Create a ReactWrap instance """ - return reactor.ReactWrap(master_opts) + return reactor.ReactWrap(react_master_opts) # ----------------------------------------------------------------------------- From 642965436390eb1696f1c1f3ae339e0e7c612cc2 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Wed, 26 Feb 2025 11:14:47 -0700 Subject: [PATCH 083/101] Updating test --- tests/pytests/unit/utils/test_reactor2.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/pytests/unit/utils/test_reactor2.py b/tests/pytests/unit/utils/test_reactor2.py index 997859b50fa..f4e40de33cf 100644 --- a/tests/pytests/unit/utils/test_reactor2.py +++ b/tests/pytests/unit/utils/test_reactor2.py @@ -383,7 +383,7 @@ WRAPPER_CALLS = { # ----------------------------------------------------------------------------- # FIXTURES # ----------------------------------------------------------------------------- -@pytest.fixture(scope="module") +@pytest.fixture def react_master_opts(master_opts): opts = { # Minimal stand-in for a real master config @@ -397,7 +397,7 @@ def react_master_opts(master_opts): return master_opts -@pytest.fixture(scope="module") +@pytest.fixture def test_reactor(react_master_opts): """ Create a Reactor instance for testing @@ -405,7 +405,7 @@ def test_reactor(react_master_opts): return reactor.Reactor(react_master_opts) -@pytest.fixture(scope="module") +@pytest.fixture def reaction_map(react_master_opts): """ Reaction map from the configured reactor @@ -413,7 +413,7 @@ def reaction_map(react_master_opts): return salt.utils.data.repack_dictlist(react_master_opts["reactor"]) -@pytest.fixture(scope="module") +@pytest.fixture def render_pipe(react_master_opts): """ Render pipeline @@ -467,7 +467,7 @@ def test_list_reactors(test_reactor, reaction_map): # ----------------------------------------------------------------------------- # FIXTURE for Reactor Wrap # ----------------------------------------------------------------------------- -@pytest.fixture(scope="module") +@pytest.fixture def react_wrap(react_master_opts): """ Create a ReactWrap instance From 0b7da42cd7fb35d496002ba0c6039fadae2a4db8 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Wed, 26 Feb 2025 14:34:00 -0700 Subject: [PATCH 084/101] Updated test for client_cache --- tests/pytests/unit/utils/test_reactor2.py | 24 + tests/unit/utils/test_reactor.py | 551 ---------------------- 2 files changed, 24 insertions(+), 551 deletions(-) delete mode 100644 tests/unit/utils/test_reactor.py diff --git a/tests/pytests/unit/utils/test_reactor2.py b/tests/pytests/unit/utils/test_reactor2.py index f4e40de33cf..7e98024d8e8 100644 --- a/tests/pytests/unit/utils/test_reactor2.py +++ b/tests/pytests/unit/utils/test_reactor2.py @@ -558,3 +558,27 @@ def test_caller(schema, react_wrap): client_cache["caller"].cmd.assert_called_with( *WRAPPER_CALLS[tag]["args"], **WRAPPER_CALLS[tag]["kwargs"] ) + + +@pytest.mark.parametrize("file_client", ["runner", "wheel", "local", "caller"]) +def test_client_cache_missing_key(file_client, react_wrap): + """ + Test client_cache file_client missing, gets repopulated + """ + client_cache = {} + tag = f"new_{file_client}" + chunk = LOW_CHUNKS[tag][0] + thread_pool = Mock() + thread_pool.fire_async = Mock() + with patch.object(react_wrap, "client_cache", client_cache): + with patch.object(react_wrap, "pool", thread_pool): + react_wrap.run(chunk) + thread_pool.fire_async.assert_called_with( + react_wrap.client_cache[file_client].low, + args=WRAPPER_CALLS[tag], + ) + + +## DGM client_cache[file_client].cmd.assert_called_with( +## DGM *WRAPPER_CALLS[tag]["args"], **WRAPPER_CALLS[tag]["kwargs"] +## DGM ) diff --git a/tests/unit/utils/test_reactor.py b/tests/unit/utils/test_reactor.py deleted file mode 100644 index 4123bdfb9b2..00000000000 --- a/tests/unit/utils/test_reactor.py +++ /dev/null @@ -1,551 +0,0 @@ -import codecs -import glob -import logging -import os -import textwrap - -import salt.loader -import salt.utils.data -import salt.utils.files -import salt.utils.reactor as reactor -import salt.utils.yaml -from tests.support.mixins import AdaptedConfigurationTestCaseMixin -from tests.support.mock import MagicMock, Mock, mock_open, patch -from tests.support.unit import TestCase - -REACTOR_CONFIG = """\ -reactor: - - old_runner: - - /srv/reactor/old_runner.sls - - old_wheel: - - /srv/reactor/old_wheel.sls - - old_local: - - /srv/reactor/old_local.sls - - old_cmd: - - /srv/reactor/old_cmd.sls - - old_caller: - - /srv/reactor/old_caller.sls - - new_runner: - - /srv/reactor/new_runner.sls - - new_wheel: - - /srv/reactor/new_wheel.sls - - new_local: - - /srv/reactor/new_local.sls - - new_cmd: - - /srv/reactor/new_cmd.sls - - new_caller: - - /srv/reactor/new_caller.sls -""" - -REACTOR_DATA = { - "runner": {"data": {"message": "This is an error"}}, - "wheel": {"data": {"id": "foo"}}, - "local": {"data": {"pkg": "zsh", "repo": "updates"}}, - "cmd": {"data": {"pkg": "zsh", "repo": "updates"}}, - "caller": {"data": {"path": "/tmp/foo"}}, -} - -SLS = { - "/srv/reactor/old_runner.sls": textwrap.dedent( - """\ - raise_error: - runner.error.error: - - name: Exception - - message: {{ data['data']['message'] }} - """ - ), - "/srv/reactor/old_wheel.sls": textwrap.dedent( - """\ - remove_key: - wheel.key.delete: - - match: {{ data['data']['id'] }} - """ - ), - "/srv/reactor/old_local.sls": textwrap.dedent( - """\ - install_zsh: - local.state.single: - - tgt: test - - arg: - - pkg.installed - - {{ data['data']['pkg'] }} - - kwarg: - fromrepo: {{ data['data']['repo'] }} - """ - ), - "/srv/reactor/old_cmd.sls": textwrap.dedent( - """\ - install_zsh: - cmd.state.single: - - tgt: test - - arg: - - pkg.installed - - {{ data['data']['pkg'] }} - - kwarg: - fromrepo: {{ data['data']['repo'] }} - """ - ), - "/srv/reactor/old_caller.sls": textwrap.dedent( - """\ - touch_file: - caller.file.touch: - - args: - - {{ data['data']['path'] }} - """ - ), - "/srv/reactor/new_runner.sls": textwrap.dedent( - """\ - raise_error: - runner.error.error: - - args: - - name: Exception - - message: {{ data['data']['message'] }} - """ - ), - "/srv/reactor/new_wheel.sls": textwrap.dedent( - """\ - remove_key: - wheel.key.delete: - - args: - - match: {{ data['data']['id'] }} - """ - ), - "/srv/reactor/new_local.sls": textwrap.dedent( - """\ - install_zsh: - local.state.single: - - tgt: test - - args: - - fun: pkg.installed - - name: {{ data['data']['pkg'] }} - - fromrepo: {{ data['data']['repo'] }} - """ - ), - "/srv/reactor/new_cmd.sls": textwrap.dedent( - """\ - install_zsh: - cmd.state.single: - - tgt: test - - args: - - fun: pkg.installed - - name: {{ data['data']['pkg'] }} - - fromrepo: {{ data['data']['repo'] }} - """ - ), - "/srv/reactor/new_caller.sls": textwrap.dedent( - """\ - touch_file: - caller.file.touch: - - args: - - name: {{ data['data']['path'] }} - """ - ), -} - -LOW_CHUNKS = { - # Note that the "name" value in the chunk has been overwritten by the - # "name" argument in the SLS. This is one reason why the new schema was - # needed. - "old_runner": [ - { - "state": "runner", - "__id__": "raise_error", - "__sls__": "/srv/reactor/old_runner.sls", - "order": 1, - "fun": "error.error", - "name": "Exception", - "message": "This is an error", - } - ], - "old_wheel": [ - { - "state": "wheel", - "__id__": "remove_key", - "name": "remove_key", - "__sls__": "/srv/reactor/old_wheel.sls", - "order": 1, - "fun": "key.delete", - "match": "foo", - } - ], - "old_local": [ - { - "state": "local", - "__id__": "install_zsh", - "name": "install_zsh", - "__sls__": "/srv/reactor/old_local.sls", - "order": 1, - "tgt": "test", - "fun": "state.single", - "arg": ["pkg.installed", "zsh"], - "kwarg": {"fromrepo": "updates"}, - } - ], - "old_cmd": [ - { - "state": "local", # 'cmd' should be aliased to 'local' - "__id__": "install_zsh", - "name": "install_zsh", - "__sls__": "/srv/reactor/old_cmd.sls", - "order": 1, - "tgt": "test", - "fun": "state.single", - "arg": ["pkg.installed", "zsh"], - "kwarg": {"fromrepo": "updates"}, - } - ], - "old_caller": [ - { - "state": "caller", - "__id__": "touch_file", - "name": "touch_file", - "__sls__": "/srv/reactor/old_caller.sls", - "order": 1, - "fun": "file.touch", - "args": ["/tmp/foo"], - } - ], - "new_runner": [ - { - "state": "runner", - "__id__": "raise_error", - "name": "raise_error", - "__sls__": "/srv/reactor/new_runner.sls", - "order": 1, - "fun": "error.error", - "args": [{"name": "Exception"}, {"message": "This is an error"}], - } - ], - "new_wheel": [ - { - "state": "wheel", - "__id__": "remove_key", - "name": "remove_key", - "__sls__": "/srv/reactor/new_wheel.sls", - "order": 1, - "fun": "key.delete", - "args": [{"match": "foo"}], - } - ], - "new_local": [ - { - "state": "local", - "__id__": "install_zsh", - "name": "install_zsh", - "__sls__": "/srv/reactor/new_local.sls", - "order": 1, - "tgt": "test", - "fun": "state.single", - "args": [ - {"fun": "pkg.installed"}, - {"name": "zsh"}, - {"fromrepo": "updates"}, - ], - } - ], - "new_cmd": [ - { - "state": "local", - "__id__": "install_zsh", - "name": "install_zsh", - "__sls__": "/srv/reactor/new_cmd.sls", - "order": 1, - "tgt": "test", - "fun": "state.single", - "args": [ - {"fun": "pkg.installed"}, - {"name": "zsh"}, - {"fromrepo": "updates"}, - ], - } - ], - "new_caller": [ - { - "state": "caller", - "__id__": "touch_file", - "name": "touch_file", - "__sls__": "/srv/reactor/new_caller.sls", - "order": 1, - "fun": "file.touch", - "args": [{"name": "/tmp/foo"}], - } - ], -} - -WRAPPER_CALLS = { - "old_runner": ( - "error.error", - { - "__state__": "runner", - "__id__": "raise_error", - "__sls__": "/srv/reactor/old_runner.sls", - "__user__": "Reactor", - "order": 1, - "arg": [], - "kwarg": {"name": "Exception", "message": "This is an error"}, - "name": "Exception", - "message": "This is an error", - }, - ), - "old_wheel": ( - "key.delete", - { - "__state__": "wheel", - "__id__": "remove_key", - "name": "remove_key", - "__sls__": "/srv/reactor/old_wheel.sls", - "order": 1, - "__user__": "Reactor", - "arg": ["foo"], - "kwarg": {}, - "match": "foo", - }, - ), - "old_local": { - "args": ("test", "state.single"), - "kwargs": { - "state": "local", - "__id__": "install_zsh", - "name": "install_zsh", - "__sls__": "/srv/reactor/old_local.sls", - "order": 1, - "arg": ["pkg.installed", "zsh"], - "kwarg": {"fromrepo": "updates"}, - }, - }, - "old_cmd": { - "args": ("test", "state.single"), - "kwargs": { - "state": "local", - "__id__": "install_zsh", - "name": "install_zsh", - "__sls__": "/srv/reactor/old_cmd.sls", - "order": 1, - "arg": ["pkg.installed", "zsh"], - "kwarg": {"fromrepo": "updates"}, - }, - }, - "old_caller": {"args": ("file.touch", "/tmp/foo"), "kwargs": {}}, - "new_runner": ( - "error.error", - { - "__state__": "runner", - "__id__": "raise_error", - "name": "raise_error", - "__sls__": "/srv/reactor/new_runner.sls", - "__user__": "Reactor", - "order": 1, - "arg": (), - "kwarg": {"name": "Exception", "message": "This is an error"}, - }, - ), - "new_wheel": ( - "key.delete", - { - "__state__": "wheel", - "__id__": "remove_key", - "name": "remove_key", - "__sls__": "/srv/reactor/new_wheel.sls", - "order": 1, - "__user__": "Reactor", - "arg": (), - "kwarg": {"match": "foo"}, - }, - ), - "new_local": { - "args": ("test", "state.single"), - "kwargs": { - "state": "local", - "__id__": "install_zsh", - "name": "install_zsh", - "__sls__": "/srv/reactor/new_local.sls", - "order": 1, - "arg": (), - "kwarg": {"fun": "pkg.installed", "name": "zsh", "fromrepo": "updates"}, - }, - }, - "new_cmd": { - "args": ("test", "state.single"), - "kwargs": { - "state": "local", - "__id__": "install_zsh", - "name": "install_zsh", - "__sls__": "/srv/reactor/new_cmd.sls", - "order": 1, - "arg": (), - "kwarg": {"fun": "pkg.installed", "name": "zsh", "fromrepo": "updates"}, - }, - }, - "new_caller": {"args": ("file.touch",), "kwargs": {"name": "/tmp/foo"}}, -} - -log = logging.getLogger(__name__) - - -class TestReactor(TestCase, AdaptedConfigurationTestCaseMixin): - """ - Tests for constructing the low chunks to be executed via the Reactor - """ - - @classmethod - def setUpClass(cls): - """ - Load the reactor config for mocking - """ - cls.opts = cls.get_temp_config("master") - reactor_config = salt.utils.yaml.safe_load(REACTOR_CONFIG) - cls.opts.update(reactor_config) - cls.reactor = reactor.Reactor(cls.opts) - cls.reaction_map = salt.utils.data.repack_dictlist(reactor_config["reactor"]) - renderers = salt.loader.render(cls.opts, {}) - cls.render_pipe = [(renderers[x], "") for x in ("jinja", "yaml")] - - @classmethod - def tearDownClass(cls): - del cls.opts - del cls.reactor - del cls.render_pipe - - def test_list_reactors(self): - """ - Ensure that list_reactors() returns the correct list of reactor SLS - files for each tag. - """ - for schema in ("old", "new"): - for rtype in REACTOR_DATA: - tag = "_".join((schema, rtype)) - self.assertEqual( - self.reactor.list_reactors(tag), self.reaction_map[tag] - ) - - def test_reactions(self): - """ - Ensure that the correct reactions are built from the configured SLS - files and tag data. - """ - for schema in ("old", "new"): - for rtype in REACTOR_DATA: - tag = "_".join((schema, rtype)) - log.debug("test_reactions: processing %s", tag) - reactors = self.reactor.list_reactors(tag) - log.debug("test_reactions: %s reactors: %s", tag, reactors) - # No globbing in our example SLS, and the files don't actually - # exist, so mock glob.glob to just return back the path passed - # to it. - with patch.object(glob, "glob", MagicMock(side_effect=lambda x: [x])): - # The below four mocks are all so that - # salt.template.compile_template() will read the templates - # we've mocked up in the SLS global variable above. - with patch.object(os.path, "isfile", MagicMock(return_value=True)): - with patch.object( - salt.utils.files, "is_empty", MagicMock(return_value=False) - ): - with patch.object( - codecs, "open", mock_open(read_data=SLS[reactors[0]]) - ): - with patch.object( - salt.template, - "template_shebang", - MagicMock(return_value=self.render_pipe), - ): - reactions = self.reactor.reactions( - tag, - REACTOR_DATA[rtype], - reactors, - ) - log.debug( - "test_reactions: %s reactions: %s", - tag, - reactions, - ) - self.assertEqual(reactions, LOW_CHUNKS[tag]) - - -class TestReactWrap(TestCase, AdaptedConfigurationTestCaseMixin): - """ - Tests that we are formulating the wrapper calls properly - """ - - @classmethod - def setUpClass(cls): - cls.wrap = reactor.ReactWrap(cls.get_temp_config("master")) - - @classmethod - def tearDownClass(cls): - del cls.wrap - - def test_runner(self): - """ - Test runner reactions using both the old and new config schema - """ - for schema in ("old", "new"): - tag = "_".join((schema, "runner")) - chunk = LOW_CHUNKS[tag][0] - thread_pool = Mock() - thread_pool.fire_async = Mock() - with patch.object(self.wrap, "pool", thread_pool): - self.wrap.run(chunk) - thread_pool.fire_async.assert_called_with( - self.wrap.client_cache["runner"].low, args=WRAPPER_CALLS[tag] - ) - - def test_wheel(self): - """ - Test wheel reactions using both the old and new config schema - """ - for schema in ("old", "new"): - tag = "_".join((schema, "wheel")) - chunk = LOW_CHUNKS[tag][0] - thread_pool = Mock() - thread_pool.fire_async = Mock() - with patch.object(self.wrap, "pool", thread_pool): - self.wrap.run(chunk) - thread_pool.fire_async.assert_called_with( - self.wrap.client_cache["wheel"].low, args=WRAPPER_CALLS[tag] - ) - - def test_local(self): - """ - Test local reactions using both the old and new config schema - """ - for schema in ("old", "new"): - tag = "_".join((schema, "local")) - chunk = LOW_CHUNKS[tag][0] - client_cache = {"local": Mock()} - client_cache["local"].cmd_async = Mock() - with patch.object(self.wrap, "client_cache", client_cache): - self.wrap.run(chunk) - client_cache["local"].cmd_async.assert_called_with( - *WRAPPER_CALLS[tag]["args"], **WRAPPER_CALLS[tag]["kwargs"] - ) - - def test_cmd(self): - """ - Test cmd reactions (alias for 'local') using both the old and new - config schema - """ - for schema in ("old", "new"): - tag = "_".join((schema, "cmd")) - chunk = LOW_CHUNKS[tag][0] - client_cache = {"local": Mock()} - client_cache["local"].cmd_async = Mock() - with patch.object(self.wrap, "client_cache", client_cache): - self.wrap.run(chunk) - client_cache["local"].cmd_async.assert_called_with( - *WRAPPER_CALLS[tag]["args"], **WRAPPER_CALLS[tag]["kwargs"] - ) - - def test_caller(self): - """ - Test caller reactions using both the old and new config schema - """ - for schema in ("old", "new"): - tag = "_".join((schema, "caller")) - chunk = LOW_CHUNKS[tag][0] - client_cache = {"caller": Mock()} - client_cache["caller"].cmd = Mock() - with patch.object(self.wrap, "client_cache", client_cache): - self.wrap.run(chunk) - client_cache["caller"].cmd.assert_called_with( - *WRAPPER_CALLS[tag]["args"], **WRAPPER_CALLS[tag]["kwargs"] - ) From 61392d045994d3b7d22379fe77caf3cacb5e5f67 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Mon, 3 Mar 2025 13:49:19 -0700 Subject: [PATCH 085/101] Updated debugging --- salt/utils/reactor.py | 32 +++++++++++++++++++++++ tests/pytests/unit/utils/test_reactor2.py | 4 +++ 2 files changed, 36 insertions(+) diff --git a/salt/utils/reactor.py b/salt/utils/reactor.py index cdfc927a35d..c151d77a9cf 100644 --- a/salt/utils/reactor.py +++ b/salt/utils/reactor.py @@ -465,9 +465,17 @@ class ReactWrap: Wrap RunnerClient for executing :ref:`runner modules ` """ # pylint: disable=unsupported-membership-test,unsupported-assignment-operation + print( + f"DGM class ReactWrap runner, client_cache '{self.client_cache}', fun '{fun}', kwargs '{kwargs}'", + flush=True, + ) if "runner" not in self.client_cache: log.debug("reactor edge case: re-populating client_cache for runner") low = {"state": "runner"} + print( + f"DGM class ReactWrap runner not in client_cache, low '{low}'", + flush=True, + ) self.populate_client_cache(low) return self.pool.fire_async(self.client_cache["runner"].low, args=(fun, kwargs)) @@ -476,9 +484,17 @@ class ReactWrap: Wrap Wheel to enable executing :ref:`wheel modules ` """ # pylint: disable=unsupported-membership-test,unsupported-assignment-operation + print( + f"DGM class ReactWrap wheel, client_cache '{self.client_cache}', fun '{fun}', kwargs '{kwargs}'", + flush=True, + ) if "wheel" not in self.client_cache: log.debug("reactor edge case: re-populating client_cache for wheel") low = {"state": "wheel"} + print( + f"DGM class ReactWrap wheel not in client_cache, low '{low}'", + flush=True, + ) self.populate_client_cache(low) return self.pool.fire_async(self.client_cache["wheel"].low, args=(fun, kwargs)) @@ -487,9 +503,17 @@ class ReactWrap: Wrap LocalClient for running :ref:`execution modules ` """ # pylint: disable=unsupported-membership-test,unsupported-assignment-operation + print( + f"DGM class ReactWrap local, client_cache '{self.client_cache}', fun '{fun}', kwargs '{kwargs}'", + flush=True, + ) if "local" not in self.client_cache: log.debug("reactor edge case: re-populating client_cache for local") low = {"state": "local"} + print( + f"DGM class ReactWrap local not in client_cache, low '{low}'", + flush=True, + ) self.populate_client_cache(low) self.client_cache["local"].cmd_async(tgt, fun, **kwargs) @@ -498,8 +522,16 @@ class ReactWrap: Wrap LocalCaller to execute remote exec functions locally on the Minion """ # pylint: disable=unsupported-membership-test,unsupported-assignment-operation + print( + f"DGM class ReactWrap caller, client_cache '{self.client_cache}', fun '{fun}', kwargs '{kwargs}'", + flush=True, + ) if "caller" not in self.client_cache: log.debug("reactor edge case: re-populating client_cache for caller") low = {"state": "caller"} + print( + f"DGM class ReactWrap caller not in client_cache, low '{low}'", + flush=True, + ) self.populate_client_cache(low) self.client_cache["caller"].cmd(fun, *kwargs["arg"], **kwargs["kwarg"]) diff --git a/tests/pytests/unit/utils/test_reactor2.py b/tests/pytests/unit/utils/test_reactor2.py index 7e98024d8e8..c21b7cf9859 100644 --- a/tests/pytests/unit/utils/test_reactor2.py +++ b/tests/pytests/unit/utils/test_reactor2.py @@ -568,6 +568,10 @@ def test_client_cache_missing_key(file_client, react_wrap): client_cache = {} tag = f"new_{file_client}" chunk = LOW_CHUNKS[tag][0] + print( + f"DGM test_client_cache_missing_key, file_client '{file_client}', tag '{tag}', chunk '{chunk}'", + flush=True, + ) thread_pool = Mock() thread_pool.fire_async = Mock() with patch.object(react_wrap, "client_cache", client_cache): From 41fb26f49d28c5c9f1f83544322f9e8431a9cb94 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Mon, 3 Mar 2025 15:27:14 -0700 Subject: [PATCH 086/101] debugging test --- tests/pytests/unit/utils/test_reactor2.py | 25 +++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/tests/pytests/unit/utils/test_reactor2.py b/tests/pytests/unit/utils/test_reactor2.py index c21b7cf9859..aea88ada30d 100644 --- a/tests/pytests/unit/utils/test_reactor2.py +++ b/tests/pytests/unit/utils/test_reactor2.py @@ -560,7 +560,8 @@ def test_caller(schema, react_wrap): ) -@pytest.mark.parametrize("file_client", ["runner", "wheel", "local", "caller"]) +## DGM @pytest.mark.parametrize("file_client", ["runner", "wheel", "local", "caller"]) +@pytest.mark.parametrize("file_client", ["runner"]) def test_client_cache_missing_key(file_client, react_wrap): """ Test client_cache file_client missing, gets repopulated @@ -575,14 +576,26 @@ def test_client_cache_missing_key(file_client, react_wrap): thread_pool = Mock() thread_pool.fire_async = Mock() with patch.object(react_wrap, "client_cache", client_cache): + print( + f"DGM test_client_cache_missing_key patch client_cache, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", + flush=True, + ) with patch.object(react_wrap, "pool", thread_pool): react_wrap.run(chunk) + print( + f"DGM test_client_cache_missing_key patch pool, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", + flush=True, + ) + del react_wrap.client_cache[f"{file_client}"] + print( + f"DGM test_client_cache_missing_key post del key, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", + flush=True, + ) + thread_pool.fire_async.assert_called_with( react_wrap.client_cache[file_client].low, args=WRAPPER_CALLS[tag], ) - - -## DGM client_cache[file_client].cmd.assert_called_with( -## DGM *WRAPPER_CALLS[tag]["args"], **WRAPPER_CALLS[tag]["kwargs"] -## DGM ) + client_cache[file_client].cmd.assert_called_with( + *WRAPPER_CALLS[tag]["args"], **WRAPPER_CALLS[tag]["kwargs"] + ) From cccbe9eb5e1691f06e9cc4cfced4456c0956ddae Mon Sep 17 00:00:00 2001 From: David Murphy Date: Tue, 4 Mar 2025 09:45:18 -0700 Subject: [PATCH 087/101] Debugging test further --- tests/pytests/unit/utils/test_reactor2.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tests/pytests/unit/utils/test_reactor2.py b/tests/pytests/unit/utils/test_reactor2.py index aea88ada30d..b421755eb6a 100644 --- a/tests/pytests/unit/utils/test_reactor2.py +++ b/tests/pytests/unit/utils/test_reactor2.py @@ -581,14 +581,19 @@ def test_client_cache_missing_key(file_client, react_wrap): flush=True, ) with patch.object(react_wrap, "pool", thread_pool): - react_wrap.run(chunk) print( f"DGM test_client_cache_missing_key patch pool, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", flush=True, ) - del react_wrap.client_cache[f"{file_client}"] + del react_wrap.client_cache[f"{file_client}"] + print( + f"DGM test_client_cache_missing_key post del key, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", + flush=True, + ) + react_wrap.run(chunk) + print( - f"DGM test_client_cache_missing_key post del key, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", + f"DGM test_client_cache_missing_key post patch, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", flush=True, ) From b2994a1538db80486cbeb575827855a5c75d74a0 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Tue, 4 Mar 2025 12:59:36 -0700 Subject: [PATCH 088/101] more debugging tests --- salt/utils/reactor.py | 9 +++++++++ tests/pytests/unit/utils/test_reactor2.py | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/salt/utils/reactor.py b/salt/utils/reactor.py index c151d77a9cf..03bc21c4597 100644 --- a/salt/utils/reactor.py +++ b/salt/utils/reactor.py @@ -6,6 +6,7 @@ import fnmatch import glob import logging import os +import traceback import salt.client import salt.defaults.exitcodes @@ -341,7 +342,12 @@ class ReactWrap: """ Execute a reaction by invoking the proper wrapper func """ + print(f"DGM class ReactWrap entry run, low '{low}'", flush=True) self.populate_client_cache(low) + print( + f"DGM class ReactWrap run, self.client_cache '{self.client_cache}'", + flush=True, + ) try: l_fun = getattr(self, low["state"]) except AttributeError: @@ -464,11 +470,14 @@ class ReactWrap: """ Wrap RunnerClient for executing :ref:`runner modules ` """ + stk_summary = traceback.format_stack() + print(f"DGM class ReactWrap runner entry, backtrace '{stk_summary}'") # pylint: disable=unsupported-membership-test,unsupported-assignment-operation print( f"DGM class ReactWrap runner, client_cache '{self.client_cache}', fun '{fun}', kwargs '{kwargs}'", flush=True, ) + if "runner" not in self.client_cache: log.debug("reactor edge case: re-populating client_cache for runner") low = {"state": "runner"} diff --git a/tests/pytests/unit/utils/test_reactor2.py b/tests/pytests/unit/utils/test_reactor2.py index b421755eb6a..25e457088b4 100644 --- a/tests/pytests/unit/utils/test_reactor2.py +++ b/tests/pytests/unit/utils/test_reactor2.py @@ -585,7 +585,7 @@ def test_client_cache_missing_key(file_client, react_wrap): f"DGM test_client_cache_missing_key patch pool, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", flush=True, ) - del react_wrap.client_cache[f"{file_client}"] + ## DGM del react_wrap.client_cache[f"{file_client}"] print( f"DGM test_client_cache_missing_key post del key, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", flush=True, From 08b27c5c7ce115aef99a5e20d0c11979ece7a3a5 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Tue, 4 Mar 2025 15:28:17 -0700 Subject: [PATCH 089/101] updated test --- tests/pytests/unit/utils/test_reactor2.py | 80 ++++++++++++++++------- 1 file changed, 57 insertions(+), 23 deletions(-) diff --git a/tests/pytests/unit/utils/test_reactor2.py b/tests/pytests/unit/utils/test_reactor2.py index 25e457088b4..b6be3b8deaa 100644 --- a/tests/pytests/unit/utils/test_reactor2.py +++ b/tests/pytests/unit/utils/test_reactor2.py @@ -560,6 +560,52 @@ def test_caller(schema, react_wrap): ) +## DGM ## DGM @pytest.mark.parametrize("file_client", ["runner", "wheel", "local", "caller"]) +## DGM @pytest.mark.parametrize("file_client", ["runner"]) +## DGM def test_client_cache_missing_key(file_client, react_wrap): +## DGM """ +## DGM Test client_cache file_client missing, gets repopulated +## DGM """ +## DGM client_cache = {} +## DGM tag = f"new_{file_client}" +## DGM chunk = LOW_CHUNKS[tag][0] +## DGM print( +## DGM f"DGM test_client_cache_missing_key, file_client '{file_client}', tag '{tag}', chunk '{chunk}'", +## DGM flush=True, +## DGM ) +## DGM thread_pool = Mock() +## DGM thread_pool.fire_async = Mock() +## DGM with patch.object(react_wrap, "client_cache", client_cache): +## DGM print( +## DGM f"DGM test_client_cache_missing_key patch client_cache, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", +## DGM flush=True, +## DGM ) +## DGM with patch.object(react_wrap, "pool", thread_pool): +## DGM print( +## DGM f"DGM test_client_cache_missing_key patch pool, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", +## DGM flush=True, +## DGM ) +## DGM ## DGM del react_wrap.client_cache[f"{file_client}"] +## DGM print( +## DGM f"DGM test_client_cache_missing_key post del key, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", +## DGM flush=True, +## DGM ) +## DGM react_wrap.run(chunk) +## DGM +## DGM print( +## DGM f"DGM test_client_cache_missing_key post patch, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", +## DGM flush=True, +## DGM ) +## DGM +## DGM thread_pool.fire_async.assert_called_with( +## DGM react_wrap.client_cache[file_client].low, +## DGM args=WRAPPER_CALLS[tag], +## DGM ) +## DGM client_cache[file_client].cmd.assert_called_with( +## DGM *WRAPPER_CALLS[tag]["args"], **WRAPPER_CALLS[tag]["kwargs"] +## DGM ) + + ## DGM @pytest.mark.parametrize("file_client", ["runner", "wheel", "local", "caller"]) @pytest.mark.parametrize("file_client", ["runner"]) def test_client_cache_missing_key(file_client, react_wrap): @@ -580,27 +626,15 @@ def test_client_cache_missing_key(file_client, react_wrap): f"DGM test_client_cache_missing_key patch client_cache, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", flush=True, ) - with patch.object(react_wrap, "pool", thread_pool): - print( - f"DGM test_client_cache_missing_key patch pool, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", - flush=True, - ) - ## DGM del react_wrap.client_cache[f"{file_client}"] - print( - f"DGM test_client_cache_missing_key post del key, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", - flush=True, - ) - react_wrap.run(chunk) + react_wrap.runner(chunk) + print( + f"DGM test_client_cache_missing_key post runner, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", + flush=True, + ) + dgm_key = react_wrap.client_cache.get(f"{file_client}") - print( - f"DGM test_client_cache_missing_key post patch, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", - flush=True, - ) - - thread_pool.fire_async.assert_called_with( - react_wrap.client_cache[file_client].low, - args=WRAPPER_CALLS[tag], - ) - client_cache[file_client].cmd.assert_called_with( - *WRAPPER_CALLS[tag]["args"], **WRAPPER_CALLS[tag]["kwargs"] - ) + print( + f"DGM test_client_cache_missing_key post get key, file_client '{file_client}', dgm_key '{dgm_key}', react_wrap.client_cache '{react_wrap.client_cache}'", + flush=True, + ) + assert dgm_key == f"{file_client}" From cb39a7d37748ce7005e05b78c73c6d664eda50e1 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Wed, 5 Mar 2025 10:33:01 -0700 Subject: [PATCH 090/101] Debugging test --- tests/pytests/unit/utils/test_reactor2.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/pytests/unit/utils/test_reactor2.py b/tests/pytests/unit/utils/test_reactor2.py index b6be3b8deaa..6b66932afec 100644 --- a/tests/pytests/unit/utils/test_reactor2.py +++ b/tests/pytests/unit/utils/test_reactor2.py @@ -631,7 +631,18 @@ def test_client_cache_missing_key(file_client, react_wrap): f"DGM test_client_cache_missing_key post runner, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", flush=True, ) - dgm_key = react_wrap.client_cache.get(f"{file_client}") + ## DGM dgm_key = react_wrap.client_cache.get(f"{file_client}") + ## DGM dgm_key = [key for key in react_wrap.client_cache.keys() if key == f"{file_client}"] + ## DGM dgm_key = None + ## DGM dgm_key = [key if key == f"{file_client}" for key in react_wrap.client_cache.keys()] + dgm_keys = None + for key in react_wrap.client_cache.keys(): + if key == f"{file_client}": + dgm_key = key + print( + f"DGM test_client_cache_missing_key check key, file_client '{file_client}', dgm_key '{dgm_key}', react_wrap.client_cache.keys '{react_wrap.client_cache.keys()}'", + flush=True, + ) print( f"DGM test_client_cache_missing_key post get key, file_client '{file_client}', dgm_key '{dgm_key}', react_wrap.client_cache '{react_wrap.client_cache}'", From fa295250afb3b07c8da827da5d45e73accfccab0 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Wed, 5 Mar 2025 11:37:16 -0700 Subject: [PATCH 091/101] Updated tests and removed debugging statements --- salt/utils/reactor.py | 41 ------------ tests/pytests/unit/utils/test_reactor2.py | 81 ++--------------------- 2 files changed, 4 insertions(+), 118 deletions(-) diff --git a/salt/utils/reactor.py b/salt/utils/reactor.py index 03bc21c4597..cdfc927a35d 100644 --- a/salt/utils/reactor.py +++ b/salt/utils/reactor.py @@ -6,7 +6,6 @@ import fnmatch import glob import logging import os -import traceback import salt.client import salt.defaults.exitcodes @@ -342,12 +341,7 @@ class ReactWrap: """ Execute a reaction by invoking the proper wrapper func """ - print(f"DGM class ReactWrap entry run, low '{low}'", flush=True) self.populate_client_cache(low) - print( - f"DGM class ReactWrap run, self.client_cache '{self.client_cache}'", - flush=True, - ) try: l_fun = getattr(self, low["state"]) except AttributeError: @@ -470,21 +464,10 @@ class ReactWrap: """ Wrap RunnerClient for executing :ref:`runner modules ` """ - stk_summary = traceback.format_stack() - print(f"DGM class ReactWrap runner entry, backtrace '{stk_summary}'") # pylint: disable=unsupported-membership-test,unsupported-assignment-operation - print( - f"DGM class ReactWrap runner, client_cache '{self.client_cache}', fun '{fun}', kwargs '{kwargs}'", - flush=True, - ) - if "runner" not in self.client_cache: log.debug("reactor edge case: re-populating client_cache for runner") low = {"state": "runner"} - print( - f"DGM class ReactWrap runner not in client_cache, low '{low}'", - flush=True, - ) self.populate_client_cache(low) return self.pool.fire_async(self.client_cache["runner"].low, args=(fun, kwargs)) @@ -493,17 +476,9 @@ class ReactWrap: Wrap Wheel to enable executing :ref:`wheel modules ` """ # pylint: disable=unsupported-membership-test,unsupported-assignment-operation - print( - f"DGM class ReactWrap wheel, client_cache '{self.client_cache}', fun '{fun}', kwargs '{kwargs}'", - flush=True, - ) if "wheel" not in self.client_cache: log.debug("reactor edge case: re-populating client_cache for wheel") low = {"state": "wheel"} - print( - f"DGM class ReactWrap wheel not in client_cache, low '{low}'", - flush=True, - ) self.populate_client_cache(low) return self.pool.fire_async(self.client_cache["wheel"].low, args=(fun, kwargs)) @@ -512,17 +487,9 @@ class ReactWrap: Wrap LocalClient for running :ref:`execution modules ` """ # pylint: disable=unsupported-membership-test,unsupported-assignment-operation - print( - f"DGM class ReactWrap local, client_cache '{self.client_cache}', fun '{fun}', kwargs '{kwargs}'", - flush=True, - ) if "local" not in self.client_cache: log.debug("reactor edge case: re-populating client_cache for local") low = {"state": "local"} - print( - f"DGM class ReactWrap local not in client_cache, low '{low}'", - flush=True, - ) self.populate_client_cache(low) self.client_cache["local"].cmd_async(tgt, fun, **kwargs) @@ -531,16 +498,8 @@ class ReactWrap: Wrap LocalCaller to execute remote exec functions locally on the Minion """ # pylint: disable=unsupported-membership-test,unsupported-assignment-operation - print( - f"DGM class ReactWrap caller, client_cache '{self.client_cache}', fun '{fun}', kwargs '{kwargs}'", - flush=True, - ) if "caller" not in self.client_cache: log.debug("reactor edge case: re-populating client_cache for caller") low = {"state": "caller"} - print( - f"DGM class ReactWrap caller not in client_cache, low '{low}'", - flush=True, - ) self.populate_client_cache(low) self.client_cache["caller"].cmd(fun, *kwargs["arg"], **kwargs["kwarg"]) diff --git a/tests/pytests/unit/utils/test_reactor2.py b/tests/pytests/unit/utils/test_reactor2.py index 6b66932afec..181fe9b9ad9 100644 --- a/tests/pytests/unit/utils/test_reactor2.py +++ b/tests/pytests/unit/utils/test_reactor2.py @@ -560,54 +560,7 @@ def test_caller(schema, react_wrap): ) -## DGM ## DGM @pytest.mark.parametrize("file_client", ["runner", "wheel", "local", "caller"]) -## DGM @pytest.mark.parametrize("file_client", ["runner"]) -## DGM def test_client_cache_missing_key(file_client, react_wrap): -## DGM """ -## DGM Test client_cache file_client missing, gets repopulated -## DGM """ -## DGM client_cache = {} -## DGM tag = f"new_{file_client}" -## DGM chunk = LOW_CHUNKS[tag][0] -## DGM print( -## DGM f"DGM test_client_cache_missing_key, file_client '{file_client}', tag '{tag}', chunk '{chunk}'", -## DGM flush=True, -## DGM ) -## DGM thread_pool = Mock() -## DGM thread_pool.fire_async = Mock() -## DGM with patch.object(react_wrap, "client_cache", client_cache): -## DGM print( -## DGM f"DGM test_client_cache_missing_key patch client_cache, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", -## DGM flush=True, -## DGM ) -## DGM with patch.object(react_wrap, "pool", thread_pool): -## DGM print( -## DGM f"DGM test_client_cache_missing_key patch pool, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", -## DGM flush=True, -## DGM ) -## DGM ## DGM del react_wrap.client_cache[f"{file_client}"] -## DGM print( -## DGM f"DGM test_client_cache_missing_key post del key, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", -## DGM flush=True, -## DGM ) -## DGM react_wrap.run(chunk) -## DGM -## DGM print( -## DGM f"DGM test_client_cache_missing_key post patch, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", -## DGM flush=True, -## DGM ) -## DGM -## DGM thread_pool.fire_async.assert_called_with( -## DGM react_wrap.client_cache[file_client].low, -## DGM args=WRAPPER_CALLS[tag], -## DGM ) -## DGM client_cache[file_client].cmd.assert_called_with( -## DGM *WRAPPER_CALLS[tag]["args"], **WRAPPER_CALLS[tag]["kwargs"] -## DGM ) - - -## DGM @pytest.mark.parametrize("file_client", ["runner", "wheel", "local", "caller"]) -@pytest.mark.parametrize("file_client", ["runner"]) +@pytest.mark.parametrize("file_client", ["runner", "wheel", "local", "caller"]) def test_client_cache_missing_key(file_client, react_wrap): """ Test client_cache file_client missing, gets repopulated @@ -615,37 +568,11 @@ def test_client_cache_missing_key(file_client, react_wrap): client_cache = {} tag = f"new_{file_client}" chunk = LOW_CHUNKS[tag][0] - print( - f"DGM test_client_cache_missing_key, file_client '{file_client}', tag '{tag}', chunk '{chunk}'", - flush=True, - ) - thread_pool = Mock() - thread_pool.fire_async = Mock() with patch.object(react_wrap, "client_cache", client_cache): - print( - f"DGM test_client_cache_missing_key patch client_cache, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", - flush=True, - ) react_wrap.runner(chunk) - print( - f"DGM test_client_cache_missing_key post runner, file_client '{file_client}', react_wrap.client_cache '{react_wrap.client_cache}'", - flush=True, - ) - ## DGM dgm_key = react_wrap.client_cache.get(f"{file_client}") - ## DGM dgm_key = [key for key in react_wrap.client_cache.keys() if key == f"{file_client}"] - ## DGM dgm_key = None - ## DGM dgm_key = [key if key == f"{file_client}" for key in react_wrap.client_cache.keys()] - dgm_keys = None + file_client_key = None for key in react_wrap.client_cache.keys(): if key == f"{file_client}": - dgm_key = key - print( - f"DGM test_client_cache_missing_key check key, file_client '{file_client}', dgm_key '{dgm_key}', react_wrap.client_cache.keys '{react_wrap.client_cache.keys()}'", - flush=True, - ) + file_client_key = key - print( - f"DGM test_client_cache_missing_key post get key, file_client '{file_client}', dgm_key '{dgm_key}', react_wrap.client_cache '{react_wrap.client_cache}'", - flush=True, - ) - assert dgm_key == f"{file_client}" + assert file_client_key == f"{file_client}" From e355b483feb843e7f1d3bdf1c23d7cd554932ece Mon Sep 17 00:00:00 2001 From: David Murphy Date: Wed, 5 Mar 2025 13:35:33 -0700 Subject: [PATCH 092/101] Corrected new test --- tests/pytests/unit/utils/test_reactor2.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/pytests/unit/utils/test_reactor2.py b/tests/pytests/unit/utils/test_reactor2.py index 181fe9b9ad9..c9c79b45a05 100644 --- a/tests/pytests/unit/utils/test_reactor2.py +++ b/tests/pytests/unit/utils/test_reactor2.py @@ -569,7 +569,17 @@ def test_client_cache_missing_key(file_client, react_wrap): tag = f"new_{file_client}" chunk = LOW_CHUNKS[tag][0] with patch.object(react_wrap, "client_cache", client_cache): - react_wrap.runner(chunk) + if f"{file_client}" == "runner": + react_wrap.runner(chunk) + elif f"{file_client}" == "wheel": + react_wrap.runner(chunk) + elif f"{file_client}" == "local": + react_wrap.local(chunk) + elif f"{file_client}" == "caller": + react_wrap.caller(chunk) + else: + assert f"{file_client}" == "bad parameterization" + file_client_key = None for key in react_wrap.client_cache.keys(): if key == f"{file_client}": From 1f36f7999963ca2fee75f31bbcb47d76dc6e0d76 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Wed, 5 Mar 2025 15:51:46 -0700 Subject: [PATCH 093/101] Refining tests --- tests/pytests/unit/utils/test_reactor2.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/pytests/unit/utils/test_reactor2.py b/tests/pytests/unit/utils/test_reactor2.py index c9c79b45a05..39980c8c981 100644 --- a/tests/pytests/unit/utils/test_reactor2.py +++ b/tests/pytests/unit/utils/test_reactor2.py @@ -572,11 +572,11 @@ def test_client_cache_missing_key(file_client, react_wrap): if f"{file_client}" == "runner": react_wrap.runner(chunk) elif f"{file_client}" == "wheel": - react_wrap.runner(chunk) + react_wrap.wheel(chunk) elif f"{file_client}" == "local": - react_wrap.local(chunk) + react_wrap.local(chunk["fun"], chunk["tgt"]) elif f"{file_client}" == "caller": - react_wrap.caller(chunk) + react_wrap.caller(chunk["fun"], chunk["args"]) else: assert f"{file_client}" == "bad parameterization" From 4115fc6b052cddef583c8c674d800e924d682b81 Mon Sep 17 00:00:00 2001 From: David Murphy Date: Thu, 6 Mar 2025 10:54:26 -0700 Subject: [PATCH 094/101] Refining test --- tests/pytests/unit/utils/test_reactor2.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/pytests/unit/utils/test_reactor2.py b/tests/pytests/unit/utils/test_reactor2.py index 39980c8c981..ee6f6a2f2ca 100644 --- a/tests/pytests/unit/utils/test_reactor2.py +++ b/tests/pytests/unit/utils/test_reactor2.py @@ -560,7 +560,8 @@ def test_caller(schema, react_wrap): ) -@pytest.mark.parametrize("file_client", ["runner", "wheel", "local", "caller"]) +## DGM @pytest.mark.parametrize("file_client", ["runner", "wheel", "local", "caller"]) +@pytest.mark.parametrize("file_client", ["runner", "wheel", "caller"]) def test_client_cache_missing_key(file_client, react_wrap): """ Test client_cache file_client missing, gets repopulated @@ -576,7 +577,8 @@ def test_client_cache_missing_key(file_client, react_wrap): elif f"{file_client}" == "local": react_wrap.local(chunk["fun"], chunk["tgt"]) elif f"{file_client}" == "caller": - react_wrap.caller(chunk["fun"], chunk["args"]) + ## react_wrap.caller(chunk["fun"], chunk["args"]) + react_wrap.caller(chunk["fun"]) else: assert f"{file_client}" == "bad parameterization" From 356f8685718e4f5885d01fa9151ae7f83e7ea7dc Mon Sep 17 00:00:00 2001 From: David Murphy Date: Thu, 6 Mar 2025 11:36:56 -0700 Subject: [PATCH 095/101] Updated test --- tests/pytests/unit/utils/test_reactor2.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/tests/pytests/unit/utils/test_reactor2.py b/tests/pytests/unit/utils/test_reactor2.py index ee6f6a2f2ca..0e1c32d950f 100644 --- a/tests/pytests/unit/utils/test_reactor2.py +++ b/tests/pytests/unit/utils/test_reactor2.py @@ -560,8 +560,7 @@ def test_caller(schema, react_wrap): ) -## DGM @pytest.mark.parametrize("file_client", ["runner", "wheel", "local", "caller"]) -@pytest.mark.parametrize("file_client", ["runner", "wheel", "caller"]) +@pytest.mark.parametrize("file_client", ["runner", "wheel"]) def test_client_cache_missing_key(file_client, react_wrap): """ Test client_cache file_client missing, gets repopulated @@ -574,12 +573,8 @@ def test_client_cache_missing_key(file_client, react_wrap): react_wrap.runner(chunk) elif f"{file_client}" == "wheel": react_wrap.wheel(chunk) - elif f"{file_client}" == "local": - react_wrap.local(chunk["fun"], chunk["tgt"]) - elif f"{file_client}" == "caller": - ## react_wrap.caller(chunk["fun"], chunk["args"]) - react_wrap.caller(chunk["fun"]) else: + # catch need for new check assert f"{file_client}" == "bad parameterization" file_client_key = None From 1c5b03f7be7f597b34ac88e23be545db35c8c496 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Hetk=C3=A4mper?= Date: Thu, 30 May 2024 22:25:04 +0200 Subject: [PATCH 096/101] Add tests for minion config option startup_states --- .../integration/minion/test_startup_states.py | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 tests/pytests/integration/minion/test_startup_states.py diff --git a/tests/pytests/integration/minion/test_startup_states.py b/tests/pytests/integration/minion/test_startup_states.py new file mode 100644 index 00000000000..d3bc2204161 --- /dev/null +++ b/tests/pytests/integration/minion/test_startup_states.py @@ -0,0 +1,114 @@ +"""Test minion configuration option startup_states. + +There are four valid values for this option, which are validated by checking the jobs +executed after minion start. +""" + +import pytest + + +@pytest.fixture +def salt_minion_startup_states_empty_string(salt_master, salt_minion_id): + config_overrides = { + "startup_states": "", + } + factory = salt_master.salt_minion_daemon( + f"{salt_minion_id}-empty-string", + overrides=config_overrides, + ) + with factory.started(): + yield factory + + +@pytest.fixture +def salt_minion_startup_states_highstate(salt_master, salt_minion_id): + config_overrides = { + "startup_states": "highstate", + } + factory = salt_master.salt_minion_daemon( + f"{salt_minion_id}-highstate", + overrides=config_overrides, + ) + with factory.started(): + yield factory + + +@pytest.fixture +def salt_minion_startup_states_sls(salt_master, salt_minion_id): + config_overrides = {"startup_states": "sls", "sls_list": ["example-sls"]} + factory = salt_master.salt_minion_daemon( + f"{salt_minion_id}-sls", + overrides=config_overrides, + ) + with factory.started(): + yield factory + + +@pytest.fixture +def salt_minion_startup_states_top(salt_master, salt_minion_id): + config_overrides = {"startup_states": "top", "top_file": "example-top.sls"} + factory = salt_master.salt_minion_daemon( + f"{salt_minion_id}-top", + overrides=config_overrides, + ) + with factory.started(): + yield factory + + +def test_startup_states_empty_string( + salt_run_cli, salt_minion_startup_states_empty_string +): + # Get jobs for this minion + ret = salt_run_cli.run( + "jobs.list_jobs", f"search_target={salt_minion_startup_states_empty_string.id}" + ) + # Check no job was run + assert len(ret.data.keys()) == 0 + + +def test_startup_states_highstate(salt_run_cli, salt_minion_startup_states_highstate): + with salt_minion_startup_states_highstate: + # Get jobs for this minion + ret = salt_run_cli.run( + "jobs.list_jobs", f"search_target={salt_minion_startup_states_highstate.id}" + ) + # Check there is exactly one job + assert len(ret.data.keys()) == 1 + # Check that job executes state.highstate + job_ret = next(iter(ret.data.values())) + assert "Function" in job_ret + assert job_ret["Function"] == "state.highstate" + assert "Arguments" in job_ret + assert job_ret["Arguments"] == [] + + +def test_startup_states_sls(salt_run_cli, salt_minion_startup_states_sls): + with salt_minion_startup_states_sls: + # Get jobs for this minion + ret = salt_run_cli.run( + "jobs.list_jobs", f"search_target={salt_minion_startup_states_sls.id}" + ) + # Check there is exactly one job + assert len(ret.data.keys()) == 1 + # Check that job executes state.sls + job_ret = next(iter(ret.data.values())) + assert "Function" in job_ret + assert job_ret["Function"] == "state.sls" + assert "Arguments" in job_ret + assert job_ret["Arguments"] == [["example-sls"]] + + +def test_startup_states_top(salt_run_cli, salt_minion_startup_states_top): + with salt_minion_startup_states_top: + # Get jobs for this minion + ret = salt_run_cli.run( + "jobs.list_jobs", f"search_target={salt_minion_startup_states_top.id}" + ) + # Check there is exactly one job + assert len(ret.data.keys()) == 1 + # Check that job executes state.top + job_ret = next(iter(ret.data.values())) + assert "Function" in job_ret + assert job_ret["Function"] == "state.top" + assert "Arguments" in job_ret + assert job_ret["Arguments"] == ["example-top.sls"] From edd5e2e4dd21b4d97f7b5dd27c5159221cd99b47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Hetk=C3=A4mper?= Date: Thu, 30 May 2024 22:27:02 +0200 Subject: [PATCH 097/101] Fix missing await and async def Fixes #66592 --- salt/minion.py | 10 +++++----- tests/pytests/unit/test_minion.py | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/salt/minion.py b/salt/minion.py index 4a1a09c71c0..95fa9e4dc5e 100644 --- a/salt/minion.py +++ b/salt/minion.py @@ -1152,7 +1152,7 @@ class MinionManager(MinionBase): minion.setup_scheduler(before_connect=True) if minion.opts.get("master_type", "str") != "disable": yield minion.connect_master(failed=failed) - minion.tune_in(start=False) + yield minion.tune_in(start=False) self.minions.append(minion) break except SaltClientError as exc: @@ -2481,7 +2481,7 @@ class Minion(MinionBase): log.trace("ret_val = %s", ret_val) # pylint: disable=no-member return ret_val - def _state_run(self): + async def _state_run(self): """ Execute a state run based on information set in the minion config file """ @@ -2506,7 +2506,7 @@ class Minion(MinionBase): else: data["fun"] = "state.highstate" data["arg"] = [] - self._handle_decoded_payload(data) + await self._handle_decoded_payload(data) def _refresh_grains_watcher(self, refresh_interval_in_minutes): """ @@ -3209,7 +3209,7 @@ class Minion(MinionBase): return True # Main Minion Tune In - def tune_in(self, start=True): + async def tune_in(self, start=True): """ Lock onto the publisher. This is the main event loop for the minion :rtype : None @@ -3236,7 +3236,7 @@ class Minion(MinionBase): salt.utils.win_functions.enable_ctrl_logoff_handler() # On first startup execute a state run if configured to do so - self._state_run() + await self._state_run() self.setup_beacons() self.setup_scheduler() diff --git a/tests/pytests/unit/test_minion.py b/tests/pytests/unit/test_minion.py index 0740904d94a..62adc886b74 100644 --- a/tests/pytests/unit/test_minion.py +++ b/tests/pytests/unit/test_minion.py @@ -490,7 +490,7 @@ def test_process_count_max(minion_opts): @pytest.mark.slow_test -def test_beacons_before_connect(minion_opts): +async def test_beacons_before_connect(minion_opts): """ Tests that the 'beacons_before_connect' option causes the beacons to be initialized before connect. """ @@ -511,7 +511,7 @@ def test_beacons_before_connect(minion_opts): try: try: - minion.tune_in(start=True) + await minion.tune_in(start=True) except RuntimeError: pass @@ -523,7 +523,7 @@ def test_beacons_before_connect(minion_opts): @pytest.mark.slow_test -def test_scheduler_before_connect(minion_opts): +async def test_scheduler_before_connect(minion_opts): """ Tests that the 'scheduler_before_connect' option causes the scheduler to be initialized before connect. """ @@ -543,7 +543,7 @@ def test_scheduler_before_connect(minion_opts): minion = salt.minion.Minion(minion_opts, io_loop=io_loop) try: try: - minion.tune_in(start=True) + await minion.tune_in(start=True) except RuntimeError: pass @@ -613,7 +613,7 @@ def test_minion_module_refresh_beacons_refresh(minion_opts): @pytest.mark.slow_test -def test_when_ping_interval_is_set_the_callback_should_be_added_to_periodic_callbacks( +async def test_when_ping_interval_is_set_the_callback_should_be_added_to_periodic_callbacks( minion_opts, ): with patch("salt.minion.Minion.ctx", MagicMock(return_value={})), patch( @@ -634,7 +634,7 @@ def test_when_ping_interval_is_set_the_callback_should_be_added_to_periodic_call try: minion.connected = MagicMock(side_effect=(False, True)) minion._fire_master_minion_start = MagicMock() - minion.tune_in(start=False) + await minion.tune_in(start=False) except RuntimeError: pass From 1920e80a526f6c2752e1b2b01932afccc5a155c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Hetk=C3=A4mper?= Date: Thu, 30 May 2024 23:17:08 +0200 Subject: [PATCH 098/101] Add changelog file --- changelog/66592.fixed.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog/66592.fixed.md diff --git a/changelog/66592.fixed.md b/changelog/66592.fixed.md new file mode 100644 index 00000000000..228e35292b0 --- /dev/null +++ b/changelog/66592.fixed.md @@ -0,0 +1 @@ +Fix minion config option startup_states From 788b42db6f43a38ca46190a3bda3d26719e8539f Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Thu, 20 Feb 2025 18:59:34 -0700 Subject: [PATCH 099/101] Less intrusive bugfix I am totally on board with making tune_in asynchronous but we'll have to address it in syndic and proxy minions too. As well as the corresponding managers. This change is a bit less intrusive but achieves the same end result. --- salt/minion.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/salt/minion.py b/salt/minion.py index 95fa9e4dc5e..6f82ace8fce 100644 --- a/salt/minion.py +++ b/salt/minion.py @@ -1152,7 +1152,7 @@ class MinionManager(MinionBase): minion.setup_scheduler(before_connect=True) if minion.opts.get("master_type", "str") != "disable": yield minion.connect_master(failed=failed) - yield minion.tune_in(start=False) + minion.tune_in(start=False) self.minions.append(minion) break except SaltClientError as exc: @@ -2481,7 +2481,7 @@ class Minion(MinionBase): log.trace("ret_val = %s", ret_val) # pylint: disable=no-member return ret_val - async def _state_run(self): + def _state_run(self): """ Execute a state run based on information set in the minion config file """ @@ -2506,7 +2506,7 @@ class Minion(MinionBase): else: data["fun"] = "state.highstate" data["arg"] = [] - await self._handle_decoded_payload(data) + self.io_loop.add_callback(self._handle_decoded_payload, data) def _refresh_grains_watcher(self, refresh_interval_in_minutes): """ @@ -3209,7 +3209,7 @@ class Minion(MinionBase): return True # Main Minion Tune In - async def tune_in(self, start=True): + def tune_in(self, start=True): """ Lock onto the publisher. This is the main event loop for the minion :rtype : None @@ -3236,7 +3236,7 @@ class Minion(MinionBase): salt.utils.win_functions.enable_ctrl_logoff_handler() # On first startup execute a state run if configured to do so - await self._state_run() + self._state_run() self.setup_beacons() self.setup_scheduler() From 90c834fa5e40cb67550b0e00c90645f6fa471b25 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Thu, 20 Feb 2025 21:22:29 -0700 Subject: [PATCH 100/101] Fix test tune_in is not a coroutine --- tests/pytests/unit/test_minion.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/pytests/unit/test_minion.py b/tests/pytests/unit/test_minion.py index 62adc886b74..7587ded5a28 100644 --- a/tests/pytests/unit/test_minion.py +++ b/tests/pytests/unit/test_minion.py @@ -634,7 +634,7 @@ async def test_when_ping_interval_is_set_the_callback_should_be_added_to_periodi try: minion.connected = MagicMock(side_effect=(False, True)) minion._fire_master_minion_start = MagicMock() - await minion.tune_in(start=False) + minion.tune_in(start=False) except RuntimeError: pass From df17505fed487596c8d9af54b699ead69967977f Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Fri, 7 Mar 2025 16:04:17 -0700 Subject: [PATCH 101/101] fix merge wart --- salt/minion.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/salt/minion.py b/salt/minion.py index 56ddcbb08c5..58275855c73 100644 --- a/salt/minion.py +++ b/salt/minion.py @@ -2529,7 +2529,7 @@ class Minion(MinionBase): } ) - @salt.ext.tornado.gen.coroutine + @tornado.gen.coroutine def _fire_master_minion_start(self): include_grains = False if self.opts["start_event_grains"]: