ansible-core 2.17.12__py3-none-any.whl → 2.17.13__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.

@@ -17,6 +17,6 @@
17
17
 
18
18
  from __future__ import annotations
19
19
 
20
- __version__ = '2.17.12'
20
+ __version__ = '2.17.13'
21
21
  __author__ = 'Ansible, Inc.'
22
22
  __codename__ = "Gallows Pole"
ansible/modules/user.py CHANGED
@@ -461,6 +461,7 @@ uid:
461
461
 
462
462
 
463
463
  import ctypes.util
464
+ from datetime import datetime
464
465
  import grp
465
466
  import calendar
466
467
  import os
@@ -1226,11 +1227,16 @@ class User(object):
1226
1227
  env=env)
1227
1228
  out_buffer = b''
1228
1229
  err_buffer = b''
1230
+ first_prompt = b'Enter passphrase'
1231
+ second_prompt = b'Enter same passphrase again'
1232
+ prompt = first_prompt
1233
+ start = datetime.now()
1234
+ timeout = 900
1229
1235
  while p.poll() is None:
1230
1236
  r_list = select.select([master_out_fd, master_err_fd], [], [], 1)[0]
1231
- first_prompt = b'Enter passphrase (empty for no passphrase):'
1232
- second_prompt = b'Enter same passphrase again'
1233
- prompt = first_prompt
1237
+ now = datetime.now()
1238
+ if (now - start).seconds > timeout:
1239
+ return (1, '', f'Timeout after {timeout} while reading passphrase for SSH key')
1234
1240
  for fd in r_list:
1235
1241
  if fd == master_out_fd:
1236
1242
  chunk = os.read(master_out_fd, 10240)
ansible/plugins/list.py CHANGED
@@ -42,7 +42,7 @@ def get_composite_name(collection, name, path, depth):
42
42
  return '.'.join(composite)
43
43
 
44
44
 
45
- def _list_plugins_from_paths(ptype, dirs, collection, depth=0):
45
+ def _list_plugins_from_paths(ptype, dirs, collection, depth=0, docs=False):
46
46
  # TODO: update to use importlib.resources
47
47
 
48
48
  plugins = {}
@@ -77,14 +77,15 @@ def _list_plugins_from_paths(ptype, dirs, collection, depth=0):
77
77
  continue
78
78
 
79
79
  # actually recurse dirs
80
- plugins.update(_list_plugins_from_paths(ptype, [to_native(full_path)], collection, depth=depth + 1))
80
+ plugins.update(_list_plugins_from_paths(ptype, [to_native(full_path)], collection, depth=depth + 1, docs=docs))
81
81
  else:
82
82
  if any([
83
83
  plugin in C.IGNORE_FILES, # general files to ignore
84
84
  to_native(b_ext) in C.REJECT_EXTS, # general extensions to ignore
85
- b_ext in (b'.yml', b'.yaml', b'.json'), # ignore docs files TODO: constant!
85
+ b_ext in (b'.yml', b'.yaml', b'.json'), # ignore docs files
86
86
  plugin in IGNORE.get(bkey, ()), # plugin in reject list
87
87
  os.path.islink(full_path), # skip aliases, author should document in 'aliaes' field
88
+ not docs and b_ext in (b''), # ignore no ext when looking for docs files
88
89
  ]):
89
90
  continue
90
91
 
@@ -147,7 +148,7 @@ def list_collection_plugins(ptype, collections, search_paths=None):
147
148
 
148
149
  # raise Exception('bad acr for %s, %s' % (collection, ptype))
149
150
 
150
- plugins.update(_list_plugins_from_paths(ptype, dirs, collection))
151
+ plugins.update(_list_plugins_from_paths(ptype, dirs, collection, docs=True))
151
152
 
152
153
  # return plugin and it's class object, None for those not verifiable or failing
153
154
  if ptype in ('module',):
ansible/release.py CHANGED
@@ -17,6 +17,6 @@
17
17
 
18
18
  from __future__ import annotations
19
19
 
20
- __version__ = '2.17.12'
20
+ __version__ = '2.17.13'
21
21
  __author__ = 'Ansible, Inc.'
22
22
  __codename__ = "Gallows Pole"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ansible-core
3
- Version: 2.17.12
3
+ Version: 2.17.13
4
4
  Summary: Radically simple IT automation
5
5
  Home-page: https://ansible.com/
6
6
  Author: Ansible, Inc.
@@ -3,7 +3,7 @@ ansible/__main__.py,sha256=EnLcULXNtSXkuJ8igEHPPLBTZKAwqXv4PvMEhvzp2Oo,1430
3
3
  ansible/constants.py,sha256=vRwEcoynqtuKDPKsxKUY94XzrTSV3J0y1slb907DioU,9140
4
4
  ansible/context.py,sha256=oKYyfjfWpy8vDeProtqfnqSmuij_t75_5e5t0U_hQ1g,1933
5
5
  ansible/keyword_desc.yml,sha256=vE9joFgSeHR4Djl7Bd-HHVCrGByRCrTUmWYZ8LKPZKk,7412
6
- ansible/release.py,sha256=CB7FasQ1NjpdgMHzrHGU-5Ks5Q_gW7XmCGCgjT3ZS4M,833
6
+ ansible/release.py,sha256=AJQgK9JG4sszl2hvsbozIbRfcuCetU-kDVoKP8SYArU,833
7
7
  ansible/_vendor/__init__.py,sha256=2QBeBwT7uG7M3Aw-pIdCpt6XPtHMCpbEKfACYKA7xIg,2033
8
8
  ansible/cli/__init__.py,sha256=fzgR82NIGBH3GujIMehhAaP4KYszn4uztuCaFYRUpGk,28718
9
9
  ansible/cli/adhoc.py,sha256=quJ9WzRzf3dz_dtDGmahNMffqyNVy1jzQCMo21YL5Qg,8194
@@ -140,7 +140,7 @@ ansible/inventory/host.py,sha256=PDb5OTplhfpUIvdHiP2BckUOB1gUl302N-3sW0_sTyg,503
140
140
  ansible/inventory/manager.py,sha256=45mHgZTAkQ3IjAtrgsNzJXvynC-HIEor-JJE-V3xXN4,29454
141
141
  ansible/module_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
142
  ansible/module_utils/_text.py,sha256=VkWgAnSNVCbTQqZgllUObBFsH3uM4EUW5srl1UR9t1g,544
143
- ansible/module_utils/ansible_release.py,sha256=CB7FasQ1NjpdgMHzrHGU-5Ks5Q_gW7XmCGCgjT3ZS4M,833
143
+ ansible/module_utils/ansible_release.py,sha256=AJQgK9JG4sszl2hvsbozIbRfcuCetU-kDVoKP8SYArU,833
144
144
  ansible/module_utils/api.py,sha256=DWIuLW5gDWuyyDHLLgGnub42Qa8kagDdkf1xDeLAFl4,5784
145
145
  ansible/module_utils/basic.py,sha256=UcDamm_6bkL3HXxKvQcSUlzDOHkIlvd8AYGuqJNmZeI,86113
146
146
  ansible/module_utils/connection.py,sha256=q_BdUaST6E44ltHsWPOFOheXK9vKmzaJvP-eQOrOrmE,8394
@@ -340,7 +340,7 @@ ansible/modules/tempfile.py,sha256=lA9e8lyFXf9J5ud0R6Jkt8sIFyRcOwzhc9Jz-5_HOZQ,3
340
340
  ansible/modules/template.py,sha256=D1sm36GB_mEimH0CfWq1cJ4w1eRvpcsHwZ-ufVzC_Gs,4537
341
341
  ansible/modules/unarchive.py,sha256=hlRAn2Ma36rmeQ4-OldGLPnHu3w8rlxlvLovQ2pYg5c,44880
342
342
  ansible/modules/uri.py,sha256=WgJA04YvgKTpQsMJFWAg9ITbj8cpIYwZD_tPlD_hcz4,28203
343
- ansible/modules/user.py,sha256=WXKZLfqFzs-CRzz3HKU2BSWosU_1rb3gAaMtbrO9P8o,118750
343
+ ansible/modules/user.py,sha256=Z-xMH_KSB3f2SInP6wy3C7yeDkcs5GfeNvEFbOi_of0,119011
344
344
  ansible/modules/validate_argument_spec.py,sha256=epLh4EUaoDLvhdVszRM68Q2QdicK-3jxhMA530dQaIE,3044
345
345
  ansible/modules/wait_for.py,sha256=rsx_PR73-BRImLNErVUM1o9wRdPlXkGu5y6FhJ8wLcY,27355
346
346
  ansible/modules/wait_for_connection.py,sha256=lHgsuyw3oel1pqXlLCls7KSF1PJaSU0RKGGE6ewbQQY,3326
@@ -388,7 +388,7 @@ ansible/playbook/role/include.py,sha256=9e4IvnD3JXqJUV-hB7riGgq0SjrqQGQHDg-cuJ1v
388
388
  ansible/playbook/role/metadata.py,sha256=HUuR5wCKAw-6urkAR4DKxUeOVsqFflSDHjZuWdBCmxo,5074
389
389
  ansible/playbook/role/requirement.py,sha256=CNgLa0J6zZk2YQ_aeALnjQvehkkFXhrK8LQQZs7Ztzc,4173
390
390
  ansible/plugins/__init__.py,sha256=y4dYcAW6qvj2eaFQKxsJc2J5TXPPiXzXpVznk--Z0n0,5725
391
- ansible/plugins/list.py,sha256=c2wWNt1LMQj9URWS4JAJVlyzJqAj3CxUrauozN75crM,8919
391
+ ansible/plugins/list.py,sha256=GWo9sm_uKqu_LiBMfbHIOmmFYnXDYN05uckZcPJbCow,9054
392
392
  ansible/plugins/loader.py,sha256=BMUcCe2CltI95l3q56bEz_EjvaKLWB9XxthRCORFFJ0,75837
393
393
  ansible/plugins/action/__init__.py,sha256=_APvyMyF7A0hfMgwe4VZggQEerCfC14dRe9aLr3opuc,69216
394
394
  ansible/plugins/action/add_host.py,sha256=GtwF4uEDrjcFluIi7ql7AkatYOboJGIp4sH10cqPPHo,3579
@@ -678,14 +678,14 @@ ansible/vars/hostvars.py,sha256=o11xrzDVYn23renGbb3lx3R-nH9qOjLFju5IYJanDxg,5324
678
678
  ansible/vars/manager.py,sha256=Yuo51lu4UVfzxMS63zYtZMcI8iFYgLXtg0p8fnq3Y7E,38871
679
679
  ansible/vars/plugins.py,sha256=RsRU9fiLcJwPIAyTYnmVZglsiEOMCIgQskflavE-XnE,4546
680
680
  ansible/vars/reserved.py,sha256=Tsc4m2UwVce3dOvSWrjT2wB3lpNJtUyNZn45zNhsW0I,2869
681
- ansible_core-2.17.12.data/scripts/ansible-test,sha256=dyY2HtRZotRQO3b89HGXY_KnJgBvgsm4eLIe4B2LUoA,1637
682
- ansible_core-2.17.12.dist-info/licenses/COPYING,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
681
+ ansible_core-2.17.13.data/scripts/ansible-test,sha256=dyY2HtRZotRQO3b89HGXY_KnJgBvgsm4eLIe4B2LUoA,1637
682
+ ansible_core-2.17.13.dist-info/licenses/COPYING,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
683
683
  ansible_test/__init__.py,sha256=20VPOj11c6Ut1Av9RaurgwJvFhMqkWG3vAvcCbecNKw,66
684
684
  ansible_test/_data/ansible.cfg,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
685
685
  ansible_test/_data/coveragerc,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
686
686
  ansible_test/_data/completion/docker.txt,sha256=ddsWorTETn1pF9n5coT-tVRC1Hizf9vp6_q0t28S3I0,642
687
687
  ansible_test/_data/completion/network.txt,sha256=BxVN0UxlVkRUrPi9MBArQOe6nR8exaow0oCAznUdfKQ,100
688
- ansible_test/_data/completion/remote.txt,sha256=MMKIIRiDLGiv_ypAwvOPtG5ByzcQQ-bNLwItQpzj5U8,859
688
+ ansible_test/_data/completion/remote.txt,sha256=cEpnoSjuxrIk8rgxRninhOjtWrYJ3UergVZA29Xibfk,918
689
689
  ansible_test/_data/completion/windows.txt,sha256=LunFLE7xMeoS9TVDuE58nUBVzsz-Wh-9wfL80mGiUmo,147
690
690
  ansible_test/_data/playbooks/posix_coverage_setup.yml,sha256=PgQNVzVTsNmfnu0sT2SAYiWtkMSOppfmh0oVmAsb7TQ,594
691
691
  ansible_test/_data/playbooks/posix_coverage_teardown.yml,sha256=xHci5QllwJymFtig-hsOXm-Wdrxz063JH14aIyRXhyc,212
@@ -778,7 +778,7 @@ ansible_test/_internal/classification/__init__.py,sha256=ZhYq3YHtd5iO8yFWcnWqwg_
778
778
  ansible_test/_internal/classification/common.py,sha256=jd5VLRegcOX-GNTZqN_7PBzwKF6akFQYsPEltfynGtU,894
779
779
  ansible_test/_internal/classification/csharp.py,sha256=3QpVZjamTTG7h86oeVm7d4UMbyojPbBALHVqCpxS1ic,3241
780
780
  ansible_test/_internal/classification/powershell.py,sha256=i8t8LxG_-wDPpz1VlnvqAPpRGgVJsuA_xglMtCpibCc,3053
781
- ansible_test/_internal/classification/python.py,sha256=pltDeMQEDbtjyG15vAizCvygU8MHrPcqWSobU6z_8YY,13532
781
+ ansible_test/_internal/classification/python.py,sha256=0jWx8x6_UirsPIdCqPiMZTBS8-DrIEsHHsX57l69q8I,13885
782
782
  ansible_test/_internal/cli/__init__.py,sha256=kTB7TfN12k_VJGMXEuOSlu3huruIUTb8UIFkaFyMr_I,1427
783
783
  ansible_test/_internal/cli/actions.py,sha256=D3z2FdpJC1dpQR9Vu1662wW28_iqPpWeAC3rizzjVAA,3366
784
784
  ansible_test/_internal/cli/compat.py,sha256=U0JGicJeKB7eA0RqX9P_P_P9CZ860u-1EjPtGKXCaqc,23101
@@ -959,7 +959,7 @@ ansible_test/_util/target/pytest/plugins/ansible_pytest_collections.py,sha256=vn
959
959
  ansible_test/_util/target/pytest/plugins/ansible_pytest_coverage.py,sha256=RAEMJ4N88UhwlCcD3gRG78ERb12uW2FMYI4j1tOiEhU,1546
960
960
  ansible_test/_util/target/sanity/compile/compile.py,sha256=iTRgiZHNO8DwjSqHBw8gPBbFtWnr-Zbd_ybymeazdtA,1302
961
961
  ansible_test/_util/target/sanity/import/importer.py,sha256=BLQN6NmdaMgbI6mu_AdkL4AeD5LxYUi-JXEBGJTuhnU,25148
962
- ansible_test/_util/target/setup/bootstrap.sh,sha256=dTlUM7XFYllassjgBorBoX4AwtVKP6-wx9m-D2X2SMI,12594
962
+ ansible_test/_util/target/setup/bootstrap.sh,sha256=X95GFGRuW9cPBMUgZDH4L_0QMWnrOoqBjCRl0L3rt3M,13299
963
963
  ansible_test/_util/target/setup/check_systemd_cgroup_v1.sh,sha256=Aq0T62x_KLtkGaWzYqWjvhchTqYFflrTbQET3h6xrT0,395
964
964
  ansible_test/_util/target/setup/probe_cgroups.py,sha256=wUHvjW_GXpcyMGw308w26T09cOtBW5EU7i9WagGDQ7o,659
965
965
  ansible_test/_util/target/setup/quiet_pip.py,sha256=d3bvh9k2XI_z8-vb3ZoI4lwL8LaFkwvjJE7PpApBlcw,1979
@@ -980,8 +980,8 @@ ansible_test/config/cloud-config-vultr.ini.template,sha256=XLKHk3lg_8ReQMdWfZzhh
980
980
  ansible_test/config/config.yml,sha256=wb3knoBmZewG3GWOMnRHoVPQWW4vPixKLPMNS6vJmTc,2620
981
981
  ansible_test/config/inventory.networking.template,sha256=bFNSk8zNQOaZ_twaflrY0XZ9mLwUbRLuNT0BdIFwvn4,1335
982
982
  ansible_test/config/inventory.winrm.template,sha256=1QU8W-GFLnYEw8yY9bVIvUAVvJYPM3hyoijf6-M7T00,1098
983
- ansible_core-2.17.12.dist-info/METADATA,sha256=a5uZZqErblnrVCaljqGdHtUVYPkn9V9IdEAoxMbkC08,6988
984
- ansible_core-2.17.12.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
985
- ansible_core-2.17.12.dist-info/entry_points.txt,sha256=0mpmsrIhODChxKl3eS-NcVQCaMetBn8KdPLtVxQgR64,453
986
- ansible_core-2.17.12.dist-info/top_level.txt,sha256=IFbRLjAvih1DYzJWg3_F6t4sCzEMxRO7TOMNs6GkYHo,21
987
- ansible_core-2.17.12.dist-info/RECORD,,
983
+ ansible_core-2.17.13.dist-info/METADATA,sha256=IcOgOtSOlnFOI3Kz7y3hD-VJR0c-_DkVVqdXZcgOUSQ,6988
984
+ ansible_core-2.17.13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
985
+ ansible_core-2.17.13.dist-info/entry_points.txt,sha256=0mpmsrIhODChxKl3eS-NcVQCaMetBn8KdPLtVxQgR64,453
986
+ ansible_core-2.17.13.dist-info/top_level.txt,sha256=IFbRLjAvih1DYzJWg3_F6t4sCzEMxRO7TOMNs6GkYHo,21
987
+ ansible_core-2.17.13.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.7.1)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -8,6 +8,7 @@ freebsd python_dir=/usr/local/bin become=su_sudo provider=aws arch=x86_64
8
8
  macos/14.3 python=3.11 python_dir=/usr/local/bin become=sudo provider=parallels arch=x86_64
9
9
  macos python_dir=/usr/local/bin become=sudo provider=parallels arch=x86_64
10
10
  rhel/9.3 python=3.9,3.11 become=sudo provider=aws arch=x86_64
11
+ rhel/10.0 python=3.12 become=sudo provider=aws arch=x86_64
11
12
  rhel become=sudo provider=aws arch=x86_64
12
13
  ubuntu/22.04 python=3.10 become=sudo provider=aws arch=x86_64
13
14
  ubuntu become=sudo provider=aws arch=x86_64
@@ -220,6 +220,12 @@ def relative_to_absolute(name: str, level: int, module: str, path: str, lineno:
220
220
  else:
221
221
  parts = module.split('.')
222
222
 
223
+ if path.endswith('/__init__.py'):
224
+ # Ensure the correct relative module is calculated for both not_init.py and __init__.py:
225
+ # a/b/not_init.py -> a.b.not_init # used as-is
226
+ # a/b/__init__.py -> a.b # needs "__init__" part appended to ensure relative imports work
227
+ parts.append('__init__')
228
+
223
229
  if level >= len(parts):
224
230
  display.warning('Cannot resolve relative import "%s%s" above module "%s" at %s:%d' % ('.' * level, name, module, path, lineno))
225
231
  absolute_name = 'relative.abovelevel'
@@ -299,10 +299,41 @@ bootstrap_remote_rhel_9()
299
299
  done
300
300
  }
301
301
 
302
+ bootstrap_remote_rhel_10()
303
+ {
304
+ py_pkg_prefix="python3"
305
+
306
+ packages="
307
+ gcc
308
+ ${py_pkg_prefix}-devel
309
+ ${py_pkg_prefix}-pip
310
+ "
311
+
312
+ if [ "${controller}" ]; then
313
+ packages="
314
+ ${packages}
315
+ ${py_pkg_prefix}-cryptography
316
+ ${py_pkg_prefix}-jinja2
317
+ ${py_pkg_prefix}-packaging
318
+ ${py_pkg_prefix}-pyyaml
319
+ ${py_pkg_prefix}-resolvelib
320
+ "
321
+ fi
322
+
323
+ while true; do
324
+ # shellcheck disable=SC2086
325
+ dnf install -q -y ${packages} \
326
+ && break
327
+ echo "Failed to install packages. Sleeping before trying again..."
328
+ sleep 10
329
+ done
330
+ }
331
+
302
332
  bootstrap_remote_rhel()
303
333
  {
304
334
  case "${platform_version}" in
305
335
  9.*) bootstrap_remote_rhel_9 ;;
336
+ 10.*) bootstrap_remote_rhel_10 ;;
306
337
  esac
307
338
  }
308
339