mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Standardize removal of BECOME-SUCCESS method and use it for async too
Fixes #13965 Fixes #13971
This commit is contained in:
parent
61009604e3
commit
54cde0d082
3 changed files with 14 additions and 4 deletions
|
@ -24,6 +24,7 @@ import json
|
|||
import os
|
||||
import pipes
|
||||
import random
|
||||
import re
|
||||
import stat
|
||||
import tempfile
|
||||
import time
|
||||
|
@ -356,6 +357,14 @@ class ActionBase(with_metaclass(ABCMeta, object)):
|
|||
|
||||
return data[idx:]
|
||||
|
||||
def _strip_success_message(self, data):
|
||||
'''
|
||||
Removes the BECOME-SUCCESS message from the data.
|
||||
'''
|
||||
if data.strip().startswith('BECOME-SUCCESS-'):
|
||||
data = re.sub(r'^((\r)?\n)?BECOME-SUCCESS.*(\r)?\n', '', data)
|
||||
return data
|
||||
|
||||
def _execute_module(self, module_name=None, module_args=None, tmp=None, task_vars=None, persist_files=False, delete_remote_tmp=True):
|
||||
'''
|
||||
Transfer and run a module along with its arguments.
|
||||
|
|
|
@ -75,4 +75,8 @@ class ActionModule(ActionBase):
|
|||
|
||||
result['changed'] = True
|
||||
|
||||
# be sure to strip out the BECOME-SUCCESS message, which may
|
||||
# be there depending on the output of the module
|
||||
result['stdout'] = self._strip_success_message(result.get('stdout', ''))
|
||||
|
||||
return result
|
||||
|
|
|
@ -19,8 +19,6 @@ __metaclass__ = type
|
|||
|
||||
from ansible.plugins.action import ActionBase
|
||||
|
||||
import re
|
||||
|
||||
|
||||
class ActionModule(ActionBase):
|
||||
TRANSFERS_FILES = False
|
||||
|
@ -42,7 +40,6 @@ class ActionModule(ActionBase):
|
|||
# for some modules (script, raw), the sudo success key
|
||||
# may leak into the stdout due to the way the sudo/su
|
||||
# command is constructed, so we filter that out here
|
||||
if result.get('stdout','').strip().startswith('BECOME-SUCCESS-'):
|
||||
result['stdout'] = re.sub(r'^((\r)?\n)?BECOME-SUCCESS.*(\r)?\n', '', result['stdout'])
|
||||
result['stdout'] = self._strip_success_message(result.get('stdout', ''))
|
||||
|
||||
return result
|
||||
|
|
Loading…
Reference in a new issue