(#7285) Add spec for Augeas initialisation and file loading

Simple initialisaton tests with combinations of lens include paths, explicit
file/lens loading against a few example files.
(#13379) Add path of pluginsync'd lenses to Augeas load_path automatically

The path $libdir/augeas/lenses is added to the Augeas load_path initialisation
option automatically to support lenses being pluginsynced.  Lenses should be
added into the <module>/lib/augeas/lenses directory inside a module.

The load_path parameter has been expanded to support an array of paths as well
as a colon-separated list.
Update acceptance tests to use confine instead of skip_test loops

Now that the test harness supports confine :except, :platform = 'windows'
(and the like), update the tests to use that syntax.
Revert changes to symbolic_modes.rb -- this test should indeed be pending
(it should eventually work on Windows).
Remove EL-related test changes from this commit.

These changes will go to the 2.6.x branch instead.
(#9160) Change logging facility to debug for not supported provider features
Update CHANGELOG puppet.spec for 2.7.15rc2
Merge branch '2.7rc' into 2.7.x
(#14615) Exclude helperscripts in gentoo service provider

The directory `/etc/init.d` does not only store normal initscripts but
also a few helper scripts (like `functions.sh`). The former behaviour was
to treat them as regular initscripts which can lead to dangerous results
especially when running `puppet resource service`. This command will
issue `/etc/init.d/<script> status` on every script inside
`/etc/init.d`. Because the helperscripts don't care about arguments,
this will cause the system to reboot when `/etc/init.d/reboot.sh status` is
executed.

Exclude helperscripts when searching inside `/etc/init.d`.
Merge pull request #736 from mkincaid/27confines

Update acceptance tests to use confine instead of skip_test loops
(Maint) Added test for fully qualified variables

A fully qualified variable looks up through the scopes of the scope that
the variable references.
(#14343) Lookup in correct inherited scope

The previous twoscope lookup of the inheritied scope tried to find the
inherited scope by looking up the class_scope() directly. Unfortunately,
this does not work correctly in cases where the inherited scope is
qualified to the topscope (::parent) or where the scope is implicitly
qualified (class a { class b {} class c inherits b {} }).

By using the same mechanism that variables use for looking up scope (the
qualified_scope() method) variable lookup will find a scope consistent
with what qualified variable lookups will find.
(#14297) Handle upstart services better

The previous changes to the upstart provider didn't take into account services
that may have upstart jobs in /etc/init with no corresponding symlink to
upstart-job in /etc/init.d. This fix adds /etc/init/$service.conf to the search
path in the upstart provider.

In order to allow upstart to use debian as its parent, this commit adds methods
for enabled?, enable and disable. Without this fix, using a debian style init
script on ubuntu requires manually specifying the debian provider be used.
With this commit, the upstart provider can be the default for ubuntu and
still fail up to its parent, debian.

The enabled?, disable, and enable methods are complicated because upstart has 3
behaviors to account for. Upstart < 0.6.7 have only the conf file and start on
stanzas to worry about, 0.6.7 < upstart < 0.9.0 has a manual stanza which
removes any previous start on declaration, and upstart >= 0.9.0 has an override
file. In upstart >= 0.9.0, the provider does all of its work using override files
to leave the upstart conf file for the service intact and unchanged.

Because of the need to know which upstart version is being used, this commit
also adds a method and a class variable to hold and access the upstart version,
obtained by a call to `initctl --version`.
(#14297) Update spec tests for upstart provider

This commit adds tests for the upstart provider to verify that it has the
enableable methods and that it behaves correctly with various versions of
upstart. The tests include multiline start blocks, manual stanzas, and override
files.
(#14297) Add acceptance test for upstart provider

This adds a simple upstart provider test to the acceptance tests. It has some
basic service cases to consider, including an upstart job with a symlink in
/etc/init.d, an upstart job with no symlink in /etc/init.d, and a init script
that is not an upstart job. The test was graciously supplied by Justin Stoller.
(#14343) Test cases for more forms of variable lookup

* ensure that topscope variable lookup works when inheriting
  from a fully qualified class name.
* ensure that local scope overrides inherited scope variables
(#14297) Clean up upstart provider and tests

This commit eases readability of the changes to the upstart provider, breaking
functionality into helper functions where appropriate. The spec tests were
similarly cleaned up.
(#14297) Update upstart provider acceptance tests

Previously this test would grep the status output to determine the status of
the service. That works for upstart services, but not for init style services.
For those the return code of status must be checked. This commit adds a wrapper
function to handle using the right method to determine the service status.
Merge remote-tracking branch 'zaphod42/bug/2.7rc/14343-variable-lookup-fails-with-qualified-classes-in-inheritance' into 2.7rc

* zaphod42/bug/2.7rc/14343-variable-lookup-fails-with-qualified-classes-in-inheritance:
  (#14343) Test cases for more forms of variable lookup
  (#14343) Lookup in correct inherited scope
  (Maint) Added test for fully qualified variables
(#14297) Define agent in upstart acceptance test

agent wasn't being passed into the helper function in the upstart acceptance
test, so this adds the agent variable to the method and passes it in when
called.