(#17183) Pass on parameters to recursive children in static_compiler

Pass on parameters from the top level resource to recursive children in
the static compiler.
The list of parameters to exclude is taken from the file type
implementation.
Fix #6561 - Better looking puppetdoc CSS for rdoc mode

From: Duncan Phillips <duncan@yola.com>

Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
Add the s3_enabled property to the yumrepo type

This allows you to access S3 repos using the yum-s3-iam plugin
Restrict the regex to only allow 0 or 1. Not 10.
(#21478) Add plymouth-ready to excludes list

An update to Ubuntu 12.04's plymouth package, version 0.8.2-2ubuntu31,
introduces a new upstart service, plymouth-ready in order to fix
the bug detailed here:
https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/982889

This new service uses instances, which puppet does not yet fully
support, and attempting to retrieve the status of this job causes
puppet to fail (for example when running "puppet resource service").

Adding plymouth-ready to the excludes list allows puppet to output
the status of services that it can handle competently while avoiding
the service introduced by this package.
(#21470) Change validation of "storeconfigs" to reflect runtime state.

The problem was that the validator is written with static validation
in mind - not considering if storeconfigs are on or not.
Since we are currently only using the validator to validate for the
current runtime, this commit changes the behavior to consider the
runtime storeconfigs state and marking the related issues as :ignored if
storeconfigs is on.

A user that wants to use Puppet as a library will need to configure the
validation / issue options accordingly (the manifests will be validated
as per the settings of the puppet runtime used to run the validation).

This is easily done by using a different severity producer.
(#18255) - Follow http redirections

This patch adds support for HTTP redirection in the Puppet HTTP
client.

The http client includes a redirection limit, and recreate the
redirected connection with the same certificates and store as the
original (as long as the redirect new location is ssl protected).

This patch allows redirection following for all HTTP methods, which
in the Puppet ecosystem shouldn't be an issue.

Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

Use a loop - temp commit
(maint) Remove unused exception class
(maint) re-indent file
(#21307) Refactor WatchedFile class

The watchedfile class was extracted from another location but had some
remnants of old behavior. In addition it would treat missing files as
always changed, which could lead to undesired behavior around trying to
reload missing files.

This commit refactors the WatchedFile to use a single timestamp value
and assume that the file is unchanged if the file timeout period has not
elapsed.

In addition this commit also treats file absence as a valid state.  If a
file is missing between two checks it will be treated as unchanged.
(#6561) increase rdoc output font size and fix facts display

Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
(maint) make SRV record lookup more generic
(Maint) Fix warnings issued by yard

There were many uses of incorrect tags (@returns instead of @return),
unnamed params (@params without specifying which param) and inccorect
use of multiple variations (@params for the same param many times
instead of using @overload). This fixes many, but not all of the
warnings issued by yard when it generates documentation.
(maint) Fix rspec warnings

Running specs with rspec 2.13 caused a lot of warnings. Many of them actually
exposed preexisting bugs, the most common being a syntax error when expecting
an Exception. These are worth fixing even if we don't bump to rspec 2.13.
(maint) Extract puppet setting types to constant
(#6112) Acceptance test handles host with uninitialized ssl

Running the acceptance test on Jenkins discovered a third case, and
helped use clarify behavior for the expected cases on an initialized
master/agent.  The third case is a host which has not initialized yet
(has no ssl info created or cached) which is similar to what happens
when a master initializes through a 'puppet master' call, but this is
through a 'puppet generate' call and what the node should be capable of
as a master or agent afterwords is ambiguous.

Acceptance test now checks this case, showing that a cert does generate
in this instance, and leaves the host in an ambiguous state of ssl
configuration where they cannot authenticate with the master afterwords.
(packaging) Update PUPPETVERSION for 3.2.3

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge branch 'release/3.2.3' into stable

* release/3.2.3:
  (packaging) Update PUPPETVERSION for 3.2.3
(#6112) Clearing test of whether puppet agent fails

Whether a puppet agent -t fails after a puppet cert generate in a bare
host (no ssl setup) seems to have platform specific issues which need to
be figured out.  It fails for me locally in Ubuntu, and the Lucid
Jenkins job failed, but RHEL did not.

Commenting this portion out and marking pending until we have more time
to investigate.
(#7911) Simplified libs section of installer

This will make sure that all files in the source lib directory
make it into the ruby sitelib directory

As the type of files being included in the lib directory has
grown, rather than call each filetype out specifically in the
installer (ie globs like lib/**/*.rb, lib/**/*.py), it seems
easier to just move everything from the source lib directory
to the the sitelib directory during installation.

The new glob lib/**/* now includes directories in the glob
list.  This caused an error in do_libs because File.install
would be called on a directory resulting in a 0 byte file being
placed where a directory should have been.  The error is generated
on the second pass of the loop when File.makedirs is called, and
the file exists and is NOT a directory.  This is the reason for
skipping directories in the do_libs section.