class Chef::Resource::ChefClientLaunchd

Public Instance Methods

client_command() click to toggle source

random sleep time + chef-client + daemon option properties + license acceptance

@return [String]

# File lib/chef/resource/chef_client_launchd.rb, line 181
def client_command
  cmd = ""
  cmd << "/bin/sleep #{splay_sleep_time(new_resource.splay)};"
  cmd << " #{new_resource.chef_binary_path}"
  cmd << " #{new_resource.daemon_options.join(" ")}" unless new_resource.daemon_options.empty?
  cmd << " -c #{::File.join(new_resource.config_directory, "client.rb")}"
  cmd << " -L #{::File.join(new_resource.log_directory, new_resource.log_file_name)}"
  cmd << " --chef-license accept" if new_resource.accept_chef_license
  cmd
end
splay_sleep_time(splay) click to toggle source

Generate a uniformly distributed unique number to sleep from 0 to the splay time

@param [Integer] splay The number of seconds to splay

@return [Integer]

# File lib/chef/resource/chef_client_launchd.rb, line 170
def splay_sleep_time(splay)
  seed = node["shard_seed"] || Digest::MD5.hexdigest(node.name).to_s.hex
  random = Random.new(seed.to_i)
  random.rand(splay)
end