(#7296) Make the Debian service provider handle services that don't conform to the debain policy manual.

This change is to support initscripts that do not support the --query
method of invoke-rc.d used by the Debian provider to determine if
service is enabled.

The fix checks that the link count in /etc/rc?.d is equal to 4, which is
the number of links that should be present when using the Debian service
provider, which is done by `update-rc.d #{service} defaults`.
Merge pull request #170 from xaque208/7296

(#7296) Make the Debian service provider handle services that don't
(#8296) Remove XMLRPC code

The XMLRPC code was left in place to ensure backward compatibility with
Puppet 0.24.x clients, but 0.24.x clients haven't been able to talk to
masters since 0.25.6 due to other bugs and incompatibilities.
Therefore, the XMLRPC code has been dead code for a long time and
removing it makes the codebase a lot easier to navigate.

Paired with Patrick Carlisle <patrick@puppetlabs.com>
(#8296) Remove logic around XMLRPC vs REST protocols

Now that REST is the only network protocol (and protocol was a bad term
anyway), we can remove all the logic around the xmlrpc vs rest
protocol.

Most of the places that did protocol argument checking never even used
the protocol information and didn't support XMLRPC anyway.

Paired-with: Matt Robinson <matt@puppetlabs.com>
Merge branch 'tickets/2.7.x/11414' of https://github.com/domcleal/puppet into 2.7.x

* 'tickets/2.7.x/11414' of https://github.com/domcleal/puppet:
  (#11414) Test Augeas versions correctly with versioncmp
  (#11414) Save/execute changes on versions of Augeas < 0.3.6
Merge remote-tracking branch 'pcarlisle/ticket/master/8296-xmlrpc_deletion'

* pcarlisle/ticket/master/8296-xmlrpc_deletion:
  (#8296) Remove logic around XMLRPC vs REST protocols
  (#8296) Remove XMLRPC code
Merge remote-tracking branch 'masterzen/tickets/2.7.x/3757' into 2.7.x

* masterzen/tickets/2.7.x/3757:
  (#4836) - Agent --disable should allow to put a message
  (#3757) - Refactor enable/disable to its own module
  (#3757) - Move enable/disable to its own lock
(#11641) Properly track blockers when generating additional resources

Previously, we would enqueue any unblocked resources as we added them to the
graph. These were our initial resources, with no dependencies, and served as a
starting place for traversal. However, we would
add_dynamically_generated_resources before traversing, which could add
additional resources and dependencies. We never accounted for these, causing
our measure of blockedness to become incorrect (a resource could have more
dependencies than we counted).

This is similar to the case of eval_generate adding additional resources. In
that case, we clear the blockers list and allow it to be recalculated on
demand. Unfortunately, that approach doesn't work for the case where we add
resources before traversing (as in add_dynamically_generated_resources),
because we wouldn't have a reliable list of resources to begin traversal with.
Now we no longer enqueue resources when adding them, and instead wait until
after we have called add_dynamically_generated_resources (which happens only
once). This allows us to add our root resources with the assurance they won't
change before we start evaluating them.
Add gitignore to default puppet module

This patch was merged into the seperate puppet-modlue-tool repo but I've
been asked to submit it here as well.  See:

https://github.com/puppetlabs/puppet-module-tool/pull/17
Merge branch '2.6.x' into 2.7.x

* 2.6.x:
  Updated CHANGELOG for 2.6.13
  Updating CHANGELOG for 2.6.13rc1

Version number related Conflicts:
	CHANGELOG
	conf/redhat/puppet.spec
	lib/puppet.rb
Merge branch '2.7.x'

* 2.7.x: (21 commits)
  (#7296) Make the Debian service provider handle services that don't conform to the debain policy manual.
  (#4836) - Agent --disable should allow to put a message
  (#3757) - Refactor enable/disable to its own module
  (#3757) - Move enable/disable to its own lock
  Fix failing tests with ruby 1.9.2 in the instrumentation framework
  Use all lower-case file name for Puppet::Util::Instrumentation::Instrumentable
  Maint: Fix typo in usage example for create_resources function
  Set of faces to manage instrumentation listeners, data and probes
  Example probes for the indirector
  Add probe indirection for probe management
  Process name instrumentation listener
  Add the 'performance' instrumentation listener
  Add the example 'log' listener
  Add a way to add probe to puppet code
  Add indirection (REST usable) to manipulate instrumentation
  Instrumentation foundation layer
  (#8119) Write reports to a temporary file and move them into place
  (#11414) Test Augeas versions correctly with versioncmp
  (#11414) Save/execute changes on versions of Augeas < 0.3.6
  Updated CHANGELOG for 2.6.13
  ...

Conflicts:
	spec/unit/application/agent_spec.rb
	spec/unit/provider/augeas/augeas_spec.rb
Fix augeas_spec branch merging mistake

spec/unit/provider/augeas/augeas_spec.rb had merge conflicts when I
merged 2.7.x into master.  I resolved them incorrectly at first, then
forgot to add the fixed resolution to the merge commit before pushing,
so all the tests passed on my local machine.  This corrects that merge
resolution so that tests all pass.
Merge pull request #299 from mmrobins/ticket/master/maint-fix_augeas_spec_merge

Fix augeas_spec branch merging mistake
(#11451) Fix improper use of "defined" in the duplicate declaration error

Duplicate resource declarations (including classes with the resource-like
class {'name':} syntax) were provoking the following error:

Duplicate definition: Class[Test] is already defined in file /tmp/test.pp at
line 9; cannot redefine at /tmp/test.pp:10 on node example.com

This is incorrect -- the problem is a duplicate declaration, not a duplicate
definition. I believe this is a holdover from our formerly sloppy use of the two
terms.

This commit fixes the error message, and renames several variables and methods
to match our current understanding of the terms "define" and "declare." Tests
are fixed as well.
(#11741) Use dns_alt_names instead of certdnsnames in acceptance tests

The certdnsnames argument is now ignored, and dns_alt_names is the new
version. This previously caused failures in
helpful_error_message_when_hostname_not_match_server_certificate.
(#11552) Fix `puppet resource` ability to display parameters

The original commit for #11552 removing TransObject and TransBucket
removed the code that manually added parameters when converting from a
Puppet::Type::Resource to a Resource.  No tests in Puppet caught this
problem, but a test of the puppetral MCollective provider caught that
Puppet::Resource could no longer give back paramger information.

This restores the ability to retrieve parameters and adds tests to
Puppet.  Long term the logic for adding parameters really shouldn't live
in a method that converts between resource representations, but for now
I'm fixing the regression to work the same way it used to.
Merge branch 'ticket/master/11552-fix_puppetral_resource_parameters'

* ticket/master/11552-fix_puppetral_resource_parameters:
  (#11552) Fix `puppet resource` ability to display parameters
Access user password hash in OS X 10.7

A first attempt at accessing the user's password hash in 10.7 by
inspecting the user's plist in
/var/db/dslocal/nodes/Default/users/test.plist. This method requires
saving a binary plist to /tmp/username.plist in order to use plutil
-convert xml1 to convert it to xml (as Plist::parse_xml can only read
XML plists).

Use Puppet::Util::Package.versioncmp()

Because we're comparing OS X versions that are ultimately strings,
we need a method to catch the scenario where '10.10' < '10.7'.
Puppet::Util::Package.versioncmp() does this well, so we will use
it in favor of simple string comparison.
Merge pull request #306 from glarizza/bug/2.7.x/11293_users_osx

(11293) Set/get passwords from OS X 10.7
Revert "Access user password hash in OS X 10.7"

This reverts commit 11b8c5ad3fb99263c8484fecc767b69cd80d3156.

This needs to be reverted because I missed the use of backticks (``),
effectively %x{}, in the original pull request and this is causing a big
problem for the CI tests on non Mac OS X systems that don't have plutil.

Gary and I are going to re factor the pull request to make the command
calls easier to mock out on non Mac OS X platforms.  We can't do this
quickly tonight though.

Updated information will be in ticket #11293