<commit_before>= virtualmonkey



== Note on Patches/Pull Requests
 
* Fork the project.
* Make your feature addition or bug fix.
* Add tests for it. This is important so I don't break it in a
  future version unintentionally.
* 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

Copyright (c) 2010 <NAME>. See LICENSE for details.<commit_msg>new documentation README.rdoc<commit_after>= QuickStart
== Install
=== from rubyforge (soon)
  "gem install virtualmonkey"

=== from source
  "git clone http://github.com/jeremyd/virtualmonkey"
  "gem install jeweler rspec"
  "rake check_dependencies" <- 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) and your AWS credentials (for SimpleDB and S3).
  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 create --help"
    "monkey run --help"
    "monkey destroy --help"

= Virtual Monkey Architecture

== RightScale API access
  Uses rest_connection library from http://github.com/jeremyd/rest_connection.git
  
== 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

== Management Classes

===  DeploymentMonk - 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. 
===  CukeMonk 
  handles running cucumber tests and collecting and posting results to S3
=== VirtualMonkey::DeploymentRunner
*  These are a set of specialty mixins per Deployment type for cluster management of a single deployment. 

*  This keeps our cucumber 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::MysqlRunner, VirtualMonkey::FeAppRunner, VirtualMonkey::EBSRunner, VirtualMonkey::Mysql, VirtualMonkey::EBS


=== Cucumber feature tests
*  Cucumber Features live in GEM_HOME/features
*  These features can be run by hand -or- by CukeMonk via "monkey run" command.
*  The features have one ENVIRONMENT variable that is used to pass in the Deployment nickname.  To run by hand:
* "cucumber features/php.feature DEPLOYMENT=testing_deploy_x86_64"
===  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.
* 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

Copyright (c) 2010 <NAME>. See LICENSE for details.
{'fraction_non_alphanumeric': 0.0673103448275862, 'fraction_numerical': 0.004689655172413793, 'mean_word_length': 4.202295552367288, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6454997', 'n_tokens_mistral': 1051, 'n_tokens_neox': 1001, 'n_words': 474}