README.md in silver_spurs-1.0.1 vs README.md in silver_spurs-1.0.2

- old
+ new

@@ -1,29 +1,76 @@ -# SilverSpurs +# SilverSpurs [![Build Status](https://travis-ci.org/christian-blades-cb/silver_spurs.png?branch=master)](https://travis-ci.org/christian-blades-cb/silver_spurs) -TODO: Write a gem description +RESTful Chef bootstrapping +Instead of using a CLI to kick off bootstrapping, hit an API endpoint and let the service do it for you. + ## Installation +Install chef and set up knife on the machine (refer to the [chef docs](http://docs.opscode.com)) + Add this line to your application's Gemfile: gem 'silver_spurs' +Create a config.ru: + + require 'bundler' + Bundler.setup + + require 'silver_spurs' + + # SilverSpurs::App.deployment_key = '/opt/deployment_key.pem' + # SilverSpurs::App.deployment_user = 'deployer' + # SilverSpurs::App.node_name_filter = /\w{3,10}/ + # SilverSpurs::Asyncifier.base_path = '/opt/silver_spurs' + + run SilverSpurs::App + And then execute: $ bundle + $ rackup -Or install it yourself as: +## Usage - $ gem install silver_spurs +### Kick off a bootstrap -## Usage + $ curl -X PUT -i -d node_name=machineotron http://localhost/bootstrap/10.0.1.2 + +The redirect will point to the query URL for the bootstrap run. Since these runs tend to take several minutes, this is preferable to a long-running HTTP request. -TODO: Write usage instructions here +Further GET requests to this endpoint will return a log of the run in progress. HEAD requests will return just the status code. +### Status codes + +* 406 - Missing a required parameter +* 404 - Unknown endpoint or resource +* 201 - Run completed successfully +* 202 - Run in progress +* 550 - Run ended in failure + +## Using the client + +Add this line to the application's Gemfile: + + gem 'silver_spurs' + +Sample application + + require 'silver_spurs/client' + + silver = SilverSpurs::Client.new('http://localhost') + bootstrap = silver.start_bootstrap('10.0.1.2', 'machineotron') + while bootstrap.status == :pending do + sleep 10 + end + puts bootstrap.log + ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Added some feature'`) -4. Push to the branch (`git push origin my-new-feature`) -5. Create new Pull Request +4. Add you some tests +5. Push to the branch (`git push origin my-new-feature`) +6. Create new Pull Request