Compare commits

..

92 commits

Author SHA1 Message Date
Fedora Release Engineering
99b9eaafbd Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-16 03:43:36 +00:00
Maxwell G
0d8611fc1b
Update to 2.20.1. Fixes rhbz#2382388.
- Update bundled() Provides
- Update License to GPL-3.0-or-later AND BSD-2-Clause AND BSD-3-Clause AND PSF-2.0 AND MIT AND Apache-2.0
- Remove upstreamed patches
- Remove old Provides and Obsoletes for ansible-base and Ansible <= 2.9
2025-12-11 17:38:12 -06:00
Maxwell G
b1149c15f6 packit: update stable branches 2025-11-17 22:04:58 -06:00
Packit
bbb03c2bb1 Update to 2.18.11 upstream release
Upstream tag: v2.18.11
Upstream commit: 932dc80f

Commit authored by Packit automation (https://packit.dev/)
2025-11-17 14:59:11 +00:00
Maxwell G
38bca2f841
Update to 2.18.9. 2025-09-27 02:13:26 -05:00
Python Maint
8919faacd5 Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 12:06:55 +02:00
Python Maint
d1ce53157f Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 12:38:08 +02:00
Fedora Release Engineering
24d3ca7b59 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 17:02:18 +00:00
Maxwell G
46821bd2bf
Update to 2.18.7. Fixes rhbz#2380244. 2025-07-16 14:06:20 -05:00
Maxwell G
f0b7fba103
Add initial support for Python 3.14 (rhbz#2366307) 2025-06-07 16:03:18 -05:00
Maxwell G
2140cacf0d
Update to 2.18.6. Fixes rhbz#2354908. 2025-06-07 01:51:20 -05:00
Python Maint
097797b333 Rebuilt for Python 3.14 2025-06-04 01:05:51 +02:00
Packit
4393c9cc08 Update to 2.18.4 upstream release
- Resolves: rhbz#2354908

Upstream tag: v2.18.4
Upstream commit: 06c507c0

Commit authored by Packit automation (https://packit.dev/)
2025-03-25 19:05:50 +00:00
Maxwell G
e07cd22941
packit: remove sync note 2025-03-16 21:26:40 -05:00
Packit
4f3593d370 Update to 2.18.3 upstream release
- Resolves: rhbz#2342365

Upstream tag: v2.18.3
Upstream commit: b9d76325

Commit authored by Packit automation (https://packit.dev/)
2025-03-17 02:16:58 +00:00
Maxwell G
1541de5363 packit: add upstream_tag_include 2025-03-17 02:14:28 +00:00
Maxwell G
67ee763e31 packit: add rawhide configuration 2025-03-17 02:14:28 +00:00
Miro Hrončok
4d318e99cc No longer BuildRequire python3-crypt-r, it is not used 2025-03-11 11:30:02 +01:00
Fedora Release Engineering
68783103c4 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 11:08:44 +00:00
Maxwell G
fe2a4316f3
Backport support for automatically installing python3-libdnf5
Resolves: https://bugzilla.redhat.com/2322751
2024-12-03 21:57:42 -06:00
Maxwell G
0071dba023
Reformat specfile 2024-12-03 21:46:50 -06:00
Maxwell G
2395935814
Update to 2.18.1. Fixes rhbz#2330005. 2024-12-03 21:41:56 -06:00
Maxwell G
a9a09d3ee1
Update to 2.18.0. Fixes rhbz#2282011. 2024-11-25 23:06:04 -06:00
Maxwell G
254e2fdd7f
Update to 2.16.12. 2024-10-10 19:59:42 -05:00
Maxwell G
6d9802f8cc
Update to 2.16.11. 2024-09-10 12:23:54 -05:00
Maxwell G
3f1424111d
Update to 2.16.10. 2024-08-13 11:37:16 -05:00
Maxwell G
a5c5662309 Update to 2.16.9. 2024-07-19 16:45:23 -05:00
Fedora Release Engineering
a19f61d2fd Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-17 17:04:53 +00:00
Maxwell G
8fca20130c
Update to 2.16.8. 2024-06-23 17:42:33 -05:00
Python Maint
b090e5c67a Rebuilt for Python 3.13 2024-06-09 12:02:40 +02:00
Maxwell G
e47bff80f7
Update to 2.16.7. 2024-06-04 14:15:18 -05:00
Miro Hrončok
7f2cec40bf Fix build with Python 3.13 2024-05-27 23:00:47 +02:00
Maxwell G
fcd2a59670
Revert "Update to 2.17.0~rc1."
This reverts commit 21e6d2cf86.
The update has some major breaking changes that need to be more
carefully handled.
2024-05-02 02:55:37 +00:00
Maxwell G
21e6d2cf86
Update to 2.17.0~rc1. 2024-05-02 02:10:01 +00:00
Maxwell G
b7689b3984
Update to 2.16.6. Fixes rhbz#2261507. 2024-04-16 18:56:28 +00:00
Maxwell G
3d878943c9
Update to 2.16.5. Fixes rhbz#2261507. 2024-03-29 10:59:58 +00:00
Maxwell G
b2387b93d1
Update to 2.16.4. Fixes rhbz#2261507. 2024-03-02 01:21:02 +00:00
Maxwell G
507d69e36e
Update to 2.16.3. Fixes rhbz#2261507. 2024-02-01 05:11:30 +00:00
Fedora Release Engineering
346abe7064 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-22 23:07:48 +00:00
Fedora Release Engineering
f96881eb51 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-19 13:03:23 +00:00
Maxwell G
6e04299ce9
Mitigate CVE-2024-0690. 2024-01-18 23:58:16 +00:00
Maxwell G
4050056a1b
Update to 2.16.2. Fixes rhbz#2254093. 2023-12-11 22:53:21 +00:00
Maxwell G
84bbf6cc64
Update to 2.16.1. Fixes rhbz#2252860. 2023-12-06 04:50:16 +00:00
Maxwell G
2398cc2533
Update to 2.16.0. Fixes rhbz#2248187. 2023-11-10 17:32:38 -06:00
Maxwell G
1460e52f18
Update to 2.16.0~rc1. 2023-10-18 22:54:47 -05:00
Maxwell G
b05ac2e918
Remove unnecessary dependency on /usr/bin/python
The test no longer uses /usr/bin/python.
2023-10-03 21:10:12 +00:00
Maxwell G
f5cdc27aaf
Update to 2.16.0~b2. 2023-10-03 16:08:51 -05:00
Miro Hrončok
2c2807aa78 Do not use tomcli in Fedora ELN, avoid pulling unwanted dependencies
tomcli depends on typer which requires a lot (namely click -> tox).
2023-10-02 18:20:52 +02:00
Maxwell G
5d3f9a536c
Add copyright headers 2023-09-30 22:33:37 +00:00
Maxwell G
27968f0c93
Update to 2.16.0~b1. 2023-09-28 22:49:48 +00:00
Kevin Fenzi
37644b67ea Add patch to fix readfp with python-3.12. Fixes rhbz#2239728 2023-09-26 16:46:41 -07:00
Maxwell G
b5d5e2a14b
Update to 2.15.4. Fixes rhbz#2238445. 2023-09-11 18:20:32 -05:00
Maxwell G
8d01926207
Rebase patches and remove upstreamed ones
Relates: https://github.com/ansible/ansible/pull/81395
2023-08-18 03:33:46 +00:00
Maxwell G
66164773e0
Handle new upstream manpage building method 2023-08-18 00:17:06 +00:00
Maxwell G
3d8a45c735
Use example files from ansible-documentation repo 2023-08-17 23:32:48 +00:00
Maxwell G
1a184e1acd
Update to 2.15.3. Fixes rhbz#2231963. 2023-08-17 18:31:48 -05:00
Fedora Release Engineering
8191e26adf Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-19 13:21:38 +00:00
Maxwell G
b34a65757b
Use the docs sources from ansible-documentation 2023-07-18 14:16:26 +00:00
Maxwell G
937593320f
Update to 2.15.2. Fixes rhbz#2223469.
- Remove upstreamed patch
2023-07-18 03:51:13 +00:00
Maxwell G
dd52b653b0
Fix %{python3_version} conditional
If %{python3_version} expands to an empty string (this can happen when python3-rpm-macros
is installed but %__python3 is not), specfile parsing will fail.
2023-07-10 19:38:48 +00:00
Maxwell G
805bd2623b
Always apply remove deprecated client key calls patch 2023-07-10 19:38:38 +00:00
Maxwell G
225f390fd1
Rebuilt for Python 3.12 2023-07-03 17:38:12 +00:00
Maxwell G
c173850eb6
Revert "Rebuilt for Python 3.12"
This reverts commit da750bb373.
2023-07-03 17:37:56 +00:00
Maxwell G
b7db1fa79b
Backport patch to fix compat with latest dnf5 2023-07-03 17:23:30 +00:00
Maxwell G
da750bb373
Rebuilt for Python 3.12 2023-07-03 11:29:39 -05:00
Maxwell G
c57e67a0f9
Revert "Temporarily disable argcomplete on python3.12"
This reverts commit 674ca3d40e.
2023-07-03 14:10:39 +00:00
Maxwell G
71c43a9b1c
Add Recommends on python3-libdnf5 for Fedora 39 2023-06-22 20:41:37 +00:00
Maxwell G
57dc38673b
Refresh patches 2023-06-22 20:15:35 +00:00
Maxwell G
0b7387327a
Update to 2.15.1. Fixes rhbz#2204492. 2023-06-22 15:08:40 -05:00
Maxwell G
b700681263
Avoid deprecated importlib.abc.TraversableResources
This fixes python-ansible-compat's FTBFS with python3.12, as its test
suite enforces -Werror.
2023-06-17 18:15:18 +00:00
Python Maint
bb45d530b8 Rebuilt for Python 3.12 2023-06-16 14:42:59 +02:00
Maxwell G
20c4dcb8cc
Remove conditional Requires on ansible-packaging. 2023-06-15 19:27:25 +00:00
Maxwell G
674ca3d40e
Temporarily disable argcomplete on python3.12 2023-06-13 22:28:22 +00:00
Maxwell G
8f2b3503f1
Add initial Python 3.12 support
Fixes: https://bugzilla.redhat.com/2196539
2023-06-13 22:28:22 +00:00
Maxwell G
47238f9977
Add argcomplete bcond 2023-06-13 21:29:11 +00:00
Maxwell G
006891ac8b
tests: use the correct copr chroot for EPEL branches 2023-06-02 18:26:03 +00:00
Maxwell G
1f76584a4d
ci: use a proper inventory file and add a dnf test 2023-06-02 15:13:41 +00:00
Maxwell G
7076cf3fdd
ci: add an explicit dependency on python3
This is needed for EPEL branches where ansible-core may not be installed
for the system python interpreter.
2023-06-02 15:01:43 +00:00
Yaakov Selkowitz
701757693a Disable tests by default in RHEL builds
RHEL does not include the necessary test dependencies.
2023-05-22 21:48:52 -04:00
Maxwell G
f8ac3d7efa
don't remove dotfiles and empty files. 2023-05-16 20:09:32 +00:00
Maxwell G
68d6015afa
Update to 2.15.0. 2023-05-16 11:30:09 -05:00
Maxwell G
6d202647fa
Update to 2.15.0~rc2. 2023-05-03 15:20:37 -05:00
Maxwell G
b0e1e0631f
Update to 2.15.0~rc1. 2023-04-27 04:48:14 +00:00
Maxwell G
27e02a89ac
tests: reorganize fmf plans 2023-04-25 02:13:02 +00:00
Maxwell G
00d05415a8
remove unused patch 2023-04-25 02:13:01 +00:00
Maxwell G
37924c8f63
backport GALAXY_COLLECTIONS_PATH_WARNINGS patch
This will be used in the Fedora ansible-packaging macros to silence
useless warnings when installing collections into %{buildroot}.
2023-04-25 02:13:01 +00:00
Maxwell G
491e0b3137
backport PR to replace a mock import
Mock is deprecated in Fedora.
2023-04-24 22:35:32 +00:00
Maxwell G
03cf1aca62
backport PR to improve dnf pkg_mgr discovery 2023-04-24 22:35:32 +00:00
Maxwell G
c98092b221
account for the removed Makefile 2023-04-24 22:35:32 +00:00
Maxwell G
3394859eb9
Update to 2.15.0~b3. 2023-04-24 22:35:32 +00:00
Maxwell G
953def6952
Add gating 2023-04-24 13:50:31 -05:00
Maxwell G
754b581240
Add gating tests 2023-04-24 17:44:17 +00:00
10 changed files with 366 additions and 335 deletions

72
.gitignore vendored
View file

@ -26,14 +26,64 @@
/ansible-core-2.14.2.tar.gz
/ansible-core-2.14.3.tar.gz
/ansible-core-2.14.4.tar.gz
/ansible-core-2.14.5.tar.gz
/ansible-core-2.14.6.tar.gz
/ansible-core-2.14.7.tar.gz
/ansible-core-2.14.8.tar.gz
/ansible-documentation-2.14.8.tar.gz
/ansible-core-2.14.9.tar.gz
/ansible-documentation-2.14.9.tar.gz
/ansible-core-2.14.10.tar.gz
/ansible-documentation-2.14.10.tar.gz
/ansible-core-2.14.11.tar.gz
/ansible-documentation-2.14.11.tar.gz
/ansible-core-2.15.0b3.tar.gz
/ansible-core-2.15.0rc1.tar.gz
/ansible-core-2.15.0rc2.tar.gz
/ansible-core-2.15.0.tar.gz
/ansible-core-2.15.1.tar.gz
/ansible-core-2.15.2.tar.gz
/ansible-documentation-2.15.2.tar.gz
/ansible-core-2.15.3.tar.gz
/ansible-documentation-2.15.3.tar.gz
/ansible-core-2.15.4.tar.gz
/ansible-documentation-2.15.4.tar.gz
/ansible-core-2.16.0b1.tar.gz
/ansible-documentation-2.16.0b1.tar.gz
/ansible-core-2.16.0b2.tar.gz
/ansible-documentation-2.16.0b2.tar.gz
/ansible-core-2.16.0rc1.tar.gz
/ansible-documentation-2.16.0rc1.tar.gz
/ansible-core-2.16.0.tar.gz
/ansible-documentation-2.16.0.tar.gz
/ansible-core-2.16.1.tar.gz
/ansible-documentation-2.16.1.tar.gz
/ansible-core-2.16.2.tar.gz
/ansible-documentation-2.16.2.tar.gz
/ansible-core-2.16.3.tar.gz
/ansible-documentation-2.16.3.tar.gz
/ansible-core-2.16.4.tar.gz
/ansible-documentation-2.16.4.tar.gz
/ansible-core-2.16.5.tar.gz
/ansible-documentation-2.16.5.tar.gz
/ansible-core-2.16.6.tar.gz
/ansible-documentation-2.16.6.tar.gz
/ansible-core-2.16.7.tar.gz
/ansible-documentation-2.16.7.tar.gz
/ansible-core-2.16.8.tar.gz
/ansible-documentation-2.16.8.tar.gz
/ansible-core-2.16.9.tar.gz
/ansible-documentation-2.16.9.tar.gz
/ansible-core-2.16.10.tar.gz
/ansible-documentation-2.16.10.tar.gz
/ansible-core-2.16.11.tar.gz
/ansible-documentation-2.16.11.tar.gz
/ansible-core-2.16.12.tar.gz
/ansible-documentation-2.16.12.tar.gz
/ansible-core-2.18.0.tar.gz
/ansible-documentation-2.18.0.tar.gz
/ansible-core-2.18.1.tar.gz
/ansible-documentation-2.18.1.tar.gz
/ansible-core-2.18.3.tar.gz
/ansible-documentation-2.18.3.tar.gz
/ansible-core-2.18.4.tar.gz
/ansible-documentation-2.18.4.tar.gz
/ansible-core-2.18.6.tar.gz
/ansible-documentation-2.18.6.tar.gz
/ansible-core-2.18.7.tar.gz
/ansible-documentation-2.18.7.tar.gz
/ansible-core-2.18.9.tar.gz
/ansible-documentation-2.18.9.tar.gz
/ansible-core-2.18.11.tar.gz
/ansible-documentation-2.18.11.tar.gz
/ansible-core-2.20.1.tar.gz
/ansible-documentation-2.20.1.tar.gz

30
.packit.yaml Normal file
View file

@ -0,0 +1,30 @@
# See the documentation for more information:
# https://packit.dev/docs/configuration/
upstream_project_url: https://github.com/ansible/ansible
upstream_tag_template: v{version}
issue_repository: https://pagure.io/ansible-packit-issues
create_sync_note: false
# TODO: Remove pending https://fedoraproject.org/wiki/Changes/Ansible13
upstream_tag_include: "v2.18"
jobs:
- job: pull_from_upstream
trigger: release
dist_git_branches:
# Fast forward merge rawhide while it is held at v2.18.
rawhide:
fast_forward_merge_into:
- fedora-43
- fedora-42
- job: koji_build
trigger: commit
dist_git_branches:
- fedora-all
sidetag_group: "ansible"
dependents:
- ansible
# The update for the sidetag group is created in the ansible package.
# - job: bodhi_update
# trigger: commit
# dist_git_branches:
# - rawhide

View file

@ -1,17 +0,0 @@
diff --color -Nur ansible-base-2.10.3.orig/test/units/modules/test_async_wrapper.py ansible-base-2.10.3/test/units/modules/test_async_wrapper.py
--- ansible-base-2.10.3.orig/test/units/modules/test_async_wrapper.py 2020-11-02 14:26:08.000000000 -0800
+++ ansible-base-2.10.3/test/units/modules/test_async_wrapper.py 2020-11-03 13:07:42.556005427 -0800
@@ -22,11 +22,11 @@
def test_run_module(self, monkeypatch):
def mock_get_interpreter(module_path):
- return ['/usr/bin/python']
+ return ['/usr/bin/python3']
module_result = {'rc': 0}
module_lines = [
- '#!/usr/bin/python',
+ '#!/usr/bin/python3',
'import sys',
'sys.stderr.write("stderr stuff")',
"print('%s')" % json.dumps(module_result)

View file

@ -1,65 +0,0 @@
From 734f38b2594692707d1fd3cbcfc8dc8a677f4ee3 Mon Sep 17 00:00:00 2001
From: Maxwell G <maxwell@gtmx.me>
Date: Fri, 21 Apr 2023 07:29:10 -0500
Subject: [PATCH] Add GALAXY_COLLECTIONS_PATH_WARNINGS option. (#78487)
* Add GALAXY_COLLECTIONS_PATH_WARNING option.
This allows users to disable warnings from `ansible-galaxy collection
install` about `--collections-path` missing from Ansible's configured
collections_paths.
---
.../fragments/78487-galaxy-collections-path-warnings.yml | 6 ++++++
lib/ansible/cli/galaxy.py | 5 ++++-
lib/ansible/config/base.yml | 9 +++++++++
3 files changed, 19 insertions(+), 1 deletion(-)
create mode 100644 changelogs/fragments/78487-galaxy-collections-path-warnings.yml
diff --git a/changelogs/fragments/78487-galaxy-collections-path-warnings.yml b/changelogs/fragments/78487-galaxy-collections-path-warnings.yml
new file mode 100644
index 00000000000000..4702e94f961d82
--- /dev/null
+++ b/changelogs/fragments/78487-galaxy-collections-path-warnings.yml
@@ -0,0 +1,6 @@
+---
+minor_changes:
+- >-
+ Add ``GALAXY_COLLECTIONS_PATH_WARNING`` option to disable the warning
+ given by ``ansible-galaxy collection install`` when installing a collection
+ to a path that isn't in the configured collection paths.
diff --git a/lib/ansible/cli/galaxy.py b/lib/ansible/cli/galaxy.py
index fc88137ff63604..0deb0331a582b9 100755
--- a/lib/ansible/cli/galaxy.py
+++ b/lib/ansible/cli/galaxy.py
@@ -1393,7 +1393,10 @@ def _execute_install_collection(
upgrade = context.CLIARGS.get('upgrade', False)
collections_path = C.COLLECTIONS_PATHS
- if len([p for p in collections_path if p.startswith(path)]) == 0:
+ if (
+ C.GALAXY_COLLECTIONS_PATH_WARNING
+ and len([p for p in collections_path if p.startswith(path)]) == 0
+ ):
display.warning("The specified collections path '%s' is not part of the configured Ansible "
"collections paths '%s'. The installed collection will not be picked up in an Ansible "
"run, unless within a playbook-adjacent collections directory." % (to_text(path), to_text(":".join(collections_path))))
diff --git a/lib/ansible/config/base.yml b/lib/ansible/config/base.yml
index 052a8f0834e4ca..206deb76d2e916 100644
--- a/lib/ansible/config/base.yml
+++ b/lib/ansible/config/base.yml
@@ -1366,6 +1366,15 @@ GALAXY_COLLECTION_SKELETON_IGNORE:
ini:
- {key: collection_skeleton_ignore, section: galaxy}
type: list
+GALAXY_COLLECTIONS_PATH_WARNING:
+ name: "ansible-galaxy collection install colections path warnings"
+ description: "whether ``ansible-galaxy collection install`` should warn about ``--collections-path`` missing from configured :ref:`collections_paths`"
+ default: true
+ type: bool
+ env: [{name: ANSIBLE_GALAXY_COLLECTIONS_PATH_WARNING}]
+ ini:
+ - {key: collections_path_warning, section: galaxy}
+ version_added: "2.16"
# TODO: unused?
#GALAXY_SCMS:
# name: Galaxy SCMS

View file

@ -1,81 +1,74 @@
%bcond_without tests
# SPDX-License-Identifier: MIT
# Copyright (C) Fedora Project Authors
# License Text: https://spdx.org/licenses/MIT.html
# several test dependencies are unwanted in RHEL
%bcond tests %{undefined rhel}
# controls whether to generate shell completions
# may be useful for bootstrapping purposes
%bcond argcomplete 1
# disable the python -s shbang flag as we want to be able to find non system modules
%undefine _py3_shebang_s
Name: ansible-core
Summary: A radically simple IT automation system
Version: 2.14.11
Name: ansible-core
Version: 2.20.1
%global uversion %{version_no_tilde %{quote:%nil}}
Release: 1%{?dist}
Release: 2%{?dist}
Summary: A radically simple IT automation system
# The main license is GPLv3+. Many of the files in lib/ansible/module_utils
# are BSD licensed. There are various files scattered throughout the codebase
# containing code under different licenses.
License: GPL-3.0-or-later AND BSD-2-Clause AND PSF-2.0 AND MIT AND Apache-2.0
# The ssh-agent helper code is BSD-3-Clause.
License: GPL-3.0-or-later AND BSD-2-Clause AND BSD-3-Clause AND PSF-2.0 AND MIT AND Apache-2.0
URL: https://ansible.com
Source0: https://github.com/ansible/ansible/archive/v%{uversion}/%{name}-%{uversion}.tar.gz
Source1: https://github.com/ansible/ansible-documentation/archive/v%{uversion}/ansible-documentation-%{uversion}.tar.gz
Source0: https://github.com/ansible/ansible/archive/v%{uversion}/%{name}-%{uversion}.tar.gz
Source1: https://github.com/ansible/ansible-documentation/archive/v%{uversion}/ansible-documentation-%{uversion}.tar.gz
Patch: https://github.com/ansible/ansible/commit/734f38b2594692707d1fd3cbcfc8dc8a677f4ee3.patch#/GALAXY_COLLECTIONS_PATH_WARNINGS.patch
# urls - remove deprecated client key calls (#80751)
# This is needed for Python 3.12, but we apply it unconditionally so
# controllers running on older Fedora versions can still work with Python 3.12
# F39+ targets.
Patch: https://github.com/ansible/ansible/commit/0df794e5a4fe4597ee65b0d492fbf0d0989d5ca0.patch#/urls-remove-deprecated-client-key-calls.patch
Url: https://ansible.com
BuildArch: noarch
BuildArch: noarch
# Virtual provides for bundled libraries
# Search for `_BUNDLED_METADATA` to find them
# lib/ansible/module_utils/urls.py
# SPDX-License-Identifier: BSD-2-Clause AND PSF-2.0
Provides: bundled(python3dist(backports-ssl-match-hostname)) = 3.7.0.1
# lib/ansible/module_utils/distro/*
# SPDX-License-Identifier: Apache-2.0
Provides: bundled(python3dist(distro)) = 1.6.0
Provides: bundled(python3dist(distro)) = 1.9.0
# lib/ansible/module_utils/six/*
# SPDX-License-Identifier: MIT
Provides: bundled(python3dist(six)) = 1.16.0
Provides: bundled(python3dist(six)) = 1.17.0
# lib/ansible/module_utils/compat/selectors.py
# SPDX-License-Identifier: GPL-3.0-or-later
Provides: bundled(python3dist(selectors2)) = 1.1.1
# lib/ansible/_internal/_wrapt.py
# SPDX-License-Identifier: BSD-2-Clause
Provides: bundled(python3dist(wrapt)) = 1.17.2
# lib/ansible/module_utils/compat/ipaddress.py
# SPDX-License-Identifier: PSF-2.0
Provides: bundled(python3dist(ipaddress)) = 1.0.22
Conflicts: ansible <= 2.9.99
#
# obsoletes/provides for ansible-base
#
Provides: ansible-base = %{version}-%{release}
Obsoletes: ansible-base < 2.10.6-1
BuildRequires: make
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: make
BuildRequires: python%{python3_pkgversion}-devel
# This is only used in %%prep to relax the required setuptools version,
# which is not necessary in RHEL 10+.
# Not using it in RHEL avoids unwanted dependencies.
%if %{undefined rhel}
BuildRequires: tomcli >= 0.3.0
%endif
# Needed to build manpages from source.
BuildRequires: python%{python3_pkgversion}-docutils
# Shell completions
BuildRequires: python%{python3_pkgversion}-argcomplete
BuildRequires: python%{python3_pkgversion}-docutils
%if %{with tests}
BuildRequires: git-core
BuildRequires: glibc-all-langpacks
BuildRequires: python%{python3_pkgversion}-systemd
# test/units/modules/test_async_wrapper.py needs this.
# Instead of patching the tests to use /usr/bin/python3,
# just give it what it wants.
BuildRequires: /usr/bin/python
BuildRequires: git-core
BuildRequires: glibc-all-langpacks
BuildRequires: python%{python3_pkgversion}-systemd
%endif
Requires: python%{python3_pkgversion}-argcomplete
# Require packaging macros if rpm-build exists
# This makes the transition seamless for other packages
# This is DEPRECATED. Packages must explicitly BuildRequire ansible-packaging.
Requires: (ansible-packaging if rpm-build)
%if %{with argcomplete}
Requires: python%{python3_pkgversion}-argcomplete
%endif
%if 0%{?fedora} >= 39
BuildRequires: python3-libdnf5
Recommends: python3-libdnf5
%endif
%global _description %{expand:
@ -90,9 +83,9 @@ are transferred to managed machines automatically.}
This is the base part of ansible (the engine).
%package doc
Summary: Documentation for Ansible Core
Provides: ansible-base-doc = %{version}-%{release}
Obsoletes: ansible-base-doc < 2.10.6-1
Summary: Documentation for Ansible Core
Provides: ansible-base-doc = %{version}-%{release}
Obsoletes: ansible-base-doc < 2.10.6-1
%description doc %_description
@ -101,8 +94,13 @@ This package installs extensive documentation for ansible-core
%prep
%autosetup -p1 -n ansible-%{uversion} -a1
# Relax setuptools constraint on Fedora
# Future RHELs have new enough setuptools
%if %{undefined rhel}
tomcli-set pyproject.toml lists replace \
'build-system.requires' 'setuptools >=.*' 'setuptools'
%endif
# ansible-test is executed directly by the Makefile, so we need to fix the shebang.
sed -i -s 's|/usr/bin/env python|%{python3}|' \
bin/ansible-test \
test/lib/ansible_test/_util/target/cli/ansible_test_cli_stub.py
@ -117,6 +115,10 @@ sed '/^mock$/d' test/lib/ansible_test/_data/requirements/units.txt > _requiremen
%generate_buildrequires
%pyproject_buildrequires %{?with_tests:_requirements.txt test/units/requirements.txt}
%if %{with argcomplete}
# Shell completions
echo 'python%{python3_pkgversion}-argcomplete'
%endif
%build
@ -126,6 +128,8 @@ sed '/^mock$/d' test/lib/ansible_test/_data/requirements/units.txt > _requiremen
mkdir -p docs/man/man1
%{python3} packaging/cli-doc/build.py man --output-dir docs/man/man1
%if %{with argcomplete}
# Build shell completions
(
cd bin
@ -148,6 +152,7 @@ mkdir -p docs/man/man1
done
done
)
%endif
%install
@ -164,8 +169,10 @@ done < <(find \
%{buildroot}%{python3_sitelib}/ansible/cli/scripts/ansible_connection_cli_stub.py \
-type f ! -executable)
%if %{with argcomplete}
install -Dpm 0644 bash_completions/* -t %{buildroot}%{bash_completions_dir}
install -Dpm 0644 fish_completions/* -t %{buildroot}%{fish_completions_dir}
%endif
# Create system directories that Ansible defines as default locations in
# ansible/config/base.yml
@ -221,20 +228,22 @@ install -Dpm 0644 licenses/* -t %{buildroot}%{_pkglicensedir}
%check
%if %{with tests}
%{python3} bin/ansible-test \
units --local --python-interpreter %{python3}
units --local --python-interpreter %{python3} -vv
%endif
%files -f %{pyproject_files}
%license COPYING
%license %{_pkglicensedir}/{Apache-License,MIT-license,PSF-license,simplified_bsd}.txt
%doc README.md changelogs/CHANGELOG-v2.1?.rst
%license %{_pkglicensedir}/{Apache-License,MIT-license,PSF-license,simplified_bsd,BSD-3-Clause}.txt
%doc README.md changelogs/CHANGELOG-v2.2?.rst
%dir %{_sysconfdir}/ansible/
%config(noreplace) %{_sysconfdir}/ansible/*
%{_bindir}/ansible*
%{_datadir}/ansible/
%if %{with argcomplete}
%{bash_completions_dir}/ansible*
%{fish_completions_dir}/ansible*.fish
%endif
%{_mandir}/man1/ansible*
%files doc
@ -245,31 +254,184 @@ install -Dpm 0644 licenses/* -t %{buildroot}%{_pkglicensedir}
%changelog
* Thu Oct 12 2023 Maxwell G <maxwell@gtmx.me> - 2.14.11-1
- Update to 2.14.11.
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 2.20.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Wed Sep 13 2023 Maxwell G <maxwell@gtmx.me> - 2.14.10-1
- Update to 2.14.10.
* Tue Dec 09 2025 Maxwell G <maxwell@gtmx.me> - 2.20.1-1
- Update to 2.20.1. Fixes rhbz#2382388.
- Update bundled() Provides
- Remove upstreamed patches
- Remove old Provides and Obsoletes for ansible-base and Ansible <= 2.9
* Sun Aug 20 2023 Maxwell G <maxwell@gtmx.me> - 2.14.9-1
- Update to 2.14.9.
* Mon Nov 17 2025 Packit <hello@packit.dev> - 2.18.11-1
- Update to version 2.18.11
* Tue Jul 18 2023 Maxwell G <maxwell@gtmx.me> - 2.14.8-1
- Update to 2.14.8.
* Sat Sep 27 2025 Maxwell G <maxwell@gtmx.me> - 2.18.9-1
- Update to 2.18.9.
* Mon Jul 10 2023 Maxwell G <maxwell@gtmx.me> - 2.14.7-2
- Backport patch to make the `url` module_util compatible with Python 3.12
(Fedora 39+) hosts
* Fri Sep 19 2025 Python Maint <python-maint@redhat.com> - 2.18.7-4
- Rebuilt for Python 3.14.0rc3 bytecode
* Fri Jun 30 2023 Maxwell G <maxwell@gtmx.me> - 2.14.7-1
- Update to 2.14.7.
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 2.18.7-3
- Rebuilt for Python 3.14.0rc2 bytecode
* Mon May 29 2023 Maxwell G <maxwell@gtmx.me> - 2.14.6-1
- Update to 2.14.6.
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.18.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Wed Jul 16 2025 Maxwell G <maxwell@gtmx.me> - 2.18.7-1
- Update to 2.18.7. Fixes rhbz#2380244.
* Sat Jun 07 2025 Maxwell G <maxwell@gtmx.me> - 2.18.6-2
- Add initial support for Python 3.14 (rhbz#2366307)
* Sat Jun 07 2025 Maxwell G <maxwell@gtmx.me> - 2.18.6-1
- Update to 2.18.6. Fixes rhbz#2354908.
* Tue Jun 03 2025 Python Maint <python-maint@redhat.com> - 2.18.4-2
- Rebuilt for Python 3.14
* Tue Mar 25 2025 Packit <hello@packit.dev> - 2.18.4-1
- Update to version 2.18.4
- Resolves: rhbz#2354908
* Mon Mar 17 2025 Packit <hello@packit.dev> - 2.18.3-1
- Update to version 2.18.3
- Resolves: rhbz#2342365
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.18.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Dec 04 2024 Maxwell G <maxwell@gtmx.me> - 2.18.1-1
- Update to 2.18.1. Fixes rhbz#2330005.
- dnf5 - backport support for automatically installing python3-libdnf5 (rhbz#2322751).
* Tue Nov 26 2024 Maxwell G <maxwell@gtmx.me> - 2.18.0-1
- Update to 2.18.0. Fixes rhbz#2282011.
* Fri Oct 11 2024 Maxwell G <maxwell@gtmx.me> - 2.16.12-1
- Update to 2.16.12.
* Tue Sep 10 2024 Maxwell G <maxwell@gtmx.me> - 2.16.11-1
- Update to 2.16.11.
* Tue Aug 13 2024 Maxwell G <maxwell@gtmx.me> - 2.16.10-1
- Update to 2.16.10.
* Fri Jul 19 2024 Maxwell G <maxwell@gtmx.me> - 2.16.9-1
- Update to 2.16.9.
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.16.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sun Jun 23 2024 Maxwell G <maxwell@gtmx.me> - 2.16.8-1
- Update to 2.16.8.
* Sun Jun 09 2024 Python Maint <python-maint@redhat.com> - 2.16.7-2
- Rebuilt for Python 3.13
* Tue Jun 04 2024 Maxwell G <maxwell@gtmx.me> - 2.16.7-1
- Update to 2.16.7.
* Thu May 23 2024 Miro Hrončok <mhroncok@redhat.com> - 2.16.6-2
- Fix build with Python 3.13
* Tue Apr 16 2024 Maxwell G <maxwell@gtmx.me> - 2.16.6-1
- Update to 2.16.6. Fixes rhbz#2261507.
* Fri Mar 29 2024 Maxwell G <maxwell@gtmx.me> - 2.16.5-1
- Update to 2.16.5. Fixes rhbz#2261507.
* Fri Mar 29 2024 Maxwell G <maxwell@gtmx.me> - 2.16.5-1
- Update to 2.16.5.
* Sat Mar 02 2024 Maxwell G <maxwell@gtmx.me> - 2.16.4-1
- Update to 2.16.4. Fixes rhbz#2261507.
* Thu Feb 01 2024 Maxwell G <maxwell@gtmx.me> - 2.16.3-1
- Update to 2.16.3. Fixes rhbz#2261507.
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.16.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.16.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jan 18 2024 Maxwell G <maxwell@gtmx.me> - 2.16.2-2
- Mitigate CVE-2024-0690.
* Mon Dec 11 2023 Maxwell G <maxwell@gtmx.me> - 2.16.2-1
- Update to 2.16.2. Fixes rhbz#2254093.
* Wed Dec 06 2023 Maxwell G <maxwell@gtmx.me> - 2.16.1-1
- Update to 2.16.1. Fixes rhbz#2252860.
* Fri Nov 10 2023 Maxwell G <maxwell@gtmx.me> - 2.16.0-1
- Update to 2.16.0. Fixes rhbz#2248187.
* Thu Oct 19 2023 Maxwell G <maxwell@gtmx.me> - 2.16.0~rc1-1
- Update to 2.16.0~rc1.
* Tue Oct 03 2023 Maxwell G <maxwell@gtmx.me> - 2.16.0~b2-1
- Update to 2.16.0~b2.
* Mon Oct 02 2023 Miro Hrončok <mhroncok@redhat.com> - 2.16.0~b1-2
- Do not use tomcli in Fedora ELN, avoid pulling unwanted dependencies
* Wed Sep 27 2023 Maxwell G <maxwell@gtmx.me> - 2.16.0~b1-1
- Update to 2.16.0~b1.
* Tue Sep 26 2023 Kevin Fenzi <kevin@scrye.com> - 2.15.4-2
- Add patch to fix readfp with python-3.12. Fixes rhbz#2239728
* Mon Sep 11 2023 Maxwell G <maxwell@gtmx.me> - 2.15.4-1
- Update to 2.15.4. Fixes rhbz#2238445.
* Thu Aug 17 2023 Maxwell G <maxwell@gtmx.me> - 2.15.3-1
- Update to 2.15.3. Fixes rhbz#2231963.
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jul 18 2023 Maxwell G <maxwell@gtmx.me> - 2.15.2-1
- Update to 2.15.2. Fixes rhbz#2223469.
- Use the docs sources from https://github.com/ansible/ansible-documentation.
* Mon Jul 03 2023 Maxwell G <maxwell@gtmx.me> - 2.15.1-2
- Rebuilt for Python 3.12
* Thu Jun 22 2023 Maxwell G <maxwell@gtmx.me> - 2.15.1-1
- Update to 2.15.1. Fixes rhbz#2204492.
- Add Recommends on python3-libdnf5 for Fedora 39
* Sat Jun 17 2023 Maxwell G <maxwell@gtmx.me> - 2.15.0-5
- Add patch to avoid importlib.abc.TraversableResources DeprecationWarning
* Fri Jun 16 2023 Python Maint <python-maint@redhat.com> - 2.15.0-4
- Rebuilt for Python 3.12
* Tue Jun 13 2023 Maxwell G <maxwell@gtmx.me> - 2.15.0-3
- Add support for Python 3.12. Fixes rhbz#2196539.
- Remove conditional Requires on ansible-packaging.
* Tue May 23 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 2.15.0-2
- Disable tests in RHEL builds
* Tue May 16 2023 Maxwell G <maxwell@gtmx.me> - 2.15.0-1
- Update to 2.15.0.
- Don't remove dotfiles and empty files. ansible-core actually needs these.
* Mon May 01 2023 Maxwell G <maxwell@gtmx.me> - 2.14.5-1
- Update to 2.14.5. Fixes rhbz#2189287.
* Wed May 03 2023 Maxwell G <maxwell@gtmx.me> - 2.15.0~rc2-1
- Update to 2.15.0~rc2.
* Thu Apr 27 2023 Maxwell G <maxwell@gtmx.me> - 2.15.0~rc1-1
- Update to 2.15.0~rc1.
* Mon Apr 24 2023 Maxwell G <maxwell@gtmx.me> - 2.15.0~b3-1
- Update to 2.15.0~b3.
- Account for the removed Makefile
* Mon Apr 24 2023 Maxwell G <maxwell@gtmx.me> - 2.14.4-2
- Add gating
* Wed Mar 29 2023 Maxwell G <maxwell@gtmx.me> - 2.14.4-1
- Update to 2.14.4. Fixes rhbz#2173765.

View file

@ -1,2 +1,2 @@
SHA512 (ansible-core-2.14.11.tar.gz) = 4246b0fcab2e89ff2e905c582b03dc4c05a2db29aaac72d9ce75a88edeb0ba3a2b5baee2756adf19b98af5516db4c0dca96c46f8d30d0029cbb37232dc197ee2
SHA512 (ansible-documentation-2.14.11.tar.gz) = 40261e647092048b398a825abcdcc0b7fed51cabdb0c3e1b5f403ecc36ee7c289f41fec5fe4065ff0b955cf24db56914d61749525922b36f6fc6e606c5e975ad
SHA512 (ansible-core-2.20.1.tar.gz) = fa0a4836e3548cd4e432e87b241beb6fb556765699c25b1f3b1c47111a1c44d5ba3244aeb8793408e72ab63564d6e848148becbfb550bd965e466752d7f78229
SHA512 (ansible-documentation-2.20.1.tar.gz) = 0dc20cb62280c715e4b06788a5eb2c757c388d0da646a38fc3ab56e38d236ddb0fd7586a567d973e530ed3ed2310ff26542cdb0e1621e0049147dc747e20205b

View file

@ -3,15 +3,38 @@
set -euo pipefail
ansible --version
ansible -c local -i localhost, localhost -m setup
ansible -c local -i locahost, localhost -b \
-m community.general.copr \
-a "name=gotmax23/community.general.copr_integration_tests chroot=fedora-rawhide-x86_64" \
|& tee out
grep 'localhost | CHANGED' out
ansible -c local -i localhost, localhost -b \
cat <<EOF >inventory
[all]
localhost ansible_connection=local
EOF
export ANSIBLE_INVENTORY=inventory
chroot="fedora-rawhide-x86_64"
ansible localhost -bm setup |& tee out
if ! grep Fedora out; then
chroot="epel-9-x86_64"
fi
ansible localhost -b \
-m package \
-a name=copr-module-integration-dummy-package \
-a name=filesystem \
|& tee out
grep 'localhost | CHANGED' out
grep -F 'localhost | SUCCESS' out
(! grep -F 'localhost | CHANGED' out)
ansible localhost -b \
-m community.general.copr \
-a "name=gotmax23/community.general.copr_integration_tests chroot=${chroot}" \
|& tee out
grep -F 'localhost | CHANGED' out
ansible localhost -b \
-m package \
-a name=copr-module-integration-dummy-package \
|& tee out
grep -F 'localhost | CHANGED' out
rpm -ql copr-module-integration-dummy-package

View file

@ -6,6 +6,7 @@ discover:
- name: Run tests/smoke.sh
test: tests/smoke.sh
require:
- python3
- python3-dnf
- dnf-plugins-core
- ansible-core

View file

@ -6,6 +6,7 @@ discover:
- name: Run tests/smoke.sh
test: tests/smoke.sh
require:
- python3
- python3-dnf
- dnf-plugins-core
- ansible-core

View file

@ -1,154 +0,0 @@
From 0df794e5a4fe4597ee65b0d492fbf0d0989d5ca0 Mon Sep 17 00:00:00 2001
From: Jordan Borean <jborean93@gmail.com>
Date: Thu, 18 May 2023 08:17:25 +1000
Subject: [PATCH] urls - remove deprecated client key calls (#80751)
---
.../fragments/urls-client-cert-py12.yml | 2 ++
lib/ansible/module_utils/urls.py | 28 +++++++++++--------
test/units/module_utils/urls/test_Request.py | 14 ++++------
3 files changed, 24 insertions(+), 20 deletions(-)
create mode 100644 changelogs/fragments/urls-client-cert-py12.yml
diff --git a/changelogs/fragments/urls-client-cert-py12.yml b/changelogs/fragments/urls-client-cert-py12.yml
new file mode 100644
index 00000000000000..aab129ed96e94b
--- /dev/null
+++ b/changelogs/fragments/urls-client-cert-py12.yml
@@ -0,0 +1,2 @@
+bugfixes:
+- urls.py - fixed cert_file and key_file parameters when running on Python 3.12 - https://github.com/ansible/ansible/issues/80490
diff --git a/lib/ansible/module_utils/urls.py b/lib/ansible/module_utils/urls.py
index 0e5fbb74c4fae2..0197d86e1033b2 100644
--- a/lib/ansible/module_utils/urls.py
+++ b/lib/ansible/module_utils/urls.py
@@ -535,15 +535,18 @@ def __init__(self, message, import_traceback, module=None):
UnixHTTPSConnection = None
if hasattr(httplib, 'HTTPSConnection') and hasattr(urllib_request, 'HTTPSHandler'):
class CustomHTTPSConnection(httplib.HTTPSConnection): # type: ignore[no-redef]
- def __init__(self, *args, **kwargs):
+ def __init__(self, client_cert=None, client_key=None, *args, **kwargs):
httplib.HTTPSConnection.__init__(self, *args, **kwargs)
self.context = None
if HAS_SSLCONTEXT:
self.context = self._context
elif HAS_URLLIB3_PYOPENSSLCONTEXT:
self.context = self._context = PyOpenSSLContext(PROTOCOL)
- if self.context and self.cert_file:
- self.context.load_cert_chain(self.cert_file, self.key_file)
+
+ self._client_cert = client_cert
+ self._client_key = client_key
+ if self.context and self._client_cert:
+ self.context.load_cert_chain(self._client_cert, self._client_key)
def connect(self):
"Connect to a host on a given (SSL) port."
@@ -564,10 +567,10 @@ def connect(self):
if HAS_SSLCONTEXT or HAS_URLLIB3_PYOPENSSLCONTEXT:
self.sock = self.context.wrap_socket(sock, server_hostname=server_hostname)
elif HAS_URLLIB3_SSL_WRAP_SOCKET:
- self.sock = ssl_wrap_socket(sock, keyfile=self.key_file, cert_reqs=ssl.CERT_NONE, # pylint: disable=used-before-assignment
- certfile=self.cert_file, ssl_version=PROTOCOL, server_hostname=server_hostname)
+ self.sock = ssl_wrap_socket(sock, keyfile=self._client_key, cert_reqs=ssl.CERT_NONE, # pylint: disable=used-before-assignment
+ certfile=self._client_cert, ssl_version=PROTOCOL, server_hostname=server_hostname)
else:
- self.sock = ssl.wrap_socket(sock, keyfile=self.key_file, certfile=self.cert_file, ssl_version=PROTOCOL)
+ self.sock = ssl.wrap_socket(sock, keyfile=self._client_key, certfile=self._client_cert, ssl_version=PROTOCOL)
class CustomHTTPSHandler(urllib_request.HTTPSHandler): # type: ignore[no-redef]
@@ -602,10 +605,6 @@ def https_open(self, req):
return self.do_open(self._build_https_connection, req)
def _build_https_connection(self, host, **kwargs):
- kwargs.update({
- 'cert_file': self.client_cert,
- 'key_file': self.client_key,
- })
try:
kwargs['context'] = self._context
except AttributeError:
@@ -613,7 +612,7 @@ def _build_https_connection(self, host, **kwargs):
if self._unix_socket:
return UnixHTTPSConnection(self._unix_socket)(host, **kwargs)
if not HAS_SSLCONTEXT:
- return CustomHTTPSConnection(host, **kwargs)
+ return CustomHTTPSConnection(host, client_cert=self.client_cert, client_key=self.client_key, **kwargs)
return httplib.HTTPSConnection(host, **kwargs)
@contextmanager
@@ -979,7 +978,7 @@ def atexit_remove_file(filename):
pass
-def make_context(cafile=None, cadata=None, ciphers=None, validate_certs=True):
+def make_context(cafile=None, cadata=None, ciphers=None, validate_certs=True, client_cert=None, client_key=None):
if ciphers is None:
ciphers = []
@@ -1006,6 +1005,9 @@ def make_context(cafile=None, cadata=None, ciphers=None, validate_certs=True):
if ciphers:
context.set_ciphers(':'.join(map(to_native, ciphers)))
+ if client_cert:
+ context.load_cert_chain(client_cert, keyfile=client_key)
+
return context
@@ -1514,6 +1516,8 @@ def open(self, method, url, data=None, headers=None, use_proxy=None,
cadata=cadata,
ciphers=ciphers,
validate_certs=validate_certs,
+ client_cert=client_cert,
+ client_key=client_key,
)
handlers.append(HTTPSClientAuthHandler(client_cert=client_cert,
client_key=client_key,
diff --git a/test/units/module_utils/urls/test_Request.py b/test/units/module_utils/urls/test_Request.py
index d2c4ea38012a49..a8bc3a0b6bde3b 100644
--- a/test/units/module_utils/urls/test_Request.py
+++ b/test/units/module_utils/urls/test_Request.py
@@ -33,6 +33,7 @@ def install_opener_mock(mocker):
def test_Request_fallback(urlopen_mock, install_opener_mock, mocker):
here = os.path.dirname(__file__)
pem = os.path.join(here, 'fixtures/client.pem')
+ client_key = os.path.join(here, 'fixtures/client.key')
cookies = cookiejar.CookieJar()
request = Request(
@@ -46,8 +47,8 @@ def test_Request_fallback(urlopen_mock, install_opener_mock, mocker):
http_agent='ansible-tests',
force_basic_auth=True,
follow_redirects='all',
- client_cert='/tmp/client.pem',
- client_key='/tmp/client.key',
+ client_cert=pem,
+ client_key=client_key,
cookies=cookies,
unix_socket='/foo/bar/baz.sock',
ca_path=pem,
@@ -68,8 +69,8 @@ def test_Request_fallback(urlopen_mock, install_opener_mock, mocker):
call(None, 'ansible-tests'), # http_agent
call(None, True), # force_basic_auth
call(None, 'all'), # follow_redirects
- call(None, '/tmp/client.pem'), # client_cert
- call(None, '/tmp/client.key'), # client_key
+ call(None, pem), # client_cert
+ call(None, client_key), # client_key
call(None, cookies), # cookies
call(None, '/foo/bar/baz.sock'), # unix_socket
call(None, pem), # ca_path
@@ -358,10 +359,7 @@ def test_Request_open_client_cert(urlopen_mock, install_opener_mock):
assert ssl_handler.client_cert == client_cert
assert ssl_handler.client_key == client_key
- https_connection = ssl_handler._build_https_connection('ansible.com')
-
- assert https_connection.key_file == client_key
- assert https_connection.cert_file == client_cert
+ ssl_handler._build_https_connection('ansible.com')
def test_Request_open_cookies(urlopen_mock, install_opener_mock):