Revert "Merge branch 'nicklewis-fix-puppet-resource-service-test' into stable"

This reverts commit f81c157f23ee637781c7bb1e384c7cb6395bcb27, reversing
changes made to 38d085c697a530192b02c2badcc4e9a73813e62d.

This change set is being reverted a second time because the acceptance
test is failing on Solaris 10 which has very different service names.

I'm reverting it because the failure represents work in progress that is
interrupting other work, even though it is a small regexp.  Based on
discussion, we might simply need to open the regexp up to:

    [10:21 AM] Nick Lewis: @jmccune /.*ssh.*/ perhaps, but that's getting a
    little silly.
(maint) Remove empty and pending acceptance test
(maint) Remove pending parser validate test

This test is failing on my Fedora 18 system under test and it has a
"real" copy outside of the pending/ directory.
(maint) Fix uninitialized constant ActiveRecord

Without this patch the Puppet master is reporting error 400 in the
acceptance test suite running against Fedora 18, with the error message
`Could not autoload puppet/indirector/catalog/active_record:
uninitialized constant ActiveRecord`.  This is causing the
`enc_provides_node_when_storeconfigs_enabled.rb` acceptance test to
fail.

The root cause of the problem is attempting to access the ActiveRecord
constant before loading the library.  This patch addresses the problem
by making sure the `activerecord` library is loaded prior to accessing
the constant.

References: https://projects.puppetlabs.com/issues/16670
(maint) Use activerecord 3.0.20 for acceptance testing
(maint) Add Fedora Core suitability check for password redaction

Without this patch the Fedora Core 18 system, prefixed by `fc-` is
assumed to be able to manage password.  This is a problem because the
system does not have the shadow gem installed by default.

This patch adds `fc-` to the list of platforms checked for suitability
before running the acceptance test.
(maint) Remove acceptance test for puppet --parseonly deprecation

Without this patch the acceptance test for the puppet master --parseonly
and puppet agent --parseonly is failing.  This is a problem because in
Puppet 3 the deprecation has been removed and instead Puppet reports an
error that the command line is incorrect, 1 argument was provided
instead of the expected 0 number of arguments.

This patch addresses the problem by changing the acceptance test to no
longer validate the presence of the deprecation warning and instead
validate the expected behavior of `puppet parser validate`.
Merge branch 'fix_acceptance_fedora18' into stable

* fix_acceptance_fedora18:
  (maint) Remove acceptance test for puppet --parseonly deprecation
  (maint) Add Fedora Core suitability check for password redaction
  (maint) Use activerecord 3.0.20 for acceptance testing
  (maint) Fix uninitialized constant ActiveRecord
  (maint) Remove pending parser validate test
  (maint) Remove empty and pending acceptance test

closes #1629
(#20520) Update rgen to 0.6.2, remove Array monkey patches

Monkey patches to Array were used to make Array#to_hash fail, which otherwise
broke Hash[[[]].  The later version of rgen removes the need for these, which
prevents bad interactions with other libraries and applications.
Revert "(maint) Remove acceptance test for puppet --parseonly deprecation"

This reverts commit ad762cbe176ad8a53e3f1578b0fd7818c48bd7e9.

This commit is being reverted because the underlying issue is caused by
a simply MRI block arity issue.  Josh has fixed this in master, so the
fix will be back-ported to stable for the Puppet 3.2 release.
Maint: Lambda arity must match number of arguments

Running `puppet apply --parseonly` fails on ruby 1.9, because the arity
of the option method was 0, yet was being invoked with an argument, the
manifest to parse. Under ruby 1.8, this mismatch was allowed, but not
1.9.

See acceptance/tests/ticket_6928_puppet_master_parse_fails.rb
(maint) `--parseonly` lambda arity must match number of arguments

Running `puppet apply --parseonly` and `puppet master --parseonly` fails on
ruby 1.9, because the arity of the option method was 0, yet was being invoked
with an argument, the manifest to parse. Under ruby 1.8, this mismatch was
allowed, but not 1.9.

This patch builds upon Josh's patch in e9c25f6, the previous patch only
addressed `puppet apply` while the acceptance test uses both `puppet apply` and
`puppet master`.  In order to address the test failure this patch adds the
block arguments for both apply and master.

See acceptance/tests/ticket_6928_puppet_master_parse_fails.rb
Merge branch 'fix_cli_arity' into stable

* fix_cli_arity:
  (maint) `--parseonly` lambda arity must match number of arguments
  Maint: Lambda arity must match number of arguments
  Revert "(maint) Remove acceptance test for puppet --parseonly deprecation"

closes #1632
Merge pull request #1631 from domcleal/tickets/stable/20520-rgen-062

(#20520) Update rgen to 0.6.2, remove Array monkey patches
Merge pull request #1627 from zaphod42/issue/stable/20447-filetimeout0-causes-master-to-exit

(#20447) Wait for server to shutdown before exiting daemon
(#17887) Ensure log message is initialized when Exception raised

It's possible to run the "ensure" block without having executed either the
main or "rescue" blocks, if an Exception not derived from StandardError is
raised or when testing with Mocha expectations.

If this happens during the property.sync, this causes an immediate exit from
the main block, but the "ensure" block is still run.  The event message won't
have been initialized yet, so this then causes the logger to report:

  Puppet::Util::Log requires a message

This ensures a message is logged from the context of the resource before
letting the exception propagate up to the application.
Merge branch 'domcleal-tickets/master/17887-resource-log-msg' into stable

* domcleal-tickets/master/17887-resource-log-msg:
  (#17887) Ensure log message is initialized when Exception raised

closes #1614
Revert "Revert "Merge branch 'nicklewis-fix-puppet-resource-service-test' into stable""

This reverts commit bbb1ee2418ff04dafa91534e1c3dad41c8c27bbd.
(#14615) Exclude solaris from service name acceptance test

Without this patch the ssh service acceptance tests that ensures the
service providers do not modify the system in d4ced36 are failing on
Solaris 10.  The failures are a result of the service name for ssh being
wildly different on solaris.  On solaris the name is
`svc:/network/ssh:default` which differs considerably from the Linux
convention of `ssh`.

This patch addresses the problem by excluding the acceptance test from
running on Solaris systems.
Merge branch 'stable_14615_fix_services' into stable

* stable_14615_fix_services:
  (#14615) Exclude solaris from service name acceptance test
  Revert "Revert "Merge branch 'nicklewis-fix-puppet-resource-service-test' into stable""