From 32fa4db23286d1ca868af030a2aa0bfa4538817e Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Wed, 10 May 2017 18:08:42 -0400 Subject: [PATCH] add any_errors_fatal global config --- examples/ansible.cfg | 3 +++ lib/ansible/config/data/config.yml | 10 ++++++++++ lib/ansible/playbook/base.py | 17 +++++++++-------- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/examples/ansible.cfg b/examples/ansible.cfg index dc8d8b7443a..674c5d3333c 100644 --- a/examples/ansible.cfg +++ b/examples/ansible.cfg @@ -310,6 +310,9 @@ # ENABLING THIS COULD BE A SECURITY RISK #allow_unsafe_lookups = False +# set default errors for all plays +#any_errors_fatal = False + [privilege_escalation] #become=True #become_method=sudo diff --git a/lib/ansible/config/data/config.yml b/lib/ansible/config/data/config.yml index 68deb5eb117..ea8893b33b4 100644 --- a/lib/ansible/config/data/config.yml +++ b/lib/ansible/config/data/config.yml @@ -180,6 +180,16 @@ ANSIBLE_SSH_RETRIES: value_type: integer vars: [] yaml: {key: ssh_connection.retries} +ANY_ERRORS_FATAL: + default: False + env: + - name: ANSIBLE_ANY_ERRORS_FATAL + ini: + - section: defauls + key: any_errors_fatal + value_type: boolean + vars: [] + yaml: {key: errors.anyerrors_fatal} BECOME_ALLOW_SAME_USER: default: False desc: 'TODO: write it' diff --git a/lib/ansible/playbook/base.py b/lib/ansible/playbook/base.py index 07236a0f063..9a424c19d3d 100644 --- a/lib/ansible/playbook/base.py +++ b/lib/ansible/playbook/base.py @@ -27,12 +27,13 @@ from functools import partial from jinja2.exceptions import UndefinedError +from ansible import constants as C +from ansible.constants import mk_boolean as boolean from ansible.module_utils.six import iteritems, string_types, with_metaclass from ansible.errors import AnsibleParserError, AnsibleUndefinedVariable from ansible.module_utils._text import to_text from ansible.playbook.attribute import Attribute, FieldAttribute from ansible.parsing.dataloader import DataLoader -from ansible.constants import mk_boolean as boolean from ansible.utils.vars import combine_vars, isidentifier, get_unique_id try: @@ -157,13 +158,13 @@ class Base(with_metaclass(BaseMeta, object)): _vars = FieldAttribute(isa='dict', priority=100, inherit=False) # flags and misc. settings - _environment = FieldAttribute(isa='list') - _no_log = FieldAttribute(isa='bool') - _always_run = FieldAttribute(isa='bool') - _run_once = FieldAttribute(isa='bool') - _ignore_errors = FieldAttribute(isa='bool') - _check_mode = FieldAttribute(isa='bool') - _any_errors_fatal = FieldAttribute(isa='bool', always_post_validate=True) + _environment = FieldAttribute(isa='list') + _no_log = FieldAttribute(isa='bool') + _always_run = FieldAttribute(isa='bool') + _run_once = FieldAttribute(isa='bool') + _ignore_errors = FieldAttribute(isa='bool') + _check_mode = FieldAttribute(isa='bool') + _any_errors_fatal = FieldAttribute(isa='bool', default=C.ANY_ERRORS_FATAL, always_post_validate=True) # param names which have been deprecated/removed DEPRECATED_ATTRIBUTES = [