I assume I'm making some strange error here, but I cannot figure out what 
the error is. 

I have a "changed_when" clause I've constructed that never seems to work.  
However, if I take out the clause into its own debug statement, it seems to 
work.  

I have reproduced this with the following ansible: 

- hosts: localhost
  gather_facts: False
  tasks:
    
  - name: Update Jenkins-Jobs on Jenkins Master - docker container
    command: |
      echo "INFO:jenkins_jobs.cli.subcommand.update:Updating jobs in 
['./jobs/'] ([])
            INFO:root:Caching type parameters of parameters = 
jenkins_jobs.modules.parameters:Parameters
            INFO:root:Caching type builders of builders = 
jenkins_jobs.modules.builders:Builders
            INFO:jenkins_jobs.builder:Number of jobs generated:  1
            INFO:jenkins_jobs.cli.subcommand.update:Number of jobs updated: 
0
            INFO:jenkins_jobs.builder:Number of views generated:  0
            INFO:jenkins_jobs.cli.subcommand.update:Number of views 
updated: 0
      "
    register: jjb_update
    changed_when: 
      - ( jjb_update.stdout_lines | regex_replace('.*jobs 
updated.\s+(\d+).*', '\1') != '0' )

  - name: Number of jobs updated
    debug:
      msg: |
        {{ jjb_update.stdout_lines | regex_replace('.*jobs 
updated.\s+(\d+).*', '\1') }}

  - name: Number of jobs updated equals 0?
    debug:
      msg: |
        {{ jjb_update.stdout_lines | regex_replace('.*jobs 
updated.\s+(\d+).*', '\1') == '0' }}



The output I get in both 2.8.6 and 2.9.1 is 

TASK [Update Jenkins-Jobs on Jenkins Master - docker container] 
************************************************************************************************************
changed: [localhost]

TASK [Number of jobs updated] 
**********************************************************************************************************************************************
ok: [localhost] => {
    "msg": "0\n"
}

TASK [Number of jobs updated equals 0?] 
************************************************************************************************************************************
ok: [localhost] => {
    "msg": "True\n"
}


If the output is 0 and the check is true, the first task should NOT show 
changed.  

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/9a835ec6-845a-470a-af8d-dc268f46e4af%40googlegroups.com.

Reply via email to