Add support for cloning additional git repos

This adds a "--yagr" option to the acceptance framework: "Yet Another
Git Repo".  You can pass as many occurrences of this as you like,
and the framework will clone each repo so that you'll have it available
for your project's tests.
Support for VMWare Fusion when using --vmrun

This provides support for reverting a VMWare Fusion machine to a particular
snapshot prior to executing tests.

Additional requirements on the Test Driver:
- Must have the 'fission' gem (including all its dependencies) installed
- Must have a ~/.fissionrc that points to the `vmrun` executable and where VMs
  can be found

You can then use the following arguments to systest:
- `--vmrun fusion` tells us to enable this feature. This is required.
- `--snapshot <name>`, where <name> is the snapshot name to revert to. This
  applies across *all* VMs, so it only makes sense if you want to use the same
  snapshot name for all VMs. This is optional.

For each host, you can (optionally) have a "fission" section with the following
(also optional) settings inside:

- `vmname`: This is useful if the hostname of the VM doesn't match the name of
  the .VMX file on disk. The alias should be something fission can load.
- `snapshot`: This is useful if you'd like to use different snapshots for each
  host. The value should be a valid snapshot name for the VM.

Signed-off-by: Deepak Giridharagopal <deepak@puppetlabs.com>
Use headless mode for Fusion VM's

Signed-off-by: Deepak Giridharagopal <deepak@puppetlabs.com>
Add fission dependency to gemspec

Signed-off-by: Deepak Giridharagopal <deepak@puppetlabs.com>
Move vmname option from fission-level to host-level

vmname is a generic attribute of a host, thus the option can be useful in
contexts outside of fission. This patch moves that option out of the fission
subsection and into the parent host section.

"I've been wanting to make explicit the distinction between name used by the
harness, hostname, and vmname for awhile. This is something we're going to need
in vSphere soon and I'd like to see 'vmname' as a key in the host hash above
the fission specific section (since I'll probably be using it in vSphere as
well before Lance ships)." -- Justin Stoller

Signed-off-by: Deepak Giridharagopal <deepak@puppetlabs.com>
Merge pull request #245 from grimradical/9989_fission_support

Support for VMWare Fusion when using --vmrun
Fix typo in comparison statement

Signed-off-by: Deepak Giridharagopal <deepak@puppetlabs.com>
Merge pull request #246 from cprice-puppet/feature/master/allow-extra-git-clones

Add support for cloning additional git repos
Merge pull request #249 from grimradical/typo-in-vmrun

Fix typo in comparison statement
Add "node_name" method to Host class

In certain tests it is very important for us to use
an agent's node_name_value rather than relying
on the hostname from the test config file (or
other possible values that may successfully
resolve in DNS).  For example, when testing
node activation and de-activation for puppetdb,
we *must* use the node_name_value or things
can go awry.

This commit adds a method to the host object
that allows us to retrieve the node_name_value
without having to hard-code the command for
acquiring it into all of the tests.  We might
want to consider similar methods for a few other
things such as FQDN.
Allow projects to define their own setup suites

This introduces the "--setup-dir" option, which
allows a project to specify a path to a
project-specific setup directory.  This directory
may contain subdirectories like "early", "pre-suite",
and "post-suite".  Ruby files inside of these
directories will be run at the appropriate phase
in the testing lifecycle.
Merge pull request #248 from cprice-puppet/feature/master/node-name-method-for-hosts

Add "node_name" method to Host class
Merge pull request #247 from cprice-puppet/feature/master/allow-project-setup-suites

Feature/master/allow project setup suites
Wait until fission VMs are actually ready before proceeding

Sometimes fission will return from a call to `start` prior to it actually being
registered as `running` in VMWware.

This patch adds some basic sanity-checking; we'll wait until the VM is actually
in the state we'd like before proceeding. Better safe than sorry.

Signed-off-by: Deepak Giridharagopal <deepak@puppetlabs.com>
Allow projects to specify manual installation

This commit allows you to specify "--type manual",
if your project will be responsible for managing
installation of the test subject code and does
not need the framework to do anything during that
phase.
Merge pull request #251 from cprice-puppet/feature/master/allow-manual-installation-type

Allow projects to specify manual installation
Allow manual specification of host IP address

This allows the acceptance module to still track real hostnames without
it being necessary to add all the hosts to the controller's /etc/hosts
file.
Merge pull request #250 from grimradical/fission-loop-until-ready

Wait until fission VMs are actually ready before proceeding
Merge pull request #252 from branan/allow_manual_ip

Allow manual specification of host IP address
Fix a bug in support for "--type manual"

The vmrun option looks for a vmsnapshot named "manual" if you
specify "--type manual".  We want it to just use the normal
"git" snapshot.  This is kind of a hack, unfortunately... but
as you can see in the line above, we weren't the first ones
to have this problem.