I have a task that hits a url and returns the results in JSON array like 
this:


   1. 
>    
>    "json": {
>           "statuses": [
>               {
>                   "application": "JIRA",
>                   "completeKey": "com.atlassian.jira.plugins.jira-
>    healthcheck-plugin:hsqlHealthCheck",
>                   "description": "Checks if the instance is connected to 
>    an HSQL or H2 database",
>                   "documentation": "https:
>    //confluence.atlassian.com/x/1guaEQ",
>                    "failureReason": "You are not using an HSQL or H2 
>    embedded database with a production license.",
>                    "healthy": true,
>                    "id": 0,
>                    "isHealthy": true,
>                    "name": "Embedded database",
>                    "severity": "undefined",
>                    "tag": "Supported Platforms",
>                    "time": 1518726326309
>                },
>                {
>                    "application": "JIRA",
>                    "completeKey": 
>    "com.atlassian.jira.plugins.jira-healthcheck-plugin:eolHealthCheck",
>                    "description": "Checks if the running version of JIRA 
>    is approaching, or has reached End of Life.",
>                    "documentation": 
>    "https://confluence.atlassian.com/x/HjnRLg";,
>                    "failureReason": "Unable to verify the End of Life 
>    date for version '7.4.x'. The check has not been performed.",
>                    "healthy": true,
>                    "id": 0,
>                    "isHealthy": true,
>                    "name": "End of Life",
>                    "severity": "undefined",
>                    "tag": "Supported Platforms",
>                    "time": 1518726326316
>                },
>    {
>                    "application": "JIRA",
>                    "completeKey": 
>    
> "com.atlassian.jira.plugins.jira-healthcheck-plugin:luceneSupportHealthCheck"
>    ,
>                    "description": "Checks the state of the search index 
>    is consistent with the database.",
>                    "documentation": 
>    "https://confluence.atlassian.com/x/9IUfL";,
>                    "failureReason": "The issue index is inconsistent with 
>    the database state.",
>                    "healthy": false,
>                    "id": 0,
>                    "isHealthy": false,
>                    "name": "Lucene",
>                    "severity": "major",
>                    "tag": "Indexing",
>                    "time": 1518726326372
>                },
   
   
The two tasks that run looks like this:

---


- name: check if jira indexing is required and do it
  hosts: localhost
  become: no
  connection: local
  #vars_files:
  #  - vault.yml


  tasks:
    - name: Check for "Lucene" health
      uri:
        url: https://example.com/rest/supportHealthCheck/1.0/check/
        method: GET
        user: user
        password: password
        force_basic_auth: yes
        body_format: json
        return_content: yes
        validate_certs: no
        status_code: 200
      register: results


    - name: Get health result
      debug: var=item
      with_items: "{{results|json_query(name_Lucene_query)}}"
      vars:
        name_Lucene_query: "statuses.name[?name=='Lucene'].isHealthy"


The final result looks like this:


   1. 
>    
>    ###################
>    ## results / output of "Check for "Lucene" health
>     
>    TASK [Check for "Lucene" health] 
>    
> **********************************************************************************************************************************************************************************
>    task path: /home/user/jiraHealth.yml:11
>     
>     
>    "json": {
>           "statuses": [
>               {
>                   "application": "JIRA",
>                   "completeKey": "com.atlassian.jira.plugins.jira-
>    healthcheck-plugin:hsqlHealthCheck",
>                   "description": "Checks if the instance is connected to 
>    an HSQL or H2 database",
>                   "documentation": "https:
>    //confluence.atlassian.com/x/1guaEQ",
>                    "failureReason": "You are not using an HSQL or H2 
>    embedded database with a production license.",
>                    "healthy": true,
>                    "id": 0,
>                    "isHealthy": true,
>                    "name": "Embedded database",
>                    "severity": "undefined",
>                    "tag": "Supported Platforms",
>                    "time": 1518726326309
>                },
>                {
>                    "application": "JIRA",
>                    "completeKey": 
>    "com.atlassian.jira.plugins.jira-healthcheck-plugin:eolHealthCheck",
>                    "description": "Checks if the running version of JIRA 
>    is approaching, or has reached End of Life.",
>                    "documentation": 
>    "https://confluence.atlassian.com/x/HjnRLg";,
>                    "failureReason": "Unable to verify the End of Life 
>    date for version '7.4.x'. The check has not been performed.",
>                    "healthy": true,
>                    "id": 0,
>                    "isHealthy": true,
>                    "name": "End of Life",
>                    "severity": "undefined",
>                    "tag": "Supported Platforms",
>                    "time": 1518726326316
>                },
>    {
>                    "application": "JIRA",
>                    "completeKey": 
>    
> "com.atlassian.jira.plugins.jira-healthcheck-plugin:luceneSupportHealthCheck"
>    ,
>                    "description": "Checks the state of the search index 
>    is consistent with the database.",
>                    "documentation": 
>    "https://confluence.atlassian.com/x/9IUfL";,
>                    "failureReason": "The issue index is inconsistent with 
>    the database state.",
>                    "healthy": false,
>                    "id": 0,
>                    "isHealthy": false,
>                    "name": "Lucene",
>                    "severity": "major",
>                    "tag": "Indexing",
>                    "time": 1518726326372
>                },
>     
>    ####################
>    ## results / output of "Get health result
>     
>    TASK [Get health result] 
>    
> ******************************************************************************************************************************************************************************************
>    task path: /home/user/jiraHealth.yml:25
>    ok: [localhost] => (item=) => {
>       "changed": false,
>       "item": ""
>    }
   
   
The issue I am having is that my second task is not storing the result I am 
looking for. What I am trying to do is from all of the data structure, I 
want to find the one that has the key named *name *with the value of 
*Lucene* and for that data structure, give me the result of *isHealthy* so 
that I can use that result to run a third task. As you can see from the 
output of the data, *isHealthy *is *false* but my second task is not 
storing that value in *item*. What am I doing wrong here with my filter? 
Basically, I want to create and run a third task that is like this based on 
the *isHealthy *value:

- name: Reindex db 
  command: runthis
  when: "{{ name_Lucene_query }}" == false


...but I can't get to that third task to run yet until my second task gets 
the value I am looking for. Any help is greatly appreciated.

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/ff35e970-8a2c-427b-b3eb-ea570e1c8931%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to