Added methods to find the root of the module and copy out to the master, spec tests to support
Method created is copy_root_module_to
(QENG-433) make validation steps in beaker optional

- turn on/off with -(-no)-validate
- defaults to 'true'
PDB-554 Implement a new EC2 backend and add jenkins_build_url to tags

This patch implements a replacement for the blimpy backend. It replaces the
use of blimpy to launch EC2 nodes with the Amazon AWS::EC2 library.

This was introduced to provide more control over handling error states, without
the granular control of a lower level library we are relying on blimpy to have
error handling (which it largely does not).

My theory was that we could either improve blimpy to do more, or just replace
it with a better driver that allows us to maintain our provisioning code on
its own without worrying about an upstream project. Since we don't use blimpy
for anything else, and we don't want the delay of having an upstream project
release our changes replacement seemed like a better option.

The driver is initiated with the hypervisor: ec2 setting in the users template
files and is built to match the blimpy behaviour in the way it configures
security groups and key pairs. To a reasonable extent users using blimpy right
now should be able to switch over with very little change.

As an aside, I've also added the ability to pass through the BUILD_URL from
a jenkins job as a tag in EC2 (and I've added this code to GCE as well). This
allows a better traceback from VM's to a particular job so we can identify
zombied jobs better.

Signed-off-by: Ken Barber <ken@bob.sh>
PDB-554 Add image checking and root device setup

Signed-off-by: Ken Barber <ken@bob.sh>
PDB-554 Set ENV variable jenkins_build_url to ensure test matches

Signed-off-by: Ken Barber <ken@bob.sh>
PDB-554 Decompose #provision and break out amiports into its own class

Signed-off-by: Ken Barber <ken@bob.sh>
PDB-554 Use hack_etc_hosts instead and make a wait_for_ssh method

The wait_for_ssh method works around a race during provisioning whereby a
machine can come up and be ready for SSH connections, but you will get an
authenthentication error if you try to quickly.

Signed-off-by: Ken Barber <ken@bob.sh>
PDB-554 Correct handling of /etc/hosts creation and ensure hostnames are set

Signed-off-by: Ken Barber <ken@bob.sh>
PDB-554 Use ec2's dynamic names

This obviates the need for /etc/hosts modification by using the EC2 public
names only.

Signed-off-by: Ken Barber <ken@bob.sh>
PDB-554 Provide a bare minimum /etc/hosts for Ubuntu 10.04 compatibility

Signed-off-by: Ken Barber <ken@bob.sh>
PDB-554 Execute configure_hosts() after wait_for_ssh()

Signed-off-by: Ken Barber <ken@bob.sh>
PDB-554 Remove wait_for_ssh now the underlying layers handles it

Signed-off-by: Ken Barber <ken@bob.sh>
Add future parser as option when applying a manifest

This option can enable the use of the future parser when applying a manifest.
I'm not 100% sure though what it will do on older puppet versions that don't support that option.
Add test and yardoc
(QENG-425) Generalize with_puppet_running_on method.

Instead of always using pe-httpd as the service name for PE Puppet master, set
that as the default and allow customization on a per-host basis (probably
through Beaker config).

Signed-off-by: Wayne <wayne@puppetlabs.com>
(QENG-425) Support optional curl_with_retries behavior.

Specifically, when restarting the puppet master using the initscript/service,
allow per-host configuration to specify whether or not to actually wait for the
puppet master to listen on port 8140 by attemping to grok with. Try up to 120
times at 1-second intervals.

Signed-off-by: Wayne <wayne@puppetlabs.com>
(QENG-425) Alter with_puppet_running_on logic.

Only use initscript to restart if puppetservice is defined.

Signed-off-by: Wayne <wayne@puppetlabs.com>
Add beaker windows support to auto identify port and guest
(QENG-486) add easy access to ip address per beaker host

- either use the already determined ip address or figure it out through
  ifconfig/ipconfig
(MAINT) correctly sort test files

- turns out that we aren't actually correctly sorting files and this
  affects how tests are run on hosts.