Age | Commit message (Collapse) | Author |
|
|
|
As described in PUP-6422,
ensure_resources('File[/tmp/a]', { owner => undef })
would not actually create the file. This fixes it, and adds tests to prove
it.
|
|
To maintain backwards compatibility, add a delete_regex function instead
of modifying delete itself.
|
|
Add the default value to the "loadyaml" function
|
|
|
|
(MODULES-1439) Adds any2bool function
|
|
|
|
Mergeback 4.12.x
|
|
* Basically a combination of `string2bool` and `num2bool`
|
|
* Add shell_escape function, shell_join function & shell_split function
|
|
This value will be returned if the is no file
to load or a file could not be parsed.
It's similar to the "parseyaml" function's
default value.
Add the "loadjson" function too
|
|
This reverts commit 0d46515b57cea60d4d5f1e4d81a75a448a7a73a8.
It introduced backwards-incompatible functionality.
|
|
|
|
|
|
(MODULES-3246) Fix concat with Hash arguments.
|
|
Add validate_email_address function
|
|
|
|
85d5ead Updated the concat function so that it wouldn't modify the
original array. A side-effect of this change is that it now always calls
`Array()` on the second argument. If thit is a Hash, this results in
`to_a` being called on the hash, which converts it to an array or
tuples. This is undesired.
Update the behaviour so that it doesn't (indirectly) call `to_a` on
anything, instead test for the type of the argument, wrapping it in an
array if it's not already an array.
|
|
Psych::SyntaxError is a RuntimeException. This still needs to
catch that. This was uncovered by the recent move to catch StandardError
rather than the catchall Exception that was here before.
|
|
|
|
|
|
ensure_packages.rb: Modifed to pass hiera parameters (as hash,array) as first argument
|
|
New function "ensure_resources()" to support passing hash as parameter OR from hiera backend
This new function is extension of ensure_resource() which will now support to pass multiple values as hash/array OR from hiera backend variables in title argument with additional parameters needed.
It will
process multiple values for a resource type from the passed argument & pass each entry (type, title, params) to ensure_resource() in required format for further processing.
Now user can have duplicate resource check functionality extended to multiple entries with this new function.
Use:
For multiple resources using
hash:
ensure_resources('user', {'dan' => { gid => 'mygroup', uid =>'600' } , 'alex' => { gid => 'mygroup' }}, {'ensure' =>'present'})
From Hiera Backend:
userlist:
dan:
gid: 'mygroup'
uid: '600'
alex:
gid: 'mygroup'
Call:
ensure_resources('user',hiera_hash('userlist'), {'ensure' => 'present'})
ensure_packages()
Modified to also support Hash type argument for packages
This modification will call newly added ensure_resources() for processing Hash as second argument.
The original functionality remains same for Array type arguments.
Use:
hiera:
packagelist:
ksh:
ensure: latest
mlocate: {}
myrpm:
provider: rpm
source: "/tmp/myrpm-1.0.0.x86_64.rpm"
install_options:
--prefix:
/users/home
openssl:
provider: rpm
source: "/tmp/openssl-1.0.1e-42.el7.x86_64.rpm"
Call:
ensure_packages($packagelist)
|
|
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>
|
|
Add is_ipv4_address and is_ipv6_address functions
|
|
|
|
Deprecates #try_get_value()
|
|
These are useful when making decisions based on the type of IP
address received.
|
|
The documentation in `validate_ip_address` references `validate_bool`,
but I believe this should read `validate_ip_address` instead, which
makes more sense.
Looks like this was copied from `validate_ipv4_address`, which I fixed
in 7b068781.
|
|
Add a function to validate an x509 RSA key pair
|
|
Add a function to validate an x509 RSA certificate and key pair, as
commonly used for TLS certificates.
The rationale behind this is that we store our TLS certificates and
private keys in Hiera YAML files, and poor indentation or formatting in
the YAML file could cause a valid certificate to be considered invalid.
Will cause the Puppet run to fail if:
- an invalid certificate is detected
- an invalid RSA key is detected
- the certificate does not match the key, i.e. the certificate
has not been signed by the supplied key
The test certificates I've used in the spec tests were generated using
the Go standard library:
$ go run $GOROOT/src/crypto/tls/generate_cert.go -host localhost
Example output:
==> cache-1.router: Error: Not a valid RSA key: Neither PUB key nor PRIV key:: nested asn1 error at /var/govuk/puppet/modules/nginx/manifests/config/ssl.pp:30 on node cache-1.router.dev.gov.uk
|
|
Add clamp function
|
|
Clamp keeps value within the range.
Employ of soft() makes the whole thing is independant of order.
|
|
|
|
* is_absolute_path returns boolean true if the given path
is absolute, returns false otherwise.
* works for windows and unix
|
|
seeded_rand is needed for repeatable randomness across nodes in a cluster
|
|
Add validator for any IP address
|
|
Provide a validator for IP addresses, regardless they are IPv4 or IPv6,
and its documentation.
|
|
The documentation in `validate_ipv4_address` references `validate_bool`,
but I believe this should read `validate_ipv4_address` instead, which
makes more sense.
|
|
add functionality to bool2str function
|
|
|
|
Some modules or module versions don't have a metadata.json file, but we
might still want to use the load_module_metadata function on them. The
lack of a file can still give us important information. For example, it
might tell us that the version of the module installed is "very old"
even if we can't read the version number directly. This patch adds a
parameter to let the user specify if an empty file is acceptable. To
preserve backwards compatibility it does not change the current default
behavior, which is to raise an error if metadata.json does not exist.
|
|
|
|
Maintain the old behavior in the case where the optional second
parameter isn't passed. Also, adding arity is backwards incompatible since
stdlib still supports 2.7, so remove that.
|
|
|
|
|
|
[MODULES-2462] Improve parseyaml function
|
|
* previously the str2bool function did not accept 'TRUE' as a bool
type. This causes the function to now accept TRUE, FALSE strings
as a boolean type in order to be converted to a proper boolean.
* This would also cause Y,N, YES, NO to be accepted as boolean types
as well.
|
|
Add a new function "try_get_value"
|
|
* Extracts a value from a deeply-nested data structure
* Returns default if a value could not be extracted
|