(#19884) Intermittent SSL handshake error

Certain versions of the JDK (1.7u6 and newer) appear to have a bug when
handling Diffie-Hellman exchange during SSL handshaking with OpenSSL
clients. Bug is discussed here:

https://forums.oracle.com/forums/thread.jspa?messageID=10999587

In me tests just having openssl's s_client connect to PuppetDB
repeatedly in a tight loop, we see the handshake error about 0.4% of the
time. So it's not a pervasive problem, but it's certainly annoying and
something users have seen and complained about somewhat regularly.

There are a few options available for fixing the problem:

1) Wait for Oracle to fix the problem. This is, of course, suboptimal.

2) Use BouncyCastle JSSE providers instead. This is workable, but in my
research would require changes to the JDK system policy files, which is
a huge PITA. There's also some concern about performance, if the BC
providers are markedly slower than the JSSE ones.

3) Disable the DHE ciphers.

This patchset implements option #3. The non-DHE cipher suites work fine,
support SSL and TLS, and are on the NIST and FIPS approved list. So...it
sucks that we need to disable the DHE cipher suites, but in an insane
world it's the sanest choice.

I've added a new option to the [jetty] section of the configuration file
called `cipher-suites`. It allows users, should they have the need, to
override the list of cipher suites used to one of their choosing.
(packaging) Remove pl-fedora-16 mock target. f16 is EOL
Merge pull request #513 from haus/remove_f16

(packaging) Remove pl-fedora-16 mock target. f16 is EOL
Only restrict the cipher suites on affected JVMs
Tweak docs for cipher-suites option
Docs: Update references to 1.2 to 1.3
Merge pull request #512 from grimradical/cipherz

(#19884) Intermittent SSL handshake error
Merge pull request #514 from nfagerlund/one_two_one_three

Docs: Update references to 1.2 to 1.3
Remove parallelization during export

In previous commits, we attempted to limit resource consumption
by using a "bounded" pmap when parallelizing our data exports.
This works great for preventing pmap from executing too many
operations simultaneously, but it does not prevent pmap from
building up a large backlog of work in the seq that it is
constructing; therefore, if the consumer of the seq is not
processing the work quickly enough, we can still end up using
a ton of memory.

The long-term solution for this is going to be to use a
`BlockingQueue` to prevent the pmap from generating work too
quickly.  However, the implementation of that can be a bit
tricky so for now we're opting for stability over performance.

This commit simply removes the parallelization and handles the
export serially.

In the future what I'd like to do is to polish up the
producer/consumer library that I wrote for this, and then use
that to solve the problem on both the import and export sides.
Don't check for newer available versions in dashboard for PE

Prior to this commit, the PuppetDB dashboard was checking for
newer versions of PuppetDB even if we are running inside of
a PE environment; this commit simply prevents the code
from checking for newer versions when we're in PE, and always
tells the dashboard that there are no newer versions available.
Merge pull request #516 from cprice-puppet/maint/master/no-parallelization-during-export

Remove parallelization during export
Add missing keys to latest version response for PE

Previous commit was returning a hash that only contained
`"newer" => false` for PE version check.  This commit
adds in the `version` and `link` keys.
Merge pull request #517 from cprice-puppet/bug/PE-286/dont-show-updates-in-dashboard-for-pe

Don't check for newer available versions in dashboard for PE
(#15369) Terminus for use with puppet apply

This patch provides a new terminus that is suitable for facts storage usage
with masterless or `puppet apply` usage. The idea is that it acts as a fact
cache terminus, intercepting the first save request and storing the values
in PuppetDB.

I've modified the documentation that referenced the old inability to use
inventory service with puppet apply, and added some acceptance tests.

Signed-off-by: Ken Barber <ken@bob.sh>
Add new puppetdb_apply.rb file to debian/redhat specs

Signed-off-by: Ken Barber <ken@bob.sh>
Merge pull request #518 from kbarber/puppet_apply

(#15369) Terminus for use with puppet apply
(PE-437) Update Dependencies to reflect new pe-puppet package

On debian we have unified the pe-puppet packages to match the red hat packages,
e.g. into a pe-puppet-server package and pe-puppet package. pe-puppet-agent no
longer exists, nor does pe-puppet-common. This commit updates the debian
requirements for pe-puppetdb to correctly reference pe-puppet package instead
of pe-puppet-agent or pe-puppet-common.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge pull request #522 from MosesMendoza/maint/master/update_requires_for_new_puppet

(PE-437) Update Dependencies to reflect new pe-puppet package
Run puppet facts find test on master only

Previously we were populating the puppetdb using 'apply' but only on the
master, our tests however were expecting to find results on all hosts which
caused a JSON parse exception.

This patch just changes that test to only test `puppet facts find` on the
master.

Signed-off-by: Ken Barber <ken@bob.sh>
Merge pull request #523 from kbarber/fix_test_json_parse_error

Run puppet facts find test on master only