class KnifeDraw::DrawNodes
Public Instance Methods
run()
click to toggle source
# File lib/knife_draw/draw_nodes.rb, line 11 def run filename = name_args.size > 0 ? name_args.first : "output.png" environment = config[:environment] graph = ChefGraph.new cluster_environments: environment.nil? source = ChefServerSource.new source.nodes(environment).each do |name, node| node_box = graph.draw_node(name, node.chef_environment) verbose_out "name: #{name} env: #{node.chef_environment}" source.roles_for_node(node).each do |role_name| verbose_out "\trole: #{role_name}" role_box = graph.draw_role(role_name) graph.connect(node_box, role_box) source.runlist_for_role(role_name).each do |run_list| runlist_box = graph.draw_runlist run_list.to_s graph.connect(role_box, runlist_box) verbose_out "\t\trunlist: #{run_list}" end end end graph.draw! filename end