Jeff McCune [Tue, 8 Nov 2011 22:20:20 +0000 (14:20 -0800)]
Update the release process instructions.
The release process document didn't really mention semver.org or the
rubrics we use to pick version numbers at release. This patch adds some
hints about picking a version number and looking for API breaking
changes to the code.
Jeff McCune [Mon, 10 Oct 2011 18:58:48 +0000 (11:58 -0700)]
(Maint) Make rspec tests work with Puppet 2.6.4
The behavior without this patch applied is that the rspec tests do not
function with Puppet 2.6.4. This patch back-ports some fixes introduced
in Puppet 2.7.x to the spec_helper to make the tests work as expected on
Puppet 2.6.4.
The specific patches back ported from Puppet are:
* 2ae88067 (Puppet::Util::ExecutionStub.reset)
* cf183534 (Switched spec tests to use a class rather than Array as the
log destination.)
Jeff McCune [Mon, 3 Oct 2011 18:51:05 +0000 (11:51 -0700)]
(#9859) Add root_home fact and tests
Without this patch applied, the stdlib module does not provide a
root_home fact. This fact is necessary to easily determine the root
account home directory on platforms Puppet is supported on.
The major variations this fact address are:
---
solaris: /
linux: /root
macosx: /var/root
Spec tests using rspec have been provided as well to cover these three
general cases. Windows tests are marked as pending.
Jeff McCune [Thu, 18 Aug 2011 17:44:40 +0000 (10:44 -0700)]
(#9080) Make facts.d match Facter 2.0
Based on feedback from Luke, the facts.d directory should at least match
the directory that will be used by Facter 2.0.
Reading #2157 I believe the Facter 2.0 facts.d feature is reasonably API
compatible with this custom fact from R.I. so I'm comfortable using the
same filesystem path.
Change in behavior: Now look for facts in:
* /etc/facter/facts.d
* /etc/puppetlabs/facter/facts.d
The mcollectivepe module relies on these facts being set and we need a
persistent place to write them during the interview process and later
read them when puppet agent runs to configure MCollective on the agent
systems.
Since stdlib is a public module, both /etc/facts.d and
/etc/puppetlabs/facts.d are scanned for static facts.
Reviewed-by: Jeff McCune
Verified all spec tests pass using rspec **/*_spec.rb
* issue/master/8797_puppetlabs-functions_merge: (164 commits)
* Moved kwalify to puppetlabs-kwalify project * Re-arranged tests in line with puppetlabs-stdlib
Prep for stdlib merge * Renamed load_yaml & load_json to parseyaml & parsejson * Renamed is_valid_* functions and remove the 'valid_'
Fix some ruby 1.9.2 issues.
(#3) Provide documentation for remaining functions.
(#3) Apply missing documentation to more functions.
Remove rand.
Some improvements to values_at tests.
(#1) provide some more detailed tests for a number of functions.
Removed date stub since this functinality is available in strftime anyway.
(#2) fix is_string finally so it also makes sure numbers return false.
(#2) unstub is_valid_domain_name
Added doc strings for first five functions
Removed join_with_prefix.
(#2) unstub is_valid_mac_address.
Allow sort for strings.
Count functionality overlaps with size - so removing it.
Removed crontab functions instead of unstubbing them.
Removed load_variables. load_yaml is sufficient to solve this problem on its own.
Remove is_valid_netmask instead of unstubbing. Doesn't seem like a sensible function on its own.
(#2) unstub is_numeric function.
...
Jeff McCune [Mon, 8 Aug 2011 16:33:56 +0000 (09:33 -0700)]
(#8792) Rename basic smoke test to reflect file_line rename
Without this patch the basic smoke test in the module tests/ directory
did not math up with the renamed whole_line => file_line resource type.
This patch updates the smoke test file to match the most recently
selected name of file_line. The filename has been changed, comments
added to the smoke test file, and resource declarations inside the file
changed.
Ken Barber [Fri, 5 Aug 2011 07:52:00 +0000 (08:52 +0100)]
(#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.
Jeff McCune [Fri, 5 Aug 2011 02:17:48 +0000 (19:17 -0700)]
(#8792) Rename whole_line type to file_line
Without this patch the resource whole_line would be included in the
stable stdlib module shipping in PE 1.2. Ideally the name will be
stable and unchanging in the future.
There was quite a bit of concern over whole_line being an unwise name.
file_line appears to be the most suitable name and least likely to need
another rename in the future.
Jeff McCune [Mon, 25 Jul 2011 17:42:27 +0000 (10:42 -0700)]
(#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.
Jeff McCune [Mon, 20 Jun 2011 23:05:18 +0000 (16:05 -0700)]
Remove metadata.json from repository
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.
Jeff McCune [Wed, 15 Jun 2011 16:43:22 +0000 (09:43 -0700)]
(#3) Add simple unit test for anchor type
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".
Jeff McCune [Wed, 15 Jun 2011 16:40:04 +0000 (09:40 -0700)]
(#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': }
Jeff McCune [Fri, 3 Jun 2011 18:41:20 +0000 (11:41 -0700)]
Add spec test for validate_bool function
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.)
Jeff McCune [Fri, 3 Jun 2011 18:39:45 +0000 (11:39 -0700)]
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.