Commit graph

46 commits

Author SHA1 Message Date
Ken Barber
aa27fc76c7 (#8797) Merge puppetlabs-functions into puppetlabs-stdlib
It was decided that maintaining puppetlabs-functions and
puppetlabs-stdlib was duplication as both are trying to
achieve the same goal.

This patch provides a merge of the puppetlabs-functions
into the puppetlabs-stdlib repository, with history
preservation.

The following conflicts were found and resolved:

* LICENSE file from functions was used as it aligns with
  ASL usage instructions and contains relevant copyright
  information:
  http://www.apache.org/licenses/LICENSE-2.0.html
* Used spec_helper.rb from functions - this is what
  Puppet core uses and doesn't break tests.
* Merged .gitignore and spec.opts options.
2011-08-05 10:31:46 +01:00
Ken Barber
1b73a66fc6 * Moved kwalify to puppetlabs-kwalify project
* Re-arranged tests in line with puppetlabs-stdlib
2011-08-05 08:46:38 +01:00
Ken Barber
681a1c7971 Prep for stdlib merge
* Renamed load_yaml & load_json to parseyaml & parsejson
* Renamed is_valid_* functions and remove the 'valid_'
2011-08-05 08:25:03 +01:00
Jeff McCune
ee1081571e Merge branch 'refactor/master/8665_whole_line'
* refactor/master/8665_whole_line:
  (#8665) Change type from append_line to whole_line
2011-08-04 17:58:05 -07:00
Jeff McCune
7393de9895 (#8678) Add validate_array and validate_string functions
The accounts module is making use of validate_array() and
validate_string() which do not exist int he stdlib module without this
patch.

This patch adds the two functions to the stdlib with unit tests.

Reviewed-by: Dan Bode
2011-08-04 16:05:39 -07:00
Jeff McCune
4725c97102 (#8717) Make merge() function work with Ruby 1.8.5
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-08-01 11:45:08 -07:00
Ken Barber
35fefe1865 Fix some ruby 1.9.2 issues. 2011-07-30 00:44:02 +01:00
Dan Bode
c4a13acafe (#8709) Add hash merging function
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 15:28:21 -07:00
Dan Bode
b1beaec2da (#8708) Add has_key function
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-29 15:11:10 -07:00
Ken Barber
a1cae426f1 (#3) Provide documentation for remaining functions. 2011-07-29 23:09:30 +01:00
Ken Barber
19313b43ea (#3) Apply missing documentation to more functions. 2011-07-29 22:18:56 +01:00
Ken Barber
f9634b7f9b Remove rand. 2011-07-29 22:08:09 +01:00
Ken Barber
aa023c1e5d Removed date stub since this functinality is available in strftime anyway. 2011-07-29 20:56:40 +01:00
Ken Barber
18e5302614 (#2) fix is_string finally so it also makes sure numbers return false. 2011-07-29 20:11:47 +01:00
Ken Barber
56a402e654 (#2) unstub is_valid_domain_name 2011-07-29 20:08:31 +01:00
James Turnbull
62520a2df0 Added doc strings for first five functions 2011-07-30 04:22:30 +10:00
Ken Barber
db7e06e301 Removed join_with_prefix. 2011-07-29 18:00:32 +01:00
Ken Barber
4080c0534e (#2) unstub is_valid_mac_address. 2011-07-29 17:55:45 +01:00
Ken Barber
ce48eb6e7a Allow sort for strings. 2011-07-29 00:10:31 +01:00
Ken Barber
7d6ae5d57c Count functionality overlaps with size - so removing it. 2011-07-28 21:30:02 +01:00
Ken Barber
4915eff575 Removed crontab functions instead of unstubbing them. 2011-07-28 21:23:53 +01:00
Ken Barber
a47853502d Removed load_variables. load_yaml is sufficient to solve this problem on its own. 2011-07-28 21:15:43 +01:00
Ken Barber
1a7bd1ae83 Remove is_valid_netmask instead of unstubbing. Doesn't seem like a sensible function on its own. 2011-07-28 21:10:33 +01:00
Ken Barber
313df566bf (#2) unstub is_numeric function. 2011-07-28 21:03:33 +01:00
Ken Barber
635ed82e5c (#2) - unstubbed is_valid_ip_address 2011-07-28 18:10:16 +01:00
Ken Barber
a55930368a (#2) - Added is_float and is_integer functionality. 2011-07-28 15:38:19 +01:00
Dan Bode
4540949d96 (#8665) Change type from append_line to whole_line
Changed the type name from append_line to
whole_line.

After feedback that having a type with a verb in
the name was confusing.
2011-07-27 15:28:44 -07:00
Jeff McCune
9560b6336c Merge branch 'ticket/master/8585_load_yaml_function'
* ticket/master/8585_load_yaml_function:
  (#8575) Add loadyaml() function
2011-07-26 15:46:23 -07:00
Jeff McCune
8a46e201fe (#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
2011-07-26 15:45:47 -07:00
Dan Bode
e82370a26d (#8628) Add append_line native type
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-07-26 15:30:28 -07:00
Ken Barber
fde64f37c9 (#1) - fleshed out some more tests. 2011-07-24 00:39:17 +01:00
Ken Barber
07ee334554 Added validate_resource function and examples on how to use it (and kwalify as well) 2011-07-01 21:09:02 +02:00
Ken Barber
1abf4b62fc Few more tests. 2011-06-30 01:00:32 +02:00
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