Issue #4288 has been updated by Paul Berry.
Status changed from Needs design decision to Accepted
Assignee set to Paul Berry
I'm investigating this. At the moment it looks like it was an intentional
behavior change--we modified the way exec works so that it double-checks that
the command being executed is actually available on the system before trying to
execute it. This doesn't work if the command uses bash constructs (such as
"if").
I'll do some digging to verify that this was an intentional change, and to see
if there's a better way to do it. In the meantime, here is a workaround that
should get you going again: explicitly execute the command using the shell,
like this:
<pre>
exec { 'foo':
command => 'bash -c "if [ \"abc\" != \"def\" ]; then echo \"this is a test\";
fi"',
logoutput => true
}
</pre>
instead of this:
<pre>
exec { 'foo':
command => 'if [ "abc" != "def" ]; then echo "this is a test"; fi',
logoutput => true
}
</pre>
----------------------------------------
Bug #4288: Error if exec command starts with shell built-in like "if"
http://projects.puppetlabs.com/issues/4288
Author: Alan Harder
Status: Accepted
Priority: Normal
Assignee: Paul Berry
Category: exec
Target version:
Affected version: 2.6.0
Keywords:
Branch:
<pre>exec { 'foo':
command => 'if [ "abc" != "def" ]; then echo "this is a test"; fi',
logoutput => true
}</pre>
With the above test case on 2.6.0rc4 (on Solaris 10 with ruby 1.8.7) I get:
<pre>err: /Stage[main]//Node[...]/Exec[foo]/returns: change from notrun to 0
failed: Could not find executable 'no if in /usr/bin /usr/sbin'</pre>
A command like this worked in 0.25.5.. is the behavior change intentional, or
is this a bug?
Side node: if I add whitespace at the front (command => ' if [ .....') then the
error says *Could not find command ''*
--
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://projects.puppetlabs.com/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.