/virtualmonkey

Primary LanguageRubyOtherNOASSERTION

QuickStart

Install

from rubyforge (soon)

"gem install virtualmonkey"

from source

"git clone http://github.com/rightscale/virtualmonkey"
"gem install jeweler rspec bundler"
"bundle install --system" <- Install any gems listed.
"rake install"

Configuration

You need to setup ~/.fog and ~/.rest_connection with configuration options to match your RightScale account (for using the RightScale API), your AWS credentials (for SimpleDB and S3), and your Rackspace Cloud credentials.
Just run the monkey, and it will tell you how to setup your missing credentials.

Usage

The command line client is "monkey".  It lives in your gem binary path.
See the help pages for usage:
  "monkey help"

Virtual Monkey Architecture

RightScale API access

Uses rest_connection library from http://github.com/rightscale/rest_connection.git -b multicloud

S3 and SimpleDB access

Uses Fog library from http://github.com/geemus/fog.git

Virtual Monkey command line client “monkey”

Cruise Control Hooks

(todo)

Shared Resource Tracking (Amazon SimpleDB)

Shared Resources like DNS_IDs and EIPs will be shared among clients using conditional PUT operations to SimpleDB.
SharedDns

Manager Classes

DeploymentSet - handles create/load/delete of DeploymentSets

Using the RS API we create a set of all the 'basic variations' a deployment can have.
Basic variations currently are generated using permutations of Images, Clouds, and Instance Types.

Grinder

handles running grinder tests and collecting and posting results to S3

Collateral

Manages test collateral projects consisting of troops, common_inputs, cloud_variable overrides, runners, mixins, lists, and features

VirtualMonkey::RunnerCore::DeploymentBase

  • These are a set of specialty mixins per Deployment type for cluster management of a single deployment.

  • This keeps our grinder features from getting cluttered. Each step definition needs an equivalent DeploymentRunner method.

  • ‘One-off’ variations are setup by the DeploymentRunner(s) and will be applied during a test run.

    ex: OPT_PHP_VHOST_PORT, SLAVE_DNS_ID

VirtualMonkey::RunnerCore::CommandHooks

This special mixin provides a API hooks that allow certain actions to be taken before and after "monkey create" and "monkey destroy"

VirtualMonkey::TestCaseInterface

This mixin contains the control structures for execution tracing, deep resuming, exception handling, and in-line debugging

Grinder feature tests

  • Grinder Features live in GEM_HOME/features

  • These features can be run by hand -or- by the Grinder Manager class via “monkey run” command.

  • See the grinder help page for usage:

  • “grinder –help”

A Feature will:

1) setup one-off variations using the VirtualMonkey::DeploymentRunner .
2) exercise a cluster deployment using the VirtualMonkey::DeploymentRunner.

Note on Patches/Pull Requests

  • Fork the project.

  • Set up the

  • Make your feature addition or bug fix.

  • Commit, do not mess with rakefile, version, or history.

(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright © 2010-2012 RightScale Inc