Detects errors in bigip_config (#34965)
There are changes that the merge config can fail, but the module will still report success. This adds a blob of code to start collecting those failures and bubbling up a module failure accordingly.
This commit is contained in:
parent
b0625caa5a
commit
944ae47701
2 changed files with 14 additions and 3 deletions
|
@ -211,12 +211,23 @@ class ModuleManager(object):
|
|||
response = self.save()
|
||||
responses.append(response)
|
||||
|
||||
self._detect_errors(responses)
|
||||
changes = {
|
||||
'stdout': responses,
|
||||
'stdout_lines': self._to_lines(responses)
|
||||
}
|
||||
self.changes = Parameters(params=changes)
|
||||
|
||||
def _detect_errors(self, stdout):
|
||||
errors = [
|
||||
'Unexpected Error:'
|
||||
]
|
||||
|
||||
msg = [x for x in stdout for y in errors if y in x]
|
||||
if msg:
|
||||
# Error only contains the lines that include the error
|
||||
raise F5ModuleError(' '.join(msg))
|
||||
|
||||
def reset(self):
|
||||
if self.module.check_mode:
|
||||
return True
|
||||
|
|
|
@ -100,12 +100,12 @@ class TestManager(unittest.TestCase):
|
|||
|
||||
# Override methods to force specific logic in the module to happen
|
||||
mm.exit_json = Mock(return_value=True)
|
||||
mm.reset_device = Mock(return_value=True)
|
||||
mm.reset_device = Mock(return_value='reset output')
|
||||
mm.upload_to_device = Mock(return_value=True)
|
||||
mm.move_on_device = Mock(return_value=True)
|
||||
mm.merge_on_device = Mock(return_value=True)
|
||||
mm.merge_on_device = Mock(return_value='merge output')
|
||||
mm.remove_temporary_file = Mock(return_value=True)
|
||||
mm.save_on_device = Mock(return_value=True)
|
||||
mm.save_on_device = Mock(return_value='save output')
|
||||
|
||||
results = mm.exec_module()
|
||||
|
||||
|
|
Loading…
Reference in a new issue