deafe88e02
This patch is the same approach as the one that want into 2.3.x. It covers the functions in master that do not exist in 2.3.x. Without this patch all of the spec tests for parser functions in stdlib would instantiate their own scope instances. This is a problem because the standard library is tightly coupled with the internal behavior of Puppet. Tight coupling like this creates failures when we change the internal behavior of Puppet. This is exactly what happened recently when we changed the method signature for the initializer of Puppet::Parser::Scope instances. This patch fixes the problem by creating scope instances using the puppet labs spec helper. The specific method that provides scope instances in Puppet-version-independent way is something like this: let(:scope) { PuppetlabsSpec::PuppetInternals.scope } This patch simply implements this across the board. Paired-with: Andrew Parker <andy@puppetlabs.com> |
||
---|---|---|
lib | ||
manifests | ||
spec | ||
tests | ||
.gitignore | ||
CHANGELOG | ||
LICENSE | ||
Modulefile | ||
Rakefile | ||
README.markdown | ||
README_DEVELOPER.markdown | ||
RELEASE_PROCESS.markdown |
Puppet Labs Standard Library
This module provides a "standard library" of resources for developing Puppet Modules. This modules will include the following additions to Puppet
- Stages
- Facts
- Functions
- Defined resource types
- Types
- Providers
This module is officially curated and provided by Puppet Labs. The modules Puppet Labs writes and distributes will make heavy use of this standard library.
Versions
This module follows semver.org (v1.0.0) versioning guidelines. The standard library module is released as part of Puppet Enterprise and as a result older versions of Puppet Enterprise that Puppet Labs still supports will have bugfix maintenance branches periodically "merged up" into master. The current list of integration branches are:
- v2.1.x (v2.1.1 released in PE 1.2, 1.2.1, 1.2.3, 1.2.4)
- v2.2.x (Never released as part of PE, only to the Forge)
- v2.3.x (Scheduled for next PE feature release)
- master (mainline development branch)
The first Puppet Enterprise version including the stdlib module is Puppet Enterprise 1.2.
Compatibility
stdlib v2.1.x, v2.2.x
v2.1.x and v2.2.x of this module are designed to work with Puppet versions 2.6.x and 2.7.x. There are currently no plans for a Puppet 0.25 standard library module.
stdlib v2.3.x
While not yet released, the standard library may only work with Puppet 2.7.x.
Functions
Please see puppet doc -r function
for documentation on each function. The
current list of functions is:
- getvar
- has_key
- loadyaml
- merge.rb
- validate_array
- validate_bool
- validate_hash
- validate_re
- validate_string
validate_hash
$somehash = { 'one' => 'two' }
validate\_hash($somehash)
getvar()
This function aims to look up variables in user-defined namespaces within puppet. Note, if the namespace is a class, it should already be evaluated before the function is used.
$namespace = 'site::data'
include "${namespace}"
$myvar = getvar("${namespace}::myvar")
Facts
Facts in /etc/facter/facts.d
and /etc/puppetlabs/facter/facts.d
are now loaded
automatically. This is a direct copy of R.I. Pienaar's custom facter fact
located at:
https://github.com/ripienaar/facter-facts/tree/master/facts-dot-d