Commit graph

63 commits

Author SHA1 Message Date
Ken Barber
c7c8647634 Move require inside function for kwalify. 2011-06-29 23:39:23 +01:00
Ken Barber
464fb1f41b Add some more functional tests. 2011-06-29 23:37:37 +01:00
Ken Barber
790818116e Added tests for each function, fixing functions as we hit bugs. 2011-06-29 21:21:55 +01:00
Ken Barber
e071b05ab6 Added kwalify function. 2011-06-29 12:30:07 +01:00
Ken Barber
e6b5a6dd02 Removed duplicate - is_hash is really now is_hash instead of is_array. 2011-06-26 14:33:53 +02:00
Jeff McCune
4c00cfc610 (#8010) Add validate_hash function
This function validates all passed variables are hashes.  This is
similar to the validate_bool function and is copied from it.
2011-06-21 17:01:33 -07:00
Jeff McCune
2bca41a9c4 (#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.
2011-06-21 15:12:46 -07:00
Jeff McCune
ab70663d15 (#3) Add an anchor type to provide containment
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-15 09:40:04 -07:00
Jeff McCune
b9f1bb6a63 Add validate_bool() function to stdlib
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-06-03 11:39:45 -07:00
Jeff McCune
d381a5b74f (#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.
2011-05-25 12:38:15 -07:00
Ken Barber
aafce9c99b Moved more functions into lib/puppet/parser/functions/ 2011-04-30 16:00:49 +02:00
Ken Barber
09abea2d47 Moved type.rb 2011-04-30 15:59:55 +02:00
Ken Barber
99a93d366f Convert to module format. 2011-04-30 15:59:31 +02:00