Class: Chef::Knife::Core::NodePresenter

Inherits:
GenericPresenter show all
Defined in:
lib/chef/knife/core/node_presenter.rb

Overview

Chef::Knife::Core::NodePresenter

A customized presenter for Chef::Node objects. Supports variable-length output formats for displaying node data

Instance Attribute Summary

Attributes inherited from GenericPresenter

#config, #ui

Instance Method Summary collapse

Methods inherited from GenericPresenter

#extract_nested_value, #format, #format_cookbook_list_for_display, #format_for_display, #format_list_for_display, #initialize, #interchange?, #parse_format_option, #text_format

Constructor Details

This class inherits a constructor from Chef::Knife::Core::GenericPresenter

Instance Method Details

#key(key_text) ⇒ Object



98
99
100
# File 'lib/chef/knife/core/node_presenter.rb', line 98

def key(key_text)
  ui.color(key_text, :cyan)
end

#summarize(data) ⇒ Object

Converts a Chef::Node object to a string suitable for output to a terminal. If config or config are set the volume of output is adjusted accordingly. Uses colors if enabled in the the ui object.



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/chef/knife/core/node_presenter.rb', line 60

def summarize(data)
  if data.kind_of?(Chef::Node)
    node = data
    # special case ec2 with their split horizon whatsis.
    ip = (node[:ec2] && node[:ec2][:public_ipv4]) || node[:ipaddress]

    summarized=<<-SUMMARY
#{ui.color('Node Name:', :bold)}   #{ui.color(node.name, :bold)}
#{key('Environment:')} #{node.chef_environment}
#{key('FQDN:')}        #{node[:fqdn]}
#{key('IP:')}          #{ip}
#{key('Run List:')}    #{node.run_list}
#{key('Roles:')}       #{Array(node[:roles]).join(', ')}
#{key('Recipes:')}     #{Array(node[:recipes]).join(', ')}
#{key('Platform:')}    #{node[:platform]} #{node[:platform_version]}
SUMMARY
    if config[:medium_output] || config[:long_output]
      summarized +=<<-MORE
#{key('Attributes:')}
#{text_format(node.normal_attrs)}
MORE
    end
    if config[:long_output]
      summarized +=<<-MOST
#{key('Default Attributes:')}
#{text_format(node.default_attrs)}
#{key('Override Attributes:')}
#{text_format(node.override_attrs)}
#{key('Automatic Attributes (Ohai Data):')}
#{text_format(node.automatic_attrs)}
MOST
    end
    summarized
  else
    super
  end
end