(Maint) Update the test cases to use the 'let'

Changes:
  - updated the invocations to use the new let(:xxx) syntax
  - move each test to method specific contexts
  - ensure that stubbed commands specify arguments (zoneadm)
  - add more tests
(#8200) Munge the ensurable value

Previously, the ensure property was always out-of-sync, because we were
comparing the current symbol value against the should string value. This
occurred, because the type's ensurable methods redefine
`Puppet::Parameter.newvalue`, which has the side-effect of no longer
converting string should values to symbols.

This commit converts the should value to a symbol by defining a munge
method. It is a temporary measure until the real issue can be fixed in
15886.
(#8200) Change path from parameter to property

Previously path was a parameter which resulted in it not being included in
the resources listing. However since this is a required attribute, we
change it to a property instead.

We also remove the path validation from global validate and instead add
this check in each place that path is required.
Merge branch 'ticket/3.x/8200_validate_param' into 3.x

* ticket/3.x/8200_validate_param:
  (#8200) Change path from parameter to property
  (#8200) Munge the ensurable value
  (Maint) Update the test cases to use the 'let'
  (#8200) Ensure zonecfg errors are caught
(Maint) Fix Puppet.version in 3.x

Without this patch applied the Puppet 3.x branch is mis-reporting its
version as 2.7.19.  This is a problem because the spec helper uses the
`Puppet.version` method to determine how it should construct a
Puppet::Parser::Scope instance for parser function testing.  The
incorrect version string is causing the scope instance to be constructed
incorrectly ultimately causing the test failures with stdlib 3.x and
master.

This patch restores the Puppet.version to 3.0.0-rc3 which was the
version string prior to the problem being introduced in b33d517.
Merge branch 'fix/3.x/fix_version_string' into 3.x

* fix/3.x/fix_version_string:
  (Maint) Fix Puppet.version in 3.x
Merge branch '3.x'

* 3.x:
  (Maint) Fix Puppet.version in 3.x
  (#8200) Change path from parameter to property
  (#8200) Munge the ensurable value
  (Maint) Update the test cases to use the 'let'
  (#8200) Ensure zonecfg errors are caught
  (#15547) correct 'pending' values to correct if check for solaris.
(#15975) Add missing methods to new HTTP::Connection class

Some of the callers who were getting an instance of the
new HTTP::Connection class via HttpPool#http_instance
were expecting it to provide the newer request_* methods
that are available on a Net::HTTP instance, so that (e.g.)
they can pass in a block to be executed against the response.

Prior to this commit the HTTP::Connection object did not
expose those methods; this adds them, which should
fix some failing acceptance tests.
Merge pull request #1061 from cprice-puppet/bug/3.x/http-request-get

(#15975) Add missing methods to new HTTP::Connection class
Merge branch '3.x'

* 3.x:
  (#15975) Add missing methods to new HTTP::Connection class
Update CHANGELOG, conf/redhat/puppet.spec for 2.7.19
Merge branch '2.7rc' into 2.7.x
(Maint) Fix Puppet::Util.execute warning

Without this patch applied the end user receives a nasty deprecation
warning when running `puppet agent` with a `puppet.conf` that configured
the node terminus to exec as in the following example:

    [main]
    node_terminus = exec
    external_nodes = $confdir/enc.rb

This a problem because we shouldn't issue warnings to the users about
our own use of our own code.

This patch fixes the problem by proxying the execute method from the
object that is self when the find method is called from the child class
using super.
(#15975) Proxy the request_get block to Net::HTTP

The fix in a40639a is insufficient because it silently drops the block
passed to the request_get block.  This is a problem because it causes
file content to be silently dropped and truncated to zero bytes.

This patch fixes the problem by proxying the get request block along to
the underlying implementation in Net::HTTP.
Merge branch 'fix/3.x/environment_acceptance_tests' into 3.x

* fix/3.x/environment_acceptance_tests:
  (#15975) Proxy the request_get block to Net::HTTP
  (Maint) Fix Puppet::Util.execute warning
Merge branch '3.x'

* 3.x:
  (#15975) Proxy the request_get block to Net::HTTP
  (Maint) Fix Puppet::Util.execute warning
(#15797) Change the argument to chkconfig from 'on' to 'reset'

Per the man page, 'reset' is more correct because it uses
the runlevels specified in the chkconfig header line, rather
than always using '2345'. This fixes #15797.
(#15797) Add test coverage for redhat service provider

Without this patch there is no test coverage to validate that the
service provider actually calls chkconfig with the reset argument
instead of the on argument.
(Maint) Whitespace only cleanup

This patch is a simple whitespace only minor cleanup of the redhat
service provider.  I noticed some indentation problems while in the file
so I re-indented the whole thing with ggVG= in vim.
(#15797) Disable RedHat services in all run levels

Without this patch applied the `chkconfig <name> off` command is used to
disable services.  This command operates on run levels 2,3,4 and 5 by
default.  This behavior is a problem because the `chkconfig <name>
reset` method may turn the service on in run levels 0,1 or 6.

This patch fixes the problem by explicitly disabling the service in all
run levels.