AAP-13369 Python 3.9 -> 3.11 upgrade (#14771)

* Python 3.9 -> 3.11 upgrade

* Test: updating azure-keyvault to 4.2.0

* Revert "Test: updating azure-keyvault to 4.2.0"

This reverts commit cf0b83699442e0c0de4a1152d4af8543a5e05b88.

* Test: updating azure-keyvault to latest and adding azure-identity

* Fix licenses

* Adding new licenses

* Revert "Fix licenses"

This reverts commit da3876911ef5ebbe7a8adbddd336ced3039b6228.

* Fixing dependencies

* Test: updating azure-keyvault to 4.2.0

* Fix licenses

* Revert "Fix licenses"

This reverts commit da3876911ef5ebbe7a8adbddd336ced3039b6228.

* Fixing dependencies

---------

Co-authored-by: César Francisco San Nicolás Martínez <csannico@redhat.com>
This commit is contained in:
Dave 2024-03-13 13:41:40 +00:00 committed by GitHub
parent dd9160135d
commit 12843eccf7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
32 changed files with 414 additions and 217 deletions

View File

@ -1,6 +1,6 @@
-include awx/ui_next/Makefile
PYTHON := $(notdir $(shell for i in python3.9 python3; do command -v $$i; done|sed 1q))
PYTHON := $(notdir $(shell for i in python3.11 python3; do command -v $$i; done|sed 1q))
SHELL := bash
DOCKER_COMPOSE ?= docker-compose
OFFICIAL ?= no

View File

@ -1,9 +1,10 @@
from azure.keyvault.secrets import SecretClient
from azure.identity import ClientSecretCredential
from msrestazure import azure_cloud
from .plugin import CredentialPlugin
from django.utils.translation import gettext_lazy as _
from azure.keyvault import KeyVaultClient, KeyVaultAuthentication
from azure.common.credentials import ServicePrincipalCredentials
from msrestazure import azure_cloud
# https://github.com/Azure/msrestazure-for-python/blob/master/msrestazure/azure_cloud.py
@ -54,22 +55,9 @@ azure_keyvault_inputs = {
def azure_keyvault_backend(**kwargs):
url = kwargs['url']
[cloud] = [c for c in clouds if c.name == kwargs.get('cloud_name', default_cloud.name)]
def auth_callback(server, resource, scope):
credentials = ServicePrincipalCredentials(
url=url,
client_id=kwargs['client'],
secret=kwargs['secret'],
tenant=kwargs['tenant'],
resource=f"https://{cloud.suffixes.keyvault_dns.split('.', 1).pop()}",
)
token = credentials.token
return token['token_type'], token['access_token']
kv = KeyVaultClient(KeyVaultAuthentication(auth_callback))
return kv.get_secret(url, kwargs['secret_field'], kwargs.get('secret_version', '')).value
csc = ClientSecretCredential(tenant_id=kwargs['tenant'], client_id=kwargs['client'], client_secret=kwargs['secret'])
kv = SecretClient(credential=csc, vault_url=kwargs['url'])
return kv.get_secret(name=kwargs['secret_field'], version=kwargs.get('secret_version', '')).value
azure_keyvault_plugin = CredentialPlugin('Microsoft Azure Key Vault', inputs=azure_keyvault_inputs, backend=azure_keyvault_backend)

View File

@ -175,9 +175,10 @@ class TestOptions(unittest.TestCase):
assert '--verbosity {0,1,2,3,4,5}' in out.getvalue()
def test_actions_with_primary_key(self):
page = OptionsPage.from_json({'actions': {'GET': {}, 'POST': {}}})
ResourceOptionsParser(None, page, 'jobs', self.parser)
for method in ('get', 'modify', 'delete'):
page = OptionsPage.from_json({'actions': {'GET': {}, 'POST': {}}})
ResourceOptionsParser(None, page, 'jobs', self.parser)
assert method in self.parser.choices
out = StringIO()

View File

@ -8,7 +8,7 @@ skip_missing_interpreters = true
# skipsdist = true
[testenv]
basepython = python3.9
basepython = python3.11
setenv =
PYTHONPATH = {toxinidir}:{env:PYTHONPATH:}:.
deps =

View File

@ -1,9 +1,8 @@
The MIT License (MIT)
Copyright (c) 2017 Laurent LAPORTE
Copyright (c) 2020 aiohttp_retry Authors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2022 the contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,21 @@
Copyright (c) Microsoft Corporation.
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,21 @@
Copyright (c) Microsoft Corporation.
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,21 @@
Copyright (c) Microsoft Corporation.
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Binary file not shown.

View File

@ -0,0 +1,21 @@
Copyright (c) Microsoft Corporation.
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,10 +0,0 @@
# As listed on https://pypi.python.org/pypi/irc
The MIT License (MIT)
Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -0,0 +1,19 @@
Copyright (c) 2022 Julian Berman
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) Microsoft Corporation. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE

24
licenses/msal.txt Normal file
View File

@ -0,0 +1,24 @@
The MIT License (MIT)
Copyright (c) Microsoft Corporation.
All rights reserved.
This code is licensed under the MIT License.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files(the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions :
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

11
licenses/portalocker.txt Normal file
View File

@ -0,0 +1,11 @@
Copyright 2022 Rick van Hattem
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Binary file not shown.

Binary file not shown.

View File

@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2016 Microsoft
Copyright (c) 2022 Samuel Colvin
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
SOFTWARE.

View File

@ -1,22 +0,0 @@
Copyright (c) 2019 Tobias Gustafsson
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.

19
licenses/referencing.txt Normal file
View File

@ -0,0 +1,19 @@
Copyright (c) 2022 Julian Berman
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

19
licenses/rpds-py.txt Normal file
View File

@ -0,0 +1,19 @@
Copyright (c) 2023 Julian Berman
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

Binary file not shown.

Binary file not shown.

View File

@ -1,24 +0,0 @@
Copyright (c) 2013-2023, Graham Dumpleton
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

6
package-lock.json generated Normal file
View File

@ -0,0 +1,6 @@
{
"name": "awx",
"lockfileVersion": 3,
"requires": true,
"packages": {}
}

View File

@ -110,16 +110,6 @@ OpenID Connect work that was done in
https://github.com/jazzband/django-oauth-toolkit/pull/915. This may
be fixable by creating a migration on our end?
### azure-keyvault
Upgrading to 4.0.0 causes error because imports changed.
```
File "/var/lib/awx/venv/awx/lib64/python3.6/site-packages/awx/main/credential_plugins/azure_kv.py", line 4, in <module>
from azure.keyvault import KeyVaultClient, KeyVaultAuthentication
ImportError: cannot import name 'KeyVaultClient'
```
### pip, setuptools and setuptools_scm
If modifying these libraries make sure testing with the offline build is performed to confirm they are functionally working.

View File

@ -3,12 +3,13 @@ ansiconv==1.0.0 # UPGRADE BLOCKER: from 2013, consider replacing instead of upg
asciichartpy
asn1
asyncpg
azure-keyvault==1.1.0 # see UPGRADE BLOCKERs
azure-identity
azure-keyvault
boto3
botocore
channels
channels-redis==3.4.1 # see UPGRADE BLOCKERs
cryptography>=41.0.6 # CVE-2023-49083
cryptography>=41.0.7 # CVE-2023-49083
Cython<3 # this is needed as a build dependency, one day we may have separated build deps
daphne
distro
@ -33,6 +34,7 @@ jinja2>=3.1.3 # CVE-2024-22195
JSON-log-formatter
jsonschema
Markdown # used for formatting API help
msrestazure
openshift
pexpect==4.7.0 # see library notes
prometheus_client

View File

@ -2,66 +2,89 @@ adal==1.2.7
# via msrestazure
aiohttp==3.9.3
# via -r /awx_devel/requirements/requirements.in
# aiohttp-retry
# twilio
aiohttp-retry==2.8.3
# via twilio
aioredis==1.3.1
# via channels-redis
aiosignal==1.3.1
# via aiohttp
annotated-types==0.6.0
# via pydantic
# via -r /awx_devel/requirements/requirements_git.txt
ansiconv==1.0.0
# via -r /awx_devel/requirements/requirements.in
asciichartpy==1.5.25
# via -r /awx_devel/requirements/requirements.in
asgiref==3.6.0
asgiref==3.7.2
# via
# channels
# channels-redis
# daphne
# django
asn1==2.6.0
# django-cors-headers
asn1==2.7.0
# via -r /awx_devel/requirements/requirements.in
async-timeout==4.0.2
async-timeout==4.0.3
# via
# aiohttp
# aioredis
# asyncpg
# redis
asyncpg==0.27.0
asyncpg==0.29.0
# via -r /awx_devel/requirements/requirements.in
attrs==22.1.0
attrs==23.2.0
# via
# aiohttp
# automat
# jsonschema
# referencing
# service-identity
# twisted
autobahn==22.7.1
autobahn==23.6.2
# via daphne
autocommand==2.2.2
# via jaraco-text
automat==22.10.0
# via twisted
azure-common==1.1.28
# via azure-keyvault
azure-core==1.26.1
# via msrest
azure-keyvault==1.1.0
# via
# azure-keyvault-certificates
# azure-keyvault-keys
# azure-keyvault-secrets
azure-core==1.30.0
# via
# azure-identity
# azure-keyvault-certificates
# azure-keyvault-keys
# azure-keyvault-secrets
# msrest
azure-identity==1.15.0
# via -r /awx_devel/requirements/requirements.in
azure-nspkg==3.0.2
# via azure-keyvault
boto3==1.26.102
azure-keyvault==4.2.0
# via -r /awx_devel/requirements/requirements.in
botocore==1.29.102
azure-keyvault-certificates==4.7.0
# via azure-keyvault
azure-keyvault-keys==4.8.0
# via azure-keyvault
azure-keyvault-secrets==4.7.0
# via azure-keyvault
boto3==1.34.47
# via -r /awx_devel/requirements/requirements.in
botocore==1.34.47
# via
# -r /awx_devel/requirements/requirements.in
# boto3
# s3transfer
cachetools==5.2.0
cachetools==5.3.2
# via google-auth
# via
# -r /awx_devel/requirements/requirements_git.txt
# kubernetes
# msrest
# requests
cffi==1.15.1
cffi==1.16.0
# via cryptography
channels==3.0.5
# via
@ -69,24 +92,27 @@ channels==3.0.5
# channels-redis
channels-redis==3.4.1
# via -r /awx_devel/requirements/requirements.in
charset-normalizer==2.1.1
charset-normalizer==3.3.2
# via requests
click==8.1.3
click==8.1.7
# via receptorctl
constantly==15.1.0
constantly==23.10.4
# via twisted
cryptography==41.0.7
# via
# -r /awx_devel/requirements/requirements.in
# adal
# autobahn
# azure-keyvault
# azure-identity
# azure-keyvault-keys
# django-ansible-base
# jwcrypto
# msal
# pyjwt
# pyopenssl
# service-identity
# social-auth-core
cython==0.29.32
cython==0.29.37
# via -r /awx_devel/requirements/requirements.in
daphne==3.0.2
# via
@ -96,9 +122,7 @@ defusedxml==0.7.1
# via
# python3-openid
# social-auth-core
deprecated==1.2.13
# via jwcrypto
distro==1.8.0
distro==1.9.0
# via -r /awx_devel/requirements/requirements.in
django==4.2.6
# via
@ -116,15 +140,15 @@ django==4.2.6
# djangorestframework
# social-auth-app-django
# via -r /awx_devel/requirements/requirements_git.txt
django-auth-ldap==4.1.0
django-auth-ldap==4.6.0
# via -r /awx_devel/requirements/requirements.in
django-cors-headers==3.13.0
django-cors-headers==4.3.1
# via -r /awx_devel/requirements/requirements.in
django-crum==0.7.9
# via
# -r /awx_devel/requirements/requirements.in
# django-ansible-base
django-extensions==3.2.1
django-extensions==3.2.3
# via -r /awx_devel/requirements/requirements.in
django-guid==3.2.1
# via -r /awx_devel/requirements/requirements.in
@ -135,7 +159,7 @@ django-pglocks==1.0.4
django-polymorphic==3.1.0
# via -r /awx_devel/requirements/requirements.in
# via -r /awx_devel/requirements/requirements_git.txt
django-solo==2.0.0
django-solo==2.2.0
# via -r /awx_devel/requirements/requirements.in
django-split-settings==1.0.0
# via
@ -147,23 +171,23 @@ djangorestframework==3.14.0
# django-ansible-base
djangorestframework-yaml==2.0.0
# via -r /awx_devel/requirements/requirements.in
docutils==0.19
docutils==0.20.1
# via python-daemon
ecdsa==0.18.0
# via python-jose
enum-compat==0.0.3
# via asn1
filelock==3.8.0
filelock==3.13.1
# via -r /awx_devel/requirements/requirements.in
frozenlist==1.3.3
frozenlist==1.4.1
# via
# aiohttp
# aiosignal
gitdb==4.0.10
gitdb==4.0.11
# via gitpython
gitpython==3.1.42
# via -r /awx_devel/requirements/requirements.in
google-auth==2.14.1
google-auth==2.28.1
# via kubernetes
hiredis==2.0.0
# via
@ -173,44 +197,45 @@ hyperlink==21.0.0
# via
# autobahn
# twisted
idna==3.4
idna==3.6
# via
# hyperlink
# requests
# twisted
# yarl
importlib-metadata==4.6.4
importlib-metadata==6.2.1
# via
# ansible-runner
# markdown
incremental==22.10.0
# via twisted
inflect==6.0.2
inflect==7.0.0
# via jaraco-text
inflection==0.5.1
# via django-ansible-base
irc==20.1.0
irc==20.3.1
# via -r /awx_devel/requirements/requirements.in
isodate==0.6.1
# via
# azure-keyvault-certificates
# azure-keyvault-keys
# azure-keyvault-secrets
# msrest
# python3-saml
jaraco-classes==3.2.3
# via jaraco-collections
jaraco-collections==3.8.0
jaraco-collections==5.0.0
# via irc
jaraco-context==4.2.0
jaraco-context==4.3.0
# via jaraco-text
jaraco-functools==3.5.2
jaraco-functools==4.0.0
# via
# irc
# jaraco-text
# tempora
jaraco-logging==3.1.2
jaraco-logging==3.3.0
# via irc
jaraco-stream==3.0.3
# via irc
jaraco-text==3.11.0
jaraco-text==3.12.0
# via
# irc
# jaraco-collections
@ -220,57 +245,63 @@ jmespath==1.0.1
# via
# boto3
# botocore
json-log-formatter==0.5.1
json-log-formatter==0.5.2
# via -r /awx_devel/requirements/requirements.in
jsonschema==4.17.3
jsonschema==4.21.1
# via -r /awx_devel/requirements/requirements.in
jwcrypto==1.4.2
jsonschema-specifications==2023.12.1
# via jsonschema
jwcrypto==1.5.4
# via django-oauth-toolkit
kubernetes==25.3.0
kubernetes==29.0.0
# via openshift
lockfile==0.12.2
# via python-daemon
lxml==4.9.1
lxml==4.9.4
# via
# python3-saml
# xmlsec
markdown==3.4.1
markdown==3.5.2
# via -r /awx_devel/requirements/requirements.in
markupsafe==2.1.1
markupsafe==2.1.5
# via jinja2
more-itertools==9.0.0
more-itertools==10.2.0
# via
# irc
# jaraco-classes
# jaraco-functools
# jaraco-text
msgpack==1.0.4
msal==1.26.0
# via
# azure-identity
# msal-extensions
msal-extensions==1.1.0
# via azure-identity
msgpack==1.0.7
# via channels-redis
msrest==0.7.1
# via
# azure-keyvault
# msrestazure
# via msrestazure
msrestazure==0.6.4
# via azure-keyvault
multidict==6.0.2
# via -r /awx_devel/requirements/requirements.in
multidict==6.0.5
# via
# aiohttp
# yarl
netaddr==0.8.0
netaddr==1.2.1
# via pyrad
oauthlib==3.2.2
# via
# django-oauth-toolkit
# kubernetes
# requests-oauthlib
# social-auth-core
openshift==0.13.1
openshift==0.13.2
# via -r /awx_devel/requirements/requirements.in
packaging==21.3
packaging==23.2
# via
# ansible-runner
# redis
# msal-extensions
# setuptools-scm
pbr==5.11.0
pbr==6.0.0
# via -r /awx_devel/requirements/requirements.in
pexpect==4.7.0
# via
@ -278,50 +309,51 @@ pexpect==4.7.0
# ansible-runner
pkgconfig==1.5.5
# via -r /awx_devel/requirements/requirements.in
prometheus-client==0.15.0
portalocker==2.8.2
# via msal-extensions
prometheus-client==0.20.0
# via -r /awx_devel/requirements/requirements.in
psutil==5.9.4
psutil==5.9.8
# via -r /awx_devel/requirements/requirements.in
psycopg==3.1.9
psycopg==3.1.18
# via -r /awx_devel/requirements/requirements.in
ptyprocess==0.7.0
# via pexpect
pyasn1==0.4.8
pyasn1==0.5.1
# via
# pyasn1-modules
# python-jose
# python-ldap
# rsa
# service-identity
pyasn1-modules==0.2.8
pyasn1-modules==0.3.0
# via
# google-auth
# python-ldap
# service-identity
pycparser==2.21
# via cffi
pydantic==1.10.2
pydantic==2.6.1
# via inflect
pydantic-core==2.16.2
# via pydantic
pygerduty==0.38.3
# via -r /awx_devel/requirements/requirements.in
pyjwt==2.6.0
pyjwt[crypto]==2.8.0
# via
# adal
# django-ansible-base
# msal
# social-auth-core
# twilio
pyopenssl==23.2.0
pyopenssl==24.0.0
# via
# -r /awx_devel/requirements/requirements.in
# twisted
pyparsing==2.4.6
# via
# -r /awx_devel/requirements/requirements.in
# packaging
# via -r /awx_devel/requirements/requirements.in
pyrad==2.4
# via django-radius
pyrsistent==0.19.2
# via jsonschema
python-daemon==3.0.1
# via
# -r /awx_devel/requirements/requirements.in
@ -336,23 +368,22 @@ python-dsv-sdk==1.0.4
# via -r /awx_devel/requirements/requirements.in
python-jose==3.3.0
# via social-auth-core
python-ldap==3.4.3
python-ldap==3.4.4
# via
# -r /awx_devel/requirements/requirements.in
# django-auth-ldap
python-string-utils==1.0.0
# via openshift
python-tss-sdk==1.2.1
python-tss-sdk==1.2.2
# via -r /awx_devel/requirements/requirements.in
python3-openid==3.2.0
# via social-auth-core
# via -r /awx_devel/requirements/requirements_git.txt
pytz==2022.6
pytz==2024.1
# via
# djangorestframework
# irc
# tempora
# twilio
pyyaml==6.0.1
# via
# -r /awx_devel/requirements/requirements.in
@ -362,17 +393,21 @@ pyyaml==6.0.1
# receptorctl
receptorctl==1.4.4
# via -r /awx_devel/requirements/requirements.in
redis==4.3.5
redis==5.0.1
# via -r /awx_devel/requirements/requirements.in
requests==2.28.1
referencing==0.33.0
# via
# jsonschema
# jsonschema-specifications
requests==2.31.0
# via
# -r /awx_devel/requirements/requirements.in
# adal
# azure-core
# azure-keyvault
# django-ansible-base
# django-oauth-toolkit
# kubernetes
# msal
# msrest
# python-dsv-sdk
# python-tss-sdk
@ -384,17 +419,21 @@ requests-oauthlib==1.3.1
# kubernetes
# msrest
# social-auth-core
rpds-py==0.18.0
# via
# jsonschema
# referencing
rsa==4.9
# via
# google-auth
# python-jose
s3transfer==0.6.0
s3transfer==0.10.0
# via boto3
semantic-version==2.10.0
# via setuptools-rust
service-identity==21.1.0
service-identity==24.1.0
# via twisted
setuptools-rust==1.5.2
setuptools-rust==1.8.1
# via -r /awx_devel/requirements/requirements.in
setuptools-scm[toml]==8.0.4
# via -r /awx_devel/requirements/requirements.in
@ -404,7 +443,6 @@ six==1.16.0
# azure-core
# django-pglocks
# ecdsa
# google-auth
# isodate
# kubernetes
# msrestazure
@ -412,11 +450,10 @@ six==1.16.0
# pygerduty
# pyrad
# python-dateutil
# service-identity
# tacacs-plus
slack-sdk==3.19.4
slack-sdk==3.27.0
# via -r /awx_devel/requirements/requirements.in
smmap==5.0.0
smmap==5.0.1
# via gitdb
social-auth-app-django==5.4.0
# via -r /awx_devel/requirements/requirements.in
@ -430,60 +467,66 @@ sqlparse==0.4.4
# django
tacacs-plus==1.0
# via -r /awx_devel/requirements/requirements.in
tempora==5.1.0
tempora==5.5.1
# via
# irc
# jaraco-logging
tomli==2.0.1
# via setuptools-scm
twilio==7.15.3
# via
# setuptools-rust
# setuptools-scm
twilio==8.13.0
# via -r /awx_devel/requirements/requirements.in
twisted[tls]==23.10.0
# via
# -r /awx_devel/requirements/requirements.in
# daphne
txaio==22.2.1
txaio==23.1.1
# via autobahn
typing-extensions==4.4.0
typing-extensions==4.9.0
# via
# asgiref
# azure-core
# azure-keyvault-certificates
# azure-keyvault-keys
# azure-keyvault-secrets
# inflect
# jwcrypto
# psycopg
# setuptools-rust
# pydantic
# pydantic-core
# setuptools-scm
# twisted
urllib3==1.26.17
urllib3==1.26.18
# via
# botocore
# kubernetes
# requests
uwsgi==2.0.21
uwsgi==2.0.24
# via -r /awx_devel/requirements/requirements.in
uwsgitop==0.11
# via -r /awx_devel/requirements/requirements.in
websocket-client==1.4.2
websocket-client==1.7.0
# via kubernetes
wheel==0.38.4
wheel==0.42.0
# via -r /awx_devel/requirements/requirements.in
wrapt==1.15.0
# via deprecated
xmlsec==1.3.13
# via python3-saml
yarl==1.8.1
yarl==1.9.4
# via aiohttp
zipp==3.11.0
zipp==3.17.0
# via importlib-metadata
zope-interface==5.5.2
zope-interface==6.2
# via twisted
# The following packages are considered to be unsafe in a requirements file:
pip==21.2.4
# via -r /awx_devel/requirements/requirements.in
setuptools==65.6.3
setuptools==69.1.0
# via
# -r /awx_devel/requirements/requirements.in
# asciichartpy
# autobahn
# kubernetes
# python-daemon
# setuptools-rust
# setuptools-scm

View File

@ -39,15 +39,18 @@ RUN dnf -y update && dnf install -y 'dnf-command(config-manager)' && \
patch \
postgresql \
postgresql-devel \
python3-devel \
python3-pip \
python3-setuptools \
python3.11 \
"python3.11-devel" \
"python3.11-pip" \
"python3.11-setuptools" \
"python3.11-packaging" \
"python3.11-psycopg2" \
swig \
unzip \
xmlsec1-devel \
xmlsec1-openssl-devel
RUN pip3 install virtualenv build psycopg
RUN pip3.11 install -vv build
{% if image_architecture == 'ppc64le' %}
RUN dnf -y update && dnf install -y wget && \
@ -118,10 +121,12 @@ RUN dnf -y update && dnf install -y 'dnf-command(config-manager)' && \
nginx \
"openldap >= 2.6.2-3" \
postgresql \
python3-devel \
python3-libselinux \
python3-pip \
python3-setuptools \
python3.11 \
"python3.11-devel" \
"python3.11-pip*" \
"python3.11-setuptools" \
"python3.11-packaging" \
"python3.11-psycopg2" \
rsync \
rsyslog-8.2102.0-106.el9 \
subversion \
@ -132,7 +137,7 @@ RUN dnf -y update && dnf install -y 'dnf-command(config-manager)' && \
xmlsec1-openssl && \
dnf -y clean all
RUN pip3 install virtualenv supervisor dumb-init psycopg
RUN pip3.11 install -vv virtualenv supervisor dumb-init build
RUN rm -rf /root/.cache && rm -rf /tmp/*
@ -164,7 +169,8 @@ RUN dnf -y install \
unzip && \
npm install -g n && n 16.13.1 && npm install -g npm@8.5.0 && dnf remove -y nodejs
RUN pip3 install black git+https://github.com/coderanger/supervisor-stdout setuptools-scm
RUN pip3.11 install -vv git+https://github.com/coderanger/supervisor-stdout.git@973ba19967cdaf46d9c1634d1675fc65b9574f6e
RUN pip3.11 install -vv black setuptools-scm build
# This package randomly fails to download.
# It is nice to have in the dev env, but not necessary.
@ -235,7 +241,7 @@ ADD tools/scripts/awx-python /usr/bin/awx-python
{% endif %}
{% if (build_dev|bool) or (kube_dev|bool) %}
RUN echo /awx_devel > /var/lib/awx/venv/awx/lib/python3.9/site-packages/awx.egg-link
RUN echo /awx_devel > /var/lib/awx/venv/awx/lib/python3.11/site-packages/awx.egg-link
ADD tools/docker-compose/awx-manage /usr/local/bin/awx-manage
RUN ln -sf /awx_devel/tools/scripts/awx-python /usr/bin/awx-python
RUN ln -sf /awx_devel/tools/scripts/rsyslog-4xx-recovery /usr/bin/rsyslog-4xx-recovery
@ -270,8 +276,8 @@ RUN for dir in \
/var/lib/awx/.local \
/var/lib/awx/venv \
/var/lib/awx/venv/awx/bin \
/var/lib/awx/venv/awx/lib/python3.9 \
/var/lib/awx/venv/awx/lib/python3.9/site-packages \
/var/lib/awx/venv/awx/lib/python3.11 \
/var/lib/awx/venv/awx/lib/python3.11/site-packages \
/var/lib/awx/projects \
/var/lib/awx/rsyslog \
/var/run/awx-rsyslog \