##### SUMMARY
It seems that no_log works only with bare boolean values and attempts to use jinja conditions will silently evaluate it as false, producing undesired results.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
lib/ansible/plugins/callback

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
2.10 (devel)
```

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
```yaml
#!/usr/bin/env ansible-playbook -vv
- hosts: localhost
  tasks:

    - shell: seq 10
      register: result
      no_log: result is success
```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
`no_log` should respect the condition mentioned there. 

If the evaluation happens before the task is executed it should give an error complaining that the result is not defined. 

Either way putting a condition that is silently ignored produce confusion to the users, with undesired outcomes. 

I think it is a common desired to have commands that are silent when succesful and verbose when failing, so you can debug them. Current implementation of no_log makes this impossible.


##### ACTUAL RESULTS

<!--- Paste verbatim command output between quotes -->
```paste below
TASK [shell] ************************************************************************************************************************************************************************
task path: /Users/ssbarnea/c/opendev/me/demo-no_log.yml:5
Monday 10 February 2020  12:34:28 +0000 (0:00:00.626)       0:00:00.737 *******
changed: [localhost] => {
    "changed": true,
    "cmd": "seq 10",
    "delta": "0:00:00.009089",
    "end": "2020-02-10 12:34:29.124658",
    "rc": 0,
    "start": "2020-02-10 12:34:29.115569"
}

STDOUT:

1
2
3
4
5
6
7
8
9
10
META: ran handlers
META: ran handlers
```

def _create_attrs(src_dict, dst_dict):
            '''
            Helper method which creates the attributes based on those in the
            source dictionary of attributes. This also populates the other
            attributes used to keep track of these attributes and via the
            getter/setter/deleter methods.
            '''
            keys = list(src_dict.keys())
            for attr_name in keys:
                value = src_dict[attr_name]
                if isinstance(value, Attribute):
                    if attr_name.startswith('_'):
                        attr_name = attr_name[1:]
                    
                    
                    
                    
                    method = "_get_attr_%s" % attr_name
                    if method in src_dict or method in dst_dict:
                        getter = partial(_generic_g_method, attr_name)
                    elif ('_get_parent_attribute' in dst_dict or '_get_parent_attribute' in src_dict) and value.inherit:
                        getter = partial(_generic_g_parent, attr_name)
                    else:
                        getter = partial(_generic_g, attr_name)
                    setter = partial(_generic_s, attr_name)
                    deleter = partial(_generic_d, attr_name)