class Chef::Application::Local
Attributes
chef_solo_json[R]
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/chef/application/local.rb, line 114 def initialize super end
Public Instance Methods
reconfigure()
click to toggle source
Calls superclass method
# File lib/chef/application/local.rb, line 118 def reconfigure super Chef::Config[:solo] = true if Chef::Config[:noop] require 'tvdinner/noop' end if Chef::Config[:json_attribs] begin json_io = case Chef::Config[:json_attribs] when /^(http|https):\/\// @rest = Chef::REST.new(Chef::Config[:json_attribs], nil, nil) @rest.get_rest(Chef::Config[:json_attribs], true).open else open(Chef::Config[:json_attribs]) end rescue SocketError => error Chef::Application.fatal!("I cannot connect to #{Chef::Config[:json_attribs]}", 2) rescue Errno::ENOENT => error Chef::Application.fatal!("I cannot find #{Chef::Config[:json_attribs]}", 2) rescue Errno::EACCES => error Chef::Application.fatal!("Permissions are incorrect on #{Chef::Config[:json_attribs]}. Please chmod a+r #{Chef::Config[:json_attribs]}", 2) rescue Exception => error Chef::Application.fatal!("Got an unexpected error reading #{Chef::Config[:json_attribs]}: #{error.message}", 2) end begin @chef_client_json = Chef::JSONCompat.from_json(json_io.read) json_io.close unless json_io.closed? rescue JSON::ParserError => error Chef::Application.fatal!("Could not parse the provided JSON file (#{Chef::Config[:json_attribs]})!: " + error.message, 2) end end @chef_client_json ||= Chef::JSONCompat.from_json("{}") @chef_client_json[:release_dir] ||= (ENV['RELEASE_DIR'] || ENV['PWD']) @chef_client_json[:project_dir] ||= (ENV['PROJECT_DIR'] || @chef_client_json[:release_dir]) end
run_application()
click to toggle source
# File lib/chef/application/local.rb, line 163 def run_application loop do begin run_chef_client Chef::Application.exit! "Exiting", 0 rescue SystemExit => e raise rescue Exception => e Chef::Application.debug_stacktrace(e) Chef::Application.fatal!("#{e.class}: #{e.message}", 1) end end end
setup_application()
click to toggle source
# File lib/chef/application/local.rb, line 160 def setup_application end