Just hit a similar thing. I feel that 'passed_when' or 'succeeded_when' would make for simpler playbooks in several cases.
Also - it's not clear from the docs what syntax is allowed fo failed_when. Is it parsed as Python? i.e. any valid Python expression allowed? On Tuesday, 18 November 2014 10:28:28 UTC, ProfHase wrote: > > Okay thanks, maybe I got some problem with the semantics: > > failed_when: > - "'already installed' not in command_result.stderr" > - "command_result.rc == 1" > >> Does not fail if either of the conditions is false ( so it does not > fail if result.rc == 1 and 'already installed' is in stderr) which in this > case is the desired behaviour. > If one reads this task one could think that any of the list is a fail > condition (so if one condition is true, everything fails), so this is not a > real 'OR'? > Maybe there should be a module with 'passed when:' ? > > Thanks > > Am Montag, 17. November 2014 22:11:23 UTC+1 schrieb Michael DeHaan: >> >> Multiple checks looks like: >> >> failed_when: color == 'blue' or number == 5 >> >> Note that if you are telling when not to fail, you will need to negate >> your condition. >> >> Ansible denotes lists of conditions as "ORs" so: >> >> failed_when: >> - color == 'blue' >> - number == 5 >> >> Is equivalent syntax. >> >> >> >> On Thu, Nov 13, 2014 at 8:18 AM, ProfHase <[email protected]> wrote: >> >>> Hi, >>> when trying to install keys to a java keystore I am using the following >>> task: >>> >>> - name: java install ssl certs >>> shell: >>> source /etc/profile.d/java.sh; >>> cd $JAVA_HOME/jre/lib/security; >>> $JAVA_HOME/bin/keytool -import -noprompt -keystore cacerts -alias {{ >>> item }} -file /tmp/{{ item }}.crt -storepass storepass >>> register: command_result >>> changed_when: "'already exists' not in command_result.stdout" >>> failed_when: "'already exists' not in command_result.stdout" >>> >>> >>> If the key has already been added, keytool returns '1' and writes >>> '...already exists' to stdout. >>> I would like the task not to fail either: >>> - if the key has been added >>> or >>> the key already exists. >>> >>> I tried the condition >>> failed_when: "'already exists' not in command_result.stdout and >>> command_result.rc != 0" >>> >>> >>> >>> But that one does not work (error while evaluating conditional). >>> >>> Any ideas how to achieve this task? >>> Thanks a lot >>> >>> -- >>> 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/b537bc57-b9a4-4543-8cf7-40981a0faa9a%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/ansible-project/b537bc57-b9a4-4543-8cf7-40981a0faa9a%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- 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/e7be3981-5405-4524-8c7e-83dbfd779861%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
