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/VERSION b/VERSION index 547c341e46..633652ec4d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.0.16dev +2.0.18dev 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/containerd/templates/config.toml.j2 b/ansible/playbooks/roles/containerd/templates/config.toml.j2 index 52893a8b8c..e3bdc3f7e8 100644 --- a/ansible/playbooks/roles/containerd/templates/config.toml.j2 +++ b/ansible/playbooks/roles/containerd/templates/config.toml.j2 @@ -55,7 +55,7 @@ oom_score = 0 stream_idle_timeout = "4h0m0s" enable_selinux = false selinux_category_range = 1024 - sandbox_image = "{{ image_registry_address }}/k8s.gcr.io/pause:3.5" + sandbox_image = "{{ image_registry_address }}/registry.k8s.io/pause:3.5" stats_collect_period = 10 systemd_cgroup = false enable_tls_streaming = false 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/requirements/aarch64/images.yml b/ansible/playbooks/roles/repository/files/download-requirements/requirements/aarch64/images.yml index 53fd35e3a8..994fedda33 100644 --- a/ansible/playbooks/roles/repository/files/download-requirements/requirements/aarch64/images.yml +++ b/ansible/playbooks/roles/repository/files/download-requirements/requirements/aarch64/images.yml @@ -33,26 +33,26 @@ images: sha1: 996f919bfc7db09e30f759d5987395bce287e63d # K8s # v1.22.4 - 'k8s.gcr.io/kube-apiserver:v1.22.4': - sha1: eea0329e33a54d62b0b1cfd6e54169a0f70201a9 + 'registry.k8s.io/kube-apiserver:v1.22.4': + sha1: 2fad255ce92b7ee12f206be9d9d098194a8bc151 - 'k8s.gcr.io/kube-controller-manager:v1.22.4': - sha1: 8fb47001234a741bcd9b1f76d863b8a818728145 + 'registry.k8s.io/kube-controller-manager:v1.22.4': + sha1: 51f7911deeadd69d90486a52a4f28e46acf47ef8 - 'k8s.gcr.io/kube-scheduler:v1.22.4': - sha1: 687d3836b2dfc047a3f146254efa0b1f6c692f69 + 'registry.k8s.io/kube-scheduler:v1.22.4': + sha1: eb715ec0defec88b946b4bb37a41b012968b0ac8 - 'k8s.gcr.io/kube-proxy:v1.22.4': - sha1: b3ce65eedfbf046f619d6f65f6d4cfe442f181a0 + 'registry.k8s.io/kube-proxy:v1.22.4': + sha1: 182c5c09e343f3d4e2072cd9e1f9bd93ca254892 - 'k8s.gcr.io/coredns/coredns:v1.8.4': - sha1: e89c23e998fa93d17a09d1b7cef6aae5cb24b049 + 'registry.k8s.io/coredns/coredns:v1.8.4': + sha1: a1cce4643a1e5e8455c96e3adaee141cd8732768 - 'k8s.gcr.io/etcd:3.5.0-0': - sha1: 3aa7fb15e643e0d199e7b7f7f165533bc4a67f39 + 'registry.k8s.io/etcd:3.5.0-0': + sha1: b20cc5eb05db5efaa0dbd17a4ce952bf1032958a - 'k8s.gcr.io/pause:3.5': - sha1: 8be7eaa14c9425a6286635d0440f6611ca115d67 + 'registry.k8s.io/pause:3.5': + sha1: 95ce209a3229d539db6ec24722e0a86f67e8a157 'quay.io/coreos/flannel:v0.14.0': sha1: 13b299bcaa8e0c78d9fe1f5cd9b2155651976d92 diff --git a/ansible/playbooks/roles/repository/files/download-requirements/requirements/x86_64/debian/ubuntu-20.04/packages.yml b/ansible/playbooks/roles/repository/files/download-requirements/requirements/x86_64/debian/ubuntu-20.04/packages.yml index 47f267b4cd..50b078d72d 100644 --- a/ansible/playbooks/roles/repository/files/download-requirements/requirements/x86_64/debian/ubuntu-20.04/packages.yml +++ b/ansible/playbooks/roles/repository/files/download-requirements/requirements/x86_64/debian/ubuntu-20.04/packages.yml @@ -92,6 +92,7 @@ packages: # postgres related packages # if version is not specified, it's not related to postgres version and the latest is used + - 'libipc-run-perl' # for postgresql-client-common - 'pgdg-keyring' - 'postgresql-13-pgaudit=1.5.0*' - 'postgresql-10-repmgr=5.2.1*' diff --git a/ansible/playbooks/roles/repository/files/download-requirements/requirements/x86_64/images.yml b/ansible/playbooks/roles/repository/files/download-requirements/requirements/x86_64/images.yml index 185cd86be9..9dfeb9f07a 100644 --- a/ansible/playbooks/roles/repository/files/download-requirements/requirements/x86_64/images.yml +++ b/ansible/playbooks/roles/repository/files/download-requirements/requirements/x86_64/images.yml @@ -40,26 +40,26 @@ images: # K8s # v1.22.4 - 'k8s.gcr.io/kube-apiserver:v1.22.4': - sha1: 3c83ee79ae018a583f2d4642b8829570fd4f1d9f + 'registry.k8s.io/kube-apiserver:v1.22.4': + sha1: 753ff29805d9ac873f409f0cd8dec0818dba4b2d - 'k8s.gcr.io/kube-controller-manager:v1.22.4': - sha1: 4e17c60205a0ea8304dbb57aadf2befd31173fc0 + 'registry.k8s.io/kube-controller-manager:v1.22.4': + sha1: 3e6936ed6984505bcd194da11b8fcd3e77b52ac4 - 'k8s.gcr.io/kube-scheduler:v1.22.4': - sha1: b157699b85ac5f9c5175e8c469d1ba1ecdd3c4ff + 'registry.k8s.io/kube-scheduler:v1.22.4': + sha1: d1fa695dbae08408cf22c8e14b6a70058d5873e1 - 'k8s.gcr.io/kube-proxy:v1.22.4': - sha1: 6bab7b8f18941f120c14068d80814621b64f098e + 'registry.k8s.io/kube-proxy:v1.22.4': + sha1: b0e3b50e84060be942e48ea67a5c4a95b7355973 - 'k8s.gcr.io/coredns/coredns:v1.8.4': - sha1: 282c7b3836bc5d3673027871ffe2140e980df097 + 'registry.k8s.io/coredns/coredns:v1.8.4': + sha1: 447ce8fb5c1ef69298658d976e8aa3a55da28675 - 'k8s.gcr.io/etcd:3.5.0-0': - sha1: c6354fbd7424494ceb6deb24128574e59e258fa6 + 'registry.k8s.io/etcd:3.5.0-0': + sha1: 78f42080da842ff9454ba9420ad48d90e84de045 - 'k8s.gcr.io/pause:3.5': - sha1: d0359d4eec7d50783612e9cd59a54a5e517c774e + 'registry.k8s.io/pause:3.5': + sha1: 98f71abc4bdab5a3d5eb779b18483caed2544c5d 'quay.io/coreos/flannel:v0.14.0': sha1: 092a48b4eebb7a2328124a89fb7f2b9b4bcb3991 @@ -77,20 +77,20 @@ images: sha1: c096f70cf3b486b3f0d084c85d33deab6b9423ef rook: - 'k8s.gcr.io/sig-storage/csi-attacher:v3.4.0': - sha1: 8567876a11c527e9d406d3f3efa09e3cee437985 + 'registry.k8s.io/sig-storage/csi-attacher:v3.4.0': + sha1: a65c9b964b98b0a908a577350a03a5166ab467b3 - 'k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.5.0': - sha1: 07104d23bbb224f81ef6b8fd379b01a7cbba0946 + 'registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.5.0': + sha1: 49304df65bfbb463bb4be7db688a95c2b1c1a1a5 - 'k8s.gcr.io/sig-storage/csi-provisioner:v3.1.0': - sha1: 55c9d55eb0f2cbe9e37e5464e578b2d7fa45f8f8 + 'registry.k8s.io/sig-storage/csi-provisioner:v3.1.0': + sha1: 0d909f211b06853aaaea6e2533f91e7b7ecfd210 - 'k8s.gcr.io/sig-storage/csi-resizer:v1.4.0': - sha1: 289bafda08f126423dcf7ad78f08a5d8ed57a82e + 'registry.k8s.io/sig-storage/csi-resizer:v1.4.0': + sha1: 8acc84db171b9b8efc17290e17ea7e12e9a09219 - 'k8s.gcr.io/sig-storage/csi-snapshotter:v5.0.1': - sha1: 8deb564fde820c7f795d8b425f867d4194edd088 + 'registry.k8s.io/sig-storage/csi-snapshotter:v5.0.1': + sha1: d5d1b7d2b3eee884dda7d5cd9a6b553d4d997d50 'quay.io/ceph/ceph:v16.2.7-20220510': sha1: 7ffb69fe844f59486704ea80d6802d7d3416b455 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/files/download-requirements/tests/data/config.py b/ansible/playbooks/roles/repository/files/download-requirements/tests/data/config.py index f4314987d7..eba5767540 100644 --- a/ansible/playbooks/roles/repository/files/download-requirements/tests/data/config.py +++ b/ansible/playbooks/roles/repository/files/download-requirements/tests/data/config.py @@ -181,23 +181,23 @@ # K8s # v1.18.6 - 'k8s.gcr.io/kube-apiserver:v1.18.6': - sha1: 164968226f4617abaa31e6108ed9034a1e302f4f + 'registry.k8s.io/kube-apiserver:v1.18.6': + sha1: 7376c22211a4e854efb9c7d486d125cd6b9ad937 - 'k8s.gcr.io/kube-controller-manager:v1.18.6': - sha1: ebea3fecab9e5693d31438fa37dc4d02c6914d67 + 'registry.k8s.io/kube-controller-manager:v1.18.6': + sha1: cd96d2d94dc62a93e8603f362d981dfba8a5917a - 'k8s.gcr.io/kube-scheduler:v1.18.6': - sha1: 183d29c4fdcfda7478d08240934fdb6845e2e3ec + 'registry.k8s.io/kube-scheduler:v1.18.6': + sha1: c40ae182f4af1ddbd7b57fff832979c42847655a - 'k8s.gcr.io/kube-proxy:v1.18.6': - sha1: 62da886e36efff0c03a16e19c1442a1c3040fbf1 + 'registry.k8s.io/kube-proxy:v1.18.6': + sha1: 75418f30f6e3e6d502ee71d3c7b1253e42cfa6b2 - 'k8s.gcr.io/coredns:1.6.7': - sha1: 76615ffabb22fd4fb3d562cb6ebcd243f8826e48 + 'registry.k8s.io/coredns:1.6.7': + sha1: ff4a87c424b1997544d61542c0f0152625466985 - 'k8s.gcr.io/etcd:3.4.3-0': - sha1: 6ee82ddb1bbc7f1831c42046612b8bcfbb171b45 + 'registry.k8s.io/etcd:3.4.3-0': + sha1: 6afca8c0f0be353a7262c9a4f75cc51e7f77e019 'quay.io/coreos/flannel:v0.12.0-amd64': sha1: 3516522e779373983992095e61eb6615edd50d1f @@ -218,80 +218,80 @@ sha1: dd1a6525bde05937a28e3d9176b826162ae489af # v1.19.15 - 'k8s.gcr.io/kube-apiserver:v1.19.15': - sha1: e01c8d778e4e693a0ea09cdbbe041a65cf070c6f + 'registry.k8s.io/kube-apiserver:v1.19.15': + sha1: 8ba2f1966563a1cee14c308fb35269a468529fc7 - 'k8s.gcr.io/kube-controller-manager:v1.19.15': - sha1: d1f5cc6a861b2259861fb78b2b83e9a07b788e31 + 'registry.k8s.io/kube-controller-manager:v1.19.15': + sha1: 36a0dde7704d782291158ed3fc4170f887fa7aca - 'k8s.gcr.io/kube-scheduler:v1.19.15': - sha1: b07fdd17205bc071ab108851d245689642244f92 + 'registry.k8s.io/kube-scheduler:v1.19.15': + sha1: 3ba7a05cc19f1accec94557e81c36d146993f76b - 'k8s.gcr.io/kube-proxy:v1.19.15': - sha1: 9e2e7a8d40840bbade3a1f2dc743b9226491b6c2 + 'registry.k8s.io/kube-proxy:v1.19.15': + sha1: de785d5892a9394a7cd8c432f40dc1e2874c565f # v1.20.12 - 'k8s.gcr.io/kube-apiserver:v1.20.12': - sha1: bbb037b9452db326aaf09988cee080940f3c418a + 'registry.k8s.io/kube-apiserver:v1.20.12': + sha1: b8c79267b9cbe1310f407f787e7d1643841a4b30 - 'k8s.gcr.io/kube-controller-manager:v1.20.12': - sha1: 4a902578a0c548edec93e0f4afea8b601fa54b93 + 'registry.k8s.io/kube-controller-manager:v1.20.12': + sha1: 88e0b52ce2abe3fbe3bcaf2043fd6a2e8ff4d428 - 'k8s.gcr.io/kube-scheduler:v1.20.12': - sha1: ed5ceb21d0f5bc350db69550fb7feac7a6f1e50b + 'registry.k8s.io/kube-scheduler:v1.20.12': + sha1: 47934c2c8fbb8e7051ecf3481c466f5021201710 - 'k8s.gcr.io/kube-proxy:v1.20.12': - sha1: f937aba709f52be88360361230840e7bca756b2e + 'registry.k8s.io/kube-proxy:v1.20.12': + sha1: 0e562fedb15086e613bf6c6fbc2e4193bc49cc76 - 'k8s.gcr.io/coredns:1.7.0': - sha1: 5aa15f4cb942885879955b98a0a824833d9f66eb + 'registry.k8s.io/coredns:1.7.0': + sha1: 521d9f2b461ce4b8a1407715596fec93bfb27e64 - 'k8s.gcr.io/pause:3.2': - sha1: ae4799e1a1ec9cd0dda8ab643b6e50c9fe505fef + 'registry.k8s.io/pause:3.2': + sha1: a107a151b90d28890f247d4fe951b7b8cf1c7ee7 # v1.21.7 - 'k8s.gcr.io/kube-apiserver:v1.21.7': - sha1: edb26859b3485808716982deccd90ca420828649 + 'registry.k8s.io/kube-apiserver:v1.21.7': + sha1: 8aa1733cdf257a58f02df6ad6e23176d97e81b79 - 'k8s.gcr.io/kube-controller-manager:v1.21.7': - sha1: 9abf1841da5b113b377c1471880198259ec2d246 + 'registry.k8s.io/kube-controller-manager:v1.21.7': + sha1: cf43f4a88e3b6c79014e5b1e31dd2c0de0da3300 - 'k8s.gcr.io/kube-scheduler:v1.21.7': - sha1: 996d25351afc96a10e9008c04418db07a99c76b7 + 'registry.k8s.io/kube-scheduler:v1.21.7': + sha1: f2e62ec380344ea246b40b90cadb3171d211cdab - 'k8s.gcr.io/kube-proxy:v1.21.7': - sha1: 450af22a892ffef276d4d58332b7817a1dde34e7 + 'registry.k8s.io/kube-proxy:v1.21.7': + sha1: a121226c3a55b10fd607d280fc9c471f60b86632 - 'k8s.gcr.io/coredns/coredns:v1.8.0': - sha1: 03114a98137e7cc2dcf4983b919e6b93ac8d1189 + 'registry.k8s.io/coredns/coredns:v1.8.0': + sha1: 43da34af984b00bd2fcdf5364ff9526433e499c8 - 'k8s.gcr.io/etcd:3.4.13-0': - sha1: d37a2efafcc4aa86e6dc497e87e80b5d7f326115 + 'registry.k8s.io/etcd:3.4.13-0': + sha1: ee125946a39ce208cb7e38d0fc9a985150f1c3fe - 'k8s.gcr.io/pause:3.4.1': - sha1: 7f57ae28d733f99c0aab8f4e27d4b0c034cd0c04 + 'registry.k8s.io/pause:3.4.1': + sha1: c4a3022683dee873dc861328dca2d5524910bbc5 # v1.22.4 - 'k8s.gcr.io/kube-apiserver:v1.22.4': - sha1: 2bf4ddb2e1f1530cf55ebaf8e8d0c56ad378b9ec + 'registry.k8s.io/kube-apiserver:v1.22.4': + sha1: 753ff29805d9ac873f409f0cd8dec0818dba4b2d - 'k8s.gcr.io/kube-controller-manager:v1.22.4': - sha1: 241924fa3dc4671fe6644402f7beb60028c02c71 + 'registry.k8s.io/kube-controller-manager:v1.22.4': + sha1: 3e6936ed6984505bcd194da11b8fcd3e77b52ac4 - 'k8s.gcr.io/kube-scheduler:v1.22.4': - sha1: 373e2939072b03cf5b1e115820b7fb6b749b0ebb + 'registry.k8s.io/kube-scheduler:v1.22.4': + sha1: d1fa695dbae08408cf22c8e14b6a70058d5873e1 - 'k8s.gcr.io/kube-proxy:v1.22.4': - sha1: fecfb88509a430c29267a99b83f60f4a7c333583 + 'registry.k8s.io/kube-proxy:v1.22.4': + sha1: b0e3b50e84060be942e48ea67a5c4a95b7355973 - 'k8s.gcr.io/coredns/coredns:v1.8.4': - sha1: 69c8e14ac3941fd5551ff22180be5f4ea2742d7f + 'registry.k8s.io/coredns/coredns:v1.8.4': + sha1: 447ce8fb5c1ef69298658d976e8aa3a55da28675 - 'k8s.gcr.io/etcd:3.5.0-0': - sha1: 9d9ee2df54a201dcc9c7a10ea763b9a5dce875f1 + 'registry.k8s.io/etcd:3.5.0-0': + sha1: 78f42080da842ff9454ba9420ad48d90e84de045 - 'k8s.gcr.io/pause:3.5': - sha1: bf3e3420df62f093f94c41d2b7a62b874dcbfc28 + 'registry.k8s.io/pause:3.5': + sha1: 98f71abc4bdab5a3d5eb779b18483caed2544c5d 'quay.io/coreos/flannel:v0.14.0-amd64': sha1: cff47465996a51de4632b53abf1fca873f147027 @@ -311,20 +311,20 @@ 'calico/pod2daemon-flexvol:v3.20.3': sha1: 97c1b7ac90aa5a0f5c52e7f137549e598ff80f3e - 'k8s.gcr.io/sig-storage/csi-attacher:v3.4.0': - sha1: f076bd75359c6449b965c48eb8bad96c6d40790d + 'registry.k8s.io/sig-storage/csi-attacher:v3.4.0': + sha1: a65c9b964b98b0a908a577350a03a5166ab467b3 - 'k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.5.0': - sha1: 129eb73c8e118e5049fee3d273b2d477c547e080 + 'registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.5.0': + sha1: 49304df65bfbb463bb4be7db688a95c2b1c1a1a5 - 'k8s.gcr.io/sig-storage/csi-provisioner:v3.1.0': - sha1: 2b45e5a3432cb89f3aec59584c1fa92c069e7a38 + 'registry.k8s.io/sig-storage/csi-provisioner:v3.1.0': + sha1: 0d909f211b06853aaaea6e2533f91e7b7ecfd210 - 'k8s.gcr.io/sig-storage/csi-resizer:v1.4.0': - sha1: ce5c57454254c195762c1f58e1d902d7e81ea669 + 'registry.k8s.io/sig-storage/csi-resizer:v1.4.0': + sha1: 8acc84db171b9b8efc17290e17ea7e12e9a09219 - 'k8s.gcr.io/sig-storage/csi-snapshotter:v5.0.1': - sha1: be1cf43617eea007629c0eb99149a99b6498f889 + 'registry.k8s.io/sig-storage/csi-snapshotter:v5.0.1': + sha1: d5d1b7d2b3eee884dda7d5cd9a6b553d4d997d50 'quay.io/ceph/ceph:v16.2.7': sha1: fe9b7802c67e19111f83ffe4754ab62df66fd417 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..0ca5cc2838 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.54 + 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-0.5.md b/docs/changelogs/CHANGELOG-0.5.md index 6f846a1ff8..edd2b9b8df 100644 --- a/docs/changelogs/CHANGELOG-0.5.md +++ b/docs/changelogs/CHANGELOG-0.5.md @@ -71,7 +71,7 @@ - [#842](https://github.com/hitachienergy/epiphany/issues/842) - Firewall: Do not require kubernetes_master and kubernetes_node components - Filebeat (Ubuntu): [Installing auditd sometimes fails in post-inst](https://bugs.launchpad.net/ubuntu/+source/auditd/+bug/1848330) - Filebeat (Ubuntu): Restarting auditd service sometimes fails with error: "Job for auditd.service failed because a timeout was exceeded" -- Repository (RHEL/CentOS): Add second try for skopeo to avoid random error on Azure: "pinging docker registry returned: Get https://k8s.gcr.io/v2/: net/http: TLS handshake timeout" +- Repository (RHEL/CentOS): Add second try for skopeo to avoid random error on Azure: "pinging docker registry returned: Get https://registry.k8s.io/v2/: net/http: TLS handshake timeout" - [#860](https://github.com/hitachienergy/epiphany/issues/860) - Prometheus: K8s packages and their dependencies are installed on prometheus host ## [0.5.0] 2020-01-17 diff --git a/docs/changelogs/CHANGELOG-2.0.md b/docs/changelogs/CHANGELOG-2.0.md index d9e9421845..84e5555ce0 100644 --- a/docs/changelogs/CHANGELOG-2.0.md +++ b/docs/changelogs/CHANGELOG-2.0.md @@ -1,6 +1,27 @@ - + # Changelog 2.0 +## [2.0.17] 2024-11-15 + +### Fixed + +- [#3473](https://github.com/hitachienergy/epiphany/issues/3473) - Missing dependency for postgresql-client-common package +- [#3474](https://github.com/hitachienergy/epiphany/issues/3474) - Missing AWS AlmaLinux OS 8.7 image + +## [2.0.16] 2024-09-10 + +### 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 +29,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 @@ -70,7 +90,7 @@ ### Updated -- [#3347](https://github.com/hitachienergy/epiphany/issues/3347) - Switch from `k8s.gcr.io` to `registry.k8s.io` +- [#3347](https://github.com/hitachienergy/epiphany/issues/3347) - Switch from `registry.k8s.io` to `registry.k8s.io` ## [2.0.5] 2023-03-01 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..4bf11357c3 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.8.20230524 aarch64 + almalinux-8-x86_64: AlmaLinux OS 8.8.20230524 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/schema/common/defaults/configuration/image-registry.yml b/schema/common/defaults/configuration/image-registry.yml index b9bf8fc028..1c481da8f6 100644 --- a/schema/common/defaults/configuration/image-registry.yml +++ b/schema/common/defaults/configuration/image-registry.yml @@ -28,15 +28,15 @@ specification: - name: "kubernetesui/metrics-scraper:v1.0.7" file_name: metrics-scraper-v1.0.7.tar rook: - - name: "k8s.gcr.io/sig-storage/csi-attacher:v3.4.0" + - name: "registry.k8s.io/sig-storage/csi-attacher:v3.4.0" file_name: csi-attacher-v3.4.0.tar - - name: "k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.5.0" + - name: "registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.5.0" file_name: csi-node-driver-registrar-v2.5.0.tar - - name: "k8s.gcr.io/sig-storage/csi-provisioner:v3.1.0" + - name: "registry.k8s.io/sig-storage/csi-provisioner:v3.1.0" file_name: csi-provisioner-v3.1.0.tar - - name: "k8s.gcr.io/sig-storage/csi-resizer:v1.4.0" + - name: "registry.k8s.io/sig-storage/csi-resizer:v1.4.0" file_name: csi-resizer-v1.4.0.tar - - name: "k8s.gcr.io/sig-storage/csi-snapshotter:v5.0.1" + - name: "registry.k8s.io/sig-storage/csi-snapshotter:v5.0.1" file_name: csi-snapshotter-v5.0.1.tar - name: "quay.io/ceph/ceph:v16.2.7-20220510" file_name: ceph-v16.2.7-20220510.tar @@ -55,19 +55,19 @@ specification: kubernetes-master: # K8s v1.22.4 - Epiphany 1.3 # https://github.com/kubernetes/kubernetes/blob/v1.22.4/build/dependencies.yaml - - name: "k8s.gcr.io/kube-apiserver:v1.22.4" + - name: "registry.k8s.io/kube-apiserver:v1.22.4" file_name: kube-apiserver-v1.22.4.tar - - name: "k8s.gcr.io/kube-controller-manager:v1.22.4" + - name: "registry.k8s.io/kube-controller-manager:v1.22.4" file_name: kube-controller-manager-v1.22.4.tar - - name: "k8s.gcr.io/kube-proxy:v1.22.4" + - name: "registry.k8s.io/kube-proxy:v1.22.4" file_name: kube-proxy-v1.22.4.tar - - name: "k8s.gcr.io/kube-scheduler:v1.22.4" + - name: "registry.k8s.io/kube-scheduler:v1.22.4" file_name: kube-scheduler-v1.22.4.tar - - name: "k8s.gcr.io/coredns/coredns:v1.8.4" + - name: "registry.k8s.io/coredns/coredns:v1.8.4" file_name: coredns-v1.8.4.tar - - name: "k8s.gcr.io/etcd:3.5.0-0" + - name: "registry.k8s.io/etcd:3.5.0-0" file_name: etcd-3.5.0-0.tar - - name: "k8s.gcr.io/pause:3.5" + - name: "registry.k8s.io/pause:3.5" file_name: pause-3.5.tar # flannel - name: "quay.io/coreos/flannel:v0.14.0" @@ -104,19 +104,19 @@ specification: file_name: haproxy-2.2.2-alpine.tar kubernetes-master: # K8s v1.22.4 - Epiphany 1.3 - - name: "k8s.gcr.io/kube-apiserver:v1.22.4" + - name: "registry.k8s.io/kube-apiserver:v1.22.4" file_name: kube-apiserver-v1.22.4.tar - - name: "k8s.gcr.io/kube-controller-manager:v1.22.4" + - name: "registry.k8s.io/kube-controller-manager:v1.22.4" file_name: kube-controller-manager-v1.22.4.tar - - name: "k8s.gcr.io/kube-proxy:v1.22.4" + - name: "registry.k8s.io/kube-proxy:v1.22.4" file_name: kube-proxy-v1.22.4.tar - - name: "k8s.gcr.io/kube-scheduler:v1.22.4" + - name: "registry.k8s.io/kube-scheduler:v1.22.4" file_name: kube-scheduler-v1.22.4.tar - - name: "k8s.gcr.io/coredns/coredns:v1.8.4" + - name: "registry.k8s.io/coredns/coredns:v1.8.4" file_name: coredns-v1.8.4.tar - - name: "k8s.gcr.io/etcd:3.5.0-0" + - name: "registry.k8s.io/etcd:3.5.0-0" file_name: etcd-3.5.0-0.tar - - name: "k8s.gcr.io/pause:3.5" + - name: "registry.k8s.io/pause:3.5" file_name: pause-3.5.tar # flannel - name: "quay.io/coreos/flannel:v0.14.0" diff --git a/schema/common/defaults/configuration/kubernetes-master.yml b/schema/common/defaults/configuration/kubernetes-master.yml index 8f306e1ab3..1dac8264a8 100644 --- a/schema/common/defaults/configuration/kubernetes-master.yml +++ b/schema/common/defaults/configuration/kubernetes-master.yml @@ -30,7 +30,7 @@ specification: dnsDomain: cluster.local serviceSubnet: 10.96.0.0/12 plugin: flannel # valid options: calico, flannel, canal (due to lack of support for calico on Azure - use canal) - imageRepository: k8s.gcr.io + imageRepository: registry.k8s.io certificates: expiration_days: 365 # values greater than 24855 are not recommended renew: false diff --git a/schema/common/defaults/configuration/rook.yml b/schema/common/defaults/configuration/rook.yml index d48f123fb8..a9b7917baf 100644 --- a/schema/common/defaults/configuration/rook.yml +++ b/schema/common/defaults/configuration/rook.yml @@ -19,15 +19,15 @@ specification: cephcsi: image: quay.io/cephcsi/cephcsi:v3.5.1 registrar: - image: k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.5.0 + image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.5.0 provisioner: - image: k8s.gcr.io/sig-storage/csi-provisioner:v3.1.0 + image: registry.k8s.io/sig-storage/csi-provisioner:v3.1.0 snapshotter: - image: k8s.gcr.io/sig-storage/csi-snapshotter:v5.0.1 + image: registry.k8s.io/sig-storage/csi-snapshotter:v5.0.1 attacher: - image: k8s.gcr.io/sig-storage/csi-attacher:v3.4.0 + image: registry.k8s.io/sig-storage/csi-attacher:v3.4.0 resizer: - image: k8s.gcr.io/sig-storage/csi-resizer:v1.4.0 + image: registry.k8s.io/sig-storage/csi-resizer:v1.4.0 cluster_chart_values: toolbox: enabled: false 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):