class Chef::Knife::NodeRunListAdd
Public Instance Methods
run()
click to toggle source
# File lib/chef/knife/node_run_list_add.rb, line 42 def run node = Chef::Node.load(@name_args[0]) if @name_args.size > 2 # Check for nested lists and create a single plain one entries = @name_args[1..].map do |entry| entry.split(",").map(&:strip) end.flatten else # Convert to array and remove the extra spaces entries = @name_args[1].split(",").map(&:strip) end if config[:after] && config[:before] ui.fatal("You cannot specify both --before and --after!") exit 1 end if config[:after] add_to_run_list_after(node, entries, config[:after]) elsif config[:before] add_to_run_list_before(node, entries, config[:before]) else add_to_run_list_after(node, entries) end node.save config[:run_list] = true output(format_for_display(node)) end
Private Instance Methods
add_to_run_list_after(node, entries, after = nil)
click to toggle source
# File lib/chef/knife/node_run_list_add.rb, line 76 def add_to_run_list_after(node, entries, after = nil) if after nlist = [] node.run_list.each do |entry| nlist << entry if entry == after entries.each { |e| nlist << e } end end node.run_list.reset!(nlist) else entries.each { |e| node.run_list << e } end end
add_to_run_list_before(node, entries, before)
click to toggle source
# File lib/chef/knife/node_run_list_add.rb, line 91 def add_to_run_list_before(node, entries, before) nlist = [] node.run_list.each do |entry| if entry == before entries.each { |e| nlist << e } end nlist << entry end node.run_list.reset!(nlist) end