tripleo-heat-templates/extraconfig
Michele Baldessari ed2b957a4f Fix all outputs|failed and outputs is defined
The ansible "failed_when" filter that uses a registered output
of a previous task piped to the '|failed' filter does not work
as expected. Given the following playbook:

  - name: return code
    shell: |
      echo "fail 2"
      exit 2
    failed_when: false
    log_when: false
    register: outputs
  - debug:
      msg: "rc: {{ outputs.rc }}"
  - debug: msg="Broken (does not fail as expected)"
    when: outputs is defined
    failed_when: outputs|failed
  - debug: msg="Working (fails as expected)"
    when: outputs is defined
    failed_when: outputs.rc != 0

We obtain the following output:

TASK [return code] ****
changed: [localhost]

TASK [debug] **********
ok: [localhost] => {
    "msg": "rc: 2"
}

TASK [debug] **********
ok: [localhost] => {
    "failed_when_result": false,
    "msg": "Broken (does not fail as expected)"
}

TASK [debug] **********
fatal: [localhost]: FAILED! => {
    "failed_when_result": true,
    "msg": "Working (fails as expected)"
}

This means that the 'outputs|failed' just does not work at all.
Let's move to a more explicit check on the rc code of the registered
variable.

We also need to fix all the "outputs is defined" checks, because
when a task is skipped the registered outputs variable *is* actually
defined as the following dictionary:
{'skip_reason': u'Conditional result was False', 'skipped': True, 'changed': False}

So we use "outputs.rc is defined" in order to make sure that the
previous task did indeed run.

Closes-Bug: #1733402

Change-Id: I6ef53dc3f9aede42f10c7f110d24722355481261
2017-11-21 08:06:41 +01:00
..
all_nodes Contrail network realignement + DPDK enablement 2017-07-25 18:24:13 +02:00
nova_metadata Render VIPs dynamically based on network_data.yaml 2017-08-04 09:44:31 -04:00
post_deploy Add a name to the post deployment. 2017-09-28 19:25:46 -04:00
pre_deploy/rhel-registration Merge "Upgrade rhel_reg_sat_repo to 6.2" 2017-11-02 00:58:20 +00:00
pre_network Make RoleParameters and key_name descriptions consistent 2017-08-02 16:18:25 -05:00
services Fix all outputs|failed and outputs is defined 2017-11-21 08:06:41 +01:00
tasks Do not rely on openstack-puppet-modules 2017-10-17 11:13:03 -07:00