Onliif looks at exit code, not at echo value.

If you are piping - it will be exit code of the last command.

Use grep -q or something to get a non-zero code
On 20 Jan 2014 13:02, "Jan-Frederic Markert" <
[email protected]> wrote:

> Hey,
>
> we want to check a condition before executing some commands.
> If a line is existing in a list of architectures, the command should not
> run - and vice versa.
> So we use grep and count the words (wc -l).
>
> The expected behaviour: if the onlyif-command returns 0, execute. If not,
> don't.
> (according to reference:
> http://docs.puppetlabs.com/references/latest/type.html#exec-attribute-onlyif
> )
>
> Running the onlyif-command separately from puppet exectution, the return
> value is as expected.
> But the Exec-command is executed every time, despite the actual return
> value.
> Also, running "echo 0" as well as "echo 1" as onlyif triggers an execution.
>
> Here is the code snippet used in our manifest
>
> exec { "hammer execution":
>>         command => "hammer architecture create --name x86_64 \
>>                 && hammer environment create --name cloudbox",
>>         path    => "/usr/local/bin/",
>>         require => [
>>                         File["/var/log/foreman/hammer.log"],
>>                         File["/etc/foreman/cli_config.yml"],
>>                         Package["hammer_cli_foreman"],
>>                 ],
>>        # onlyif  => "hammer architecture list | /bin/grep 'x86_64' |
>> /usr/bin/wc -l",
>>         onlyif => "/bin/echo 1",
>>         user    => ccka,
>>         environment     => ["HOME=/home/ccka"],
>> }
>
>
> Does anyone have an idea what's going wrong?
>
> Regards,
> Fredi
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" 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/puppet-users/b44c8522-14e2-48a0-9459-7a2a6b0c3721%40googlegroups.com
> .
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" 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/puppet-users/CACzr%3DFfFAcOSSAVG%3D1EOmw2NJZuze3xhoPUNmQDLpbvkozjsSw%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to