class Chef::Knife

Public Instance Methods

configure_sudo() click to toggle source
# File lib/chef/knife/pkg_base.rb, line 36
def configure_sudo
  config[:sudo_required] = Chef::Config[:knife][:pkg_sudo_required] ||
                   config[:sudo_required]
end
hostname_by_attribute(node) click to toggle source
# File lib/chef/knife/pkg_base.rb, line 89
def hostname_by_attribute(node)
  if config[:manual]
    node[:fqdn]
  else
    if !config[:override_attribute] && node[:cloud] and node[:cloud][:public_hostname]
      i = node[:cloud][:public_hostname]
    elsif config[:override_attribute]
      i = extract_nested_value(node, config[:override_attribute])
    else
      i = extract_nested_value(node, config[:attribute])
    end
  end
end
node_by_hostname(hostname) click to toggle source
# File lib/chef/knife/pkg_base.rb, line 73
def node_by_hostname(hostname)
  node = nil
  if config[:manual]
    node = Hash.new
    node[:fqdn] = hostname
  else
    @action_nodes.each do |n|
      if hostname_by_attribute(n) == hostname
        node = n
        break
      end
    end
  end
  node
end
pkg_options() click to toggle source
# File lib/chef/knife/pkg_base.rb, line 41
def pkg_options
  pkg_options = Hash.new
  pkg_options[:sudo] = config[:sudo_required]
  pkg_options[:verbose] = config[:verbose] || config[:dry_run] || config[:pkg_verbose]
  pkg_options[:dry_run] = config[:dry_run]
  pkg_options[:yes] = config[:yes]
  pkg_options[:password] = config[:ssh_password]
  pkg_options
end
process_each_node() click to toggle source
# File lib/chef/knife/pkg_base.rb, line 51
def process_each_node
  cur_session = nil
  begin
    session.servers.each do |server|
      node = node_by_hostname(server.host)
      if node
        cur_session = server.session(true)
        ui.info("===> " + hostname_by_attribute(node))
        process(node, cur_session)
        cur_session.close
      else
        ui.fatal("Could not find any node for server #{server.host}")
        exit 1
      end
    end
  ensure
    if cur_session
      cur_session.close unless cur_session.closed?
    end
  end
end