Age | Commit message (Collapse) | Author |
|
|
|
* (#FM-6068) allow file encoding to be specified
Add a new parameter `encoding` to allow non UTF-8 files to specify a file encoding. This prevents receiving the error message "invalid byte sequence in UTF-8" when special characters that are not UTF-8 encoded appear in the input stream, such as the copyright symbol.
* (#FM-6068) allow file encoding to be specified
Added docs and tests as requested
|
|
|
|
|
|
Prior to this commit, due to a bug in the exists? method in the
file_line provider, match_for_absence didn't work as described (or
at all really). Update the exists? logic so that match_for_absence
works as described.
Additionally add a unit test to prevent regressions and update the
documentation for the parameter to reflect the fact that it is
ignored when `ensure => present`.
|
|
jearls/MODULES-2370-update-validate-to-not-require-line-when-matching-for-absence
[MODULES-2370] file_line.rb: Fix `line` attribute validation
|
|
`file_line` type: During validation, do not require `line` attribute if:
* `ensure` is `absent`,
* `match` is not empty,
* and `match_for_absence` is `true`.
Also update `spec` tests to reflect this.
|
|
|
|
Copy a function from puppetlabs/apache, created by Benedikt Bock by
55cc3b4e8f4bc859a1255cb57be2c7923005d822 .
This function enclose IPv6 addresses in square brackets.
It takes an array of ip addresses and encloses the ipv6 addresses with
square brackets.
Co-Authored-By: Benedikt Bock <benedikt_bock@web.de>
|
|
* is_absolute_path returns boolean true if the given path
is absolute, returns false otherwise.
* works for windows and unix
|
|
Split the `destroy` method of the file_type::ruby provider into two
private methods: `handle_destroy_line` which is the same as the previous
`destroy` method, and `handle_destroy_with_match` which will destroy any
line which matches the `match` parameter, raising an error if multiple
lines match and the `multiple` parameter is not `true`. This new
behavior is only used if the new boolean parameter `match_for_absence`
is `true` (it defaults to `false`).
|
|
Puppet's boolean parameter type is only available in Puppet 3.3 and
higher, so change file_type's new "replace" parameter to a regular
parameter with true and false as possible values. This matches the
existing "multiple" parameter.
|
|
|
|
parameter multiple in function handle_create_with_after
Without this, file_line resource without the `match` parameter but with the `after` param will throw an error if there are multiple matches for the after expression. This patch creates the handling for the `multiple` parameter in handle_create_with_after. This allows you to add a line after the `after` expression if it appears at multiple points in a file.
Updated reference to `file_line` in the README to reflect that the multiple parameter can be set when using `after` and/or `match` as the matching regex.
|
|
|
|
Changed append line to open in 'w' mode and have to rewrite lines in order to append new line
|
|
The `type()` function will cease to work on the new parser because 'type'
is a reserved keyword. The `type3x()` function may be used to continue
similar functionality, but will be deprecated in favor of the built-in
typing system.
The `type_of()` function has been included to introspect types in the
new parser.
|
|
Merge 4.5.x into master
|
|
Based on dirname code. Includes RSpec tests and docs.
|
|
The `match` attribute was validated to match `line`, except that in many
cases (even the example given in the docs) a user would want to match a
line entirely different from the new line.
See comments on the original commit
https://github.com/puppetlabs/puppetlabs-stdlib/commit/a06c0d8115892a74666676b50d4282df9850a119
and ask
https://ask.puppetlabs.com/question/14366/file_line-resource-match-problems/
for further examples of confusion.
|
|
This conversion is done by Transpec 2.2.1 with the following command:
transpec spec/unit
* 53 conversions
from: obj.should
to: expect(obj).to
* 19 conversions
from: == expected
to: eq(expected)
* 5 conversions
from: lambda { }.should
to: expect { }.to
* 2 conversions
from: be_true
to: be_truthy
For more details: https://github.com/yujinakayama/transpec#supported-conversions
|
|
(MODULES-905) Narrow the confinement in bool2str
|
|
The extended spec tests validate that the common types of values
that could be passed to bool2str() are rejected.
|
|
This reverts commit 8499ebdb7f892f2623295058649c67a5553d4732, reversing
changes made to 08b00d9229961d7b3c3cba997bfb35c8d47e4c4b.
|
|
(MODULES-905) Add bool2str() and camelcase() for string manipulation
|
|
file_line supports adding lines after a match, but there are use cases when
having "before" would be useful. For example, in Debian-based OS's, the last
line of /etc/rc.local is "exit 0" it's an incredible pain to deal with
that scenario today.
This commit adds a 'before' parameter to the file_line type, and implements
it for the ruby provider.
|
|
|
|
rspec-puppet matchers are defined for tests which exist in
spec/functions, but the function unit tests lived in
spec/unit/puppet/parser/functions. This moves them to the correct place
for using rspec-puppet
|
|
|
|
|
|
complaining loudly
|
|
Allow concat to take non-array second parameters
|
|
PUP-1724 Don't modify the paramaters to deep_merge
|
|
This work updates a number of Gems to the latest versions (rspec,
rspec-puppet), and updates and tweaks a bunch of tests to work
with the updated gems.
|
|
Also improve and extend concat tests to lock down functionality
|
|
Instead of modifying the first paramater of deep_merge due to the
use of the merge! function, instead use merge to return a copy of
the merged object. This allows one to continue to use the original
first parameter after the call to deep_merge.
|
|
|
|
This version of pick() does not error out, instead always returning at least
the last argument, even if that too has no "real" value.
|
|
I expect a function called "is_numeric" or "is_integer" to check if a
variable is an integer or a number even if the variable passed by isn't
a string nor a number at all. Otherwise we should call them
is_string_a_number and is_string_an_integer and we have then to remove
the check for .is_a?(Number) and .is_a?(FixNum)
now checking also if it is a hex or octal number
improved/corrected checking for integer
* checking against Integer instead of Fixnum so that
also Bignum is matching
* now .is_a? Integer is done first so this is quiet fast
Now many types of numerics are recognized.
1. Float/Integer values (signed or unsigned, with exponent or without)
2. octal and hex check
3. except hex numbers and the "0." in a float lower than 1 can be prefixed
with a '0'.
whitespaces shouldn't be allowed as prefix/suffix
string representation of numbers should not contain any type of
whitespace.. the user is responsible to clean a string before checking
it..
fix documentation and added more checks
tried to be 99.9% backward compatible
* for now the decission is post poned if hex and octal numbers
should be allowed or not (is_numeric)
* native Bignum is now also a valid integer class
fix problem with old 1.8 ruby and Hash.to_s/Array.to_s
In ruby < 1.9 array and hashes would be recognized as numeric
if they have a special format:
1.8:
[1,2,3,4].to_s = "1234"
{1=>2}.to_s = "12"
1.9:
[1,2,3,4].to_s = "[1, 2, 3, 4]"
{1=>2}.to_s = "{1=>2}"
|
|
|
|
(#23381) add is_bool() function
|
|
calling rspec directly makes is_function_available.rb not pass ruby -c
|
|
|
|
with the rest.
|
|
|
|
Issue #20200 notes that the merge function does not
support nested hashes.
To prevent unintended side effects with changing merge,
add a deep_merge function instead.
|
|
Update pick error message "at least one non empty value"
|
|
This closes GH-180
|
|
|
|
Right now validation seems to be done against zero byte generated temp
files. We need to close the file before executing validation against it.
|