ansible-core 2.18.0rc1__py3-none-any.whl → 2.18.0rc2__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.

@@ -684,8 +684,8 @@ class TaskExecutor:
684
684
  self._handler.cleanup()
685
685
  display.debug("handler run complete")
686
686
 
687
- # preserve no log
688
- result["_ansible_no_log"] = no_log
687
+ # propagate no log to result- the action can set this, so only overwrite it with the task's value if missing or falsey
688
+ result["_ansible_no_log"] = bool(no_log or result.get('_ansible_no_log', False))
689
689
 
690
690
  if self._task.action not in C._ACTION_WITH_CLEAN_FACTS:
691
691
  result = wrap_var(result)
@@ -17,6 +17,6 @@
17
17
 
18
18
  from __future__ import annotations
19
19
 
20
- __version__ = '2.18.0rc1'
20
+ __version__ = '2.18.0rc2'
21
21
  __author__ = 'Ansible, Inc.'
22
22
  __codename__ = "Fool in the Rain"
ansible/modules/user.py CHANGED
@@ -1220,9 +1220,11 @@ class User(object):
1220
1220
  overwrite = None
1221
1221
  try:
1222
1222
  ssh_key_file = self.get_ssh_key_path()
1223
+ pub_file = f'{ssh_key_file}.pub'
1223
1224
  except Exception as e:
1224
1225
  return (1, '', to_native(e))
1225
1226
  ssh_dir = os.path.dirname(ssh_key_file)
1227
+
1226
1228
  if not os.path.exists(ssh_dir):
1227
1229
  if self.module.check_mode:
1228
1230
  return (0, '', '')
@@ -1231,12 +1233,23 @@ class User(object):
1231
1233
  os.chown(ssh_dir, info[2], info[3])
1232
1234
  except OSError as e:
1233
1235
  return (1, '', 'Failed to create %s: %s' % (ssh_dir, to_native(e)))
1236
+
1234
1237
  if os.path.exists(ssh_key_file):
1235
1238
  if self.force:
1236
- # ssh-keygen doesn't support overwriting the key interactively, so send 'y' to confirm
1239
+ self.module.warn(f'Overwriting existing ssh key private file "{ssh_key_file}"')
1237
1240
  overwrite = 'y'
1238
1241
  else:
1242
+ self.module.warn(f'Found existing ssh key private file "{ssh_key_file}", no force, so skipping ssh-keygen generation')
1239
1243
  return (None, 'Key already exists, use "force: yes" to overwrite', '')
1244
+
1245
+ if os.path.exists(pub_file):
1246
+ if self.force:
1247
+ self.module.warn(f'Overwriting existing ssh key public file "{pub_file}"')
1248
+ os.unlink(pub_file)
1249
+ else:
1250
+ self.module.warn(f'Found existing ssh key public file "{pub_file}", no force, so skipping ssh-keygen generation')
1251
+ return (None, 'Public key already exists, use "force: yes" to overwrite', '')
1252
+
1240
1253
  cmd = [self.module.get_bin_path('ssh-keygen', True)]
1241
1254
  cmd.append('-t')
1242
1255
  cmd.append(self.ssh_type)
@@ -1303,7 +1316,7 @@ class User(object):
1303
1316
  # If the keys were successfully created, we should be able
1304
1317
  # to tweak ownership.
1305
1318
  os.chown(ssh_key_file, info[2], info[3])
1306
- os.chown('%s.pub' % ssh_key_file, info[2], info[3])
1319
+ os.chown(pub_file, info[2], info[3])
1307
1320
  return (rc, out, err)
1308
1321
 
1309
1322
  def ssh_key_fingerprint(self):
@@ -237,7 +237,8 @@ class ActionModule(ActionBase):
237
237
  b_data, show_content = self._loader._get_file_contents(filename)
238
238
  data = to_text(b_data, errors='surrogate_or_strict')
239
239
 
240
- self.show_content = show_content
240
+ self.show_content &= show_content # mask all results if any file was encrypted
241
+
241
242
  data = self._loader.load(data, file_name=filename, show_content=show_content)
242
243
  if not data:
243
244
  data = dict()
ansible/release.py CHANGED
@@ -17,6 +17,6 @@
17
17
 
18
18
  from __future__ import annotations
19
19
 
20
- __version__ = '2.18.0rc1'
20
+ __version__ = '2.18.0rc2'
21
21
  __author__ = 'Ansible, Inc.'
22
22
  __codename__ = "Fool in the Rain"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ansible-core
3
- Version: 2.18.0rc1
3
+ Version: 2.18.0rc2
4
4
  Summary: Radically simple IT automation
5
5
  Author: Ansible Project
6
6
  Project-URL: Homepage, https://ansible.com/
@@ -3,7 +3,7 @@ ansible/__main__.py,sha256=24j-7-YT4lZ2fmV80JD-VRoYBnxR7YoP_VP-orJtDt0,796
3
3
  ansible/constants.py,sha256=dSgbrzNsmhYc4GQOWZvRm4XKgf--_MUWcMa_9_7l5Pc,9757
4
4
  ansible/context.py,sha256=oKYyfjfWpy8vDeProtqfnqSmuij_t75_5e5t0U_hQ1g,1933
5
5
  ansible/keyword_desc.yml,sha256=xD-MRMB8mSRaj2ADwRnjIEbOwJKbc6BYadouGPfS0mI,7462
6
- ansible/release.py,sha256=Lm7Ed7E3swl8p4poj0NRx76RtYuhXMYNO4FJtAFNKsY,839
6
+ ansible/release.py,sha256=gXhvjcTPfQX0uSeFezLYafifTwn4dkgfRceZe8lieM4,839
7
7
  ansible/_vendor/__init__.py,sha256=2QBeBwT7uG7M3Aw-pIdCpt6XPtHMCpbEKfACYKA7xIg,2033
8
8
  ansible/cli/__init__.py,sha256=e0KjeLfG1Ketbwl-uOmQ-zXoq3_El80LnHTGu80d1gs,28111
9
9
  ansible/cli/adhoc.py,sha256=quJ9WzRzf3dz_dtDGmahNMffqyNVy1jzQCMo21YL5Qg,8194
@@ -37,7 +37,7 @@ ansible/executor/module_common.py,sha256=4pVfjMgCle9ttAZTeuwSx3Kdi0rljagyHC11i4V
37
37
  ansible/executor/play_iterator.py,sha256=Oazd9aWy4zB67uy27sYg4BveFx_Uf_tIsbhD76hMc28,32496
38
38
  ansible/executor/playbook_executor.py,sha256=qurZBiWjAWWRYcHb3ti4sBI8_WotOYvTRDar4JC3leE,14764
39
39
  ansible/executor/stats.py,sha256=gcBhJQrZTgE95737d6lArJ3FpTlbAfVt6GMhEqs5ZPU,3180
40
- ansible/executor/task_executor.py,sha256=5kekBuuw4Na5o1fpaErkLKxxTGLMBUnDxkCjCJfgmd0,61133
40
+ ansible/executor/task_executor.py,sha256=1kc49j7Iwf2UZm4DuSwgihJ51Wzuey2vcQZlBwWeGK4,61280
41
41
  ansible/executor/task_queue_manager.py,sha256=fC404XkveICb7hRwIVu4PvRNgFkFLCNihsGsUDHVFzg,18640
42
42
  ansible/executor/task_result.py,sha256=48zZWpxCiM0Z_MVG9zGQGCxHLNzs1horT68Qmfa-v_8,5696
43
43
  ansible/executor/discovery/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -141,7 +141,7 @@ ansible/inventory/host.py,sha256=PDb5OTplhfpUIvdHiP2BckUOB1gUl302N-3sW0_sTyg,503
141
141
  ansible/inventory/manager.py,sha256=45mHgZTAkQ3IjAtrgsNzJXvynC-HIEor-JJE-V3xXN4,29454
142
142
  ansible/module_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
143
143
  ansible/module_utils/_text.py,sha256=VkWgAnSNVCbTQqZgllUObBFsH3uM4EUW5srl1UR9t1g,544
144
- ansible/module_utils/ansible_release.py,sha256=Lm7Ed7E3swl8p4poj0NRx76RtYuhXMYNO4FJtAFNKsY,839
144
+ ansible/module_utils/ansible_release.py,sha256=gXhvjcTPfQX0uSeFezLYafifTwn4dkgfRceZe8lieM4,839
145
145
  ansible/module_utils/api.py,sha256=r4wd6XZGhUnxMF416Ry6ebgq8BIhjCPSPOvO2ZtrYxE,5785
146
146
  ansible/module_utils/basic.py,sha256=fogfpo_l7JtS34WvgwwOebmPfMhFjQaJN5CwjKgUJVE,86291
147
147
  ansible/module_utils/connection.py,sha256=8TviwCucQ7d_JILwaUHE4tCuNfR3U1WFkmxLMxWa8Rw,7671
@@ -347,7 +347,7 @@ ansible/modules/tempfile.py,sha256=lA9e8lyFXf9J5ud0R6Jkt8sIFyRcOwzhc9Jz-5_HOZQ,3
347
347
  ansible/modules/template.py,sha256=D1sm36GB_mEimH0CfWq1cJ4w1eRvpcsHwZ-ufVzC_Gs,4537
348
348
  ansible/modules/unarchive.py,sha256=wdSOFKhZqbAFq5j_tBZtUSamfr_EEW6_cTZDw-erMjs,45405
349
349
  ansible/modules/uri.py,sha256=rhybLSwlciwEvTbxTOvgRTZgdrCrmPaLSfoSdiIu0Xo,28390
350
- ansible/modules/user.py,sha256=KQshXIlg0ktsvGS1leZl_7Mlg76iC5WDqQtMs8P9o58,122706
350
+ ansible/modules/user.py,sha256=w0RVtz89EA2JpAhwav_J-2mGFKnEfW7MxCTKeug-r14,123301
351
351
  ansible/modules/validate_argument_spec.py,sha256=XbWlUr4ElgLfdxo3qCN7M-IES_X2iTl3AgawzCOMQpo,3042
352
352
  ansible/modules/wait_for.py,sha256=VXFFcYG88EJVXnrJfa0fzh9rD_2luSty__qdzRuTAQE,27322
353
353
  ansible/modules/wait_for_connection.py,sha256=8ySz5bhK7LGSaT_7Jzk3jvACcnngyR2g_ziyFLKk6Rk,3367
@@ -410,7 +410,7 @@ ansible/plugins/action/fail.py,sha256=_1JuS0Z8Y8EB4FKG1u7KdP6xMuLobRHJsmtzmvN2Ck
410
410
  ansible/plugins/action/fetch.py,sha256=cQAmUWEGMDjfVfHGviNtsT4i06rnoubL3EgrOlUZbLw,10188
411
411
  ansible/plugins/action/gather_facts.py,sha256=JFkrn3_78A7eUw0I3DsfUoe3Pu3wVLkhLUiOJ7Oyk0A,7863
412
412
  ansible/plugins/action/group_by.py,sha256=97d4TF9o7vS5y0s1HfGgvh70l2gkQ2uUGxy0knlok5Y,1894
413
- ansible/plugins/action/include_vars.py,sha256=XnX2mgcZpK4NHn7Bktc8IUjzRkVbjA4xHsiJ_vap9U0,11525
413
+ ansible/plugins/action/include_vars.py,sha256=_xPrP_BeGqbhvpJYQFDUkREL9UzZ6Y4q_AnCshvsn1A,11573
414
414
  ansible/plugins/action/normal.py,sha256=cCHrZ3z2kB_wnnSNkmJHJWcJNRgdoxnLUNeHex-P8DE,1854
415
415
  ansible/plugins/action/package.py,sha256=UWk7T-hG6GoqixgUzz1iDT16hUQ2-bM26IZ-w52xoS4,5014
416
416
  ansible/plugins/action/pause.py,sha256=A_U8FhGeFdaOXUadEM-Mv42v9lwsjnxPOE7ExvEfl1s,5674
@@ -980,13 +980,13 @@ ansible_test/config/cloud-config-vultr.ini.template,sha256=XLKHk3lg_8ReQMdWfZzhh
980
980
  ansible_test/config/config.yml,sha256=1zdGucnIl6nIecZA7ISIANvqXiHWqq6Dthsk_6MUwNc,2642
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.18.0rc1.dist-info/Apache-License.txt,sha256=y16Ofl9KOYjhBjwULGDcLfdWBfTEZRXnduOspt-XbhQ,11325
984
- ansible_core-2.18.0rc1.dist-info/COPYING,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
985
- ansible_core-2.18.0rc1.dist-info/METADATA,sha256=DKeA6eyLrlMK2hduqbMVi7APLYgrQZbsqyNSV1N27_M,7674
986
- ansible_core-2.18.0rc1.dist-info/MIT-license.txt,sha256=jLXp2XurnyZKbye40g9tfmLGtVlxh3pPD4n8xNqX8xc,1023
987
- ansible_core-2.18.0rc1.dist-info/PSF-license.txt,sha256=g7BC_H1qyg8Q1o5F76Vrm8ChSWYI5-dyj-CdGlNKBUo,2484
988
- ansible_core-2.18.0rc1.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
989
- ansible_core-2.18.0rc1.dist-info/entry_points.txt,sha256=S9yJij5Im6FgRQxzkqSCnPQokC7PcWrDW_NSygZczJU,451
990
- ansible_core-2.18.0rc1.dist-info/simplified_bsd.txt,sha256=8R5R7R7sOa0h1Fi6RNgFgHowHBfun-OVOMzJ4rKAk2w,1237
991
- ansible_core-2.18.0rc1.dist-info/top_level.txt,sha256=IFbRLjAvih1DYzJWg3_F6t4sCzEMxRO7TOMNs6GkYHo,21
992
- ansible_core-2.18.0rc1.dist-info/RECORD,,
983
+ ansible_core-2.18.0rc2.dist-info/Apache-License.txt,sha256=y16Ofl9KOYjhBjwULGDcLfdWBfTEZRXnduOspt-XbhQ,11325
984
+ ansible_core-2.18.0rc2.dist-info/COPYING,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
985
+ ansible_core-2.18.0rc2.dist-info/METADATA,sha256=yJz_cgLahyCU3CiI1tgxw-XLtVulnaw8B87804oNu_s,7674
986
+ ansible_core-2.18.0rc2.dist-info/MIT-license.txt,sha256=jLXp2XurnyZKbye40g9tfmLGtVlxh3pPD4n8xNqX8xc,1023
987
+ ansible_core-2.18.0rc2.dist-info/PSF-license.txt,sha256=g7BC_H1qyg8Q1o5F76Vrm8ChSWYI5-dyj-CdGlNKBUo,2484
988
+ ansible_core-2.18.0rc2.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
989
+ ansible_core-2.18.0rc2.dist-info/entry_points.txt,sha256=S9yJij5Im6FgRQxzkqSCnPQokC7PcWrDW_NSygZczJU,451
990
+ ansible_core-2.18.0rc2.dist-info/simplified_bsd.txt,sha256=8R5R7R7sOa0h1Fi6RNgFgHowHBfun-OVOMzJ4rKAk2w,1237
991
+ ansible_core-2.18.0rc2.dist-info/top_level.txt,sha256=IFbRLjAvih1DYzJWg3_F6t4sCzEMxRO7TOMNs6GkYHo,21
992
+ ansible_core-2.18.0rc2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (75.3.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5