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.

Source | Google | Stack overflow

Edit

git clone [email protected]:opscode/chef.git

cd chef

open lib/chef/api_client/registration.rb

Contribute

# Make a new branch

git checkout -b -your-name--update-docs-Chef--ApiClient--Registration-run-for-pr


# Commit to git

git add lib/chef/api_client/registration.rbgit commit -m "better docs for Chef::ApiClient::Registration#run"


# Open pull request

gem 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!