(#19955) Give better error msg when Hiera databindings fail.

If a problem occurs while hiera databindings tries to look something
up (bad hiera.yaml, bad data, or indeed bad implementaton), the raised
error ended up as a Puppet::ParseError blaming a manifest with a cryptic
error message.

This changes this to throw a specific error if DataBinding raises an
exception when its find method is called.

It now points to which databinding terminus is in use, what the
exception class and original message was. It then fails the compilation
using a Puppet::Error.

A test is added to ensure a message is produced.
(packaging) Update PUPPETVERSION for 3.3.1-rc3
Merge tag '3.3.1-rc3'

3.3.1-rc3

* tag '3.3.1-rc3':
  (packaging) Update PUPPETVERSION for 3.3.1-rc3
(#19955) Move error handling closer to hiera

The error handling shouldn't be done inside Puppet::Resource, since most
of that handling was very specific to YAML, which is not the concern of
that code. This moves the error handling closer to hiera and removes
other errors that are not required to handle hiera errors. This should
deal with most errors for JSON, YAML, and general hiera problems.
(#19955) Collapse Hiera and DataBindings

The only instance of Hiera for a terminus is in the DataBindings. To
simplify the system and make it so that the Hiera code can reasonably be
expected to raise DataBindings errors, this collapses the classes
together.
(maint) Prefer pson over json for logstash_event

We can't always rely on json being present, since that dependency may be
satisfied by rubygems and this code isn't responsible for loading
rubygems. However we can rely on pson always being available, which
satisfies this same need.  This commits switches the logstash_event log
destination from trying to require and use json to simply use pson.
Merge pull request #1963 from adrienthebo/maint/logstash_event-json_require

(maint) Prefer json over pson for logstash_event
Merge pull request #1964 from zaphod42/hlindberg-issues/issue-19955-data-binding-rescue-and-log

(#19955) Give better error msg when Hiera databindings fail.
(#21971) Create test to show exploit of resource_type

This test creates a file in the tmp directory on the master, opens up
access to the resource_type endpoint, and then makes a request that
causes the file placed in tmp to be evaluated. If the exploit works,
then a file is placed in /tmp on the master.
(#21971) Add test for accessing based on master being at root

The master process, when it daemonized, switches the current working
directory to /. This means that all paths are easily knowable by a user
and no directory traversal is needed to get to any file on the file
system. The type loading code does not protect from this by making sure
that any types that are requested only appear in the known-good
directories (the manifest dirs in the modulepath) and so can be caused
to load code from anywhere on the system.
Merge branch 'stable'

* stable:
  (#21971) Add test for accessing based on master being at root
  (#21971) Create test to show exploit of resource_type
(maint) Optional set seconds ago for log listing and deletion

Defaults still to one day in secs, which is what the scripts to auto
reap vms in vsphere is set to.
Merge branch 'integration/acceptance-multi-platform-harness-work' into integration/acceptance

* integration/acceptance-multi-platform-harness-work: (217 commits)
  (maint) Optional set seconds ago for log listing and deletion
  (maint) Use puppetlabs/beaker again
  (maint) Allow host_names to be specified for destroy_preserved_hosts
  (maint) Cleanup the beaker_test method
  (maint) Clean up generation of preserved_configs
  (maint) Use rake's cp/mv helpers
  (maint) Move the Rake ci namespace into its own tasks file
  (maint) Use Net::HTTP instead of curl querying downstream job
  (maint) Version redhat configs and add others
  (maint) Correct ssldir for pre-suite ValidateSignCert
  (maint) Debian packages install puppetmaster on master nodes
  (maint) Update README to distinguish packages/git testing
  (maint) Manually archive hosts_file in log/latest/config.yml
  (maint) Add configuration to run all the linux nodes
  (maint) Rake task to clean up preserved hosts.
  (maint) Don't require CONFIG
  (maint) Ignore repo-configs directory
  (maint) Allow specifying fork for git checkout test runs.
  (maint) Check and require both sha and config for git and package tests
  (maint) Run preserved tests either as packages or git checkouts
  ...
(#22324) Reset confine method to confine_block

confine_block is defined in my fork of Beaker.  confine will work here,
but only be accident, because a block passed to the confine method is
expected to further refine acceptable hosts.  confine_block just uses
the criteria to refine hosts and then executes the block on those hosts.

This commit is only in the integration/acceptance branch until we get
that merged in.
(#22324) Update cve-2013-4761_* tests for current Beaker

These two security acceptance tests had been held back waiting for the
security patch to be released and available for several weeks.  We've
now added them back in, but their syntax predates the switch to Beaker.
this patch updates them to work with the current with_puppet_running_on
syntax.
Merge branch 'integration/acceptance' into integration/acceptance-master

* integration/acceptance: (219 commits)
  (#22324) Update cve-2013-4761_* tests for current Beaker
  (#22324) Reset confine method to confine_block
  (maint) Optional set seconds ago for log listing and deletion
  (maint) Use puppetlabs/beaker again
  (maint) Allow host_names to be specified for destroy_preserved_hosts
  (maint) Cleanup the beaker_test method
  (maint) Clean up generation of preserved_configs
  (maint) Use rake's cp/mv helpers
  (maint) Move the Rake ci namespace into its own tasks file
  (maint) Use Net::HTTP instead of curl querying downstream job
  (maint) Version redhat configs and add others
  (maint) Correct ssldir for pre-suite ValidateSignCert
  (maint) Debian packages install puppetmaster on master nodes
  (maint) Update README to distinguish packages/git testing
  (maint) Manually archive hosts_file in log/latest/config.yml
  (maint) Add configuration to run all the linux nodes
  (maint) Rake task to clean up preserved hosts.
  (maint) Don't require CONFIG
  (maint) Ignore repo-configs directory
  (maint) Allow specifying fork for git checkout test runs.
  ...

Conflicts:
	acceptance/tests/databinding/hiera/auto_lookup_for_class_parameters.rb
	acceptance/tests/databinding/hiera/bind_data_with_puppet_backend.rb

Resolved in favor of master having removed these tests 75ab42.