Class: Chef::Knife

Inherits:
Object
  • Object
show all
Defined in:
lib/chef/knife/pkg_base.rb,
lib/chef/knife/pkg_show_updates.rb,
lib/chef/knife/pkg_install_updates.rb

Defined Under Namespace

Classes: PkgBase, PkgInstallUpdates, PkgShowUpdates

Instance Method Summary collapse

Instance Method Details

#configure_sudoObject



36
37
38
39
# 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) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/chef/knife/pkg_base.rb', line 88

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) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/chef/knife/pkg_base.rb', line 72

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_optionsObject



41
42
43
44
45
46
47
48
# 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
end

#process_each_nodeObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/chef/knife/pkg_base.rb', line 50

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