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