Commit graph

454 commits

Author SHA1 Message Date
Adam S
ce6e8679b6 Add package_provider fact
This adds a package_provider fact for situations where we need to be
able to know the client's package provider in a simple way.  Situations
such as: package { 'name': install_options => [] }  As those tend to be
package provider specific options.
2015-09-25 17:55:21 -07:00
Hunter Haugen
4d1bca3359 Merge pull request #506 from binford2k/feature/service_provider_fact
Add a service_provider fact
2015-09-24 10:55:39 -07:00
Morgan Haskel
b20239e796 Update is_a acceptance tests to only run on puppet4 2015-09-21 14:12:25 -07:00
Morgan Haskel
799c38e14e Fix backwards compatibility from #511
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.
2015-09-21 11:11:21 -07:00
David Schmitt
55ece7815a (MAINT) validate_re: Clarify docs and error message 2015-09-17 18:48:32 +01:00
Bryan Jen
0ea0e40228 Merge pull request #523 from DavidS/modules-2516-is_a
(MODULES-2561) add is_a function
2015-09-14 10:49:50 -07:00
Bryan Jen
c0df8192ee Merge pull request #511 from dmitryilyin/parseyaml_default
[MODULES-2462] Improve parseyaml function
2015-09-14 10:40:35 -07:00
David Schmitt
00c881d0da (MODULES-2516) Adds an is_a() function
The data type system is very hard to understand. Many people don't
understand why

    type_of([1,2,3]) == Array

will fail, but

    type_of([1,2,3]) <= Array

passes. This does a simpler validation that doesn't rely on explicit
data types. Instead, use

    $foo = [1,2,3]
    if $foo.is_a(Array) {
      notify { 'This is an array': }
    }

This is based on code by Ben Ford <ben.ford@puppetlabs.com>.

  * Added acceptance tests
  * Added dispatch
  * Improved unit tests
  * Added docs to README
2015-09-14 18:26:25 +01:00
Corey Osman
f2f2db4795 accept any case of boolean strings
* 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.
2015-09-04 08:09:26 -07:00
David Schmitt
5ef5c6629f (MAINT) fix up try_get_value acceptance test 2015-09-02 13:34:15 +01:00
David Schmitt
64267eb650 Merge pull request #513 from dmitryilyin/fetch
Add a new function "try_get_value"
2015-09-02 09:23:46 +01:00
Dmitry Ilyin
823a352f0f 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
2015-09-01 21:45:44 +03:00
Jon Fautley
6c2a003f21 (MODULES-2478) Support root_home fact on AIX through "lsuser" command
Squashed, and amended test for comment lines.
2015-08-28 15:21:13 +01:00
fhats
2d4f5aa4d9 Adds a convert_base function, which can convert numbers between bases
Squashed, improved docs, updated error handling and unit tests by David S.
2015-08-27 10:42:13 +01:00
Dmitry Ilyin
eb948c4a0d [MODULES-2462] Improve parseyaml function
* Add default value support
  Second argument will be returned if yaml cannot be parsed
  instead of false value
* Update tests
2015-08-25 21:41:03 +03:00
David Schmitt
aa23894dd3 (MAINT) improve base64 unit tests 2015-08-24 20:13:33 +01:00
Jetroid
1d9189d860 (MODULE-2456) Modify union to accept more than two arrays
Add spec tests to test the new functionality:
 *Case for 3 arrays.
 *Case for 4 arrays.
Modify README to note new functionality.

This is for issue MODULE-2456, follow the precedent of MODULE-444.

This change allows union to be much more useful, unioning many arrays
in one line rather than in n lines. Additionally, as this is only added
functionality, and does not affect the 2 array case that all modules
currently using array are using, it should not affect any existing
modules utilizing union.

This is now useful, for example, for merging many arrays of resources
(eg: packages.) to generate just one list with no duplicates, to avoid
duplicate resource declarations.
2015-08-24 14:24:10 +01:00
Ben Ford
66e118a92a Add a service_provider fact
This returns the default provider Puppet will choose to manage services
on this system by instantiating a dummy service resource type and
returning the provider chosen.

Co-Authored-By: Simon Fraser University <asa188@sfu.ca>
2015-08-19 15:05:47 -07:00
Nigel Gibbs
4cbe846750 (MODULES-2410) Add new functions dos2unix and unix2dos 2015-08-14 13:30:01 +01:00
Bryan Jen
e84090df1d Merge pull request #499 from jearls/2370-use-match-for-ensure-absent
[MODULES-2370] allow `match` parameter to influence `ensure => absent` behavior.
2015-08-13 10:14:13 -07:00
Hunter Haugen
57275061ab Add puppet_version back to spec_helper 2015-08-11 19:52:43 -07:00
Hunter Haugen
9baca7f755 Sometimes this exits 1 2015-08-11 16:23:06 -07:00
Hunter Haugen
0a58b9382c Fix extraneous end 2015-08-11 08:29:48 -07:00
Hunter Haugen
dfa98b89f7 Prep 4.8.0 2015-08-10 16:30:27 -07:00
Johnson Earls
9bacf14ca2 allow match parameter to influence ensure => absent behavior.
Split the `destroy` method of the file_type::ruby provider into two
private methods:  `handle_destroy_line` which is the same as the previous
`destroy` method, and `handle_destroy_with_match` which will destroy any
line which matches the `match` parameter, raising an error if multiple
lines match and the `multiple` parameter is not `true`.  This new
behavior is only used if the new boolean parameter `match_for_absence`
is `true` (it defaults to `false`).
2015-08-06 13:44:32 -07:00
Dominic Cleal
a7adcda803 (MODULES-2316) Change file_type boolean parameter to symbols
Puppet's boolean parameter type is only available in Puppet 3.3 and
higher, so change file_type's new "replace" parameter to a regular
parameter with true and false as possible values.  This matches the
existing "multiple" parameter.
2015-08-04 09:59:53 +01:00
Hunter Haugen
e815da5962 Merge pull request #483 from nibalizer/load_metadata_json
Add load_metadata_json function
2015-07-31 14:12:56 -07:00
Spencer Krum
f411ee7119 Add load_metadata_json function
This function loads the metadata.json into a puppet variable. This enables a number of neat things such as:

* Which version of the module am I using? 2.x? 3.x?
* Which author of the module am I using? puppetlabs? example42?
2015-07-30 15:51:54 -07:00
Bryan Jen
ebf73482e5 Merge pull request #494 from CENGN/fix/master/file_line_replace
[#puppethack] Adding replace attribute to file_line
2015-07-30 13:34:26 -07:00
Bryan Jen
41a7297cb7 Merge pull request #495 from puppetlabs/4.7.x
4.7.x
2015-07-30 13:33:44 -07:00
Raymond Maika
35e92645f7 (MODULES-2024) Adding replace attribute to file_line 2015-07-30 14:55:32 -04:00
David Schmitt
44c4bad392 (maint) use puppet's utility function instead of API that's not available on all rubies 2015-07-30 10:46:38 +01:00
David Schmitt
a8d7563a44 (main) clean up fqdn_rand acceptance tests to work on windows 2015-07-22 17:30:39 +01:00
David Schmitt
24b1cd78db (maint) Remove failing acceptance test for ensure_packages
This only duplicates what's already being tested in ensure_packages_spec.rb
but doesn't work on all our supported platforms.
2015-07-22 12:21:31 +01:00
gcmalloc
5c79107863 adding support for hash in the size function 2015-07-22 12:11:52 +02:00
Hunter Haugen
615227918a disable pw_hash test on sles, as it only supports md5 2015-07-21 14:43:34 -07:00
Travis Fields
78e8c73671 (maint) Fix test to not assume is_pe fact on > 4.0.0 puppet 2015-07-20 15:51:39 -07:00
Morgan Haskel
224b644003 Use puppet_install_helper 2015-07-09 17:11:10 -07:00
Alexander Fisher
c64ecfb0c3 Add validate_slength's optional 3rd arg to README 2015-07-09 18:13:19 +01:00
Morgan Haskel
5381dbd4b4 AIO uses puppet 4 so should return true for is_future_parser_enabled 2015-06-19 14:29:42 -07:00
David Schmitt
c9e093f8d3 (maint) getvar: update spec to match implementation 2015-06-12 14:42:09 +01:00
Justin Stoller
a41cfbd043 (maint) update PUPPET_VERSION default to be 3.8.1 2015-06-08 21:43:36 -07:00
Morgan Haskel
c69b75f88b Merge pull request #469 from hunner/fix_time
Fix time() on 1.8.7
2015-06-04 10:51:41 -07:00
Hunter Haugen
ad4ca4cc34 Fix time() on 1.8.7
The time() function takes an argument of a timezone, and always returns
time in epoch format. The epoch format is the number of seconds that
have elapsed since January 1, 1970 (midnight UTC/GMT), not counting leap
seconds. This means that it is universally the same regardless of
timezones.

I don't know what the timezone argument is supposed to do, and it is not
documented. So lets just make 1.8.7 work like > 1.8.7
2015-06-04 09:40:52 -07:00
Eli Young
98c2f283b0 fqdn_rand_string: Add acceptance tests for custom charsets 2015-06-02 12:02:30 -07:00
Eli Young
84279e90ab fqdn_rotate: Add acceptance tests for custom seeds 2015-06-02 12:02:30 -07:00
Eli Young
b436216fe6 fqdn_rotate: Add tests for custom seeds 2015-06-01 17:03:42 -07:00
Eli Young
601f681787 fqdn_rotate: Don't use the value itself as part of the random seed
Previously, the random number generator was seeded with the array or
string to be rotated in addition to any values specifically provided for
seeding. This behavior is potentially insecure in that it allows an
attacker who can modify the source data to choose the post-shuffle
order.
2015-06-01 16:19:07 -07:00
David Schmitt
18d4c21418 Remove unused puppet_spec code
This is copied and changed code from an older version of puppet's internal
test setup code. It does not work with puppet4.
2015-06-01 18:02:22 +01:00
David Schmitt
f3e79ddcd5 Convert tests to use plain rspec-puppet
Tests in the new style produces the following documentation output:

abs
  should not eq nil
  should run abs() and raise an Puppet::ParseError
  should run abs(-34) and return 34
  should run abs("-34") and return 34
  should run abs(34) and return 34
  should run abs("34") and return 34
2015-06-01 18:02:22 +01:00