bug fix that now catches FailedConditionalError when specifying conditionals

This is related to ansible/ansible#17638 and updates the eos_command module
to catch the exception and return a santatized error.
reviewable/pr18780/r1
Peter Sprygada 8 years ago
parent 318c115e9b
commit 3714b30a9f

@ -143,10 +143,15 @@ failed_conditions:
type: list type: list
sample: ['...', '...'] sample: ['...', '...']
""" """
import ansible.module_utils.eos
from ansible.module_utils.basic import get_exception from ansible.module_utils.basic import get_exception
from ansible.module_utils.network import NetworkModule, NetworkError
from ansible.module_utils.netcli import CommandRunner from ansible.module_utils.netcli import CommandRunner
from ansible.module_utils.netcli import AddCommandError, FailedConditionsError from ansible.module_utils.netcli import AddCommandError
from ansible.module_utils.eos import NetworkModule, NetworkError from ansible.module_utils.netcli import FailedConditionsError
from ansible.module_utils.netcli import FailedConditionalError
VALID_KEYS = ['command', 'output', 'prompt', 'response'] VALID_KEYS = ['command', 'output', 'prompt', 'response']
@ -182,7 +187,6 @@ def main():
) )
module = NetworkModule(argument_spec=spec, module = NetworkModule(argument_spec=spec,
connect_on_load=False,
supports_check_mode=True) supports_check_mode=True)
commands = list(parse_commands(module)) commands = list(parse_commands(module))
@ -219,9 +223,12 @@ def main():
except FailedConditionsError: except FailedConditionsError:
exc = get_exception() exc = get_exception()
module.fail_json(msg=str(exc), failed_conditions=exc.failed_conditions) module.fail_json(msg=str(exc), failed_conditions=exc.failed_conditions)
except FailedConditionalError:
exc = get_exception()
module.fail_json(msg=str(exc), failed_conditional=exc.failed_conditional)
except NetworkError: except NetworkError:
exc = get_exception() exc = get_exception()
module.fail_json(msg=str(exc)) module.fail_json(msg=str(exc), **exc.kwargs)
result = dict(changed=False, stdout=list()) result = dict(changed=False, stdout=list())

Loading…
Cancel
Save