Issue #6746 has been updated by Josh Cooper.
Note to whomever fixes this issue. The regex:
<pre>
if value.is_a?(String)
unless value =~ /^[-\d.]+$/
raise ArgumentError, "The timeout must be a number."
end
Float(value)
</pre>
doesn't do what we want, because it would accept 1.2.3 and then blow up trying
to parse it as a Float. Probably better to just try to try to parse it, and
Float will raise accordingly `ArgumentError: invalid value for Float(): "1.2.3"`
----------------------------------------
Bug #6746: Exec parameters handle arrays inconsistently
https://projects.puppetlabs.com/issues/6746#change-68191
Author: Max Martin
Status: Accepted
Priority: Normal
Assignee:
Category: exec
Target version: 3.x
Affected Puppet version:
Keywords:
Branch:
Currently the timeout parameter to the exec type will accept an array as input,
but the tries and try_sleep parameter do not (as noted by pending tests in the
exec type spec). The way that timeout 'handles' arrays, though, is just by
taking the first item from them and discarding the rest:
newparam(:timeout) do
desc "The maximum time the command should take. If the command takes
longer than the timeout, the command is considered to have failed
and will be stopped. Use any negative number to disable the timeout.
The time is specified in seconds."
munge do |value|
value = value.shift if value.is_a?(Array)
if value.is_a?(String)
unless value =~ /^[-\d.]+$/
raise ArgumentError, "The timeout must be a number."
end
Float(value)
else
value
end
end
defaultto 300
end
None of this is covered in the documentation for exec
(http://docs.puppetlabs.com/references/latest/type.html#exec). We either need
to change the behavior of the other parameters to match this one, come up with
a new, better way to handle arrays, or remove support for handling any input in
arrays. My recommendation is to drop support for arrays for these parameters
altogether, since our current "support" for arrays just discards everything but
the first item, and all of these parameters basically support singleton
arguments anyways.
--
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.