Better handling of both new and old git checkouts.

This has flapped some, because we try to do too many clever things with remote
execution.  Now, it should work robustly in all cases.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Merge pull request #119 from daniel-pittman/faster-rerun-through-checkout-reuse

Better handling of both new and old git checkouts.
Handle a machine that is both master *and* agent in git tests.

The master signs it's own agent certificate implicitly, which was breaking a
test that validated that *all* agents didn't have a certificate.

This skips over the master, although not the validation that the certificate
works, which keeps things running as expected.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Allow ValidateSignCert to pass in a single-node setup

In the case where you are running acceptance tests against a single node (which is serving as both master and agent), the puppet cert --sign-all needs to accept an exit code of 24 (which means that there were no certs to sign).
Merge pull request #121 from daniel-pittman/handle-machine-that-is-master-and-agent

Handle a machine that is both master *and* agent in git tests.
Merge pull request #122 from cprice-puppet/allow-no-certs-for-single-node

Allow ValidateSignCert to pass in a single-node setup
allow extra environment vars for puppet commands

When working on some tickets relating to setting system locales (Facter #12012, Puppet #11860), I came across a situation where I needed to be able to set some environment variables before running puppet commands in my acceptance tests.  This changeset adds the ability to pass in an optional ":environment" hash when calling "apply_manifest_on"; the key/value pairs in this hash will be set as environment variables for the duration of the execution of the "puppet apply" operation.

This implementation isn't ideal, but the implementation details are not very visible in the actual acceptance test syntax.  We might want to re-work the implementation later, but for now this was the only reasonably easy way to pull it off.

Also--this logic could very easily be extended to work for other puppet commands besides "apply", but hasn't at this point in time.
Empty puppet.conf before adding the server definition.

Previously `/etc/puppet/puppet.conf` would grow without bounds, because this
setup script appended to the configuration but never removed anything.  Now,
instead, it ensures that only the expected content is in place.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
(maint) adding cloudpro role to configs

Adding cloudpro role to install only configs -- test install of
cloudpro with each install only test.
(maint)  Update all configs for cloudpro

Adding cloud provisioner to all test configs.
Merge remote branch 'origin/pe2.0.x'
Merge pull request #123 from cprice-puppet/allow_extra_env_vars_to_puppet_commands

allow extra environment vars for puppet commands
Merge pull request #124 from daniel-pittman/avoid-eternally-growing-puppet.conf

Empty puppet.conf before adding the server definition.
On error print the exception message in addition to the backtrace
Merge pull request #125 from pcarlisle/show-error

On error print the exception message in addition to the backtrace
(maint) remove version checking for --pe-version option

Checking for a specific PE version serves no real purpose; if
an invalid version is passed the hassness will halt with an
apporiate error indicating the vesrion needed is not found.
Merge branch 'master' of github.com:puppetlabs/puppet-acceptance
(#11944) Refactor Host classes out of the TestCase namespace

Previously, the Host, WindowsHost, and UnixHost classes were contained
in the TestCase namespace. This commit moves them out to the top-level
as the lifetime of a Host spans multiple TestCases.
(#11944) Refactor command execution logic

Previously, the `TestCase#on` method knew about the inner workings of
the Command class, e.g. that 0 was the default successful exit
code. However, that behavior would only occur if you called the `on`
method, but not if you called the `Command#exec` method directly.

This commit moves the logic into the Command class to ensure the logic
is always applied regardless of how the command is executed.
(#11944) Refactor Unix and Windows hosts into separate namespaces

This commit just moves the Unix and Windows Host classes into their
own namespaces. This is being in done in preparation for future
commits.