class SousChef::Node
Attributes
name[R]
Public Class Methods
new(name, settings)
click to toggle source
# File lib/sous-chef/node.rb, line 6 def initialize(name, settings) @settings = settings @name = name end
Public Instance Methods
config()
click to toggle source
# File lib/sous-chef/node.rb, line 11 def config @config ||= @settings['node_config'] || {} end
hostname()
click to toggle source
# File lib/sous-chef/node.rb, line 15 def hostname @hostname ||= ssh_hash['Host'] || @name end
ssh_config()
click to toggle source
# File lib/sous-chef/node.rb, line 19 def ssh_config @ssh_config ||= begin config = "Host #{hostname}\n" ssh_attrs.each do |key, value| config << " #{key} #{value}\n" end config end end
ssh_config_path()
click to toggle source
# File lib/sous-chef/node.rb, line 29 def ssh_config_path @ssh_config_file ||= begin config_file = Tempfile.new('agent_ssh_config') config_file.write(ssh_config) config_file.close at_exit { config_file.delete } config_file end @ssh_config_file.path end
Private Instance Methods
ssh_attrs()
click to toggle source
# File lib/sous-chef/node.rb, line 46 def ssh_attrs @ssh_attrs ||= begin ssh_attrs = ssh_hash.clone ssh_attrs.delete('Host') ssh_attrs end end
ssh_hash()
click to toggle source
# File lib/sous-chef/node.rb, line 42 def ssh_hash @ssh_hash ||= @settings['ssh_config'] || {} end