ansible-core 2.16.5rc1__py3-none-any.whl → 2.16.7rc1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ansible-core might be problematic. Click here for more details.

Files changed (40) hide show
  1. ansible/cli/config.py +5 -3
  2. ansible/cli/inventory.py +1 -21
  3. ansible/config/manager.py +12 -11
  4. ansible/constants.py +40 -0
  5. ansible/executor/play_iterator.py +1 -1
  6. ansible/executor/task_executor.py +8 -2
  7. ansible/galaxy/role.py +10 -12
  8. ansible/module_utils/ansible_release.py +1 -1
  9. ansible/module_utils/facts/virtual/linux.py +1 -1
  10. ansible/modules/blockinfile.py +1 -1
  11. ansible/modules/dnf.py +25 -143
  12. ansible/modules/dnf5.py +42 -21
  13. ansible/modules/find.py +7 -4
  14. ansible/modules/unarchive.py +1 -1
  15. ansible/modules/uri.py +8 -7
  16. ansible/modules/user.py +0 -6
  17. ansible/parsing/mod_args.py +8 -4
  18. ansible/playbook/role/__init__.py +1 -1
  19. ansible/plugins/action/__init__.py +1 -1
  20. ansible/plugins/action/fetch.py +4 -0
  21. ansible/plugins/cache/__init__.py +1 -0
  22. ansible/plugins/connection/psrp.py +1 -1
  23. ansible/plugins/connection/winrm.py +14 -2
  24. ansible/plugins/lookup/url.py +9 -1
  25. ansible/plugins/strategy/free.py +1 -1
  26. ansible/plugins/strategy/linear.py +1 -1
  27. ansible/release.py +1 -1
  28. ansible/template/__init__.py +10 -10
  29. ansible/vars/hostvars.py +6 -22
  30. {ansible_core-2.16.5rc1.dist-info → ansible_core-2.16.7rc1.dist-info}/METADATA +1 -1
  31. {ansible_core-2.16.5rc1.dist-info → ansible_core-2.16.7rc1.dist-info}/RECORD +40 -40
  32. ansible_test/_data/requirements/constraints.txt +1 -0
  33. ansible_test/_internal/commands/sanity/ansible_doc.py +1 -1
  34. ansible_test/_internal/pypi_proxy.py +8 -1
  35. ansible_test/_util/target/setup/bootstrap.sh +9 -0
  36. {ansible_core-2.16.5rc1.data → ansible_core-2.16.7rc1.data}/scripts/ansible-test +0 -0
  37. {ansible_core-2.16.5rc1.dist-info → ansible_core-2.16.7rc1.dist-info}/COPYING +0 -0
  38. {ansible_core-2.16.5rc1.dist-info → ansible_core-2.16.7rc1.dist-info}/WHEEL +0 -0
  39. {ansible_core-2.16.5rc1.dist-info → ansible_core-2.16.7rc1.dist-info}/entry_points.txt +0 -0
  40. {ansible_core-2.16.5rc1.dist-info → ansible_core-2.16.7rc1.dist-info}/top_level.txt +0 -0
ansible/modules/uri.py CHANGED
@@ -108,14 +108,15 @@ options:
108
108
  default: no
109
109
  follow_redirects:
110
110
  description:
111
- - Whether or not the URI module should follow redirects. V(all) will follow all redirects.
112
- V(safe) will follow only "safe" redirects, where "safe" means that the client is only
113
- doing a GET or HEAD on the URI to which it is being redirected. V(none) will not follow
114
- any redirects. Note that V(true) and V(false) choices are accepted for backwards compatibility,
115
- where V(true) is the equivalent of V(all) and V(false) is the equivalent of V(safe). V(true) and V(false)
116
- are deprecated and will be removed in some future version of Ansible.
111
+ - Whether or not the URI module should follow redirects.
112
+ - V(all) Will follow all redirects.
113
+ - V(none) Will not follow any redirects.
114
+ - V(safe) Only redirects doing GET or HEAD requests will be followed.
115
+ - V(urllib2) Defer to urllib2 behavior (As of writing this follows HTTP redirects).
116
+ - V('no') (DEPRECATED, will be removed in the future version) alias of V(none).
117
+ - V('yes') (DEPRECATED, will be removed in the future version) alias of V(all).
118
+ choices: ['all', 'none', 'safe', 'urllib2', 'yes', 'no']
117
119
  type: str
118
- choices: ['all', 'no', 'none', 'safe', 'urllib2', 'yes']
119
120
  default: safe
120
121
  creates:
121
122
  description:
ansible/modules/user.py CHANGED
@@ -1063,12 +1063,6 @@ class User(object):
1063
1063
  exists = True
1064
1064
  break
1065
1065
 
1066
- if not exists:
1067
- self.module.warn(
1068
- "'local: true' specified and user '{name}' was not found in {file}. "
1069
- "The local user account may already exist if the local account database exists "
1070
- "somewhere other than {file}.".format(file=self.PASSWORDFILE, name=self.name))
1071
-
1072
1066
  return exists
1073
1067
 
1074
1068
  else:
@@ -48,7 +48,6 @@ RAW_PARAM_MODULES = FREEFORM_ACTIONS.union(add_internal_fqcns((
48
48
 
49
49
  BUILTIN_TASKS = frozenset(add_internal_fqcns((
50
50
  'meta',
51
- 'include',
52
51
  'include_tasks',
53
52
  'include_role',
54
53
  'import_tasks',
@@ -304,9 +303,14 @@ class ModuleArgsParser:
304
303
  elif skip_action_validation:
305
304
  is_action_candidate = True
306
305
  else:
307
- context = action_loader.find_plugin_with_context(item, collection_list=self._collection_list)
308
- if not context.resolved:
309
- context = module_loader.find_plugin_with_context(item, collection_list=self._collection_list)
306
+ try:
307
+ context = action_loader.find_plugin_with_context(item, collection_list=self._collection_list)
308
+ if not context.resolved:
309
+ context = module_loader.find_plugin_with_context(item, collection_list=self._collection_list)
310
+ except AnsibleError as e:
311
+ if e.obj is None:
312
+ e.obj = self._task_ds
313
+ raise e
310
314
 
311
315
  is_action_candidate = context.resolved and bool(context.redirect_list)
312
316
 
@@ -586,7 +586,7 @@ class Role(Base, Conditional, Taggable, CollectionSearch, Delegatable):
586
586
  at least one task was run
587
587
  '''
588
588
 
589
- return host.name in self._completed and not self._metadata.allow_duplicates
589
+ return host.name in self._completed
590
590
 
591
591
  def compile(self, play, dep_chain=None):
592
592
  '''
@@ -1339,7 +1339,7 @@ class ActionBase(ABC):
1339
1339
  display.debug(u"_low_level_execute_command() done: rc=%d, stdout=%s, stderr=%s" % (rc, out, err))
1340
1340
  return dict(rc=rc, stdout=out, stdout_lines=out.splitlines(), stderr=err, stderr_lines=err.splitlines())
1341
1341
 
1342
- def _get_diff_data(self, destination, source, task_vars, content, source_file=True):
1342
+ def _get_diff_data(self, destination, source, task_vars, content=None, source_file=True):
1343
1343
 
1344
1344
  # Note: Since we do not diff the source and destination before we transform from bytes into
1345
1345
  # text the diff between source and destination may not be accurate. To fix this, we'd need
@@ -150,6 +150,10 @@ class ActionModule(ActionBase):
150
150
  # destination filename
151
151
  base = os.path.basename(source_local)
152
152
  dest = os.path.join(dest, base)
153
+
154
+ if os.path.isdir(to_bytes(dest, errors='surrogate_or_strict')):
155
+ raise AnsibleActionFail(
156
+ f"calculated dest '{dest}' is an existing directory, use another path that does not point to an existing directory")
153
157
  if not dest.startswith("/"):
154
158
  # if dest does not start with "/", we'll assume a relative path
155
159
  dest = self._loader.path_dwim(dest)
@@ -165,6 +165,7 @@ class BaseFileCacheModule(BaseCacheModule):
165
165
  display.warning("error in '%s' cache plugin while trying to write to '%s' : %s" % (self.plugin_name, tmpfile_path, to_bytes(e)))
166
166
  try:
167
167
  os.rename(tmpfile_path, cachefile)
168
+ os.chmod(cachefile, mode=0o644)
168
169
  except (OSError, IOError) as e:
169
170
  display.warning("error in '%s' cache plugin while trying to move '%s' to '%s' : %s" % (self.plugin_name, tmpfile_path, cachefile, to_bytes(e)))
170
171
  finally:
@@ -14,7 +14,7 @@ description:
14
14
  underlying transport but instead runs in a PowerShell interpreter.
15
15
  version_added: "2.7"
16
16
  requirements:
17
- - pypsrp>=0.4.0 (Python library)
17
+ - pypsrp>=0.4.0, <1.0.0 (Python library)
18
18
  extends_documentation_fragment:
19
19
  - connection_pipelining
20
20
  options:
@@ -199,7 +199,7 @@ from ansible.utils.display import Display
199
199
 
200
200
  try:
201
201
  import winrm
202
- from winrm.exceptions import WinRMError, WinRMOperationTimeoutError
202
+ from winrm.exceptions import WinRMError, WinRMOperationTimeoutError, WinRMTransportError
203
203
  from winrm.protocol import Protocol
204
204
  import requests.exceptions
205
205
  HAS_WINRM = True
@@ -684,7 +684,19 @@ class Connection(ConnectionBase):
684
684
  raise AnsibleConnectionFailure('winrm connection error: %s' % to_native(exc))
685
685
  finally:
686
686
  if command_id:
687
- self.protocol.cleanup_command(self.shell_id, command_id)
687
+ # Due to a bug in how pywinrm works with message encryption we
688
+ # ignore a 400 error which can occur when a task timeout is
689
+ # set and the code tries to clean up the command. This happens
690
+ # as the cleanup msg is sent over a new socket but still uses
691
+ # the already encrypted payload bound to the other socket
692
+ # causing the server to reply with 400 Bad Request.
693
+ try:
694
+ self.protocol.cleanup_command(self.shell_id, command_id)
695
+ except WinRMTransportError as e:
696
+ if e.code != 400:
697
+ raise
698
+
699
+ display.warning("Failed to cleanup running WinRM command, resources might still be in use on the target server")
688
700
 
689
701
  def _connect(self) -> Connection:
690
702
 
@@ -88,7 +88,14 @@ options:
88
88
  - section: url_lookup
89
89
  key: force_basic_auth
90
90
  follow_redirects:
91
- description: String of urllib2, all/yes, safe, none to determine how redirects are followed, see RedirectHandlerFactory for more information
91
+ description:
92
+ - String of urllib2, all/yes, safe, none to determine how redirects are followed, see RedirectHandlerFactory for more information.
93
+ - V(all) Will follow all redirects.
94
+ - V(none) Will not follow any redirects.
95
+ - V(safe) Only redirects doing GET or HEAD requests will be followed.
96
+ - V(urllib2) Defer to urllib2 behavior (As of writing this follows HTTP redirects).
97
+ - V('no') (DEPRECATED, will be removed in the future version) alias of V(none).
98
+ - V('yes') (DEPRECATED, will be removed in the future version) alias of V(all).
92
99
  type: string
93
100
  version_added: "2.10"
94
101
  default: 'urllib2'
@@ -99,6 +106,7 @@ options:
99
106
  ini:
100
107
  - section: url_lookup
101
108
  key: follow_redirects
109
+ choices: ['all', 'none', 'safe', 'urllib2', 'yes', 'no']
102
110
  use_gssapi:
103
111
  description:
104
112
  - Use GSSAPI handler of requests
@@ -177,7 +177,7 @@ class StrategyModule(StrategyBase):
177
177
  # role which has already run (and whether that role allows duplicate execution)
178
178
  if not isinstance(task, Handler) and task._role:
179
179
  role_obj = self._get_cached_role(task, iterator._play)
180
- if role_obj.has_run(host) and role_obj._metadata.allow_duplicates is False:
180
+ if role_obj.has_run(host) and task._role._metadata.allow_duplicates is False:
181
181
  display.debug("'%s' skipped because role has already run" % task, host=host_name)
182
182
  del self._blocked_hosts[host_name]
183
183
  continue
@@ -172,7 +172,7 @@ class StrategyModule(StrategyBase):
172
172
  # role which has already run (and whether that role allows duplicate execution)
173
173
  if not isinstance(task, Handler) and task._role:
174
174
  role_obj = self._get_cached_role(task, iterator._play)
175
- if role_obj.has_run(host) and role_obj._metadata.allow_duplicates is False:
175
+ if role_obj.has_run(host) and task._role._metadata.allow_duplicates is False:
176
176
  display.debug("'%s' skipped because role has already run" % task)
177
177
  continue
178
178
 
ansible/release.py CHANGED
@@ -19,6 +19,6 @@
19
19
  from __future__ import (absolute_import, division, print_function)
20
20
  __metaclass__ = type
21
21
 
22
- __version__ = '2.16.5rc1'
22
+ __version__ = '2.16.7rc1'
23
23
  __author__ = 'Ansible, Inc.'
24
24
  __codename__ = "All My Love"
@@ -86,26 +86,26 @@ def generate_ansible_template_vars(path, fullpath=None, dest_path=None):
86
86
  template_uid = os.stat(b_path).st_uid
87
87
 
88
88
  temp_vars = {
89
- 'template_host': to_text(os.uname()[1]),
90
- 'template_path': path,
89
+ 'template_host': to_unsafe_text(os.uname()[1]),
90
+ 'template_path': to_unsafe_text(path),
91
91
  'template_mtime': datetime.datetime.fromtimestamp(os.path.getmtime(b_path)),
92
- 'template_uid': to_text(template_uid),
92
+ 'template_uid': to_unsafe_text(template_uid),
93
93
  'template_run_date': datetime.datetime.now(),
94
- 'template_destpath': to_native(dest_path) if dest_path else None,
94
+ 'template_destpath': wrap_var(to_native(dest_path)) if dest_path else None,
95
95
  }
96
96
 
97
97
  if fullpath is None:
98
- temp_vars['template_fullpath'] = os.path.abspath(path)
98
+ temp_vars['template_fullpath'] = wrap_var(os.path.abspath(path))
99
99
  else:
100
- temp_vars['template_fullpath'] = fullpath
100
+ temp_vars['template_fullpath'] = wrap_var(fullpath)
101
101
 
102
102
  managed_default = C.DEFAULT_MANAGED_STR
103
103
  managed_str = managed_default.format(
104
- host=temp_vars['template_host'],
105
- uid=temp_vars['template_uid'],
106
- file=temp_vars['template_path'].replace('%', '%%'),
104
+ host="{{ template_host }}",
105
+ uid="{{ template_uid }}",
106
+ file="{{ template_path }}"
107
107
  )
108
- temp_vars['ansible_managed'] = to_unsafe_text(time.strftime(to_native(managed_str), time.localtime(os.path.getmtime(b_path))))
108
+ temp_vars['ansible_managed'] = time.strftime(to_native(managed_str), time.localtime(os.path.getmtime(b_path)))
109
109
 
110
110
  return temp_vars
111
111
 
ansible/vars/hostvars.py CHANGED
@@ -21,26 +21,9 @@ __metaclass__ = type
21
21
 
22
22
  from collections.abc import Mapping
23
23
 
24
+ from ansible import constants as C
24
25
  from ansible.template import Templar, AnsibleUndefined
25
26
 
26
- STATIC_VARS = [
27
- 'ansible_version',
28
- 'ansible_play_hosts',
29
- 'ansible_dependent_role_names',
30
- 'ansible_play_role_names',
31
- 'ansible_role_names',
32
- 'inventory_hostname',
33
- 'inventory_hostname_short',
34
- 'inventory_file',
35
- 'inventory_dir',
36
- 'groups',
37
- 'group_names',
38
- 'omit',
39
- 'playbook_dir',
40
- 'play_hosts',
41
- 'role_names',
42
- 'ungrouped',
43
- ]
44
27
 
45
28
  __all__ = ['HostVars', 'HostVarsVars']
46
29
 
@@ -134,10 +117,12 @@ class HostVarsVars(Mapping):
134
117
  def __init__(self, variables, loader):
135
118
  self._vars = variables
136
119
  self._loader = loader
120
+ # NOTE: this only has access to the host's own vars,
121
+ # so templates that depend on vars in other scopes will not work.
122
+ self._templar = Templar(variables=self._vars, loader=self._loader)
137
123
 
138
124
  def __getitem__(self, var):
139
- templar = Templar(variables=self._vars, loader=self._loader)
140
- return templar.template(self._vars[var], fail_on_undefined=False, static_vars=STATIC_VARS)
125
+ return self._templar.template(self._vars[var], fail_on_undefined=False, static_vars=C.INTERNAL_STATIC_VARS)
141
126
 
142
127
  def __contains__(self, var):
143
128
  return (var in self._vars)
@@ -150,5 +135,4 @@ class HostVarsVars(Mapping):
150
135
  return len(self._vars.keys())
151
136
 
152
137
  def __repr__(self):
153
- templar = Templar(variables=self._vars, loader=self._loader)
154
- return repr(templar.template(self._vars, fail_on_undefined=False, static_vars=STATIC_VARS))
138
+ return repr(self._templar.template(self._vars, fail_on_undefined=False, static_vars=C.INTERNAL_STATIC_VARS))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ansible-core
3
- Version: 2.16.5rc1
3
+ Version: 2.16.7rc1
4
4
  Summary: Radically simple IT automation
5
5
  Home-page: https://ansible.com/
6
6
  Author: Ansible, Inc.
@@ -1,17 +1,17 @@
1
1
  ansible/__init__.py,sha256=hp8v4cmglYqNarXbNO_o6X5UiSrhsZPYiQWyTG2hK5M,1299
2
2
  ansible/__main__.py,sha256=IvyRvY64pT0on94qCLibxgDJ0-7_2CRoaZ5kfGOl54Q,1395
3
- ansible/constants.py,sha256=guPiQ4Iqm5M9zPArRR9rT5CTzDbEhIBEgqCvVLqYecs,8154
3
+ ansible/constants.py,sha256=FvX7PDG0GWV91Vszb5-DFKvkR8O2OTpBmIbQk-d51sc,9193
4
4
  ansible/context.py,sha256=OzSlaA_GgGRyyf5I209sy19_eGOX6HXn441W9w_FcvU,2018
5
5
  ansible/keyword_desc.yml,sha256=vE9joFgSeHR4Djl7Bd-HHVCrGByRCrTUmWYZ8LKPZKk,7412
6
- ansible/release.py,sha256=657or6Qqqo00yHcZrmANxZTe_0VFs2_2aZTtOBBaSNw,918
6
+ ansible/release.py,sha256=xrc2LrkvWMg6MJubnM_Myc7mX-DSw4fe4WCV0SrRt90,918
7
7
  ansible/_vendor/__init__.py,sha256=wJRKH7kI9OzYVY9hgSchOsTNTmTnugpPLGYj9Y5akX0,2086
8
8
  ansible/cli/__init__.py,sha256=6jaX6SS-UBM7pjiUlDsC0y07k3klUjxTR5ZEnDiCmP8,28706
9
9
  ansible/cli/adhoc.py,sha256=suzo4QnsaMjJBk5JlAUd-cpQLs8Ckj6A55CiG9Y8Gns,8247
10
- ansible/cli/config.py,sha256=rsf3Y8MB7rlehSG2jOojr1iqaMBhJXOoEqF-XCwu8NE,22503
10
+ ansible/cli/config.py,sha256=PZw8ghGsNgj3fpCWbmQst3AoxkUKU_GR64gdqMJCLmo,22716
11
11
  ansible/cli/console.py,sha256=Y3KVFNSEwHLeTJ2aBXv-sDAlg8PY9A-LnqyvrJuLPpI,22040
12
12
  ansible/cli/doc.py,sha256=t4KfhTv96R0bVLGm7FZE6cyiTSYxNfGqjh9aKLP4XQY,64080
13
13
  ansible/cli/galaxy.py,sha256=Ot45ARa20cMsVTb4uo_Zz8ClZpGl-mvsjBPAJxhwcA4,95115
14
- ansible/cli/inventory.py,sha256=uCXZ24iLIik2Z_QJLYaA45jmwVGqKLOp00YC4_S9PQ0,17735
14
+ ansible/cli/inventory.py,sha256=B1RQAPHnqA6xApxo7EvXoF6H8WkxZxxeqSOZtsNm-y0,16861
15
15
  ansible/cli/playbook.py,sha256=1CmwCE3K1eH_UFebIp0M59r4LPDJ5KMzCLxxM41lst0,10918
16
16
  ansible/cli/pull.py,sha256=fqGi-kBWM_B7jdKgA3XcO67znUK1rvhT9t9JjUialjQ,17336
17
17
  ansible/cli/vault.py,sha256=Ho-Mms0N6tV_Bgnx9Dm_r3z2IyYydp8kGbCfvvPsLrI,23007
@@ -27,17 +27,17 @@ ansible/compat/selectors/__init__.py,sha256=dD8KQZBa0NUi-hxhGx0eppTE3wHdMIchORAp
27
27
  ansible/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  ansible/config/ansible_builtin_runtime.yml,sha256=TSP32-cHB3kKhRJ_3whBwtCr2Dtry2i-7HY4gERUWeA,376031
29
29
  ansible/config/base.yml,sha256=1WH7epi5BW-lrSU_K-BRvwnLh-OgQwadwucjnO75Oxw,84999
30
- ansible/config/manager.py,sha256=v5SU-iBeL9zN5hLR1wlEwROr_3AKpPebcBlryXttEJY,25379
30
+ ansible/config/manager.py,sha256=LYCaiOAyGvFclsV82GG81l-V_3qIQhETImS9UKthz_I,25312
31
31
  ansible/errors/__init__.py,sha256=f8N3525uEu2b9Kw98ze_ngLITalq5MbrJn2b1oR_NeQ,14823
32
32
  ansible/errors/yaml_strings.py,sha256=p8WIWbjKSIvr_MWx3jOyGyUZMXoKttTPzuWVbHMwdmY,3942
33
33
  ansible/executor/__init__.py,sha256=1lMXN1i2fFqslda4BmeI5tpYMFP95D5Wpr1AjDJi-SQ,833
34
34
  ansible/executor/action_write_locks.py,sha256=Up2n3cwFCr4T4IvttHpe3QOxRBF_9NgWJ1tFm9CHpfM,1915
35
35
  ansible/executor/interpreter_discovery.py,sha256=0n3JAD8LfYBjnyNnj-JbWH8tb1jy23dwX7f5QvlyrFY,9943
36
36
  ansible/executor/module_common.py,sha256=GjRWM0L9Y4iDPa3ffhxjpy07i9e6ozpvvPnSLxZF_y8,65839
37
- ansible/executor/play_iterator.py,sha256=6Sf7im1-6rZjzF6ewQJNONkIVfv8VkIZy4jPvVfK9jc,30507
37
+ ansible/executor/play_iterator.py,sha256=7Lk3Zxh3gAzLR8cyHmmFbbbT0C-JyeCK-vquKZyPBY0,30511
38
38
  ansible/executor/playbook_executor.py,sha256=RYYgI82wviDOE1o8zrIB5WWsSEg13KdxEVMXLGPKK7A,15098
39
39
  ansible/executor/stats.py,sha256=757UK8wDzLCXq4ltI9PqpoMNAdtRsd9D9-GS-5Al_Hs,3264
40
- ansible/executor/task_executor.py,sha256=ok7ra8k24MCnQ9Q6ej7vgDHUDY2XyfQFglDqCJua8uE,60307
40
+ ansible/executor/task_executor.py,sha256=uarhaFNWGboyKO2AegjEp-KQSr9BMlF2PnmOdYwkmD0,60445
41
41
  ansible/executor/task_queue_manager.py,sha256=DUWwK8RZuUJPY66to8kplFBFcUPAJwLB3kW8vfl1IOM,18724
42
42
  ansible/executor/task_result.py,sha256=DvshMci5i9-qCXs0m_vScSa6BJMbPwwNQBV7L2DTCzE,5748
43
43
  ansible/executor/discovery/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -57,7 +57,7 @@ ansible/executor/process/__init__.py,sha256=1lMXN1i2fFqslda4BmeI5tpYMFP95D5Wpr1A
57
57
  ansible/executor/process/worker.py,sha256=rTLNZeKhW91zlx9izZlPkAn6afsSj6rdKm1xIj78LGI,10125
58
58
  ansible/galaxy/__init__.py,sha256=E80kenF78N0K9cKZybnGMMjgG_kFlITuhxFf8gyBfAU,2550
59
59
  ansible/galaxy/api.py,sha256=mGsxCKWvUF5wheObXtdMR-xHNVrs7J3AZ9_97XZuL1w,39789
60
- ansible/galaxy/role.py,sha256=lLeqwV82-Zin-JoUqpqZZB8WWxLJfXsHZAWiiigVsFU,21414
60
+ ansible/galaxy/role.py,sha256=83LHaufePRCUR1rT5peqSRE_-9Dl-JtoruB3x3oE1Io,21139
61
61
  ansible/galaxy/token.py,sha256=X21edFoqAq4DyA6Xm8MaVu-PNYhVjw-yWkFRxRdWZOw,6184
62
62
  ansible/galaxy/user_agent.py,sha256=x7cJzzpnTngHcwqSUd2hg0i28Dv0tbAyBdke5CSiNhM,813
63
63
  ansible/galaxy/collection/__init__.py,sha256=4tljAb0RxxglfHDbQpWZfHkYc__KsogyETCDTCW3BdI,78192
@@ -140,7 +140,7 @@ ansible/inventory/host.py,sha256=7RZjLiB7M74bejFRflOTa8XPHxMC334qhSo_5VmZrKI,512
140
140
  ansible/inventory/manager.py,sha256=ZwmEF3E2BKOJi9SMVQNz83A2f3raQn6Nyo-rfSNMn2k,29507
141
141
  ansible/module_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
142
  ansible/module_utils/_text.py,sha256=F_YfeaxhwmTI16HICAzQS9ZmlKgBDdQ4mqR-Kh--okg,597
143
- ansible/module_utils/ansible_release.py,sha256=657or6Qqqo00yHcZrmANxZTe_0VFs2_2aZTtOBBaSNw,918
143
+ ansible/module_utils/ansible_release.py,sha256=xrc2LrkvWMg6MJubnM_Myc7mX-DSw4fe4WCV0SrRt90,918
144
144
  ansible/module_utils/api.py,sha256=BTo7stVOANbtd-ngZslaqx70r9t5gfvo44cKyu5SFjU,5837
145
145
  ansible/module_utils/basic.py,sha256=7xL3IsZK68gyyYm2x8yB2s1V7Sx77-vK3rkXmp2mlCM,87489
146
146
  ansible/module_utils/connection.py,sha256=9Us-d-y1bhC3zNnziQxvYNT4umIaN0OYv8zPaUSdEf0,8447
@@ -255,7 +255,7 @@ ansible/module_utils/facts/virtual/base.py,sha256=-E9fRYdyCOzq9VIryQSdpTNBUVCHay
255
255
  ansible/module_utils/facts/virtual/dragonfly.py,sha256=h8Xap4VGXOO3j8-fLUtVVe9-OwoqqLkaAV8VRHk-gL0,1012
256
256
  ansible/module_utils/facts/virtual/freebsd.py,sha256=TCe2GkBaybTG76rRucSUXv1FCGZp9MN-qCdHlEgw5pE,3071
257
257
  ansible/module_utils/facts/virtual/hpux.py,sha256=NbwiW87bzdTiPnWpFikokJlfZJKvoPmcMHyeEACDEaY,2876
258
- ansible/module_utils/facts/virtual/linux.py,sha256=KN59Dx3RPkXGLY9_-2--EQlwFTh1OiuC4341_ZBJ_lU,17878
258
+ ansible/module_utils/facts/virtual/linux.py,sha256=E9ikOXcFDxQDmXFI75waRt0lCumccP-oQXZNdSN8qLI,17875
259
259
  ansible/module_utils/facts/virtual/netbsd.py,sha256=FAOMM2tVHAehUpc1HxyxaxqeUpmo_wu87q7sr87y1fo,2949
260
260
  ansible/module_utils/facts/virtual/openbsd.py,sha256=JcEQZV1qpCRjeZ3NcZaHNWudsrPgUUONXcULWlaUF58,2838
261
261
  ansible/module_utils/facts/virtual/sunos.py,sha256=_m7Ob1v-9T3nEAs5JJleTuGXHKNWznQR6cNMY2huMk0,6270
@@ -284,21 +284,21 @@ ansible/modules/assemble.py,sha256=FLBLH_SZCgFGoHqTcQ8b0TETokXMrJTo2bIbDFQMwlU,9
284
284
  ansible/modules/assert.py,sha256=rrvyacnzGt7FU_J9dRPZvb9TuJJ7Ah_u1YfLR7tmyj8,2816
285
285
  ansible/modules/async_status.py,sha256=aiYunlP0IhBfKw1jjVEb-MRM1RYCpq8VngPAHdAUY4E,4526
286
286
  ansible/modules/async_wrapper.py,sha256=Uouodh1EMehkZ1zjOksRb5R7xaE83vQMdTE4Chwc2zY,11718
287
- ansible/modules/blockinfile.py,sha256=C9v9tHx3FGrYzp0i-jcsDq42YdtxKRn-6GxXz0kAahs,15545
287
+ ansible/modules/blockinfile.py,sha256=bGhu20J7mc_3qjikLpULl5Pca5CO6tv3Ps9mvxsAts8,15558
288
288
  ansible/modules/command.py,sha256=yd3Dmls_jWCD-5bCAxjxbGk-AA83bElDii3yRzCNVww,14012
289
289
  ansible/modules/copy.py,sha256=yjF_N7eiQz7naq2bP7SH1ygPMQw9WGL-nOyrn8xQbNM,35906
290
290
  ansible/modules/cron.py,sha256=HlokG4Pcx219oksqbZRLXC61SlpbZSpCFVG-uRL_Qz4,26189
291
291
  ansible/modules/deb822_repository.py,sha256=rZzJzyl7TfVKrcICzYOBJISTrqRYGq8AoWNLwyl6eb0,15693
292
292
  ansible/modules/debconf.py,sha256=dqW8NQtQom64KUjre6liHNzT5oqyuEumyRQpyEfD9RE,8452
293
293
  ansible/modules/debug.py,sha256=eAQPIQ_LKHy718uD175T22nTrv7_8OlHjwO0ekKBQMU,2958
294
- ansible/modules/dnf.py,sha256=2_JoifgFPTQe7_Xi-UAf6nHwPUevuHE28uGXY7jLf_E,60098
295
- ansible/modules/dnf5.py,sha256=1RxYjibK18vM2pu3PeAFL7S-1iq3MoWjINH1gFkHkMI,25680
294
+ ansible/modules/dnf.py,sha256=O55N-PlXOTLaPby10KiWd95GQJYKOt01yqyBBVsQHvg,55876
295
+ ansible/modules/dnf5.py,sha256=kwscsR4SVsBR3U5EXBg3TQ02_TVTASOqAUaKy6HjZ0s,26309
296
296
  ansible/modules/dpkg_selections.py,sha256=NBiePEQRamuOO5ncxt6mBbvlWihhMFwMmqiql7zZU34,2833
297
297
  ansible/modules/expect.py,sha256=C7t85H_TV9Y10wLVx0ok6qvYk4Lb6n6xT2qu3DSMBKE,9067
298
298
  ansible/modules/fail.py,sha256=AI4gNQC7E5U2Vs7QiIlFk7PcWozN0tXtiVPa_LJrQpk,1710
299
299
  ansible/modules/fetch.py,sha256=20Nixmigo7AcS0AUDdltONBabXI2w-i81b-LrD7hrYc,4267
300
300
  ansible/modules/file.py,sha256=MWQJZHi3hgqEOKsjJ9cJ_tI815Ij1WMQ2dhnMJMORtA,40957
301
- ansible/modules/find.py,sha256=huWeFyr05mJiFMn5_1pPBvOuZWLG2xYAWR8hsMETdGU,21729
301
+ ansible/modules/find.py,sha256=Fh1mbDSnqlxF0fU8P9tdjykdCSldz9xd8nvESPtWaxA,21864
302
302
  ansible/modules/gather_facts.py,sha256=HxjznA12SAz5ONVTqHrq79-gY35F-RVeU-RjrPA3c4c,2952
303
303
  ansible/modules/get_url.py,sha256=PfAYVmSJETTHAK9FwwswAFy6a-Y8ptGomEAYxbgQPn8,26996
304
304
  ansible/modules/getent.py,sha256=mXkjPwilYjmic36v9_0XBD1FEN6GZPS-srh7LQvssaA,5696
@@ -340,9 +340,9 @@ ansible/modules/systemd_service.py,sha256=J9UZrpcASlrOPnHexS25syvBPQXIkmOAC49gV5
340
340
  ansible/modules/sysvinit.py,sha256=MS_Hus1xvXSn_jF-o6mYbK7duIsOT0mi6UPMoC8YvYY,13835
341
341
  ansible/modules/tempfile.py,sha256=5QDq5jiUcIlhTQnZmAuoyUMwtd13sIgcIAMoEcKdVyI,3539
342
342
  ansible/modules/template.py,sha256=E3GB8_LZNSu_64hzFKQD6Ov7HTfrkzsaJ3Xl4IOrL8A,4586
343
- ansible/modules/unarchive.py,sha256=mivoH2vOiMymgrPq3Lqw8NrfPvQ23iitb1W7_FbdrOY,44450
344
- ansible/modules/uri.py,sha256=3vrPsO-q2JJ7JOaJA0GIJMS5gikO0USZRH7z6wrIlCk,28521
345
- ansible/modules/user.py,sha256=3yOjzB_9Dgj2nS-CMb3X3J3ATFisCUnG6crO_8QEB8I,118135
343
+ ansible/modules/unarchive.py,sha256=6szHhYTZo4IQoXNNaF43TZbUIVvsM0VgefroScs4wDM,44451
344
+ ansible/modules/uri.py,sha256=xzruu2NYOW0K2MAI0rBlSNA6OU4zNPav1m4wfAGH4OM,28428
345
+ ansible/modules/user.py,sha256=ACDk1KTJqnf1usB0LHavD2CMG3IUjVZKs7wEP61iGvs,117783
346
346
  ansible/modules/validate_argument_spec.py,sha256=wbFJ6zNUOcRBtmES7rYBqt_Cqior9CKVBNem5k6jvsk,3128
347
347
  ansible/modules/wait_for.py,sha256=VxgBrnnxjhfi5VkP6T_ElE5oVrr1rEJXuidQfwkHFz4,27373
348
348
  ansible/modules/wait_for_connection.py,sha256=EjxPKKwc1LNoKfQ7g0g-citLSZfhqNgpTeJTnO6_fB0,3377
@@ -351,7 +351,7 @@ ansible/modules/yum_repository.py,sha256=36uZERU09bfvTTsmr3Qx4p1TWZ8V4fQ64LLLOlx
351
351
  ansible/parsing/__init__.py,sha256=fPEa2N1Z4mjQHwps752TC-vhKA1CkCoEcAjh0YkfM5Y,826
352
352
  ansible/parsing/ajson.py,sha256=CZ3s2arKLvMWz5rzRIhzutRGSx73aS6fDg4C94HAHVA,1338
353
353
  ansible/parsing/dataloader.py,sha256=1T_DGy16iZoQzoIdv57HCGLv9AuPB_W2oJ_T1UlJQE0,20466
354
- ansible/parsing/mod_args.py,sha256=Igbiz-QAA1lLu8U3-fC27p4HphUZ1iHHKeH2xq1mZvc,13720
354
+ ansible/parsing/mod_args.py,sha256=LOnMmK5Twr99HVoRItYjUKAjFWF9Jp7xpzgXtnVT8yk,13892
355
355
  ansible/parsing/plugin_docs.py,sha256=JdK4OiFa7lSu9_-ztKQ7RPJs2FrmZejhE3YLESe-41Y,8714
356
356
  ansible/parsing/quoting.py,sha256=OsrBXkTzgn8PHH7VGA0kqnz6jBejdoQymDqsOYxTF-M,1141
357
357
  ansible/parsing/splitter.py,sha256=4rFm0Kr9QDv4VYw6uO2IaUzU52qAf7j8gsvVSDYRbAQ,11105
@@ -385,7 +385,7 @@ ansible/playbook/role_include.py,sha256=9IsYSolvScuzBREoDh2lg-S6mN7_WAF-usQMZvVX
385
385
  ansible/playbook/taggable.py,sha256=QpIS7BXQ9N48Vu1HW96OdSMyrQHckYtCgsVL9-mv-Ts,3249
386
386
  ansible/playbook/task.py,sha256=Vxn471kaQYgVckQ27MxZfNvs5luEo8HLUcXSlXmbU30,21490
387
387
  ansible/playbook/task_include.py,sha256=C3x_tTzbRLTMsXCGonzp3SAzE7VuslvcAlwN4WqF-KM,5318
388
- ansible/playbook/role/__init__.py,sha256=bz8lmY2Ah8dsae0nxcRAsfFg0uiXBzv3l5yAMHbLz-Y,29821
388
+ ansible/playbook/role/__init__.py,sha256=ZPASFccReB6DaJtZZ5UT_0IXtZjLTzdEQoP9ebiIom0,29781
389
389
  ansible/playbook/role/definition.py,sha256=MGvEmAsOUYj2geHD5H7JG4N5O3wCxQwmtlH7IpgZqfk,9634
390
390
  ansible/playbook/role/include.py,sha256=Vq5ywSkMeIAHYgEH0M9B-HOOTSq2AkyU5tksmHyKc9k,2426
391
391
  ansible/playbook/role/metadata.py,sha256=5rWZ3ET9-xUCxHL2371o8nRS2aYTn4Ni8fU5_T09Evg,5158
@@ -393,7 +393,7 @@ ansible/playbook/role/requirement.py,sha256=T_PljD0hgVstV325iALyCUKkAZxzLLlcQjpp
393
393
  ansible/plugins/__init__.py,sha256=OsNLvhmwNm7W9JFwLUmr3vAW5lby-Jp2wC2sDbZjzik,5371
394
394
  ansible/plugins/list.py,sha256=r_ai9G1ERwTigM2ZyhLtJK8BYRh4_hUNvAuqDlVS5ZI,8979
395
395
  ansible/plugins/loader.py,sha256=A_8sGZYgDLY-7fq4PjLC-dfcZrrdG5Xj290mTLy5htk,75723
396
- ansible/plugins/action/__init__.py,sha256=2objnMPfbxEC_2ahVxXU9sDZxO5cPflseK4HraGb5gY,68692
396
+ ansible/plugins/action/__init__.py,sha256=G6IVJe6hA6oJyOLN-0pCPc1A1GtRQ6WMBrqg-BflDdo,68697
397
397
  ansible/plugins/action/add_host.py,sha256=ZWrTsEVdAiOotHQL3Mb6FjzO8EzOsxy1MAg3sf7ndIE,3662
398
398
  ansible/plugins/action/assemble.py,sha256=EFWmRj9-0sur73__x2GosRavjLgwsjaamVSy0SavVvk,6590
399
399
  ansible/plugins/action/assert.py,sha256=r3mzC0-ZBj5qafDCK0uvew2fY4yGI7tvlffJ0s9YG_s,5156
@@ -403,7 +403,7 @@ ansible/plugins/action/copy.py,sha256=sglEtAq6DrxTLGZaE-0KWau2waXuV1rFTqlwOU98bF
403
403
  ansible/plugins/action/debug.py,sha256=wPkpx7oFGEUDXPxSRopJbER3xdArfs5Ifjvr5KOKvII,3525
404
404
  ansible/plugins/action/dnf.py,sha256=B97AXQGqWnlloqzubSt6caaBaoBr6Ho88WfKrX7SRUQ,3569
405
405
  ansible/plugins/action/fail.py,sha256=JEVU_Xoc9iuo2RjQUE5ZnoHZNilHh2eTC9OggnUS7nI,1510
406
- ansible/plugins/action/fetch.py,sha256=3FBQjdXeQnmMemQLTEqk7NSziMU75AILcKoSR-NtLts,9970
406
+ ansible/plugins/action/fetch.py,sha256=27ufzOz81oO8EzKZJvCGGJuPv7MwEBCR0LJ3uanuV9I,10249
407
407
  ansible/plugins/action/gather_facts.py,sha256=Ilj7MeE9O75S_6A6lvcy4pbFDSBMyAaDeGvVZ3Y1ql8,7914
408
408
  ansible/plugins/action/group_by.py,sha256=lj6Grr05Qq5vaMLuoS4slfKkwiBt3QUCJVfrwwRsDT4,1947
409
409
  ansible/plugins/action/include_vars.py,sha256=RmX44-HPLIzOYJaUxLIWU_7NdZfYFlHlW2KS9ak7aPo,11578
@@ -427,7 +427,7 @@ ansible/plugins/become/__init__.py,sha256=oCkeak7JFmS44bs8LlWn4F2s6a88kdLApytQcm
427
427
  ansible/plugins/become/runas.py,sha256=O-Hl6cE5qMxWZnT0Uo3g-8NKpNKJKL4MdMXf0JxOFEg,2617
428
428
  ansible/plugins/become/su.py,sha256=dyb8FT_zZMriEWIPqIZeeu3cWxgq8j6-Fs27x8exc8w,5379
429
429
  ansible/plugins/become/sudo.py,sha256=ZZnnT4J84hRZ9WNfmV9bX8RlJzNMf1hHW3tbF-ls6uw,4035
430
- ansible/plugins/cache/__init__.py,sha256=eUbG5eosFcxjzRMZbvulaF8zgl47RBwSGTJa0jekWEA,12243
430
+ ansible/plugins/cache/__init__.py,sha256=TfGsTIrum1edPcVV-lZEFPJpqNbatj3KgYuWkRc4G5g,12291
431
431
  ansible/plugins/cache/base.py,sha256=eGsvbtBYhCPlAsTFu2IFQHmZtMbXYwbhSMfGttexkzo,960
432
432
  ansible/plugins/cache/jsonfile.py,sha256=r3V3ipncC5UYCSOuPbTs45e3PfMh7dg86ct02MAe9po,1985
433
433
  ansible/plugins/cache/memory.py,sha256=AdCQG2qM-3cWiFwe8QBiGGT_h6cGTqOonYigxAp1E44,1271
@@ -441,9 +441,9 @@ ansible/plugins/cliconf/__init__.py,sha256=hjwVXkBPenYCSCF5-7HmylUFFO1L2itrvwpKX
441
441
  ansible/plugins/connection/__init__.py,sha256=87RA8bIaaS0LGZCZQpdJJEgAjDd2DPJgXebCMjYrTxE,18011
442
442
  ansible/plugins/connection/local.py,sha256=RFIZEyZjXQ_AcynPiYfmgZbHDNpgV6GiKb9qeXGxwoA,8437
443
443
  ansible/plugins/connection/paramiko_ssh.py,sha256=gMaVa1GqhymC7EHdtvp_rBN7MilHGDLYAgxs-l1_AAc,30111
444
- ansible/plugins/connection/psrp.py,sha256=MmhZ2aDpB4eT5BfHXguuNhO-7-9wDXNbxgg27-5wLuQ,36798
444
+ ansible/plugins/connection/psrp.py,sha256=di5R8Ijc0CHeCmWGXUdqf8kR2CaCFmmMzveS1VYKJY4,36806
445
445
  ansible/plugins/connection/ssh.py,sha256=ISeEuEPTxkgZEChz562155tDNk6A3d9kUnbvrzZITWU,64393
446
- ansible/plugins/connection/winrm.py,sha256=zj2k_u4lsmCFbnIN4hV1jGuEznSyyqfCgwgqUFGixKc,39915
446
+ ansible/plugins/connection/winrm.py,sha256=xk7IGA9rnhlg8gwiUI7FK19UFut_KzqKS6glRPJJFFA,40666
447
447
  ansible/plugins/doc_fragments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
448
448
  ansible/plugins/doc_fragments/action_common_attributes.py,sha256=ouV8CMIP0TkfkxN4p_pLbPvRSC5wu6w0Y6ScONOg-c4,2449
449
449
  ansible/plugins/doc_fragments/action_core.py,sha256=f4UV5QBnmtiecabxbXbTlxZtcPGQH2PNN9gNGVnYPh4,2908
@@ -572,7 +572,7 @@ ansible/plugins/lookup/subelements.py,sha256=48w16cC8VVAxFm8FLSUzOFzP_Ub06IhZl7t
572
572
  ansible/plugins/lookup/template.py,sha256=rF36kU4fKTuyM70p-YmeJ_9ZOfXrWpjZgT2zWUavZIc,7165
573
573
  ansible/plugins/lookup/together.py,sha256=WHPggvxSXhQEqN0mbYLzEixazGrDkS6UALLVEiS7K9U,2163
574
574
  ansible/plugins/lookup/unvault.py,sha256=x-IFOIWlp2b6evZKigKFaIgMmn4TlHC-GY7TYfZHaSk,2102
575
- ansible/plugins/lookup/url.py,sha256=PpqwbagdJZ8XHiZu6hN8Sf32OJ6tCaDm8R00tpvg7QM,9064
575
+ ansible/plugins/lookup/url.py,sha256=xfxjuL_MijSjqToyJFffrQOf7UA3sSRv3hfuCZsqPtU,9561
576
576
  ansible/plugins/lookup/varnames.py,sha256=-QmnjyNg1sHSyKH_DTqzPh0HS4FgpXmPl7dFIycDUWA,2383
577
577
  ansible/plugins/lookup/vars.py,sha256=3YJ6wGXkOa4Of_0ngL-2_ZMOG7lG_f0ozpkgFs57WIs,3477
578
578
  ansible/plugins/netconf/__init__.py,sha256=yNiWM9PZHi2h2jJ0oV4QD6GuUvz-60_rcqsfefZEz7k,17147
@@ -582,9 +582,9 @@ ansible/plugins/shell/powershell.py,sha256=y0cBJeaNplF8sqwu2YxhWcUHR7eeZAeEODBeD
582
582
  ansible/plugins/shell/sh.py,sha256=1nhiMv0_c8zu2MaDHvOCr--dG8b-iUVEPPnpMh_Hx8I,3952
583
583
  ansible/plugins/strategy/__init__.py,sha256=eS8JSyb3zFrTK8qm0-tK-bk8fNtG_tmbmUZ10bJsyZk,57101
584
584
  ansible/plugins/strategy/debug.py,sha256=GxUS0bSiaWInIK8zgB7rMREEqvgrZhVlFUzOCJtnjFo,1258
585
- ansible/plugins/strategy/free.py,sha256=OhUm6uahTmROd-KMJ14axrl9eV7WITK44IvLjNnh1T4,15895
585
+ ansible/plugins/strategy/free.py,sha256=BAz89LpU2_uP4mFizdG7Lt5GmxsDGOmR9bS_M4RKCQk,15897
586
586
  ansible/plugins/strategy/host_pinned.py,sha256=3-q5l-tpheMlU-BXGm6ZQNgHvQv5IMvOCDZBLibl1L4,1959
587
- ansible/plugins/strategy/linear.py,sha256=xmM78y2Bar1NMTPeDLjIUyEv14uNIf6Tztod82M3LHU,20413
587
+ ansible/plugins/strategy/linear.py,sha256=zATuGnW0u2JeqGXJUf689RZ77_KbrAiJNJJD2TM3j_M,20415
588
588
  ansible/plugins/terminal/__init__.py,sha256=Pgzb8SsOGE2irgrv4f--4rfTDNxDFURzToWOatDg8J4,4472
589
589
  ansible/plugins/test/__init__.py,sha256=6DY18LxzSdtO7-fDS6957bo61fg-xG3TDWvtFkhGYOQ,471
590
590
  ansible/plugins/test/abs.yml,sha256=lZA0XP1oBNg___Du6SqNOkDeQC9xIcZpROYV5XJG9bg,764
@@ -640,7 +640,7 @@ ansible/plugins/test/version.yml,sha256=2d55HZGIniPu53z6_bV4C26_1sqRAHJqCwesOU3m
640
640
  ansible/plugins/test/version_compare.yml,sha256=2d55HZGIniPu53z6_bV4C26_1sqRAHJqCwesOU3ma38,3283
641
641
  ansible/plugins/vars/__init__.py,sha256=gfNJZDMgLDlH3d0Uzw_rzgqLGZPJtwpeMxkcsDi2jTk,1384
642
642
  ansible/plugins/vars/host_group_vars.py,sha256=DVv-2ku5ea41iZUyjqOFutCqh2VF4lgDKa0fDVjRZpM,6336
643
- ansible/template/__init__.py,sha256=S6zoqHCJ717If79PSomoOZEm6aeAUJB-sWHAW9JB5cQ,41465
643
+ ansible/template/__init__.py,sha256=orkAzf7KwC-UawteDcj8oaGBmmz3kHcbKW3uaVs36g4,41474
644
644
  ansible/template/native_helpers.py,sha256=-2P4gTC_-3JcEFw4R9SmFrRNUkoWoSlOVLxaPLjCcjY,4417
645
645
  ansible/template/template.py,sha256=synOxn1MzR7aNcIUanEsrtasK-jFlzvyJdUcqBdidGw,1667
646
646
  ansible/template/vars.py,sha256=Wl-suFtu88AHRCcIqqR7-lLY_KTlXZTE6D4z_oDLwXM,2819
@@ -678,11 +678,11 @@ ansible/utils/collection_loader/_collection_meta.py,sha256=THmk42SU58welYL5C-dg3
678
678
  ansible/vars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
679
679
  ansible/vars/clean.py,sha256=TeNDx7skJFqR0K1ok_cQuvKDjzTrCc7u2qGWTNambQo,6083
680
680
  ansible/vars/fact_cache.py,sha256=4lxkYru1qucTDQ0aSmtc5UDWP-gm3edPmDSuTZ2GCmE,1956
681
- ansible/vars/hostvars.py,sha256=8Gs8lcVT6U8hJISEjKIyohIyaTrpnVWo5Tq8VMHDOL0,5134
681
+ ansible/vars/hostvars.py,sha256=px4HRxotkuXedT6pbLTa6TyptNwRp5ttzVUgBjm0LRI,4896
682
682
  ansible/vars/manager.py,sha256=lIfISTPyRcNfJVWJhhNof36Zmk6xSMUkf9sFxrzCzcI,38180
683
683
  ansible/vars/plugins.py,sha256=RsRU9fiLcJwPIAyTYnmVZglsiEOMCIgQskflavE-XnE,4546
684
684
  ansible/vars/reserved.py,sha256=FBD7n2dnA0CW4I0J1LtWwk2hQqvGW0KTRPcxaRtMKWo,2615
685
- ansible_core-2.16.5rc1.data/scripts/ansible-test,sha256=CYIYL99IxWdVTtDIj3avilIJXhGAmtjuKPPWNuLWuc8,1690
685
+ ansible_core-2.16.7rc1.data/scripts/ansible-test,sha256=CYIYL99IxWdVTtDIj3avilIJXhGAmtjuKPPWNuLWuc8,1690
686
686
  ansible_test/__init__.py,sha256=6e721yAyyyocRKzbCKtQXloAfFP7Aqv0L3zG70uh-4A,190
687
687
  ansible_test/_data/ansible.cfg,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
688
688
  ansible_test/_data/coveragerc,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -706,7 +706,7 @@ ansible_test/_data/pytest/config/default.ini,sha256=3f5D0MA9l2RafBBriLaG2eH3ePHP
706
706
  ansible_test/_data/pytest/config/legacy.ini,sha256=WBpVsIeHL2szv5oFznM2WXYizBgYhBrivpvQliYUKTw,85
707
707
  ansible_test/_data/requirements/ansible-test.txt,sha256=7lUJeoB76W4kmFa6P7G-cyJouIYrKWUtY-uIjXrEGkE,377
708
708
  ansible_test/_data/requirements/ansible.txt,sha256=SoGhVAYgDYWYKwMSH0g8WsCQczVft6Obb5ePPMQPRTU,838
709
- ansible_test/_data/requirements/constraints.txt,sha256=PiFo21efTtdKHwfhzmNIPA6B5H3_OUh_boakiWlWUDU,1327
709
+ ansible_test/_data/requirements/constraints.txt,sha256=vUOJauD7mv-0X_ZcDkUaHXY2joJxZCT0EfSAql4tSnU,1399
710
710
  ansible_test/_data/requirements/sanity.ansible-doc.in,sha256=9KRJJ-n37IMHpLJLv_VmFOhYF8Y3Vnk6eRyhwVKzC8A,108
711
711
  ansible_test/_data/requirements/sanity.ansible-doc.txt,sha256=cEdRsJvYL6u2C-dsZinArt_5cYHhwmFl5PReUuRPfcw,169
712
712
  ansible_test/_data/requirements/sanity.changelog.in,sha256=gWVsUch6Jxrq55MEutB-b9GB6Pp2PL-FqM84v-aI4Ng,78
@@ -764,7 +764,7 @@ ansible_test/_internal/locale_util.py,sha256=tjRbwKmgMQc1ysIhvP8yBhFcNA-2UCaWfQB
764
764
  ansible_test/_internal/metadata.py,sha256=c9ThXPUlgeKYhaTUmfCSS4INRNQ1JhN2KEOVaX3m1Gk,4791
765
765
  ansible_test/_internal/payload.py,sha256=1Pw05OEHvP3LMQnoLXch8631c94YMklWlpDn0CvQECw,8012
766
766
  ansible_test/_internal/provisioning.py,sha256=9Zl3xQqljx0MGDTp55Q4LZPWQ7Afj5K87cGsXzPGS5Y,7320
767
- ansible_test/_internal/pypi_proxy.py,sha256=C_AppiOKHtTfQPMYOSJQJyPB01K9UQ1-bUTOBcnO11E,6019
767
+ ansible_test/_internal/pypi_proxy.py,sha256=HyHZDMzVq4RoTczFhpBI0-TbUqQX7ttW0Ph6klCohYM,6203
768
768
  ansible_test/_internal/python_requirements.py,sha256=WgL1U-kw554JDxqi9xiD7mxoJAI5qHLiF_yqgfoKinc,20236
769
769
  ansible_test/_internal/ssh.py,sha256=2bS-DkcMJcBr3NExF2Y_htJVye_glKXir1NmLF05VR8,10662
770
770
  ansible_test/_internal/target.py,sha256=Whtb_n0jn4zbiMmX7je5jewgzsRczfXRm_ndYtjTSTQ,25320
@@ -860,7 +860,7 @@ ansible_test/_internal/commands/integration/cloud/scaleway.py,sha256=ZoScZMW5xP-
860
860
  ansible_test/_internal/commands/integration/cloud/vcenter.py,sha256=ynBTiQcs30ZAdbSljMwtW77ZonRziIRbrGzKlrIUqDM,2190
861
861
  ansible_test/_internal/commands/integration/cloud/vultr.py,sha256=TE43tKiAerXbKD9FXBrBVzeWNUB87qtR5twg_zDicHM,1488
862
862
  ansible_test/_internal/commands/sanity/__init__.py,sha256=-uOkky1PbfGYf-HVG-wS-SqRZMGITmhryHSD4MR20xo,50931
863
- ansible_test/_internal/commands/sanity/ansible_doc.py,sha256=EY2PbiIAXkJRTS-WbTIirLDGaCwWZRJSnUIpViylHJA,5734
863
+ ansible_test/_internal/commands/sanity/ansible_doc.py,sha256=kKgXCyLeRO5iCeneknpkECZnf2NxGoEbb5p--DzfCfk,5776
864
864
  ansible_test/_internal/commands/sanity/bin_symlinks.py,sha256=uDiaMM3lf9KLlGTlGT53zYjgj6Fo-G-_dhJgFWnLS-o,3072
865
865
  ansible_test/_internal/commands/sanity/compile.py,sha256=ZQwHB85a7N6utr038kLbDZwFlXGEJMkSI63YyoGcd-I,2539
866
866
  ansible_test/_internal/commands/sanity/ignores.py,sha256=9wpzc8eRKS4nAVWOeSgXju5j1tDXNFPMSlskrR-Pohs,2789
@@ -980,7 +980,7 @@ ansible_test/_util/target/pytest/plugins/ansible_pytest_collections.py,sha256=Hp
980
980
  ansible_test/_util/target/pytest/plugins/ansible_pytest_coverage.py,sha256=Nr52YbVP7BwI4u6mZZptZIYGAfmqzzytdbC98lTr5Ks,1599
981
981
  ansible_test/_util/target/sanity/compile/compile.py,sha256=X1WHH2iLT4K8kyYJKlr-6AL6EAzKisL_hYrjvGrHCZ8,1637
982
982
  ansible_test/_util/target/sanity/import/importer.py,sha256=LIcGIOyRa9UJ_HPClIknLAKZ6uIRJi81CQW-4KpRFeg,25773
983
- ansible_test/_util/target/setup/bootstrap.sh,sha256=HJyuaTaEwJeH55HGZEBbqDGYyq3_kfOqcFdLV6GVxgg,13501
983
+ ansible_test/_util/target/setup/bootstrap.sh,sha256=CNM6cKeFQoiWzlp6kYPv0yW1I5teijN01mGE1EeFxiU,13811
984
984
  ansible_test/_util/target/setup/check_systemd_cgroup_v1.sh,sha256=Aq0T62x_KLtkGaWzYqWjvhchTqYFflrTbQET3h6xrT0,395
985
985
  ansible_test/_util/target/setup/probe_cgroups.py,sha256=ygqTkZc_YDH6EkZqp95rk_xkqsYcy_9IslPHKZO2A-8,712
986
986
  ansible_test/_util/target/setup/quiet_pip.py,sha256=lJLE2g2ArvwjkYZj5yJbKML9PlS7s5FByiun6n5xb5Y,2939
@@ -1001,9 +1001,9 @@ ansible_test/config/cloud-config-vultr.ini.template,sha256=XLKHk3lg_8ReQMdWfZzhh
1001
1001
  ansible_test/config/config.yml,sha256=wb3knoBmZewG3GWOMnRHoVPQWW4vPixKLPMNS6vJmTc,2620
1002
1002
  ansible_test/config/inventory.networking.template,sha256=bFNSk8zNQOaZ_twaflrY0XZ9mLwUbRLuNT0BdIFwvn4,1335
1003
1003
  ansible_test/config/inventory.winrm.template,sha256=1QU8W-GFLnYEw8yY9bVIvUAVvJYPM3hyoijf6-M7T00,1098
1004
- ansible_core-2.16.5rc1.dist-info/COPYING,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
1005
- ansible_core-2.16.5rc1.dist-info/METADATA,sha256=veTXHqDjzH8eLX8OjUFgtX_rwSmy5qy6KSGPoLT6drQ,6908
1006
- ansible_core-2.16.5rc1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
1007
- ansible_core-2.16.5rc1.dist-info/entry_points.txt,sha256=0mpmsrIhODChxKl3eS-NcVQCaMetBn8KdPLtVxQgR64,453
1008
- ansible_core-2.16.5rc1.dist-info/top_level.txt,sha256=IFbRLjAvih1DYzJWg3_F6t4sCzEMxRO7TOMNs6GkYHo,21
1009
- ansible_core-2.16.5rc1.dist-info/RECORD,,
1004
+ ansible_core-2.16.7rc1.dist-info/COPYING,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
1005
+ ansible_core-2.16.7rc1.dist-info/METADATA,sha256=sNOawkUpPNp6AU0NVZs6XpblouWsR54HWzWahu4NXLI,6908
1006
+ ansible_core-2.16.7rc1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
1007
+ ansible_core-2.16.7rc1.dist-info/entry_points.txt,sha256=0mpmsrIhODChxKl3eS-NcVQCaMetBn8KdPLtVxQgR64,453
1008
+ ansible_core-2.16.7rc1.dist-info/top_level.txt,sha256=IFbRLjAvih1DYzJWg3_F6t4sCzEMxRO7TOMNs6GkYHo,21
1009
+ ansible_core-2.16.7rc1.dist-info/RECORD,,
@@ -1,6 +1,7 @@
1
1
  # do not add a cryptography or pyopenssl constraint to this file, they require special handling, see get_cryptography_requirements in python_requirements.py
2
2
  # do not add a coverage constraint to this file, it is handled internally by ansible-test
3
3
  packaging < 21.0 ; python_version < '3.6' # packaging 21.0 requires Python 3.6 or newer
4
+ pypsrp < 1.0.0 # in case the next major version is too big of a change
4
5
  pywinrm >= 0.3.0 ; python_version < '3.11' # message encryption support
5
6
  pywinrm >= 0.4.3 ; python_version >= '3.11' # support for Python 3.11
6
7
  pytest < 5.0.0, >= 4.5.0 ; python_version == '2.7' # pytest 5.0.0 and later will no longer support python 2.7
@@ -79,7 +79,7 @@ class AnsibleDocTest(SanitySingleVersion):
79
79
  plugin_parts = os.path.relpath(plugin_file_path, plugin_path).split(os.path.sep)
80
80
  plugin_name = os.path.splitext(plugin_parts[-1])[0]
81
81
 
82
- if plugin_name.startswith('_'):
82
+ if plugin_name.startswith('_') and not data_context().content.collection:
83
83
  plugin_name = plugin_name[1:]
84
84
 
85
85
  plugin_fqcn = data_context().content.prefix + '.'.join(plugin_parts[:-1] + [plugin_name])
@@ -14,6 +14,7 @@ from .config import (
14
14
 
15
15
  from .host_configs import (
16
16
  PosixConfig,
17
+ DockerConfig,
17
18
  )
18
19
 
19
20
  from .util import (
@@ -55,8 +56,14 @@ def run_pypi_proxy(args: EnvironmentConfig, targets_use_pypi: bool) -> None:
55
56
  return # user has overridden the proxy endpoint, there is nothing to provision
56
57
 
57
58
  versions_needing_proxy: tuple[str, ...] = tuple() # preserved for future use, no versions currently require this
59
+ containers_needing_proxy: set[str] = {'centos7'}
58
60
  posix_targets = [target for target in args.targets if isinstance(target, PosixConfig)]
59
- need_proxy = targets_use_pypi and any(target.python.version in versions_needing_proxy for target in posix_targets)
61
+ need_proxy = targets_use_pypi and any(
62
+ target.python.version in versions_needing_proxy or
63
+ (isinstance(target, DockerConfig) and target.name in containers_needing_proxy)
64
+ for target in posix_targets
65
+ )
66
+
60
67
  use_proxy = args.pypi_proxy or need_proxy
61
68
 
62
69
  if not use_proxy: