From d41fdc1dd43e4e05cd5c0b5a61bbdd132f83c08d Mon Sep 17 00:00:00 2001 From: Tomasz Baran <110602076+tomasz-baran@users.noreply.github.com> Date: Tue, 10 Sep 2024 11:54:40 +0200 Subject: [PATCH] Update Ansible to 9.9.0 (#3469) * Update AlmaLinux image to 8.7.20221110 * Increase timeout to 30 * Increase `retries-count` from 3 to 10 for `download-requirements.py` * Fix `epicli - list index out of range` * Fix pytest tests in VS Code --------- Co-authored-by: przemyslavic <43173646+przemyslavic@users.noreply.github.com> --- .devcontainer/Dockerfile | 2 +- .devcontainer/gen-dependency-info.py | 2 +- .devcontainer/poetry.lock | 242 +++++++++--------- .devcontainer/pyproject.toml | 2 +- .devcontainer/requirements.md | 2 +- .devcontainer/requirements.txt | 16 +- .gitignore | 1 + .pylintrc | 4 +- .vscode/settings.json | 3 +- .vscode/tasks.json | 17 +- .../rabbitmq/set-erlang-cookie.yml | 5 +- .../roles/keycloak/tasks/create-database.yml | 2 +- .../opensearch/tasks/configure-opensearch.yml | 4 +- .../preflight/tasks/common/check-user.yml | 8 +- .../files/download-requirements/conftest.py | 3 - .../download-requirements/tests/__init__.py | 0 .../tasks/download-requirements.yml | 2 + .../playbooks/roles/upgrade/tasks/docker.yml | 2 - .../playbooks/os/ubuntu/upgrade-release.yml | 2 - ci/pipelines/linters.yaml | 17 +- cli/licenses.py | 25 +- cli/src/ansible/AnsibleConfigFileCreator.py | 1 + cli/src/ansible/AnsibleInventoryCreator.py | 21 +- cli/testing/helpers/__init__.py | 0 .../unit => cli/testing}/helpers/constants.py | 0 .../unit => cli/testing}/mocks/StreamMock.py | 0 cli/testing/mocks/__init__.py | 0 .../testing/providers}/APIProxy_data.py | 0 cli/testing/providers/__init__.py | 0 .../testing}/schema/ManifestReader_data.py | 0 cli/testing/schema/__init__.py | 0 conftest.py | 2 +- docs/changelogs/CHANGELOG-2.0.md | 17 +- docs/home/ARM.md | 4 +- docs/home/COMPONENTS.md | 24 +- pytest.ini | 4 + .../cloud-os-image-defaults.yml | 4 +- tests/unit/helpers/test_build_io.py | 8 +- tests/unit/helpers/test_data_loader.py | 6 +- tests/unit/providers/any/test_APIProxy.py | 2 +- tests/unit/providers/aws/test_APIProxy.py | 3 +- tests/unit/providers/azure/test_APIProxy.py | 3 +- tests/unit/schema/test_ManifestReader.py | 4 +- 43 files changed, 251 insertions(+), 213 deletions(-) delete mode 100644 ansible/playbooks/roles/repository/files/download-requirements/conftest.py create mode 100644 ansible/playbooks/roles/repository/files/download-requirements/tests/__init__.py create mode 100644 cli/testing/helpers/__init__.py rename {tests/unit => cli/testing}/helpers/constants.py (100%) rename {tests/unit => cli/testing}/mocks/StreamMock.py (100%) create mode 100644 cli/testing/mocks/__init__.py rename {tests/unit/providers/data => cli/testing/providers}/APIProxy_data.py (100%) create mode 100644 cli/testing/providers/__init__.py rename {tests/unit/data => cli/testing}/schema/ManifestReader_data.py (100%) create mode 100644 cli/testing/schema/__init__.py diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index b859c6bd17..0477ca22a1 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -64,7 +64,7 @@ RUN : INSTALL PIP REQUIREMENTS \ && pip install --disable-pip-version-check --no-cache-dir --default-timeout=100 \ --requirement /requirements.txt \ && pip install --disable-pip-version-check --no-cache-dir --default-timeout=100 \ - poetry pylint==2.* pylint_junit ansible-lint==6.5.0 ansible-lint-to-junit-xml yamllint pytest pytest_mock setuptools twine wheel + poetry pylint==2.* pylint_junit ansible-lint==24.7.0 ansible-lint-junit==0.17.8 yamllint pytest pytest_mock setuptools twine wheel RUN : SETUP USER AND OTHERS \ && groupadd --gid $USER_GID $USERNAME \ diff --git a/.devcontainer/gen-dependency-info.py b/.devcontainer/gen-dependency-info.py index a4ef70bd3a..6bb3072dbc 100644 --- a/.devcontainer/gen-dependency-info.py +++ b/.devcontainer/gen-dependency-info.py @@ -91,7 +91,7 @@ def _main() -> None: # Write licenses 'cli/licenses.py' licenses_content = """\ # This is a generated file so don`t change this manually. - # To re-generate run 'python gen-dependency-info.py ' from the project root. + # To re-generate run 'python3 gen-dependency-info.py ' from the project root. LICENSES = """ diff --git a/.devcontainer/poetry.lock b/.devcontainer/poetry.lock index 091a6c8bdd..868875a485 100644 --- a/.devcontainer/poetry.lock +++ b/.devcontainer/poetry.lock @@ -19,27 +19,27 @@ requests = ">=2.0.0,<3" [[package]] name = "ansible" -version = "6.7.0" +version = "9.9.0" description = "Radically simple IT automation" optional = false -python-versions = ">=3.8" +python-versions = ">=3.10" files = [ - {file = "ansible-6.7.0-py3-none-any.whl", hash = "sha256:3cda6e67b1d42516f64ce376bb94c5186ff33d215d155432be5b3c2ec60bf112"}, - {file = "ansible-6.7.0.tar.gz", hash = "sha256:c188f3ac8a8583794aadcff0bea87895ead58c19d6f244cd0c342562706e176c"}, + {file = "ansible-9.9.0-py3-none-any.whl", hash = "sha256:564cb4417fdeb38d7db955deaa0693df9b824af3c384b8a245ec594cee1babec"}, + {file = "ansible-9.9.0.tar.gz", hash = "sha256:d4a858c55fab0f9746ee559a230a302b3d29673c4e673450556f00ba912577ce"}, ] [package.dependencies] -ansible-core = ">=2.13.7,<2.14.0" +ansible-core = ">=2.16.10,<2.17.0" [[package]] name = "ansible-core" -version = "2.13.13" +version = "2.16.10" description = "Radically simple IT automation" optional = false -python-versions = ">=3.8" +python-versions = ">=3.10" files = [ - {file = "ansible-core-2.13.13.tar.gz", hash = "sha256:7ad2d8c0a5fa4a59de1809a5f96d2dbf511189c834116f5c72aec9730b51074b"}, - {file = "ansible_core-2.13.13-py3-none-any.whl", hash = "sha256:f50220254b8e13a79b68e68e759f5bf89f3f3584c907737985a017c699b1c3b6"}, + {file = "ansible_core-2.16.10-py3-none-any.whl", hash = "sha256:230bd77556b2f0d89f876effe6d157de084ced9f5f5eb982a1624bb7fc3f15dd"}, + {file = "ansible_core-2.16.10.tar.gz", hash = "sha256:a8b38790a67afb02f49e94f1fcdaafcf474c9567959233bcd711986acc7d4884"}, ] [package.dependencies] @@ -47,7 +47,7 @@ cryptography = "*" jinja2 = ">=3.0.0" packaging = "*" PyYAML = ">=5.1" -resolvelib = ">=0.5.3,<0.9.0" +resolvelib = ">=0.5.3,<1.1.0" [[package]] name = "antlr4-python3-runtime" @@ -1604,17 +1604,17 @@ typecheck = ["mypy"] [[package]] name = "boto3" -version = "1.35.6" +version = "1.35.12" description = "The AWS SDK for Python" optional = false python-versions = ">=3.8" files = [ - {file = "boto3-1.35.6-py3-none-any.whl", hash = "sha256:c35c560ef0cb0f133b6104bc374d60eeb7cb69c1d5d7907e4305a285d162bef0"}, - {file = "boto3-1.35.6.tar.gz", hash = "sha256:b41deed9ca7e0a619510a22e256e3e38b5f532624b4aff8964a1e870877b37bc"}, + {file = "boto3-1.35.12-py3-none-any.whl", hash = "sha256:acaa7c75cbf483605e3c46e9ac03043a4cf5e9866940122d68b06d1defe00774"}, + {file = "boto3-1.35.12.tar.gz", hash = "sha256:b32faab174f6f9b75fada27bcf054ab3e8846bd410ed9817d0b511109326b6b1"}, ] [package.dependencies] -botocore = ">=1.35.6,<1.36.0" +botocore = ">=1.35.12,<1.36.0" jmespath = ">=0.7.1,<2.0.0" s3transfer = ">=0.10.0,<0.11.0" @@ -1623,13 +1623,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "botocore" -version = "1.35.6" +version = "1.35.12" description = "Low-level, data-driven core of boto 3." optional = false python-versions = ">=3.8" files = [ - {file = "botocore-1.35.6-py3-none-any.whl", hash = "sha256:8378c6cfef2dee15eb7b3ebbb55ba9c1de959f231292039b81eb35b72c50ad59"}, - {file = "botocore-1.35.6.tar.gz", hash = "sha256:93ef31b80b05758db4dd67e010348a05b9ff43f82839629b7ac334f2a454996e"}, + {file = "botocore-1.35.12-py3-none-any.whl", hash = "sha256:cb787030415438ea6ff8381f8acd8b1107593d5ebea457fd843a5e36ba19e9a4"}, + {file = "botocore-1.35.12.tar.gz", hash = "sha256:a8f8230032d090225a93763675a73c208d121bb63ed99f41ee6ad3d51b74b80d"}, ] [package.dependencies] @@ -1642,89 +1642,89 @@ crt = ["awscrt (==0.21.2)"] [[package]] name = "certifi" -version = "2024.7.4" +version = "2024.8.30" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, - {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, + {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, + {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, ] [[package]] name = "cffi" -version = "1.17.0" +version = "1.17.1" description = "Foreign Function Interface for Python calling C code." optional = false python-versions = ">=3.8" files = [ - {file = "cffi-1.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f9338cc05451f1942d0d8203ec2c346c830f8e86469903d5126c1f0a13a2bcbb"}, - {file = "cffi-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a0ce71725cacc9ebf839630772b07eeec220cbb5f03be1399e0457a1464f8e1a"}, - {file = "cffi-1.17.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c815270206f983309915a6844fe994b2fa47e5d05c4c4cef267c3b30e34dbe42"}, - {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6bdcd415ba87846fd317bee0774e412e8792832e7805938987e4ede1d13046d"}, - {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a98748ed1a1df4ee1d6f927e151ed6c1a09d5ec21684de879c7ea6aa96f58f2"}, - {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0a048d4f6630113e54bb4b77e315e1ba32a5a31512c31a273807d0027a7e69ab"}, - {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24aa705a5f5bd3a8bcfa4d123f03413de5d86e497435693b638cbffb7d5d8a1b"}, - {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:856bf0924d24e7f93b8aee12a3a1095c34085600aa805693fb7f5d1962393206"}, - {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:4304d4416ff032ed50ad6bb87416d802e67139e31c0bde4628f36a47a3164bfa"}, - {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:331ad15c39c9fe9186ceaf87203a9ecf5ae0ba2538c9e898e3a6967e8ad3db6f"}, - {file = "cffi-1.17.0-cp310-cp310-win32.whl", hash = "sha256:669b29a9eca6146465cc574659058ed949748f0809a2582d1f1a324eb91054dc"}, - {file = "cffi-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:48b389b1fd5144603d61d752afd7167dfd205973a43151ae5045b35793232aa2"}, - {file = "cffi-1.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5d97162c196ce54af6700949ddf9409e9833ef1003b4741c2b39ef46f1d9720"}, - {file = "cffi-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ba5c243f4004c750836f81606a9fcb7841f8874ad8f3bf204ff5e56332b72b9"}, - {file = "cffi-1.17.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bb9333f58fc3a2296fb1d54576138d4cf5d496a2cc118422bd77835e6ae0b9cb"}, - {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:435a22d00ec7d7ea533db494da8581b05977f9c37338c80bc86314bec2619424"}, - {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1df34588123fcc88c872f5acb6f74ae59e9d182a2707097f9e28275ec26a12d"}, - {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df8bb0010fdd0a743b7542589223a2816bdde4d94bb5ad67884348fa2c1c67e8"}, - {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8b5b9712783415695663bd463990e2f00c6750562e6ad1d28e072a611c5f2a6"}, - {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ffef8fd58a36fb5f1196919638f73dd3ae0db1a878982b27a9a5a176ede4ba91"}, - {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e67d26532bfd8b7f7c05d5a766d6f437b362c1bf203a3a5ce3593a645e870b8"}, - {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45f7cd36186db767d803b1473b3c659d57a23b5fa491ad83c6d40f2af58e4dbb"}, - {file = "cffi-1.17.0-cp311-cp311-win32.whl", hash = "sha256:a9015f5b8af1bb6837a3fcb0cdf3b874fe3385ff6274e8b7925d81ccaec3c5c9"}, - {file = "cffi-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:b50aaac7d05c2c26dfd50c3321199f019ba76bb650e346a6ef3616306eed67b0"}, - {file = "cffi-1.17.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aec510255ce690d240f7cb23d7114f6b351c733a74c279a84def763660a2c3bc"}, - {file = "cffi-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2770bb0d5e3cc0e31e7318db06efcbcdb7b31bcb1a70086d3177692a02256f59"}, - {file = "cffi-1.17.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:db9a30ec064129d605d0f1aedc93e00894b9334ec74ba9c6bdd08147434b33eb"}, - {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a47eef975d2b8b721775a0fa286f50eab535b9d56c70a6e62842134cf7841195"}, - {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3e0992f23bbb0be00a921eae5363329253c3b86287db27092461c887b791e5e"}, - {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6107e445faf057c118d5050560695e46d272e5301feffda3c41849641222a828"}, - {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb862356ee9391dc5a0b3cbc00f416b48c1b9a52d252d898e5b7696a5f9fe150"}, - {file = "cffi-1.17.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c1c13185b90bbd3f8b5963cd8ce7ad4ff441924c31e23c975cb150e27c2bf67a"}, - {file = "cffi-1.17.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:17c6d6d3260c7f2d94f657e6872591fe8733872a86ed1345bda872cfc8c74885"}, - {file = "cffi-1.17.0-cp312-cp312-win32.whl", hash = "sha256:c3b8bd3133cd50f6b637bb4322822c94c5ce4bf0d724ed5ae70afce62187c492"}, - {file = "cffi-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:dca802c8db0720ce1c49cce1149ff7b06e91ba15fa84b1d59144fef1a1bc7ac2"}, - {file = "cffi-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6ce01337d23884b21c03869d2f68c5523d43174d4fc405490eb0091057943118"}, - {file = "cffi-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cab2eba3830bf4f6d91e2d6718e0e1c14a2f5ad1af68a89d24ace0c6b17cced7"}, - {file = "cffi-1.17.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:14b9cbc8f7ac98a739558eb86fabc283d4d564dafed50216e7f7ee62d0d25377"}, - {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b00e7bcd71caa0282cbe3c90966f738e2db91e64092a877c3ff7f19a1628fdcb"}, - {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:41f4915e09218744d8bae14759f983e466ab69b178de38066f7579892ff2a555"}, - {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4760a68cab57bfaa628938e9c2971137e05ce48e762a9cb53b76c9b569f1204"}, - {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:011aff3524d578a9412c8b3cfaa50f2c0bd78e03eb7af7aa5e0df59b158efb2f"}, - {file = "cffi-1.17.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:a003ac9edc22d99ae1286b0875c460351f4e101f8c9d9d2576e78d7e048f64e0"}, - {file = "cffi-1.17.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ef9528915df81b8f4c7612b19b8628214c65c9b7f74db2e34a646a0a2a0da2d4"}, - {file = "cffi-1.17.0-cp313-cp313-win32.whl", hash = "sha256:70d2aa9fb00cf52034feac4b913181a6e10356019b18ef89bc7c12a283bf5f5a"}, - {file = "cffi-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:b7b6ea9e36d32582cda3465f54c4b454f62f23cb083ebc7a94e2ca6ef011c3a7"}, - {file = "cffi-1.17.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:964823b2fc77b55355999ade496c54dde161c621cb1f6eac61dc30ed1b63cd4c"}, - {file = "cffi-1.17.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:516a405f174fd3b88829eabfe4bb296ac602d6a0f68e0d64d5ac9456194a5b7e"}, - {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dec6b307ce928e8e112a6bb9921a1cb00a0e14979bf28b98e084a4b8a742bd9b"}, - {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4094c7b464cf0a858e75cd14b03509e84789abf7b79f8537e6a72152109c76e"}, - {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2404f3de742f47cb62d023f0ba7c5a916c9c653d5b368cc966382ae4e57da401"}, - {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa9d43b02a0c681f0bfbc12d476d47b2b2b6a3f9287f11ee42989a268a1833c"}, - {file = "cffi-1.17.0-cp38-cp38-win32.whl", hash = "sha256:0bb15e7acf8ab35ca8b24b90af52c8b391690ef5c4aec3d31f38f0d37d2cc499"}, - {file = "cffi-1.17.0-cp38-cp38-win_amd64.whl", hash = "sha256:93a7350f6706b31f457c1457d3a3259ff9071a66f312ae64dc024f049055f72c"}, - {file = "cffi-1.17.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1a2ddbac59dc3716bc79f27906c010406155031a1c801410f1bafff17ea304d2"}, - {file = "cffi-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6327b572f5770293fc062a7ec04160e89741e8552bf1c358d1a23eba68166759"}, - {file = "cffi-1.17.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbc183e7bef690c9abe5ea67b7b60fdbca81aa8da43468287dae7b5c046107d4"}, - {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bdc0f1f610d067c70aa3737ed06e2726fd9d6f7bfee4a351f4c40b6831f4e82"}, - {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6d872186c1617d143969defeadac5a904e6e374183e07977eedef9c07c8953bf"}, - {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0d46ee4764b88b91f16661a8befc6bfb24806d885e27436fdc292ed7e6f6d058"}, - {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f76a90c345796c01d85e6332e81cab6d70de83b829cf1d9762d0a3da59c7932"}, - {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0e60821d312f99d3e1569202518dddf10ae547e799d75aef3bca3a2d9e8ee693"}, - {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:eb09b82377233b902d4c3fbeeb7ad731cdab579c6c6fda1f763cd779139e47c3"}, - {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:24658baf6224d8f280e827f0a50c46ad819ec8ba380a42448e24459daf809cf4"}, - {file = "cffi-1.17.0-cp39-cp39-win32.whl", hash = "sha256:0fdacad9e0d9fc23e519efd5ea24a70348305e8d7d85ecbb1a5fa66dc834e7fb"}, - {file = "cffi-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:7cbc78dc018596315d4e7841c8c3a7ae31cc4d638c9b627f87d52e8abaaf2d29"}, - {file = "cffi-1.17.0.tar.gz", hash = "sha256:f3157624b7558b914cb039fd1af735e5e8049a87c817cc215109ad1c8779df76"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, + {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, + {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, + {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, + {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, + {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, + {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, + {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, + {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, + {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, + {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, + {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, + {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, + {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, + {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, + {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, + {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, + {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, + {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, + {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, + {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, + {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, + {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, + {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, + {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, + {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, + {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, + {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, + {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, + {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, + {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, ] [package.dependencies] @@ -1867,38 +1867,38 @@ files = [ [[package]] name = "cryptography" -version = "43.0.0" +version = "43.0.1" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = ">=3.7" files = [ - {file = "cryptography-43.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:64c3f16e2a4fc51c0d06af28441881f98c5d91009b8caaff40cf3548089e9c74"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3dcdedae5c7710b9f97ac6bba7e1052b95c7083c9d0e9df96e02a1932e777895"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d9a1eca329405219b605fac09ecfc09ac09e595d6def650a437523fcd08dd22"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ea9e57f8ea880eeea38ab5abf9fbe39f923544d7884228ec67d666abd60f5a47"}, - {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9a8d6802e0825767476f62aafed40532bd435e8a5f7d23bd8b4f5fd04cc80ecf"}, - {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cc70b4b581f28d0a254d006f26949245e3657d40d8857066c2ae22a61222ef55"}, - {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4a997df8c1c2aae1e1e5ac49c2e4f610ad037fc5a3aadc7b64e39dea42249431"}, - {file = "cryptography-43.0.0-cp37-abi3-win32.whl", hash = "sha256:6e2b11c55d260d03a8cf29ac9b5e0608d35f08077d8c087be96287f43af3ccdc"}, - {file = "cryptography-43.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:31e44a986ceccec3d0498e16f3d27b2ee5fdf69ce2ab89b52eaad1d2f33d8778"}, - {file = "cryptography-43.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:7b3f5fe74a5ca32d4d0f302ffe6680fcc5c28f8ef0dc0ae8f40c0f3a1b4fca66"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac1955ce000cb29ab40def14fd1bbfa7af2017cca696ee696925615cafd0dce5"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:299d3da8e00b7e2b54bb02ef58d73cd5f55fb31f33ebbf33bd00d9aa6807df7e"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5"}, - {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb013933d4c127349b3948aa8aaf2f12c0353ad0eccd715ca789c8a0f671646f"}, - {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0"}, - {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2905ccf93a8a2a416f3ec01b1a7911c3fe4073ef35640e7ee5296754e30b762b"}, - {file = "cryptography-43.0.0-cp39-abi3-win32.whl", hash = "sha256:47ca71115e545954e6c1d207dd13461ab81f4eccfcb1345eac874828b5e3eaaf"}, - {file = "cryptography-43.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:0663585d02f76929792470451a5ba64424acc3cd5227b03921dab0e2f27b1709"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c6d112bf61c5ef44042c253e4859b3cbbb50df2f78fa8fae6747a7814484a70"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:844b6d608374e7d08f4f6e6f9f7b951f9256db41421917dfb2d003dde4cd6b66"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:51956cf8730665e2bdf8ddb8da0056f699c1a5715648c1b0144670c1ba00b48f"}, - {file = "cryptography-43.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:aae4d918f6b180a8ab8bf6511a419473d107df4dbb4225c7b48c5c9602c38c7f"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:232ce02943a579095a339ac4b390fbbe97f5b5d5d107f8a08260ea2768be8cc2"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5bcb8a5620008a8034d39bce21dc3e23735dfdb6a33a06974739bfa04f853947"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:08a24a7070b2b6804c1940ff0f910ff728932a9d0e80e7814234269f9d46d069"}, - {file = "cryptography-43.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e9c5266c432a1e23738d178e51c2c7a5e2ddf790f248be939448c0ba2021f9d1"}, - {file = "cryptography-43.0.0.tar.gz", hash = "sha256:b88075ada2d51aa9f18283532c9f60e72170041bba88d7f37e49cbb10275299e"}, + {file = "cryptography-43.0.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:8385d98f6a3bf8bb2d65a73e17ed87a3ba84f6991c155691c51112075f9ffc5d"}, + {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27e613d7077ac613e399270253259d9d53872aaf657471473ebfc9a52935c062"}, + {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68aaecc4178e90719e95298515979814bda0cbada1256a4485414860bd7ab962"}, + {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:de41fd81a41e53267cb020bb3a7212861da53a7d39f863585d13ea11049cf277"}, + {file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f98bf604c82c416bc829e490c700ca1553eafdf2912a91e23a79d97d9801372a"}, + {file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:61ec41068b7b74268fa86e3e9e12b9f0c21fcf65434571dbb13d954bceb08042"}, + {file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:014f58110f53237ace6a408b5beb6c427b64e084eb451ef25a28308270086494"}, + {file = "cryptography-43.0.1-cp37-abi3-win32.whl", hash = "sha256:2bd51274dcd59f09dd952afb696bf9c61a7a49dfc764c04dd33ef7a6b502a1e2"}, + {file = "cryptography-43.0.1-cp37-abi3-win_amd64.whl", hash = "sha256:666ae11966643886c2987b3b721899d250855718d6d9ce41b521252a17985f4d"}, + {file = "cryptography-43.0.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:ac119bb76b9faa00f48128b7f5679e1d8d437365c5d26f1c2c3f0da4ce1b553d"}, + {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bbcce1a551e262dfbafb6e6252f1ae36a248e615ca44ba302df077a846a8806"}, + {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58d4e9129985185a06d849aa6df265bdd5a74ca6e1b736a77959b498e0505b85"}, + {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d03a475165f3134f773d1388aeb19c2d25ba88b6a9733c5c590b9ff7bbfa2e0c"}, + {file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:511f4273808ab590912a93ddb4e3914dfd8a388fed883361b02dea3791f292e1"}, + {file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:80eda8b3e173f0f247f711eef62be51b599b5d425c429b5d4ca6a05e9e856baa"}, + {file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:38926c50cff6f533f8a2dae3d7f19541432610d114a70808f0926d5aaa7121e4"}, + {file = "cryptography-43.0.1-cp39-abi3-win32.whl", hash = "sha256:a575913fb06e05e6b4b814d7f7468c2c660e8bb16d8d5a1faf9b33ccc569dd47"}, + {file = "cryptography-43.0.1-cp39-abi3-win_amd64.whl", hash = "sha256:d75601ad10b059ec832e78823b348bfa1a59f6b8d545db3a24fd44362a1564cb"}, + {file = "cryptography-43.0.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ea25acb556320250756e53f9e20a4177515f012c9eaea17eb7587a8c4d8ae034"}, + {file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c1332724be35d23a854994ff0b66530119500b6053d0bd3363265f7e5e77288d"}, + {file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fba1007b3ef89946dbbb515aeeb41e30203b004f0b4b00e5e16078b518563289"}, + {file = "cryptography-43.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5b43d1ea6b378b54a1dc99dd8a2b5be47658fe9a7ce0a58ff0b55f4b43ef2b84"}, + {file = "cryptography-43.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:88cce104c36870d70c49c7c8fd22885875d950d9ee6ab54df2745f83ba0dc365"}, + {file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d3cdb25fa98afdd3d0892d132b8d7139e2c087da1712041f6b762e4f807cc96"}, + {file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e710bf40870f4db63c3d7d929aa9e09e4e7ee219e703f949ec4073b4294f6172"}, + {file = "cryptography-43.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7c05650fe8023c5ed0d46793d4b7d7e6cd9c04e68eabe5b0aeea836e37bdcec2"}, + {file = "cryptography-43.0.1.tar.gz", hash = "sha256:203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d"}, ] [package.dependencies] @@ -1911,7 +1911,7 @@ nox = ["nox"] pep8test = ["check-sdist", "click", "mypy", "ruff"] sdist = ["build"] ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi", "cryptography-vectors (==43.0.0)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test = ["certifi", "cryptography-vectors (==43.0.1)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] test-randomorder = ["pytest-randomly"] [[package]] @@ -2726,13 +2726,13 @@ rsa = ["oauthlib[signedtoken] (>=3.0.0)"] [[package]] name = "resolvelib" -version = "0.8.1" +version = "1.0.1" description = "Resolve abstract dependencies into concrete ones" optional = false python-versions = "*" files = [ - {file = "resolvelib-0.8.1-py2.py3-none-any.whl", hash = "sha256:d9b7907f055c3b3a2cfc56c914ffd940122915826ff5fb5b1de0c99778f4de98"}, - {file = "resolvelib-0.8.1.tar.gz", hash = "sha256:c6ea56732e9fb6fca1b2acc2ccc68a0b6b8c566d8f3e78e0443310ede61dbd37"}, + {file = "resolvelib-1.0.1-py2.py3-none-any.whl", hash = "sha256:d2da45d1a8dfee81bdd591647783e340ef3bcb104b54c383f70d422ef5cc7dbf"}, + {file = "resolvelib-1.0.1.tar.gz", hash = "sha256:04ce76cbd63fded2078ce224785da6ecd42b9564b1390793f64ddecbe997b309"}, ] [package.extras] @@ -3153,4 +3153,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = "3.10.14" -content-hash = "cdea320636e6ddc6850fb76700db3b44be8fb253c8d250fd7433a402d5f2a017" +content-hash = "ce7903d830db0a9a28ad62ade8bfbf32333ff93eb9c6a2c7f9cbc3117409669d" diff --git a/.devcontainer/pyproject.toml b/.devcontainer/pyproject.toml index 214451b24a..2f35eeb95d 100644 --- a/.devcontainer/pyproject.toml +++ b/.devcontainer/pyproject.toml @@ -13,7 +13,7 @@ jsonschema = "*" python-json-logger = "*" "ruamel.yaml" = "*" click = "*" -ansible = "6.7.0" +ansible = "~9" azure-cli = "2.63.0" [build-system] diff --git a/.devcontainer/requirements.md b/.devcontainer/requirements.md index 6dc168581a..92889365fd 100644 --- a/.devcontainer/requirements.md +++ b/.devcontainer/requirements.md @@ -46,7 +46,7 @@ The main reasons for this 2-way approach: 2. Run the following to update the `license.py` and generate the `DEPENDENCIES.md` file: ```shell - python gen-dependency-info.py YOUR-GITHUB-PAT + python3 gen-dependency-info.py YOUR-GITHUB-PAT ``` For obtaining a GitHub Personal Access Token, check [here](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line). diff --git a/.devcontainer/requirements.txt b/.devcontainer/requirements.txt index 06fa409a01..34b69a7712 100644 --- a/.devcontainer/requirements.txt +++ b/.devcontainer/requirements.txt @@ -1,6 +1,6 @@ adal==1.2.7 ; python_full_version == "3.10.14" -ansible-core==2.13.13 ; python_full_version == "3.10.14" -ansible==6.7.0 ; python_full_version == "3.10.14" +ansible-core==2.16.10 ; python_full_version == "3.10.14" +ansible==9.9.0 ; python_full_version == "3.10.14" antlr4-python3-runtime==4.13.2 ; python_full_version == "3.10.14" applicationinsights==0.11.10 ; python_full_version == "3.10.14" argcomplete==3.3.0 ; python_full_version == "3.10.14" @@ -90,15 +90,15 @@ azure-synapse-artifacts==0.19.0 ; python_full_version == "3.10.14" azure-synapse-managedprivateendpoints==0.4.0 ; python_full_version == "3.10.14" azure-synapse-spark==0.2.0 ; python_full_version == "3.10.14" bcrypt==4.2.0 ; python_full_version == "3.10.14" -boto3==1.35.6 ; python_full_version == "3.10.14" -botocore==1.35.6 ; python_full_version == "3.10.14" -certifi==2024.7.4 ; python_full_version == "3.10.14" -cffi==1.17.0 ; python_full_version == "3.10.14" +boto3==1.35.12 ; python_full_version == "3.10.14" +botocore==1.35.12 ; python_full_version == "3.10.14" +certifi==2024.8.30 ; python_full_version == "3.10.14" +cffi==1.17.1 ; python_full_version == "3.10.14" chardet==5.2.0 ; python_full_version == "3.10.14" charset-normalizer==3.3.2 ; python_full_version == "3.10.14" click==8.1.7 ; python_full_version == "3.10.14" colorama==0.4.6 ; python_full_version == "3.10.14" -cryptography==43.0.0 ; python_full_version == "3.10.14" +cryptography==43.0.1 ; python_full_version == "3.10.14" decorator==5.1.1 ; python_full_version == "3.10.14" deprecated==1.2.14 ; python_full_version == "3.10.14" distro==1.9.0 ; sys_platform == "linux" and python_full_version == "3.10.14" @@ -145,7 +145,7 @@ referencing==0.35.1 ; python_full_version == "3.10.14" requests-oauthlib==2.0.0 ; python_full_version == "3.10.14" requests==2.32.3 ; python_full_version == "3.10.14" requests[socks]==2.32.3 ; python_full_version == "3.10.14" -resolvelib==0.8.1 ; python_full_version == "3.10.14" +resolvelib==1.0.1 ; python_full_version == "3.10.14" rpds-py==0.20.0 ; python_full_version == "3.10.14" ruamel-yaml-clib==0.2.8 ; platform_python_implementation == "CPython" and python_full_version == "3.10.14" ruamel-yaml==0.18.6 ; python_full_version == "3.10.14" diff --git a/.gitignore b/.gitignore index 5e6e97ebef..e114455b3d 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,4 @@ clusters #.vscode #.devcontainer *.dump +sandbox/ diff --git a/.pylintrc b/.pylintrc index 984854faf0..e1074a80c6 100644 --- a/.pylintrc +++ b/.pylintrc @@ -349,8 +349,8 @@ int-import-graph= [EXCEPTIONS] # Exceptions that will emit a warning when being caught. Defaults to -# "Exception" -overgeneral-exceptions=Exception +# ["builtins.BaseException", "builtins.Exception"] +overgeneral-exceptions = ["builtins.BaseException", "builtins.Exception"] [TYPING] diff --git a/.vscode/settings.json b/.vscode/settings.json index fa5680604f..e7ab137adb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,6 @@ { + // Ansible + "ansible.python.interpreterPath": "/usr/local/bin/python3", // Common "trailing-spaces.highlightCurrentLine": false, // highlighting currently edited line can be annoying "trailing-spaces.syntaxIgnore": [ @@ -6,7 +8,6 @@ ], // Python - "pylint.enabled": true, "pylint.args": [ "--rcfile=${workspaceFolder}/.pylintrc" ], diff --git a/.vscode/tasks.json b/.vscode/tasks.json index b8c498865a..822209d2bf 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -6,7 +6,7 @@ "tasks": [ { "label": "Ensure test_results directory", - "command": "mkdir -p ${workspaceFolder}/test_results", + "command": "mkdir -p test_results", "presentation": { "echo": false, "reveal": "silent", @@ -15,28 +15,29 @@ }, { "label": "Pytest", - "command": "pytest --junitxml=${workspaceFolder}/test_results/pytest_results.xml", + "command": "pytest --junitxml=test_results/pytest_results.xml", "dependsOn": ["Ensure test_results directory"], "group": "test", }, { "label": "Pylint epicli [junit]", - "command": "pylint --rcfile .pylintrc ./cli ./tests --output ${workspaceFolder}/test_results/pylint_results.xml", + "command": "pylint --rcfile .pylintrc ./cli ./tests/unit --output test_results/pylint_results.xml --recursive y", "dependsOn": ["Ensure test_results directory"], "group": "test", }, { "label": "Pylint epicli [terminal]", - "command": "pylint --rcfile .pylintrc ./cli ./tests --output-format text", + "command": "pylint --rcfile .pylintrc ./cli ./tests/unit --output-format text --recursive y", "group": "test", }, { - "label": "Pylint repository modules", + "label": "Pylint repository role plugins", "command": "pylint", "args": [ "--rcfile", ".pylintrc", "--output-format", "text", - "./ansible/playbooks/roles/repository/library/tests", + "--recursive", "y", + "ansible/playbooks/roles/repository/library", ], "group": "test", }, @@ -54,13 +55,13 @@ }, { "label": "Ansible-lint [junit]", - "command": "ansible-lint --nocolor -q -c .ansible-lint -p ${workspaceFolder}/ansible > ${workspaceFolder}/test_results/ansiblelint_results.txt ; ansible-lint-to-junit-xml ${workspaceFolder}/test_results/ansiblelint_results.txt > ${workspaceFolder}/test_results/ansiblelint_results.xml", + "command": "ansible-lint --nocolor -q -c .ansible-lint -p ansible > test_results/ansible-lint_results.txt ; ansible-lint-junit test_results/ansible-lint_results.txt -o test_results/ansible-lint_results.xml", "dependsOn": ["Ensure test_results directory"], "group": "test", }, { "label": "Ansible-lint [terminal]", - "command": "ansible-lint -q -c .ansible-lint -p ${workspaceFolder}/ansible", + "command": "ansible-lint -q -c .ansible-lint -p ansible", "group": "test", }, { diff --git a/ansible/playbooks/roles/applications/tasks/applications/rabbitmq/set-erlang-cookie.yml b/ansible/playbooks/roles/applications/tasks/applications/rabbitmq/set-erlang-cookie.yml index a4484e77ce..49f922e1d0 100644 --- a/ansible/playbooks/roles/applications/tasks/applications/rabbitmq/set-erlang-cookie.yml +++ b/ansible/playbooks/roles/applications/tasks/applications/rabbitmq/set-erlang-cookie.yml @@ -9,13 +9,12 @@ when: data.rabbitmq.cluster.cookie is undefined block: - name: Get existing erlang cookie - command: kubectl -n {{ namespace_name }} get secret {{ _cookie_secret_name }} --template={{ _template }} + command: kubectl -n {{ namespace_name }} get secret {{ _cookie_secret_name }} --template='{{ _template }}' register: get_secret_result vars: _cookie_secret_name: >- {{ rabbitmq_service_name }}-cookie - _template: >- - {{ '{{ .data.cookie }}' }} + _template: '{% raw %}{{ .data.cookie }}{% endraw %}' - name: Use existing erlang cookie set_fact: diff --git a/ansible/playbooks/roles/keycloak/tasks/create-database.yml b/ansible/playbooks/roles/keycloak/tasks/create-database.yml index 7f33850714..e3f7088521 100644 --- a/ansible/playbooks/roles/keycloak/tasks/create-database.yml +++ b/ansible/playbooks/roles/keycloak/tasks/create-database.yml @@ -15,7 +15,7 @@ postgres_primary: "{{ item.item }}" loop: "{{ in_recovery_state.results }}" loop_control: - label: {in_recovery: "{{ item.in_recovery }}"} + label: "in_recovery: {{ item.in_recovery }}" when: not item.in_recovery - name: Create DB objects diff --git a/ansible/playbooks/roles/opensearch/tasks/configure-opensearch.yml b/ansible/playbooks/roles/opensearch/tasks/configure-opensearch.yml index 205275397e..c627422abd 100644 --- a/ansible/playbooks/roles/opensearch/tasks/configure-opensearch.yml +++ b/ansible/playbooks/roles/opensearch/tasks/configure-opensearch.yml @@ -66,8 +66,8 @@ admin: "{{ certificates.files.admin.cert.subject }}" node: "{{ certificates.files.node.cert.subject }}" _epiphany_dn_attributes: - admin: "{{ certificates.dn_attributes_order | intersect(_epiphany_subjects.admin.keys()) }}" - node: "{{ certificates.dn_attributes_order | intersect(_epiphany_subjects.node.keys()) }}" + admin: "{{ certificates.dn_attributes_order | select('in', _epiphany_subjects.admin.keys()) }}" + node: "{{ certificates.dn_attributes_order | select('in', _epiphany_subjects.node.keys()) }}" _epiphany_dns: admin: >- {{ _epiphany_dn_attributes.admin | zip(_epiphany_dn_attributes.admin | map('extract', _epiphany_subjects.admin)) diff --git a/ansible/playbooks/roles/preflight/tasks/common/check-user.yml b/ansible/playbooks/roles/preflight/tasks/common/check-user.yml index 007e224656..ac921e1a9f 100644 --- a/ansible/playbooks/roles/preflight/tasks/common/check-user.yml +++ b/ansible/playbooks/roles/preflight/tasks/common/check-user.yml @@ -1,14 +1,12 @@ --- + # Ignore warning: "Consider using 'become', 'become_method', and 'become_user' rather than running sudo". + # sudo used by purpose, for 'become', 'failed_when' is ignored when sudo requires password and task fails + # with short message: "Missing sudo password". - name: Check if user has passwordless root privileges through sudo command: sudo -n -u root test -w /etc/sudoers changed_when: false failed_when: test_privileges.rc not in [0, 1] register: test_privileges - # Disable warning: "Consider using 'become', 'become_method', and 'become_user' rather than running sudo". - # sudo used by purpose, for 'become', 'failed_when' is ignored when sudo requires password and task fails - # with short message: "Missing sudo password". - args: - warn: false - name: Assert root privileges assert: diff --git a/ansible/playbooks/roles/repository/files/download-requirements/conftest.py b/ansible/playbooks/roles/repository/files/download-requirements/conftest.py deleted file mode 100644 index ff649c06d8..0000000000 --- a/ansible/playbooks/roles/repository/files/download-requirements/conftest.py +++ /dev/null @@ -1,3 +0,0 @@ -# This file fixes import issues (like ModuleNotFoundError: No module named 'tests.mocks') -# when discovering or running tests by adding parent directory to sys.path. -# See https://stackoverflow.com/a/50610630/10861750 diff --git a/ansible/playbooks/roles/repository/files/download-requirements/tests/__init__.py b/ansible/playbooks/roles/repository/files/download-requirements/tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/ansible/playbooks/roles/repository/tasks/download-requirements.yml b/ansible/playbooks/roles/repository/tasks/download-requirements.yml index ae0d7f1c93..65baa33900 100644 --- a/ansible/playbooks/roles/repository/tasks/download-requirements.yml +++ b/ansible/playbooks/roles/repository/tasks/download-requirements.yml @@ -13,6 +13,7 @@ --manifest "{{ download_requirements_manifest }}" \ --no-logfile \ --repos-backup-file /var/tmp/enabled-system-repos.tar \ + --retries-count 10 \ --verbose |& tee >(systemd-cat --identifier=download-requirements.py) args: @@ -31,6 +32,7 @@ "{{ download_requirements_os_name }}" \ --no-logfile \ --repos-backup-file /var/tmp/enabled-system-repos.tar \ + --retries-count 10 \ --verbose |& tee >(systemd-cat --identifier=download-requirements.py) args: diff --git a/ansible/playbooks/roles/upgrade/tasks/docker.yml b/ansible/playbooks/roles/upgrade/tasks/docker.yml index 6003f99e68..8b06563582 100644 --- a/ansible/playbooks/roles/upgrade/tasks/docker.yml +++ b/ansible/playbooks/roles/upgrade/tasks/docker.yml @@ -13,8 +13,6 @@ command: >- {{ 'dnf check-update docker-ce' if ansible_os_family == 'RedHat' else 'apt list --upgradable docker-ce' if ansible_os_family == 'Debian' else None }} - args: - warn: no register: check_docker_update failed_when: check_docker_update.rc not in [0, 100] # dnf check-update returns code 100 if there are packages available for update changed_when: false diff --git a/ci/ansible/playbooks/os/ubuntu/upgrade-release.yml b/ci/ansible/playbooks/os/ubuntu/upgrade-release.yml index f688751504..9d6c0ff3e8 100644 --- a/ci/ansible/playbooks/os/ubuntu/upgrade-release.yml +++ b/ci/ansible/playbooks/os/ubuntu/upgrade-release.yml @@ -44,8 +44,6 @@ until: result is succeeded register: result changed_when: false - args: - warn: false # do not suggest apt module # 3) Fully update the system diff --git a/ci/pipelines/linters.yaml b/ci/pipelines/linters.yaml index fb2bc1d5ac..aa7368ec6a 100755 --- a/ci/pipelines/linters.yaml +++ b/ci/pipelines/linters.yaml @@ -13,10 +13,10 @@ pool: name: $(agentPoolName) variables: - ansible_lint_error_threshold: 338 - pylint_score_cli_threshold: 9.41 - pylint_score_tests_threshold: 9.78 - rubocop_linter_threshold: 183 + ansible_lint_error_threshold: 1009 + pylint_score_cli_threshold: 9.52 + pylint_score_tests_threshold: 9.85 + rubocop_linter_threshold: 169 jobs: - job: Run_linters @@ -30,11 +30,11 @@ jobs: - task: Bash@3 displayName: Install Ansible Lint and its dependencies - # Installing Ansible 5.2.0 to be compatible with the epicli image. + # Installing Ansible 9.9.0 to be compatible with the epicli image. inputs: targetType: inline script: | - python3 -m pip install --upgrade ansible==6.2.0 ansible-compat==3.* ansible-lint==6.5.0 ansible-lint-junit==0.16 lxml pip setuptools + python3 -m pip install --upgrade ansible==9.9.0 ansible-lint==24.7.0 ansible-lint-junit==0.17.8 lxml pip setuptools - task: Bash@3 displayName: Run Ansible Lint @@ -79,6 +79,7 @@ jobs: python3 -m pylint ./cli \ --rcfile .pylintrc \ --fail-under=$(pylint_score_cli_threshold) \ + --recursive y \ --output cli_code_results.xml - task: PublishTestResults@2 @@ -96,8 +97,8 @@ jobs: python3 -m pylint ./tests \ --rcfile .pylintrc \ --fail-under=$(pylint_score_tests_threshold) \ - --output test_code_results.xml \ - --disable=F0401 # Disable import-error checking + --recursive y \ + --output test_code_results.xml - task: PublishTestResults@2 displayName: Publish Pylint test results for test code diff --git a/cli/licenses.py b/cli/licenses.py index 5ba05fcec7..3cc7530b5a 100644 --- a/cli/licenses.py +++ b/cli/licenses.py @@ -14,12 +14,20 @@ }, { "Name": "ansible-core", - "Version": "2.17.3", + "Version": "2.16.10", "Summary": "Radically simple IT automation", "Home-page": "https://ansible.com/", "Author": "Ansible, Inc.", "License": "GPLv3+" }, + { + "Name": "ansible", + "Version": "9.9.0", + "Summary": "Radically simple IT automation", + "Home-page": "https://ansible.com/", + "Author": "Ansible, Inc.", + "License": "GPL-3.0-or-later" + }, { "Name": "antlr4-python3-runtime", "Version": "4.13.2", @@ -85,8 +93,7 @@ "Author": "Microsoft Corporation", "License": "MIT License", "License URL": "https://api.github.com/repos/azure/azure-cli/license", - "License repo": "MIT License\n\nCopyright (c) 2016 Microsoft Corporation\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", - "License text": "MIT License\n\nCopyright (c) [year] [fullname]\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n" + "License repo": "MIT License\n\nCopyright (c) 2016 Microsoft Corporation\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n" }, { "Name": "azure-cli-telemetry", @@ -968,7 +975,7 @@ }, { "Name": "boto3", - "Version": "1.35.6", + "Version": "1.35.12", "Summary": "The AWS SDK for Python", "Home-page": "https://github.com/boto/boto3", "Author": "Amazon Web Services", @@ -979,7 +986,7 @@ }, { "Name": "botocore", - "Version": "1.35.6", + "Version": "1.35.12", "Summary": "Low-level, data-driven core of boto 3.", "Home-page": "https://github.com/boto/botocore", "Author": "Amazon Web Services", @@ -990,7 +997,7 @@ }, { "Name": "certifi", - "Version": "2024.7.4", + "Version": "2024.8.30", "Summary": "Python package for providing Mozilla's CA Bundle.", "Home-page": "https://github.com/certifi/python-certifi", "Author": "Kenneth Reitz", @@ -1000,7 +1007,7 @@ }, { "Name": "cffi", - "Version": "1.17.0", + "Version": "1.17.1", "Summary": "Foreign Function Interface for Python calling C code.", "Home-page": "http://cffi.readthedocs.org", "Author": "Armin Rigo, Maciej Fijalkowski", @@ -1046,7 +1053,7 @@ }, { "Name": "cryptography", - "Version": "43.0.0", + "Version": "43.0.1", "Summary": "cryptography is a package which provides cryptographic recipes and primitives to Python developers.", "Home-page": "", "Author": "The cryptography developers ", @@ -1465,7 +1472,7 @@ }, { "Name": "resolvelib", - "Version": "0.8.1", + "Version": "1.0.1", "Summary": "Resolve abstract dependencies into concrete ones", "Home-page": "https://github.com/sarugaku/resolvelib", "Author": "Tzu-ping Chung", diff --git a/cli/src/ansible/AnsibleConfigFileCreator.py b/cli/src/ansible/AnsibleConfigFileCreator.py index afdabe8f35..043fff6b8b 100644 --- a/cli/src/ansible/AnsibleConfigFileCreator.py +++ b/cli/src/ansible/AnsibleConfigFileCreator.py @@ -53,6 +53,7 @@ def process_ansible_options(self): self.add_setting('defaults', 'interpreter_python', 'auto') if not Config().no_color: self.add_setting('defaults', 'force_color', 'true') + self.add_setting('defaults', 'timeout', 30) def create(self): self.logger.info('Creating ansible.cfg') diff --git a/cli/src/ansible/AnsibleInventoryCreator.py b/cli/src/ansible/AnsibleInventoryCreator.py index 6738fd5270..0878da400c 100644 --- a/cli/src/ansible/AnsibleInventoryCreator.py +++ b/cli/src/ansible/AnsibleInventoryCreator.py @@ -1,4 +1,5 @@ from collections import defaultdict +from time import sleep from cli.src.helpers.build_io import save_inventory from cli.src.helpers.doc_list_helpers import select_single @@ -14,6 +15,7 @@ def __init__(self, cluster_model, config_docs): self.cluster_model = cluster_model self.config_docs = config_docs self.proxy = self.get_proxy() + self.retries = 0 def __enter__(self): super().__enter__() @@ -28,12 +30,29 @@ def create(self): inventory = self.get_inventory() save_inventory(inventory, self.cluster_model) + def get_ips_for_feature(self, component_key): + # Retries to avoid `list index out of range` on Azure + try: + ips = self.proxy.get_ips_for_feature(component_key) + except IndexError as ie: + if self.retries < 5: + self.retries += 1 + sleep(1) + self.logger.info(f'Retry: {self.retries}') + ips = self.get_ips_for_feature(component_key) + else: + self.logger.error('All attempts failed') + raise RuntimeError(ie) from ie + + self.retries = 0 + return ips + def get_inventory(self): inventory = [] for component_key, component_value in self.cluster_model.specification.components.items(): if component_value.count < 1: continue - ips = self.proxy.get_ips_for_feature(component_key) + ips = self.get_ips_for_feature(component_key) if len(ips) > 0: roles = self.get_roles_for_feature(component_key) for role in roles: diff --git a/cli/testing/helpers/__init__.py b/cli/testing/helpers/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/unit/helpers/constants.py b/cli/testing/helpers/constants.py similarity index 100% rename from tests/unit/helpers/constants.py rename to cli/testing/helpers/constants.py diff --git a/tests/unit/mocks/StreamMock.py b/cli/testing/mocks/StreamMock.py similarity index 100% rename from tests/unit/mocks/StreamMock.py rename to cli/testing/mocks/StreamMock.py diff --git a/cli/testing/mocks/__init__.py b/cli/testing/mocks/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/unit/providers/data/APIProxy_data.py b/cli/testing/providers/APIProxy_data.py similarity index 100% rename from tests/unit/providers/data/APIProxy_data.py rename to cli/testing/providers/APIProxy_data.py diff --git a/cli/testing/providers/__init__.py b/cli/testing/providers/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/unit/data/schema/ManifestReader_data.py b/cli/testing/schema/ManifestReader_data.py similarity index 100% rename from tests/unit/data/schema/ManifestReader_data.py rename to cli/testing/schema/ManifestReader_data.py diff --git a/cli/testing/schema/__init__.py b/cli/testing/schema/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/conftest.py b/conftest.py index fd607ad4a6..e8f2592c20 100644 --- a/conftest.py +++ b/conftest.py @@ -4,7 +4,7 @@ from cli.src.Config import Config from cli.src.schema.ManifestHandler import ManifestHandler -from tests.unit.helpers.constants import TEST_DOCS, CLUSTER_NAME_SAVE, CLUSTER_NAME_LOAD, NON_EXISTING_CLUSTER,\ +from cli.testing.helpers.constants import TEST_DOCS, CLUSTER_NAME_SAVE, CLUSTER_NAME_LOAD, NON_EXISTING_CLUSTER,\ TEST_JSON, TEST_JSON_NAME diff --git a/docs/changelogs/CHANGELOG-2.0.md b/docs/changelogs/CHANGELOG-2.0.md index 10dc76d95f..bb0b3c3cd9 100644 --- a/docs/changelogs/CHANGELOG-2.0.md +++ b/docs/changelogs/CHANGELOG-2.0.md @@ -1,6 +1,20 @@ - + # Changelog 2.0 +## [2.0.16] 2024-09-09 + +### Updated + +- [#3436](https://github.com/hitachienergy/epiphany/issues/3436) - Upgrade Ansible +- [AWS] AlmaLinux image from 8.6.20220901 to 8.7.20221110 +- Increase the default Ansible timeout for connection plugins to use (from 10 to 30) +- Increase `retries-count` from 3 to 10 for `download-requirements.py` + +### Fixed + +- [Azure] Sometimes `epicli - list index out of range` occurs when creating Ansible inventory +- pytest tests in VS Code + ## [2.0.15] 2024-08-29 ### Fixed @@ -8,7 +22,6 @@ - [#3452](https://github.com/hitachienergy/epiphany/issues/3452) - Import new AlmaLinux 8 GPG key - [#3464](https://github.com/hitachienergy/epiphany/issues/3464) - Update Python dependencies to fix security issues - ## [2.0.14] 2024-04-25 ### Fixed diff --git a/docs/home/ARM.md b/docs/home/ARM.md index 4d94ed6c28..7a1b630846 100644 --- a/docs/home/ARM.md +++ b/docs/home/ARM.md @@ -238,7 +238,7 @@ specification: ### ```AWS``` provider - Important is to specify the correct ```arm64``` machine type for component which can be found [here](https://aws.amazon.com/ec2/instance-types/a1/). -- Important is to specify the correct ```arm64``` OS image which currently is only ```AlmaLinux OS 8.6.20220901 aarch64``` or newer. +- Important is to specify the correct ```arm64``` OS image which currently is only ```AlmaLinux OS 8.7.20221110 aarch64``` or newer. ```yaml --- @@ -315,7 +315,7 @@ title: "Virtual Machine Infra" provider: aws name: default specification: - os_full_name: AlmaLinux OS 8.6.20220901 aarch64 + os_full_name: AlmaLinux OS 8.7.20221110 aarch64 --- kind: infrastructure/virtual-machine name: kafka-machine-arm diff --git a/docs/home/COMPONENTS.md b/docs/home/COMPONENTS.md index 3461cfd4d5..1d53ec2533 100644 --- a/docs/home/COMPONENTS.md +++ b/docs/home/COMPONENTS.md @@ -55,8 +55,9 @@ Note that versions are default versions and can be changed in certain cases thro | Component | Version | Repo/Website | License | | --------- | ------- | ------------ | ------- | | adal | 1.2.7 | https://github.com/AzureAD/azure-activedirectory-library-for-python | [Other](https://api.github.com/repos/azuread/azure-activedirectory-library-for-python/license) | -| ansible-core | 2.17.3 | https://ansible.com/ | GPLv3+ | -| antlr4-python3-runtime | 4.13.1 | http://www.antlr.org | BSD | +| ansible-core | 2.16.10 | https://ansible.com/ | GPLv3+ | +| ansible | 9.9.0 | https://ansible.com/ | GPL-3.0-or-later | +| antlr4-python3-runtime | 4.13.2 | http://www.antlr.org | BSD | | applicationinsights | 0.11.10 | https://github.com/Microsoft/ApplicationInsights-Python | [MIT License](https://api.github.com/repos/microsoft/applicationinsights-python/license) | | argcomplete | 3.3.0 | https://github.com/kislyuk/argcomplete | [Apache License 2.0](https://api.github.com/repos/kislyuk/argcomplete/license) | | attrs | 24.2.0 | https://www.attrs.org/ | MIT | @@ -145,15 +146,15 @@ Note that versions are default versions and can be changed in certain cases thro | azure-synapse-managedprivateendpoints | 0.4.0 | https://github.com/Azure/azure-sdk-for-python | [MIT License](https://api.github.com/repos/azure/azure-sdk-for-python/license) | | azure-synapse-spark | 0.2.0 | https://github.com/Azure/azure-sdk-for-python | [MIT License](https://api.github.com/repos/azure/azure-sdk-for-python/license) | | bcrypt | 4.2.0 | https://github.com/pyca/bcrypt/ | Apache-2.0 | -| boto3 | 1.35.6 | https://github.com/boto/boto3 | [Apache License 2.0](https://api.github.com/repos/boto/boto3/license) | -| botocore | 1.35.6 | https://github.com/boto/botocore | [Apache License 2.0](https://api.github.com/repos/boto/botocore/license) | -| certifi | 2024.7.4 | https://github.com/certifi/python-certifi | [Other](https://api.github.com/repos/certifi/python-certifi/license) | -| cffi | 1.17.0 | http://cffi.readthedocs.org | MIT | +| boto3 | 1.35.12 | https://github.com/boto/boto3 | [Apache License 2.0](https://api.github.com/repos/boto/boto3/license) | +| botocore | 1.35.12 | https://github.com/boto/botocore | [Apache License 2.0](https://api.github.com/repos/boto/botocore/license) | +| certifi | 2024.8.30 | https://github.com/certifi/python-certifi | [Other](https://api.github.com/repos/certifi/python-certifi/license) | +| cffi | 1.17.1 | http://cffi.readthedocs.org | MIT | | chardet | 5.2.0 | https://github.com/chardet/chardet | [GNU Lesser General Public License v2.1](https://api.github.com/repos/chardet/chardet/license) | | charset-normalizer | 3.3.2 | https://github.com/Ousret/charset_normalizer | [MIT License](https://api.github.com/repos/ousret/charset_normalizer/license) | | click | 8.1.7 | https://palletsprojects.com/p/click/ | BSD-3-Clause | | colorama | 0.4.6 | https://github.com/tartley/colorama | BSD 3-Clause "New" or "Revised" License | -| cryptography | 43.0.0 | https://github.com/pyca/cryptography | Apache-2.0 OR BSD-3-Clause | +| cryptography | 43.0.1 | https://github.com/pyca/cryptography | Apache-2.0 OR BSD-3-Clause | | decorator | 5.1.1 | https://github.com/micheles/decorator | [BSD 2-Clause "Simplified" License](https://api.github.com/repos/micheles/decorator/license) | | Deprecated | 1.2.14 | https://github.com/tantale/deprecated | [MIT License](https://api.github.com/repos/tantale/deprecated/license) | | Antergos Linux | 2015.10 (ISO-Rolling) | https://github.com/python-distro/distro | [Apache License 2.0](https://api.github.com/repos/python-distro/distro/license) | @@ -170,23 +171,22 @@ Note that versions are default versions and can be changed in certain cases thro | jsonschema | 4.23.0 | https://json-schema.org/ | MIT | | knack | 0.11.0 | https://github.com/microsoft/knack | [MIT License](https://api.github.com/repos/microsoft/knack/license) | | MarkupSafe | 2.1.5 | https://palletsprojects.com/p/markupsafe/ | BSD-3-Clause | -| msal-extensions | https://github.com/AzureAD/microsoft-authentication-extensions-for-python | MIT | +| msal-extensions | 1.2.0 | https://github.com/AzureAD/microsoft-authentication-extensions-for-python | MIT License | | msal | 1.30.0 | https://github.com/AzureAD/microsoft-authentication-library-for-python | [Other](https://api.github.com/repos/azuread/microsoft-authentication-library-for-python/license) | | msal | 1.30.0 | https://github.com/AzureAD/microsoft-authentication-library-for-python | [Other](https://api.github.com/repos/azuread/microsoft-authentication-library-for-python/license) | | msrest | 0.7.1 | https://github.com/Azure/msrest-for-python | [MIT License](https://api.github.com/repos/azure/msrest-for-python/license) | | msrestazure | 0.6.4.post1 | https://github.com/Azure/msrestazure-for-python | [MIT License](https://api.github.com/repos/azure/msrestazure-for-python/license) | | oauthlib | 3.2.2 | https://github.com/oauthlib/oauthlib | [BSD 3-Clause "New" or "Revised" License](https://api.github.com/repos/oauthlib/oauthlib/license) | -| packaging | 24.1 | [Other](https://api.github.com/repos/pypa/packaging/license) | +| packaging | 24.1 | https://github.com/pypa/packaging | [Other](https://api.github.com/repos/pypa/packaging/license) | | paramiko | 3.4.1 | https://paramiko.org | LGPL | | pkginfo | 1.10.0 | https://code.launchpad.net/~tseaver/pkginfo/trunk | MIT | -| portalocker | 2.10.1 | https://github.com/WoLpH/portalocker | BSD-3-Clause | +| portalocker | 2.10.1 | https://github.com/WoLpH/portalocker | BSD-3-Clause | | psutil | 6.0.0 | https://github.com/giampaolo/psutil | [BSD 3-Clause "New" or "Revised" License](https://api.github.com/repos/giampaolo/psutil/license) | | pycomposefile | 0.0.31 | https://github.com/smurawski/pycomposefile | [MIT License](https://api.github.com/repos/smurawski/pycomposefile/license) | | pycparser | 2.22 | https://github.com/eliben/pycparser | [Other](https://api.github.com/repos/eliben/pycparser/license) | | PyGithub | 1.59.1 | https://github.com/pygithub/pygithub | [GNU Lesser General Public License v3.0](https://api.github.com/repos/pygithub/pygithub/license) | | Pygments | 2.18.0 | https://pygments.org/ | BSD-2-Clause | | PyJWT | 2.9.0 | https://github.com/jpadilla/pyjwt | [MIT License](https://api.github.com/repos/jpadilla/pyjwt/license) | -| PyJWT | 2.9.0 | https://github.com/jpadilla/pyjwt | [MIT License](https://api.github.com/repos/jpadilla/pyjwt/license) | | PyNaCl | 1.5.0 | https://github.com/pyca/pynacl/ | [Apache License 2.0](https://api.github.com/repos/pyca/pynacl/license) | | pyOpenSSL | 24.2.1 | https://pyopenssl.org/ | Apache License, Version 2.0 | | PySocks | 1.7.1 | https://github.com/Anorov/PySocks | [Other](https://api.github.com/repos/anorov/pysocks/license) | @@ -197,7 +197,7 @@ Note that versions are default versions and can be changed in certain cases thro | requests-oauthlib | 2.0.0 | https://github.com/requests/requests-oauthlib | [ISC License](https://api.github.com/repos/requests/requests-oauthlib/license) | | requests | 2.32.3 | https://requests.readthedocs.io | Apache-2.0 | | requests | 2.32.3 | https://requests.readthedocs.io | Apache-2.0 | -| resolvelib | 0.8.1 | https://github.com/sarugaku/resolvelib | [ISC License](https://api.github.com/repos/sarugaku/resolvelib/license) | +| resolvelib | 1.0.1 | https://github.com/sarugaku/resolvelib | [ISC License](https://api.github.com/repos/sarugaku/resolvelib/license) | | rpds-py | 0.20.0 | https://github.com/crate-py/rpds | MIT | | ruamel.yaml.clib | 0.2.8 | https://sourceforge.net/p/ruamel-yaml-clib/code/ci/default/tree | MIT | | ruamel.yaml | 0.17.40 | https://sourceforge.net/p/ruamel-yaml/code/ci/default/tree | MIT license | diff --git a/pytest.ini b/pytest.ini index 0d7b30de6e..65536ee988 100644 --- a/pytest.ini +++ b/pytest.ini @@ -3,6 +3,10 @@ filterwarnings = # packaging package is dependency of azure-cli ignore:The distutils package is deprecated:DeprecationWarning:packaging.tags +pythonpath = + . + ansible/playbooks/roles/repository + ansible/playbooks/roles/repository/files/download-requirements testpaths = tests/unit/ ansible/playbooks/roles/repository/library/tests/ diff --git a/schema/aws/defaults/infrastructure/cloud-os-image-defaults.yml b/schema/aws/defaults/infrastructure/cloud-os-image-defaults.yml index 055087a1bb..18423ab9e0 100644 --- a/schema/aws/defaults/infrastructure/cloud-os-image-defaults.yml +++ b/schema/aws/defaults/infrastructure/cloud-os-image-defaults.yml @@ -3,7 +3,7 @@ kind: infrastructure/cloud-os-image-defaults title: "Cloud OS Image Defaults" name: default specification: - almalinux-8-arm64: AlmaLinux OS 8.6.20220901 aarch64 - almalinux-8-x86_64: AlmaLinux OS 8.6.20220901 x86_64 + almalinux-8-arm64: AlmaLinux OS 8.7.20221110 aarch64 + almalinux-8-x86_64: AlmaLinux OS 8.7.20221110 x86_64 rhel-8-x86_64: RHEL-8.4.0_HVM-20230419-x86_64-41-Hourly2-GP2 ubuntu-20.04-x86_64: ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20231004 diff --git a/tests/unit/helpers/test_build_io.py b/tests/unit/helpers/test_build_io.py index 1c9b2b4cd3..959b8088c9 100644 --- a/tests/unit/helpers/test_build_io.py +++ b/tests/unit/helpers/test_build_io.py @@ -19,10 +19,10 @@ save_ansible_config_file, save_inventory) from cli.src.helpers.objdict_helpers import dict_to_objdict from cli.src.helpers.yaml_helpers import safe_load -from tests.unit.helpers.constants import (CLUSTER_NAME_SAVE, - OUTPUT_PATH, - TEST_CLUSTER_MODEL, - TEST_INVENTORY) +from cli.testing.helpers.constants import (CLUSTER_NAME_SAVE, + OUTPUT_PATH, + TEST_CLUSTER_MODEL, + TEST_INVENTORY) ANSIBLE_CONFIG_FILE_SETTINGS = [('defaults', { 'interpreter_python': 'auto_legacy_silent', diff --git a/tests/unit/helpers/test_data_loader.py b/tests/unit/helpers/test_data_loader.py index 0cf947d5e8..7758bfb999 100644 --- a/tests/unit/helpers/test_data_loader.py +++ b/tests/unit/helpers/test_data_loader.py @@ -7,9 +7,9 @@ load_json_obj, load_schema_obj, load_template_file, schema_types, template_types) -from tests.unit.helpers.constants import (OUTPUT_PATH, TEST_CLUSTER_MODEL, - TEST_INVENTORY, TEST_JSON, - TEST_JSON_NAME) +from cli.testing.helpers.constants import (OUTPUT_PATH, TEST_CLUSTER_MODEL, + TEST_INVENTORY, TEST_JSON, + TEST_JSON_NAME) TEST_MINIMAL_CLUSTER_CONFIG = { 'kind': 'epiphany-cluster', diff --git a/tests/unit/providers/any/test_APIProxy.py b/tests/unit/providers/any/test_APIProxy.py index 4f094ead02..3615a2d268 100644 --- a/tests/unit/providers/any/test_APIProxy.py +++ b/tests/unit/providers/any/test_APIProxy.py @@ -2,7 +2,7 @@ from cli.src.models.AnsibleHostModel import AnsibleOrderedHostModel from cli.src.providers.any.APIProxy import APIProxy -from tests.unit.providers.data.APIProxy_data import CLUSTER_MODEL, CONFIG_DOC +from cli.testing.providers.APIProxy_data import CLUSTER_MODEL, CONFIG_DOC def test_get_ips_for_feature(mocker: MockerFixture): diff --git a/tests/unit/providers/aws/test_APIProxy.py b/tests/unit/providers/aws/test_APIProxy.py index acdc188e9e..a78cf9f62f 100644 --- a/tests/unit/providers/aws/test_APIProxy.py +++ b/tests/unit/providers/aws/test_APIProxy.py @@ -2,8 +2,7 @@ from cli.src.models.AnsibleHostModel import AnsibleOrderedHostModel from cli.src.providers.aws.APIProxy import APIProxy -from tests.unit.providers.data.APIProxy_data import (CLUSTER_MODEL, - RUNNING_INSTANCES_AWS) +from cli.testing.providers.APIProxy_data import CLUSTER_MODEL, RUNNING_INSTANCES_AWS def test_get_ips_for_feature(mocker: MockerFixture): diff --git a/tests/unit/providers/azure/test_APIProxy.py b/tests/unit/providers/azure/test_APIProxy.py index e80a8c0333..6b4886dd8e 100644 --- a/tests/unit/providers/azure/test_APIProxy.py +++ b/tests/unit/providers/azure/test_APIProxy.py @@ -2,8 +2,7 @@ from cli.src.models.AnsibleHostModel import AnsibleOrderedHostModel from cli.src.providers.azure.APIProxy import APIProxy -from tests.unit.providers.data.APIProxy_data import (CLUSTER_MODEL, - RUNNING_INSTANCES_AZURE) +from cli.testing.providers.APIProxy_data import CLUSTER_MODEL, RUNNING_INSTANCES_AZURE def test_get_ips_for_feature(mocker: MockerFixture): diff --git a/tests/unit/schema/test_ManifestReader.py b/tests/unit/schema/test_ManifestReader.py index 2b3260af32..72a19dce99 100644 --- a/tests/unit/schema/test_ManifestReader.py +++ b/tests/unit/schema/test_ManifestReader.py @@ -5,7 +5,7 @@ from cli.src.helpers.objdict_helpers import dict_to_objdict from cli.src.helpers.yaml_helpers import safe_load_all from cli.src.schema.ManifestHandler import ManifestHandler -from tests.unit.data.schema.ManifestReader_data import ( +from cli.testing.schema.ManifestReader_data import ( EXPECTED_PARSED_MANIFEST_DOCS, EXPECTED_UPDATED_DOC_BASE, EXPECTED_UPDATED_DOC_WITH_NEW_DOC_ADDED, @@ -14,7 +14,7 @@ INPUT_DOC_TO_UPDATE_TWO_INFRA_DOCS, INPUT_MANIFEST_DOCS ) -from tests.unit.mocks.StreamMock import StreamMock +from cli.testing.mocks.StreamMock import StreamMock def test_read_manifest(mocker: MockerFixture):