Age | Commit message (Collapse) | Author |
|
Right now validation seems to be done against zero byte generated temp
files. We need to close the file before executing validation against it.
|
|
Without this patch the stdlib spec tests are failing against recent
versions of Puppet. The root cause of this problem is a change in the
behavior of create_resources in Puppet 6baa57b. The change in behavior
caused the :name key to be omitted from the hash returned by
Puppet::Parser::Resource#to_hash which in turn is causing the test
failure.
This patch addresses the problem by updating the test to match the
description of the example. Only the attribute :ensure is checked
instead of the full hash itself.
|
|
small fix to delete_values_spec.rb and README.markdown
|
|
|
|
|
|
extend the validate_slength function to accept a minimum length
|
|
An optional third parameter can be given a min length. The function
then only passes successfully, if all strings are in the range
min_length <= string <= max_length
update and fix function and unit tests
the check for the minlength has to be written differently
because 0 values should be possible. We now check
a) if the input is convertible, and throw a ParseError and
b) if the input .is_a?(Numeric) and ask for a positive number
it's not as clean as for maxlength, but keeps a similar behaviour
refined the error checking for the min length
try to convert to Integer(args[2]) and fail,
if it's not possible
changed the tests accordingly to the new parameter checking
|
|
|
|
Conform to RFC per comments on: https://github.com/puppetlabs/puppetlabs-stdlib/pull/164
Conflicts:
lib/puppet/parser/functions/uriescape.rb
spec/unit/puppet/parser/functions/uriescape_spec.rb
|
|
Without this commit the file_line type will outright fail if multiple
lines match the given regex. This commit allows the file_line type and
provider to optionally match and modify all matching lines.
Changeset rebased into a single commit by Adrien Thebo <adrien@puppetlabs.com>
|
|
[#20862] Add functions to validate ipv4 and ipv6 addresses
|
|
|
|
Replace `lambda` with `expect` for making an error expectation
Add an explicit error message in expectation
|
|
|
|
|
|
Conflicts:
lib/puppet/parser/functions/range.rb
spec/unit/puppet/parser/functions/range_spec.rb
|
|
Adding base64 function and spec test. Included a bonus fix to
validate_slength_spec.rb to put the expectation message in the right
place.
|
|
|
|
|
|
|
|
(#20684) Add array comparison functions, difference, intersection and union
|
|
don't fail on undef variable in merge
|
|
Included is code, tests and documentation for the difference, intersection
and union functions for comparing arrays.
|
|
added test that '' is accepted
changed a test that a number is correctly rejected with a type error
|
|
* fix_facts_dot_d_with_pe:
(maint) Indent facter_dot_d with 2 spaces
(#20582) Restore facter_dot_d to stdlib for PE users
Revert "Revert "Revert "Merge branch 'hkenney-ticket/master/2157_remove_facts_dot_d'"""
(maint) Update Gemfile with GEM_FACTER_VERSION
closes #153
|
|
Without this patch Puppet Enterprise users who install the most recent
version of stdlib lose the ability to resolve certain facts critical to
the operation of Puppet Enterprise. These facts are defined externally
in the file
`/etc/puppetlabs/facter/facts.d/puppet_enterprise_installer.txt`.
As an example, Puppet Enterprise catalogs fail to compile if the
`fact_stomp_server`, and `fact_stomp_port` facts are not defined.
`facter_dot_d` was removed from stdlib version 4 because Facter version
1.7 now supports external facts defined in
`/etc/puppetlabs/facter/facts.d/puppet_enterprise_installer.txt`.
Puppet Enterprise does not yet include Facter 1.7, however. The most
recent PE release, 2.8.1, includes Facter 1.6.17. With this version of
Facter, users who replace the version of stdlib that ships with PE with
the most recent version from the Forge will lose the ability to resolve
facts from
`/etc/puppetlabs/facter/facts.d/puppet_enterprise_installer.txt`.
This patch addresses the problem by detecting if Facter version < 1.7 is
loaded. If so, then the facter_dot_d.rb facts will be defined using the
stdlib custom fact. If Facter >= 1.7 is being used then stdlib will not
define external facts.
|
|
This splits out the ensure_resource expectations into separate
blocks for clarity. Per adrienthebo's recommendation.
|
|
ensure_resource function
This patch allows an array of resource titles to be passed into
the ensure_resource function. Each item in the array will be
checked for existence and will be created if it doesn't already
exist.
|
|
|
|
Without this patch we don't have a spec test to make sure the anchor
resource type passes notify events along. This patch addresses the
problem by using RSpec Puppet to build a catalog, apply the catalog,
then pull a resource out of the transaction and make sure the resource
was triggered.
|
|
Without this patch the expected behavior of the count() function when
dealing with an out of bound array index and with a hash key that does
not exist is implicitly encoded in the spec examples. This is a problem
because the expected behavior is not clear for something similar to the
following example:
node default {
$ary = [ 1, 2, 3 ]
$ary_undef = $ary[100]
$hsh = { 'one' => 1 }
$hsh_undef = $hsh['dne']
$count = count(['hi', $ary_undef, $hsh_undef])
notice "Count is ${count}"
}
This patch addresses the problem by making the expected behavior
explicit in the examples.
|
|
Similar to the ruby count method on arrays.
|
|
This change is to implement a new function "any2array", which will take any
argument or arguments and create an array which contains it. If the argument
is a single array then it will be returned as-is. If the argument is a single
hash then it will be converted into an array. Otherwise (if there are more than
one argument, or the only argument is not an array or a hash) the function will
return an array containing all the arguments.
|
|
* use Float() to process string arguments
* get rid of doubly nested arrays
* removing needless ternary operator
* improving error message handling
|
|
This is a bit more heavy-handed than I might like, but it does appear to
do the right things:
* accepts numeric input appropriately, truncating floats
* matches string input against a regex, then coerces number-looking
strings to int
* makes a best effort to coerce anything else to a string, then subjects
it to the same treatment
* raises an error in the event of incorrect number of arguments or
non-number-looking strings
I've also included some additional unit tests.
|
|
No more coercing to String and regex matching. Instead, we now coerce
to Integer at the beginning or raise an error if we cannot coerce to
Integer.
A consequence of this change is that the function will now accept
blatantly non-numeric strings as input, and return false. This seems a
bit goofy to me, but it's how String#to_i works. If we really don't
like this, then I'm open to suggestions.
|
|
Also ignore rspec fixtures directory
|
|
|
|
|
|
Puppet passes numbers as String to functions, but it makes more sense to
compare them as Numeric.
But sometimes Puppet passes them as the wrong type, see:
https://projects.puppetlabs.com/issues/19812
|
|
|
|
|
|
This function provides a simple wrapper around
Puppet::Parser::Functions.function for access within Puppet manifests.
This will allow users to check whether or not a plugin or functionality
such as hiera is installed on the server.
|
|
|
|
|
|
|
|
The function only uses the first argument, so raise an error with
too few arguments *and* with too many arguments.
|
|
|
|
The function only uses the first argument, so raise an error with
too few arguments *and* with too many arguments.
|
|
This reverts commit f7a18189ec338b01b0fc89d75def832753af3868, reversing
changes made to 36a7b29630a4d4de17af79b5dd4e9491ec20b123.
I'm reverting this change because of concerns raised by Peter Meier that
it duplicates the "in" operator in the DSL. The "in" operator is new
information that I did not posses when I made the decision to merge.
Because of this new information I'm un-merging and continuing the
discussion in the comments of
https://projects.puppetlabs.com/issues/19272
Reference: GH-130
|