Age | Commit message (Collapse) | Author |
|
It is difficult to use existance of keys in a hash
as a boolean condition in Puppet (see #8705)
This function provides a working solution until
the underlying issue in Puppet can be resolved.
Reviewed-by: Jeff McCune
|
|
* ticket/master/8585_load_yaml_function:
(#8575) Add loadyaml() function
|
|
This change adds a loadyaml() puppet function that takes a path to a
YAML data file and returns the contents as a Puppet variable. There is
currently no validation of the contents of the file.
This commit is intentionally lacking unit tests because of time
constraints.
Reviewed-by: Dan Bode
|
|
|
|
This commit adds a native type that can check if
a line exists and append it to a file.
This use case seems common enough to warrant its
inclusion into stdlib.
Reviewed-by: Jeff McCune
|
|
|
|
The README now provides quick examples of how to take advantage of the
getvar() and validate_hash() functions included in this release of the
stdlib.
|
|
* ticket/master/8010_validate_hash_function:
(#8010) Add validate_hash spec tests
(#8010) Add validate_hash function
|
|
These tests run through a number of example cases and exercise the
behavior of the validate_hash function.
To run, simple execute rspec validate_hash_spec.rb
|
|
This function validates all passed variables are hashes. This is
similar to the validate_bool function and is copied from it.
|
|
* ticket/master/8010_getvar_function:
(#8010) Add getvar() rvalue function
|
|
This isn't directly related to #8010, but rather indirectly fills the
need to allow the end user to configure where data values are looked up.
This allows the namespace to be passed as a class parameter. A module
may then quickly and easily look up data from the user-defined
namespace.
|
|
This file is generated from the puppet-module build command and should
not be included in the repository. If it is, the repository is not
directly usable on a Puppet master because the metadata.json is invalid.
|
|
|
|
Ticket/master/3 anchor resource type
Nan +1'ed on the tech list.
Merging into master.
|
|
Unlike the whit type the anchor type derives from, we are not hacking
the stringify method. We expect the resource to be named simply
Anchor[foo::bar] where the name is "foo::bar".
|
|
With Puppet 2.6.x we do not have a way to specify containment
relationships. In the use case of class ntp { } declaring
ntp::{package,config,service} classes, the ntp class itself should allow
the user to specify before and require relationships to the main ntp
class.
The anchor resource type allows module authors to close the loop on
classes composing the main top level module. For example:
class ntp {
class { 'ntp::package': }
-> class { 'ntp::config': }
-> class { 'ntp::service': }
# These two resources "anchor" the composed classes
# such that the end user may use "require" and "before"
# relationships with Class['ntp']
anchor { 'ntp::begin': } -> class { 'ntp::package': }
class { 'ntp::service': } -> anchor { 'ntp::end': }
}
Using this pattern, the module user may then simply declare relationships to
the ntp class as they expect:
class { 'ntp': } -> class { 'mcollective': }
# OR
class { 'mcollective': } -> class { 'ntp': }
|
|
|
|
|
|
|
|
* feature/master/validation_functions:
Add spec test for validate_bool function
Add validate_bool() function to stdlib
|
|
This is an interesting spec test for module developers.
It illustrates how to cause Puppet to test the function
from the Puppet DSL rather than the Ruby DSL, fully
exercising the system from the perspective of the end
user.
(Note how Puppet[:code] is set, then the scope reset, then
the compile method called.)
Paired-with: Dan Bode <dan@puppetlabs.com>
|
|
This function aborts catalog compilation if any of the passed
values are not true or false. Note, this catches the string
values of true and false correct and will abort catalog
compilation if they are not boolean values.
Paired-with: Dan Bode <dan@puppetlabs.com>
|
|
|
|
* bug/master/prefer_stages_after_main:
Move stages to after main
|
|
Working with the stages in stdlib, I quickly ran into an issue where
most of the stages were before the main stage. This made it difficult
to declare any resources in a traditional "include" style class while
hiding the end user from the stages being associated with other module
classes.
For example, in class mcollective, a package would be declared in main.
However, if mcollective declared class mcollective::service in stage
infra_deploy and this was before main, there would be a dependency loop
between the package and the service.
There appears to be a convention around "chain your stages after main"
to avoid the need to create relatively empty shell classes.
|
|
|
|
* feature/master/7657_validate_re:
(#7657) Add basic validate_re function
|
|
While developing Puppet Modules with class parameters, data from the
user should be validated as per the Style Guide. Puppet should fail
early and hard in the situation of invalid data being passed into the
module.
This function provides a more concise method to the alternative of using
if statements in the Puppet manifests.
|
|
|
|
Also add release process information.
|
|
Following the development process, as new releases of this module are
cut the Changelog will be updated.
|
|
Many modules I'm working on need a standard but
relatively granular location in the catalog. For example,
any module that configures the packaging system should
run "early"
Add the following stages which have inter-dependencies
in the top to bottom order listed:
* setup
* deploy
* runtime
* setup_infra
* deploy_infra
* main
* setup_app
* deploy_app
|
|
Also add the list of things this module will
likely contain.
|
|
|