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

ansible/cli/doc.py CHANGED
@@ -1158,12 +1158,16 @@ class DocCLI(CLI, RoleMixin):
1158
1158
  return 'version %s' % (version_added, )
1159
1159
 
1160
1160
  @staticmethod
1161
- def warp_fill(text, limit, initial_indent='', subsequent_indent='', **kwargs):
1161
+ def warp_fill(text, limit, initial_indent='', subsequent_indent='', initial_extra=0, **kwargs):
1162
1162
  result = []
1163
1163
  for paragraph in text.split('\n\n'):
1164
- result.append(textwrap.fill(paragraph, limit, initial_indent=initial_indent, subsequent_indent=subsequent_indent,
1165
- break_on_hyphens=False, break_long_words=False, drop_whitespace=True, **kwargs))
1164
+ wrapped = textwrap.fill(paragraph, limit, initial_indent=initial_indent + ' ' * initial_extra, subsequent_indent=subsequent_indent,
1165
+ break_on_hyphens=False, break_long_words=False, drop_whitespace=True, **kwargs)
1166
+ if initial_extra and wrapped.startswith(' ' * initial_extra):
1167
+ wrapped = wrapped[initial_extra:]
1168
+ result.append(wrapped)
1166
1169
  initial_indent = subsequent_indent
1170
+ initial_extra = 0
1167
1171
  return '\n'.join(result)
1168
1172
 
1169
1173
  @staticmethod
@@ -1195,20 +1199,23 @@ class DocCLI(CLI, RoleMixin):
1195
1199
  text.append('')
1196
1200
 
1197
1201
  # TODO: push this to top of for and sort by size, create indent on largest key?
1198
- inline_indent = base_indent + ' ' * max((len(opt_indent) - len(o)) - len(base_indent), 2)
1199
- sub_indent = inline_indent + ' ' * (len(o) + 3)
1202
+ inline_indent = ' ' * max((len(opt_indent) - len(o)) - len(base_indent), 2)
1203
+ extra_indent = base_indent + ' ' * (len(o) + 3)
1204
+ sub_indent = inline_indent + extra_indent
1200
1205
  if is_sequence(opt['description']):
1201
1206
  for entry_idx, entry in enumerate(opt['description'], 1):
1202
1207
  if not isinstance(entry, string_types):
1203
1208
  raise AnsibleError("Expected string in description of %s at index %s, got %s" % (o, entry_idx, type(entry)))
1204
1209
  if entry_idx == 1:
1205
- text.append(key + DocCLI.warp_fill(DocCLI.tty_ify(entry), limit, initial_indent=inline_indent, subsequent_indent=sub_indent))
1210
+ text.append(key + DocCLI.warp_fill(DocCLI.tty_ify(entry), limit,
1211
+ initial_indent=inline_indent, subsequent_indent=sub_indent, initial_extra=len(extra_indent)))
1206
1212
  else:
1207
1213
  text.append(DocCLI.warp_fill(DocCLI.tty_ify(entry), limit, initial_indent=sub_indent, subsequent_indent=sub_indent))
1208
1214
  else:
1209
1215
  if not isinstance(opt['description'], string_types):
1210
1216
  raise AnsibleError("Expected string in description of %s, got %s" % (o, type(opt['description'])))
1211
- text.append(key + DocCLI.warp_fill(DocCLI.tty_ify(opt['description']), limit, initial_indent=inline_indent, subsequent_indent=sub_indent))
1217
+ text.append(key + DocCLI.warp_fill(DocCLI.tty_ify(opt['description']), limit,
1218
+ initial_indent=inline_indent, subsequent_indent=sub_indent, initial_extra=len(extra_indent)))
1212
1219
  del opt['description']
1213
1220
 
1214
1221
  suboptions = []
@@ -17,6 +17,6 @@
17
17
 
18
18
  from __future__ import annotations
19
19
 
20
- __version__ = '2.17.11rc1'
20
+ __version__ = '2.17.12'
21
21
  __author__ = 'Ansible, Inc.'
22
22
  __codename__ = "Gallows Pole"
@@ -634,12 +634,12 @@ class ActionBase(ABC):
634
634
  # done. Make the files +x if we're asked to, and return.
635
635
  if not self._is_become_unprivileged():
636
636
  if execute:
637
- # Can't depend on the file being transferred with execute permissions.
637
+ # Can't depend on the file being transferred with required permissions.
638
638
  # Only need user perms because no become was used here
639
- res = self._remote_chmod(remote_paths, 'u+x')
639
+ res = self._remote_chmod(remote_paths, 'u+rwx')
640
640
  if res['rc'] != 0:
641
641
  raise AnsibleError(
642
- 'Failed to set execute bit on remote files '
642
+ 'Failed to set permissions on remote files '
643
643
  '(rc: {0}, err: {1})'.format(
644
644
  res['rc'],
645
645
  to_native(res['stderr'])))
@@ -680,10 +680,10 @@ class ActionBase(ABC):
680
680
  return remote_paths
681
681
 
682
682
  # Step 3b: Set execute if we need to. We do this before anything else
683
- # because some of the methods below might work but not let us set +x
684
- # as part of them.
683
+ # because some of the methods below might work but not let us set
684
+ # permissions as part of them.
685
685
  if execute:
686
- res = self._remote_chmod(remote_paths, 'u+x')
686
+ res = self._remote_chmod(remote_paths, 'u+rwx')
687
687
  if res['rc'] != 0:
688
688
  raise AnsibleError(
689
689
  'Failed to set file mode or acl on remote temporary files '
@@ -150,11 +150,23 @@ class ActionModule(ActionBase):
150
150
  # like become and environment args
151
151
  if getattr(self._connection._shell, "_IS_WINDOWS", False):
152
152
  # FUTURE: use a more public method to get the exec payload
153
- pc = self._task
153
+ become = False
154
+ become_method = None
155
+ become_user = None
156
+ become_pass = None
157
+ become_flags = None
158
+ if self._connection.become:
159
+ become_plugin = self._connection.become
160
+ become = True
161
+ become_method = become_plugin.name
162
+ become_user = become_plugin.get_option('become_user', playcontext=self._play_context)
163
+ become_pass = become_plugin.get_option('become_pass', playcontext=self._play_context)
164
+ become_flags = become_plugin.get_option('become_flags', playcontext=self._play_context)
165
+
154
166
  exec_data = ps_manifest._create_powershell_wrapper(
155
167
  to_bytes(script_cmd), source, {}, env_dict, self._task.async_val,
156
- pc.become, pc.become_method, pc.become_user,
157
- self._play_context.become_pass, pc.become_flags, "script", task_vars, None
168
+ become, become_method, become_user,
169
+ become_pass, become_flags, "script", task_vars, None
158
170
  )
159
171
  # build the necessary exec wrapper command
160
172
  # FUTURE: this still doesn't let script work on Windows with non-pipelined connections or
@@ -29,7 +29,7 @@ attributes:
29
29
  platforms: all
30
30
  until:
31
31
  description: Denotes if this action obeys until/retry/poll keywords
32
- support: full
32
+ support: none
33
33
  tags:
34
34
  description: Allows for the 'tags' keyword to control the selection of this action for execution
35
35
  support: full
ansible/release.py CHANGED
@@ -17,6 +17,6 @@
17
17
 
18
18
  from __future__ import annotations
19
19
 
20
- __version__ = '2.17.11rc1'
20
+ __version__ = '2.17.12'
21
21
  __author__ = 'Ansible, Inc.'
22
22
  __codename__ = "Gallows Pole"
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: ansible-core
3
- Version: 2.17.11rc1
3
+ Version: 2.17.12
4
4
  Summary: Radically simple IT automation
5
5
  Home-page: https://ansible.com/
6
6
  Author: Ansible, Inc.
@@ -36,6 +36,7 @@ Requires-Dist: PyYAML>=5.1
36
36
  Requires-Dist: cryptography
37
37
  Requires-Dist: packaging
38
38
  Requires-Dist: resolvelib<1.1.0,>=0.5.3
39
+ Dynamic: license-file
39
40
  Dynamic: requires-dist
40
41
 
41
42
  [![PyPI version](https://img.shields.io/pypi/v/ansible-core.svg)](https://pypi.org/project/ansible-core)
@@ -3,13 +3,13 @@ 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=mxVOxQG0mB6YnPbkOx1ihOKA0M7l-HBcdvbJcj27ebk,836
6
+ ansible/release.py,sha256=CB7FasQ1NjpdgMHzrHGU-5Ks5Q_gW7XmCGCgjT3ZS4M,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
10
10
  ansible/cli/config.py,sha256=54IEhW7pH5bpWB7u1abEh-4zjU2xqhB0nQi5dHGBZSY,22663
11
11
  ansible/cli/console.py,sha256=GOdaJfy0NtBIo4HUom4V4VrcrmLiBYcaSBZgbmAP9Ss,21987
12
- ansible/cli/doc.py,sha256=WM-LAlsVREtyppuYKQDF3E6EDnhtRsrGItQSxXz1rjI,69662
12
+ ansible/cli/doc.py,sha256=UgFfStYfkV0kx9uJ6izHmCP1NskjDJYxdWU21YpsyBc,70051
13
13
  ansible/cli/galaxy.py,sha256=lMiaP2WuBPMh2Ba3RTe4ZFK0HcPbUlsjInzrn5-G5NY,96867
14
14
  ansible/cli/inventory.py,sha256=bVT2FRQLSab_vDqw_vTMLpxzd2HYW1KDslsEb6gqFSI,16771
15
15
  ansible/cli/playbook.py,sha256=d0x_X0BXjxYjPJ-qc6JcyGxR6IzxdvnSjoT4tUtaGKQ,10865
@@ -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=mxVOxQG0mB6YnPbkOx1ihOKA0M7l-HBcdvbJcj27ebk,836
143
+ ansible/module_utils/ansible_release.py,sha256=CB7FasQ1NjpdgMHzrHGU-5Ks5Q_gW7XmCGCgjT3ZS4M,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
@@ -390,7 +390,7 @@ ansible/playbook/role/requirement.py,sha256=CNgLa0J6zZk2YQ_aeALnjQvehkkFXhrK8LQQ
390
390
  ansible/plugins/__init__.py,sha256=y4dYcAW6qvj2eaFQKxsJc2J5TXPPiXzXpVznk--Z0n0,5725
391
391
  ansible/plugins/list.py,sha256=c2wWNt1LMQj9URWS4JAJVlyzJqAj3CxUrauozN75crM,8919
392
392
  ansible/plugins/loader.py,sha256=BMUcCe2CltI95l3q56bEz_EjvaKLWB9XxthRCORFFJ0,75837
393
- ansible/plugins/action/__init__.py,sha256=H7bcYPA8io7m4d0zSYPZo65c2xRf44YoJNvkS2H1RnI,69202
393
+ ansible/plugins/action/__init__.py,sha256=_APvyMyF7A0hfMgwe4VZggQEerCfC14dRe9aLr3opuc,69216
394
394
  ansible/plugins/action/add_host.py,sha256=GtwF4uEDrjcFluIi7ql7AkatYOboJGIp4sH10cqPPHo,3579
395
395
  ansible/plugins/action/assemble.py,sha256=feMs3r2BAgQGQnpPmzJIGI7BSfOUl0eiyTVwln7TWrc,6529
396
396
  ansible/plugins/action/assert.py,sha256=mAPHyQ03Qb6nxIFuFiUHWGR56bTw0tA61fYX22_2OTI,5103
@@ -409,7 +409,7 @@ ansible/plugins/action/package.py,sha256=pEQ9Wg6Ik3-7nazy1pawlECdKa7-PjMC9xfRzqo
409
409
  ansible/plugins/action/pause.py,sha256=A_U8FhGeFdaOXUadEM-Mv42v9lwsjnxPOE7ExvEfl1s,5674
410
410
  ansible/plugins/action/raw.py,sha256=4kmANddcBwXFRhu8zIwBu392QE-p7WReO4DWD1YDnGU,1762
411
411
  ansible/plugins/action/reboot.py,sha256=z22cqfC1aVQECYYCp_yliVY_iqVHgWDwGyg4l_frq1M,22031
412
- ansible/plugins/action/script.py,sha256=zBmd8vGWiJpVO5Ffl_Gu0dWtlIOePOXpCm3n9P-A9jE,8482
412
+ ansible/plugins/action/script.py,sha256=-J1UN1EGdp_l18pXFAn5Oy_IzsmyMUE9hR8uyOqNcxs,9107
413
413
  ansible/plugins/action/service.py,sha256=1A-CTIQxIXHvmuz8Qv32rR0Vi827gAgxcd_hCGv_OOs,4563
414
414
  ansible/plugins/action/set_fact.py,sha256=4L_yud6DW3H3-sBnFKNdEb6Uhiy1IIJhuPe7yGqpADo,2798
415
415
  ansible/plugins/action/set_stats.py,sha256=lfW3u5zVLjwM48ZRLVbP-FhP36TmuWfe3V0mW_fl9a8,2819
@@ -442,7 +442,7 @@ ansible/plugins/connection/ssh.py,sha256=zj_pSJk1SY3TVAXnYR6LMwmZvU5LWkTflXy_3SG
442
442
  ansible/plugins/connection/winrm.py,sha256=x9FHPRkEyI_ua4PUPbYVb7_joyMJYEiGSv45jxxkNTQ,40599
443
443
  ansible/plugins/doc_fragments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
444
444
  ansible/plugins/doc_fragments/action_common_attributes.py,sha256=OaP2is2r9wm_f8gbLZhDDDwccg1joXMvJM72vbgcbIo,2442
445
- ansible/plugins/doc_fragments/action_core.py,sha256=32HMQCURkZBJPbeYLBfR0im9WvCuCASAfSVUDh3Q-tw,2855
445
+ ansible/plugins/doc_fragments/action_core.py,sha256=c4r1JEmNLdidtAVMGygRnIWcNMF_aPvRj8TPgXQq8vs,2855
446
446
  ansible/plugins/doc_fragments/backup.py,sha256=cVpVp1VIYG3Irz98qyOkkYttARfDyCMZ-fXGuH9ok5Q,507
447
447
  ansible/plugins/doc_fragments/connection_pipelining.py,sha256=Ivb4bo1ishw-3bgyFAYni1Lahcn81yfZQ-WWEau558Q,1178
448
448
  ansible/plugins/doc_fragments/constructed.py,sha256=SdvbmzC9I1a_Ktvw2O0V5Sy4DSN_ams2RLKP-s5Drmo,2957
@@ -678,13 +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.11rc1.data/scripts/ansible-test,sha256=dyY2HtRZotRQO3b89HGXY_KnJgBvgsm4eLIe4B2LUoA,1637
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
682
683
  ansible_test/__init__.py,sha256=20VPOj11c6Ut1Av9RaurgwJvFhMqkWG3vAvcCbecNKw,66
683
684
  ansible_test/_data/ansible.cfg,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
684
685
  ansible_test/_data/coveragerc,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
685
686
  ansible_test/_data/completion/docker.txt,sha256=ddsWorTETn1pF9n5coT-tVRC1Hizf9vp6_q0t28S3I0,642
686
687
  ansible_test/_data/completion/network.txt,sha256=BxVN0UxlVkRUrPi9MBArQOe6nR8exaow0oCAznUdfKQ,100
687
- ansible_test/_data/completion/remote.txt,sha256=ICrtjuMS-yKas-5Wg3Fvvxyo1XcqdIfyvCtRgbd60AM,859
688
+ ansible_test/_data/completion/remote.txt,sha256=MMKIIRiDLGiv_ypAwvOPtG5ByzcQQ-bNLwItQpzj5U8,859
688
689
  ansible_test/_data/completion/windows.txt,sha256=LunFLE7xMeoS9TVDuE58nUBVzsz-Wh-9wfL80mGiUmo,147
689
690
  ansible_test/_data/playbooks/posix_coverage_setup.yml,sha256=PgQNVzVTsNmfnu0sT2SAYiWtkMSOppfmh0oVmAsb7TQ,594
690
691
  ansible_test/_data/playbooks/posix_coverage_teardown.yml,sha256=xHci5QllwJymFtig-hsOXm-Wdrxz063JH14aIyRXhyc,212
@@ -745,7 +746,7 @@ ansible_test/_internal/coverage_util.py,sha256=p8zcoN6DyyNcLWHzAOtGMeN_6BHTCD1jR
745
746
  ansible_test/_internal/data.py,sha256=OFDpRa47yqBqQO1aSvTZVQQpScHvBHsr861586MQEUI,11184
746
747
  ansible_test/_internal/delegation.py,sha256=D8hluDQf_YN3DtVG_8HW0iumRBY3gjp_zP-rlc3VNY4,13418
747
748
  ansible_test/_internal/diff.py,sha256=qfzSL7BtoW7bLLgzF0-m--jthVDpUQSr9aBw1fCMIHk,7310
748
- ansible_test/_internal/docker_util.py,sha256=xpsOEbCBTL1l4q4vUvGC3AqFVs7-VQ9ZDw_hPBoYQoY,38220
749
+ ansible_test/_internal/docker_util.py,sha256=oDm8tcDzotls3ntMsCCkYtFDytjVRzNoWeEmEEE6chY,38321
749
750
  ansible_test/_internal/encoding.py,sha256=E61EfXbQw0uQoFhbN3SYx3Oy_1tAMCPAAvY9hkEcSSo,1367
750
751
  ansible_test/_internal/executor.py,sha256=KW5yI-f-giErQ077MTj707fTtFkf_Kr8IV_Nr36NNmc,2959
751
752
  ansible_test/_internal/git.py,sha256=njtciWq2DlzZ1DAkQi08HRRP-TgH0mgeGZsWcsJGctI,4366
@@ -958,7 +959,7 @@ ansible_test/_util/target/pytest/plugins/ansible_pytest_collections.py,sha256=vn
958
959
  ansible_test/_util/target/pytest/plugins/ansible_pytest_coverage.py,sha256=RAEMJ4N88UhwlCcD3gRG78ERb12uW2FMYI4j1tOiEhU,1546
959
960
  ansible_test/_util/target/sanity/compile/compile.py,sha256=iTRgiZHNO8DwjSqHBw8gPBbFtWnr-Zbd_ybymeazdtA,1302
960
961
  ansible_test/_util/target/sanity/import/importer.py,sha256=BLQN6NmdaMgbI6mu_AdkL4AeD5LxYUi-JXEBGJTuhnU,25148
961
- ansible_test/_util/target/setup/bootstrap.sh,sha256=QdfCotdEO1WdL_7GqrwP2W0s5tsy0nTqv5s-LgI83qI,12594
962
+ ansible_test/_util/target/setup/bootstrap.sh,sha256=dTlUM7XFYllassjgBorBoX4AwtVKP6-wx9m-D2X2SMI,12594
962
963
  ansible_test/_util/target/setup/check_systemd_cgroup_v1.sh,sha256=Aq0T62x_KLtkGaWzYqWjvhchTqYFflrTbQET3h6xrT0,395
963
964
  ansible_test/_util/target/setup/probe_cgroups.py,sha256=wUHvjW_GXpcyMGw308w26T09cOtBW5EU7i9WagGDQ7o,659
964
965
  ansible_test/_util/target/setup/quiet_pip.py,sha256=d3bvh9k2XI_z8-vb3ZoI4lwL8LaFkwvjJE7PpApBlcw,1979
@@ -979,9 +980,8 @@ ansible_test/config/cloud-config-vultr.ini.template,sha256=XLKHk3lg_8ReQMdWfZzhh
979
980
  ansible_test/config/config.yml,sha256=wb3knoBmZewG3GWOMnRHoVPQWW4vPixKLPMNS6vJmTc,2620
980
981
  ansible_test/config/inventory.networking.template,sha256=bFNSk8zNQOaZ_twaflrY0XZ9mLwUbRLuNT0BdIFwvn4,1335
981
982
  ansible_test/config/inventory.winrm.template,sha256=1QU8W-GFLnYEw8yY9bVIvUAVvJYPM3hyoijf6-M7T00,1098
982
- ansible_core-2.17.11rc1.dist-info/COPYING,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
983
- ansible_core-2.17.11rc1.dist-info/METADATA,sha256=d17_jhXGx-zS5zm6rwYYy7ll2ADN4-IgEA5-IxcJNf0,6969
984
- ansible_core-2.17.11rc1.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
985
- ansible_core-2.17.11rc1.dist-info/entry_points.txt,sha256=0mpmsrIhODChxKl3eS-NcVQCaMetBn8KdPLtVxQgR64,453
986
- ansible_core-2.17.11rc1.dist-info/top_level.txt,sha256=IFbRLjAvih1DYzJWg3_F6t4sCzEMxRO7TOMNs6GkYHo,21
987
- ansible_core-2.17.11rc1.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (76.0.0)
2
+ Generator: setuptools (80.7.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -3,7 +3,7 @@ alpine become=doas_sudo provider=aws arch=x86_64
3
3
  fedora/39 python=3.12 become=sudo provider=aws arch=x86_64
4
4
  fedora become=sudo provider=aws arch=x86_64
5
5
  freebsd/13.3 python=3.9,3.11 python_dir=/usr/local/bin become=su_sudo provider=aws arch=x86_64
6
- freebsd/14.0 python=3.9,3.11 python_dir=/usr/local/bin become=su_sudo provider=aws arch=x86_64
6
+ freebsd/14.1 python=3.9,3.11 python_dir=/usr/local/bin become=su_sudo provider=aws arch=x86_64
7
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
@@ -721,9 +721,10 @@ def docker_rm(args: CommonConfig, container_id: str) -> None:
721
721
  """Remove the specified container."""
722
722
  try:
723
723
  # Stop the container with SIGKILL immediately, then remove the container.
724
- # Podman supports the `--time` option on `rm`, but only since version 4.0.0.
725
- # Docker does not support the `--time` option on `rm`.
726
- docker_command(args, ['stop', '--time', '0', container_id], capture=True)
724
+ # Docker supports `--timeout` for stop. The `--time` option was deprecated in v28.0.
725
+ # Podman supports `--time` for stop. The `--timeout` option was deprecated in 1.9.0.
726
+ # Both Docker and Podman support the `-t` option for stop.
727
+ docker_command(args, ['stop', '-t', '0', container_id], capture=True)
727
728
  docker_command(args, ['rm', container_id], capture=True)
728
729
  except SubprocessError as ex:
729
730
  # Both Podman and Docker report an error if the container does not exist.
@@ -176,10 +176,10 @@ bootstrap_remote_freebsd()
176
176
  cryptography_pkg="" # not available
177
177
  pyyaml_pkg="" # not available
178
178
  ;;
179
- 14.0/3.9)
179
+ 14.1/3.9)
180
180
  # defaults above 'just work'TM
181
181
  ;;
182
- 14.0/3.11)
182
+ 14.1/3.11)
183
183
  cryptography_pkg="" # not available
184
184
  jinja2_pkg="" # not available
185
185
  pyyaml_pkg="" # not available