Standardize removal of BECOME-SUCCESS method and use it for async too

Fixes #13965
Fixes #13971
pull/14038/head
James Cammarata 9 years ago
parent 61009604e3
commit 54cde0d082

@ -24,6 +24,7 @@ import json
import os import os
import pipes import pipes
import random import random
import re
import stat import stat
import tempfile import tempfile
import time import time
@ -356,6 +357,14 @@ class ActionBase(with_metaclass(ABCMeta, object)):
return data[idx:] 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): 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. Transfer and run a module along with its arguments.

@ -75,4 +75,8 @@ class ActionModule(ActionBase):
result['changed'] = True 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 return result

@ -19,8 +19,6 @@ __metaclass__ = type
from ansible.plugins.action import ActionBase from ansible.plugins.action import ActionBase
import re
class ActionModule(ActionBase): class ActionModule(ActionBase):
TRANSFERS_FILES = False TRANSFERS_FILES = False
@ -42,7 +40,6 @@ class ActionModule(ActionBase):
# for some modules (script, raw), the sudo success key # for some modules (script, raw), the sudo success key
# may leak into the stdout due to the way the sudo/su # may leak into the stdout due to the way the sudo/su
# command is constructed, so we filter that out here # command is constructed, so we filter that out here
if result.get('stdout','').strip().startswith('BECOME-SUCCESS-'): result['stdout'] = self._strip_success_message(result.get('stdout', ''))
result['stdout'] = re.sub(r'^((\r)?\n)?BECOME-SUCCESS.*(\r)?\n', '', result['stdout'])
return result return result

Loading…
Cancel
Save