summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-08-01(#8717) Make merge() function work with Ruby 1.8.5Jeff McCune
The previous behavior of the merge() function used Array#inject with two arguments. Ruby 1.8.5 only supports inject being used with one argument. This change initializes and empty Hash object and merges each argument into the accumulator. The last argument still "wins" in the merge. rspec tests (cd spec; rspec **/*_spec.rb) verified as passing with this change. Reviewed-by: Dan Bode
2011-07-29Merge branch 'feature/master/add_merge_has_key'Dan Bode
2011-07-29(#8709) Add hash merging functionDan Bode
In Puppet, it is not possible to reassign hash values. This function allows a reasonable way to perform hash munging in Puppet. Reviewed-by: Jeff McCune
2011-07-29(#8708) Add has_key functionDan Bode
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
2011-07-26Merge branch 'ticket/master/8585_load_yaml_function'Jeff McCune
* ticket/master/8585_load_yaml_function: (#8575) Add loadyaml() function
2011-07-26(#8575) Add loadyaml() functionJeff McCune
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
2011-07-26Merge branch 'feature/master/8628_append_line'Dan Bode
2011-07-26(#8628) Add append_line native typeDan 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
2011-06-21Update CHANGELOG and version for 0.1.7Jeff McCune
2011-06-21Update README with getvar() and validate_hash()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.
2011-06-21Merge branch 'ticket/master/8010_validate_hash_function'Jeff McCune
* ticket/master/8010_validate_hash_function: (#8010) Add validate_hash spec tests (#8010) Add validate_hash function
2011-06-21(#8010) Add validate_hash spec testsJeff McCune
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
2011-06-21(#8010) Add validate_hash functionJeff McCune
This function validates all passed variables are hashes. This is similar to the validate_bool function and is copied from it.
2011-06-21Merge branch 'ticket/master/8010_getvar_function'Jeff McCune
* ticket/master/8010_getvar_function: (#8010) Add getvar() rvalue function
2011-06-21(#8010) Add getvar() rvalue functionJeff McCune
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.
2011-06-20Remove metadata.json from repositoryJeff McCune
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.
2011-06-15Update CHANGELOG for version 0.1.6Jeff McCune
2011-06-15Merge pull request #4 from jeffmccune/ticket/master/3_anchor_resource_typeJeff McCune
Ticket/master/3 anchor resource type Nan +1'ed on the tech list. Merging into master.
2011-06-15(#3) Add simple unit test for anchor typeJeff McCune
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".
2011-06-15(#3) Add an anchor type to provide containmentJeff McCune
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': }
2011-06-03Add additional tests to validate_bool() specJeff McCune
2011-06-03Update CHANGELOG for 0.1.5Jeff McCune
2011-06-03Add Apache 2.0 LicenseJeff McCune
2011-06-03Merge branch 'feature/master/validation_functions'Jeff McCune
* feature/master/validation_functions: Add spec test for validate_bool function Add validate_bool() function to stdlib
2011-06-03Add spec test for validate_bool functionJeff McCune
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>
2011-06-03Add validate_bool() function to stdlibJeff McCune
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>
2011-05-26Update CHANGELOG with stage re-orderingJeff McCune
2011-05-26Merge branch 'bug/master/prefer_stages_after_main'Jeff McCune
* bug/master/prefer_stages_after_main: Move stages to after main
2011-05-26Move stages to after mainJeff McCune
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.
2011-05-25Update CHANGELOG for 0.1.3 releaseJeff McCune
2011-05-25Merge branch 'feature/master/7657_validate_re'Jeff McCune
* feature/master/7657_validate_re: (#7657) Add basic validate_re function
2011-05-25(#7657) Add basic validate_re functionJeff McCune
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.
2011-05-25Add DS_Store to gitignoreJeff McCune
2011-05-24Update changelog for version 0.1.2Jeff McCune
Also add release process information.
2011-05-24Add changelog to track releasesJeff McCune
Following the development process, as new releases of this module are cut the Changelog will be updated.
2011-05-24Add standard set of run stages.Jeff McCune
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
2011-05-24Update README with target versionsJeff McCune
Also add the list of things this module will likely contain.
2011-05-24Initial commitJeff McCune