Issue #3123 has been reported by Chris Blumentritt. ---------------------------------------- Bug #3123: onlyif and unless do not work when using subshell with in the statement http://projects.reductivelabs.com/issues/3123
Author: Chris Blumentritt Status: Unreviewed Priority: Normal Assigned to: Category: exec Target version: Affected version: 0.25.3 Keywords: Branch: Feel free to change that subject as I don't really know how to explain the problem. I have a situation where I have to diff the output of commands. This can be done by doing something like: diff <(echo a) <(echo a) This will return an exit status of 0 diff <(echo a) <(echo b) This will return an exit status of 1 unless and only if seems to ignore this and always run the command specified in the exec statement Attached is a manifest to reproduce the problem. Below is a debug trace of the out put when running the attached manifest. I have verified this with 0.25.1 and 0.25.3 on karmic and 0.25.3 in snow leopard (those are the only versions I tried). tornado:scratch$ puppet --trace --debug exectest.pp debug: Creating default schedules debug: Failed to load library 'shadow' for feature 'libshadow' debug: Failed to load library 'selinux' for feature 'selinux' info: Applying configuration version '1264667348' debug: //Exec[test unless exit 1]: Executing check 'diff -q <(echo a) <(echo b)' debug: Executing 'diff -q <(echo a) <(echo b)' debug: //Exec[test unless exit 1]: Changing returns debug: //Exec[test unless exit 1]: 1 change(s) debug: //Exec[test unless exit 1]: Executing 'echo foo > /tmp/exec-unless1' debug: Executing 'echo foo > /tmp/exec-unless1' notice: //Exec[test unless exit 1]/returns: executed successfully debug: //Exec[test unless exit 0]: Executing check 'diff -q <(echo a) <(echo a)' debug: Executing 'diff -q <(echo a) <(echo a)' debug: //Exec[test unless exit 0]: Changing returns debug: //Exec[test unless exit 0]: 1 change(s) debug: //Exec[test unless exit 0]: Executing 'echo foo > /tmp/exec-unless0' debug: Executing 'echo foo > /tmp/exec-unless0' notice: //Exec[test unless exit 0]/returns: executed successfully debug: //Exec[test onlyif exit 0]: Executing check 'diff -q <(echo a) <(echo a)' debug: Executing 'diff -q <(echo a) <(echo a)' debug: //Exec[test onlyif exit 0]: Changing returns debug: //Exec[test onlyif exit 0]: 1 change(s) debug: //Exec[test onlyif exit 0]: Executing 'echo foo > /tmp/exec-onlyif0' debug: Executing 'echo foo > /tmp/exec-onlyif0' notice: //Exec[test onlyif exit 0]/returns: executed successfully debug: //Exec[test onlyif exit 1]: Executing check 'diff -q <(echo a) <(echo b)' debug: Executing 'diff -q <(echo a) <(echo b)' debug: //Exec[test onlyif exit 1]: Changing returns debug: //Exec[test onlyif exit 1]: 1 change(s) debug: //Exec[test onlyif exit 1]: Executing 'echo foo > /tmp/exec-onlyif1' debug: Executing 'echo foo > /tmp/exec-onlyif1' notice: //Exec[test onlyif exit 1]/returns: executed successfully debug: Finishing transaction 2166971880 with 4 changes -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://reductivelabs.com/redmine/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
