Age | Commit message (Collapse) | Author |
|
|
|
Based on a Stack Overflow question, it was noted that the documentation
for `file_line` isn't complete and the underlying behaviour somewhat
confusing.
https://stackoverflow.com/questions/46468922/how-to-change-the-contents-of-a-file-by-using-puppet/46473458
In this patch I add additional unit tests and better examples and
complete documentation.
|
|
Fix filenames of two function spec tests
|
|
(MODULES-5546) add check for pw_hash
|
|
Older versions of Puppet end up choking on the sensitive data type check in the pw_hash function added in 42d4ea7af9197f77a3062727eb166c719ca6296a. this adds a check for the Sensitive class and then the type of the arg, so that if the class has not been declared, it will just move on.
|
|
|
|
Add validate_domain_name function
|
|
|
|
Add new file_line option append_on_no_match
|
|
(FACT-932) Add new function, fact()
|
|
|
|
Also includes a small fix to integer_spec so tests pass.
|
|
tkishel/MODULES-5003-file_line_does_not_change_multiple_lines_when_one_matches
(MODULES-5003) file_line does not change multiple lines when one matches
|
|
|
|
The exists? method is called to determine the need to call the create and
destroy methods. When the ensure, match, and multiple attributes are defined,
the exists? method needs to return false unless all the lines that match the
match attribute equal the line attribute.
The first commit is minimal, and implements this change.
The second commit normalizes the code, which I needed for comprehension.
|
|
The exists? method is called to determine the need to call the create and
destroy methods. When the ensure, match, and multiple attributes are defined,
the exists? method needs to return false unless all the lines that match the
match attribute equal the line attribute.
The first commit is minimal, and implements this change.
The second commit normalizes the code, which I needed for comprehension.
|
|
The tests weren't being run. Total tests increase from 2742 to 2769.
Also fix 'when using a class extending String' test.
It had been failing with...
```
RuntimeError:
can't modify frozen AlsoString
```
|
|
|
|
(Modules 4377) Causes ensure_packages to accept concurrent declarations with ensure => 'present' and 'installed'
|
|
(MODULES-5003) file_line fix all broken lines
|
|
This reverts commit 409a974095a3f5b637e091494b5d14b451c5de78.
After thinking about this, use case, and function naming, I think it's
probably best for now to keep things simple and let `fact()` be
single-purpose for looking up facts with no potentially confusing
extensions. The only use case where the name makes sense is where it's
being used on the `$facts` hash, and I think we'd rather in that
circumstance promote the raw use of `fact()`.
|
|
|
|
Because sometimes people want to use an alternative data set, but treat
it like it's a set of facts.
|
|
The fact() function allows dot-notation reference to facts. It is an
alternative to using $facts directly with array-indexing. Array-indexing
is often onerous to use since it doesn't align with how structured facts
are accessed elsewhere in the ecosystem and if any element in a
multi-step path doesn't exist, array indexing can cause a compilation
failure.
Example usage:
fact('os.family')
|
|
Do this by making it a property. The idea is to get rid of the warning
that appears when a Sensitive value is passed to the line attribute.
|
|
This commit adds a simple workaround for the problem described in
PUP-7650. The workaround is harmless and can remain in place regardless
of if the fix for PUP-7650 is in place or not.
|
|
```
file { '/tmp/somefile':
ensure => 'file',
}
File['/tmp/somefile'] -> Package <| |>
ensure_packages($somearray)
```
If $somearray is undefined or one of the elements contains an empty
string, an error like the following is thrown:
Could not find resource 'Package[]' for relationship from
'File[/tmp/somefile]' on node $::fqdn
|
|
|
|
|
|
- `defined_with_params` calls `findresource(reference.to_s)`
- `findresource` is
https://github.com/puppetlabs/puppet/blob/4.8.1/lib/puppet/parser/compiler.rb#L407
and points to
https://github.com/puppetlabs/puppet/blob/4.8.1/lib/puppet/resource/catalog.rb#L352
- This calls `Puppet::Resource.new` with the type
https://github.com/puppetlabs/puppet/blob/4.8.1/lib/puppet/resource/catalog.rb#L366
- This ends up calling `resource_type` via
https://github.com/puppetlabs/puppet/blob/4.8.1/lib/puppet/resource.rb#L317-L319
and that ends up declaring the type via the autoloader api at
https://github.com/puppetlabs/puppet/blob/4.8.1/lib/puppet/resource.rb#L390
- But why does the autoloader API fail to find it in the current
environment?
- Okay, so when the autoloader is trying to find the type, it uses the
typeloader to look it up in the current environment
https://github.com/puppetlabs/puppet/blob/4.8.1/lib/puppet/metatype/manager.rb#L171
- this calls `get_file` and `mark_loaded`
https://github.com/puppetlabs/puppet/blob/4.8.1/lib/puppet/util/autoload.rb#L64-L67
Suggested workaround is to pass a literal type instead of a string to
`findresource` to fix in stdlib, and also to fix loading/requiring of
type in core puppet.
This seems to affect more recent versions of puppet, so fallback to
original behavior on pre-4.5
|
|
Regression from #726
|
|
Add glob function
|
|
|
|
Addition of new length function
|
|
|
|
(MODULES-4473) join strings for i18n parser
|
|
* (#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
|
|
|
|
This commit joins all strings that are split over two lines with a plus,
backslash, or double less than so that our magical i18n parser can wave
over the module and mark every ruby string with our i18n function.
|
|
|
|
If user declares ensure_package concurrently with ensure values
'present' and 'installed', function fails as if values were different
Change causes function to interpret ensure => 'installed' as 'present',
effectively elliminating the error
Also works if user doesn't specify ensure value, since 'present'
is the default
|
|
|
|
Add puppet_server fact to return agent's server
|
|
Add pry() function from hunner-pry
|
|
(MODULES-4188) Add UUID generation function
|
|
HAIL9000/issue/master/MODULES-3829_add_tests_for_ensure_resources
(MODULES-3829) Add tests for ensure_resources
|
|
Prior to this commit, if a hash was passed in as an
argument to the ensure_packages function a method of
hash duplication would be used that is not supported
with versions of ruby older than 2.0. In order to
ensure the method is compatible with older ruby versions,
switch to a different method of duplication.
Additionally add tests to prevent further regressions.
|
|
* Generates UUID based on a given FQDN string and the DNS namespace (6ba7b810-9dad-11d1-80b4-00c04fd430c8)
|
|
|
|
Prior to this commit, users coming to the type_of function would not realize that the type function in puppet does the same thing and is preferred over type_of.
After this commit, we have a comment indicating the above.
|