mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-08-04 21:24:24 -07:00
[stable-9] [stable-10] Disable pipelining for doas and machinectl on ansible-core 2.19+ (#10537) (#10561) (#10565)
[stable-10] Disable pipelining for doas and machinectl on ansible-core 2.19+ (#10537) (#10561) Disable pipelining for doas and machinectl on ansible-core 2.19+ (#10537) Disable pipelining for doas and machinectl. (cherry picked from commit9a29622584
) (cherry picked from commit69563766ec
)
This commit is contained in:
parent
93257c32a8
commit
f7f5c7f913
3 changed files with 16 additions and 0 deletions
3
changelogs/fragments/become-pipelining.yml
Normal file
3
changelogs/fragments/become-pipelining.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
bugfixes:
|
||||||
|
- "doas become plugin - disable pipelining on ansible-core 2.19+. The plugin does not work with pipelining, and since ansible-core 2.19 become plugins can indicate that they do not work with pipelining (https://github.com/ansible-collections/community.general/issues/9977, https://github.com/ansible-collections/community.general/pull/10537)."
|
||||||
|
- "machinectl become plugin - disable pipelining on ansible-core 2.19+. The plugin does not work with pipelining, and since ansible-core 2.19 become plugins can indicate that they do not work with pipelining (https://github.com/ansible-collections/community.general/pull/10537)."
|
|
@ -84,6 +84,9 @@ DOCUMENTATION = '''
|
||||||
- name: ansible_doas_prompt_l10n
|
- name: ansible_doas_prompt_l10n
|
||||||
env:
|
env:
|
||||||
- name: ANSIBLE_DOAS_PROMPT_L10N
|
- name: ANSIBLE_DOAS_PROMPT_L10N
|
||||||
|
notes:
|
||||||
|
- This become plugin does not work when connection pipelining is enabled. With ansible-core 2.19+, using it automatically
|
||||||
|
disables pipelining. On ansible-core 2.18 and before, pipelining must explicitly be disabled by the user.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
@ -100,6 +103,10 @@ class BecomeModule(BecomeBase):
|
||||||
fail = ('Permission denied',)
|
fail = ('Permission denied',)
|
||||||
missing = ('Authorization required',)
|
missing = ('Authorization required',)
|
||||||
|
|
||||||
|
# See https://github.com/ansible-collections/community.general/issues/9977,
|
||||||
|
# https://github.com/ansible/ansible/pull/78111
|
||||||
|
pipelining = False
|
||||||
|
|
||||||
def check_password_prompt(self, b_output):
|
def check_password_prompt(self, b_output):
|
||||||
''' checks if the expected password prompt exists in b_output '''
|
''' checks if the expected password prompt exists in b_output '''
|
||||||
|
|
||||||
|
|
|
@ -77,6 +77,8 @@ DOCUMENTATION = '''
|
||||||
if the user is allowed to perform the action (take a look at the examples section).
|
if the user is allowed to perform the action (take a look at the examples section).
|
||||||
If such a rule is not present the plugin only work if it is used in context with the root user,
|
If such a rule is not present the plugin only work if it is used in context with the root user,
|
||||||
because then no further prompt will be shown by machinectl.
|
because then no further prompt will be shown by machinectl.
|
||||||
|
- This become plugin does not work when connection pipelining is enabled. With ansible-core 2.19+, using it automatically
|
||||||
|
disables pipelining. On ansible-core 2.18 and before, pipelining must explicitly be disabled by the user.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
EXAMPLES = r'''
|
EXAMPLES = r'''
|
||||||
|
@ -109,6 +111,10 @@ class BecomeModule(BecomeBase):
|
||||||
success = ('==== AUTHENTICATION COMPLETE ====',)
|
success = ('==== AUTHENTICATION COMPLETE ====',)
|
||||||
require_tty = True # see https://github.com/ansible-collections/community.general/issues/6932
|
require_tty = True # see https://github.com/ansible-collections/community.general/issues/6932
|
||||||
|
|
||||||
|
# See https://github.com/ansible/ansible/issues/81254,
|
||||||
|
# https://github.com/ansible/ansible/pull/78111
|
||||||
|
pipelining = False
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def remove_ansi_codes(line):
|
def remove_ansi_codes(line):
|
||||||
return ansi_color_codes.sub(b"", line)
|
return ansi_color_codes.sub(b"", line)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue