0

Team,

My below task is supposed to failed based on string in output but its not. what am i missing? Validate all nodes have labels should fail.


      - name: "list node labels"
        debug:
          var: nodeType_label_info.stdout_lines

      - name: "Validate all nodes have labels"
        debug:
          var: nodeType_label_info.stdout_lines
        failed_when: '"does not have" in {{ item }}'
        with_items: nodeType_label_info.stdout_lines
        #failed_when: nodeType_label_info.stdout_lines is not search('does not have')
TASK [: list node labels] ***************************************************************************************************************************************
Tuesday 17 December 2019  06:29:45 +0000 (0:00:01.449)       0:00:01.598 ******
ok: [localhost] => {
    "nodeType_label_info.stdout_lines": [
        "nodeTyp=test",
        "node2 does not have nodeType label"
    ]
}

TASK [: Validate all nodes have labels] *************************************************************************************************************************
Tuesday 17 December 2019  06:29:45 +0000 (0:00:00.210)       0:00:01.808 ******
[WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: "does not have" in {{ item }}

ok: [localhost] => (item=nodeType_label_info.stdout_lines) => {
    "ansible_loop_var": "item",
    "failed_when_result": false,
    "item": "nodeType_label_info.stdout_lines",
    "nodeType_label_info.stdout_lines": [
        "nodeTyp=test",
        "node1 does not have nodeType label"
    ]
}
AhmFM
  • 1,552
  • 3
  • 23
  • 53

1 Answers1

0

Fixed it myself. I don't need to store value in var but simply check in failed_when as below

      - name: "Validate all nodes have labels"
        debug:
          msg: "label not found on all nodes"
        failed_when: '"does not have" in nodeType_label_info.stdout'
AhmFM
  • 1,552
  • 3
  • 23
  • 53