Merge pull request #561 from pcarlisle/ticket/2.7.x/10722-error-on-bad-http-response

(#10722) report an error on bad HTTTP response to report submission
Merge branch '2.7.x'

* 2.7.x:
  (#10722) Add spec to verify that an error is logged on bad http
  (#10722) Refactor http_spec to use expectations
  Updating CHANGELOG for 2.7.12rc2
  (#7592) Remove redundant call to String#to_s
  (#11988) Work around Augeas reload bug when changing save modes
  (#11988) Don't overwrite symlinks in augeas provider
  (#8312) Fix zypper provider so ensure => 'latest' now works
  (#12844) Fix a unit test relating to lockfiles
  (#12914) Allow puppet to be interrupted while waiting for child
  (#12933) Better error message when agent is administratively disabled
  (#7592) Remove redundant call to String#to_s
  (#12844) Agent lockfiles: backwards compatibility with 2.7.10/2.7.11
  (#10722) Display errors on HTTP report submission failures
  Revert "Merge remote-tracking branch 'masterzen/tickets/2.7.x/3757' into 2.7.x"
  Revert "(#12844) Backwards compatibility for 'puppet agent --enable'"
  (#11988) Work around Augeas reload bug when changing save modes
  (#11988) Don't overwrite symlinks in augeas provider
  (#12881) Fix cron type default name error on windows
  (#12844) Backwards compatibility for 'puppet agent --enable'
  (#8312) Fix zypper provider so ensure => 'latest' now works

Conflicts:
	lib/puppet/provider/augeas/augeas.rb
	lib/puppet/reports/http.rb
	lib/puppet/util/pidlock.rb
	spec/unit/application/agent_spec.rb
	spec/unit/provider/augeas/augeas_spec.rb
	spec/unit/reports/http_spec.rb
(#12981) Fix external subcommand exit status
Merge pull request #536 from pcarlisle/ticket/2.7.x/9491-filesetting-munging

(#9491) Preserve trailing slashes in FileSettings
Merge pull request #544 from pcarlisle/ticket/master/12763-reloadable-plugins

Ticket/master/12763 reloadable plugins
(#12960) Fix puppet resource <type> if type has no providers

puppet resource type calls the instances method of the type class. The
instances method then calls providers_by_source which can fail if the
following conditions are true

    1) there is at least one provider defined for the type
    2) all providers are unsuitable

If both requirements are met, the method self.defaultprovider will
return nil and we get the following error message (provided by Ben Ford)

    # puppet resource maillist
    puppet/type.rb:902:in `providers_by_source': undefined method `source'
    for nil:NilClass (NoMethodError)

The fix handles the case where defaultprovider can be nil
Fix order dependent spec failure caused by formats_spec

This was adding a feature for pson inside of a block that already depended on
the pson feature. This seems unnecessary.
Merge pull request #560 from stschulte/ticket/2.7.x/7986

(#7986) Modify pkg provider to handle publisher
Fix hash comparison under RSpec with 1.8.5

The behaviour of eql isn't quite right, and == actually does the right check,
on all versions of Ruby / RSpec.  This accepts that, and stops using eql in
rspec checks.

Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
Merge pull request #566 from daniel-pittman/maint/2.7.x/fix-pkg-provider-tests-on-1.8.5

Maint/2.7.x/fix pkg provider tests on 1.8.5
missing: )
Merge pull request #567 from Erkan-Yilmaz/master

add missing )
Merge pull request #562 from stschulte/ticket/2.7.x/12960

(#12960) Fix puppet resource <type> if type has no providers
Merge pull request #522 from domcleal/tickets/master/8011c

(#8011) Support temp repo URLs in pkgutil provider
Merge pull request #545 from pcarlisle/ticket/master/12891-reload-features

(#12891) Make features reloadable
Merge pull request #565 from lotheac/fix_subcommand_exit_status

(#12981) Fix external subcommand exit status
Document the problem with the `apply_to_device` and related methods.

These methods were introduced, producing a pale shadow of the constraint
system that we already had, as part of building out device support.

Now that we are confident of the long term value of that support, and are
looking to better integrate it, we should start cleaning up these older relics
of the initial design.

This flags, in a comment, what the problem is and what the solution should be,
so that folks looking at the code get directed to the right sort of place.

Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
Clean up "foo" name in global resource state.

Expecting that a type by the name of "foo" doesn't exist is asking for
trouble, because other tests are highly likely to create one.

Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
Clean up the "foo" name in create_resources_spec.

Using a common meta-name like "foo" in testing runs a risk that global state
will lead down the path to things going wrong.  In this case, it clashed
with a type created elsewhere that lingered...

Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
Finally, stop using the `foo` name in the type_spec test.

Using a common name like `foo` runs the risk that things go terribly wrong;
better to use something less likely to conflict.  Now we expunged the other
places this broke, this is safe to do.

Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>