chef
https://github.com/opscode/chef
Ruby
A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
Chef::ApiClient::Registration#run
Runs the client registration process, including creating the client on the chef-server and writing its private key to disk. -- If client creation fails with a 5xx, it is retried up to 5 times. These retries are on top of the retries with randomized exponential backoff built in to Chef::ServerAPI. The retries here are a workaround for failures caused by resource contention in Hosted Chef when creating a very large number of clients simultaneously, (e.g., spinning up 100s of ec2 nodes at once). Future improvements to the affected component should make these retries unnecessary.
Edit
git clone [email protected]:opscode/chef.git
cd chef
open lib/chef/api_client/registration.rb
Contribute
# Make a new branchgit checkout -b -your-name--update-docs-Chef--ApiClient--Registration-run-for-pr
# Commit to gitgit add lib/chef/api_client/registration.rbgit commit -m "better docs for Chef::ApiClient::Registration#run"
# Open pull requestgem install hub # on a mac you can `brew install hub`
hub fork
git push <your name> -your-name--update-docs-Chef--ApiClient--Registration-run-for-pr
hub pull-request
# Celebrate!