class Demeter::Commands::Plan
Public Instance Methods
start()
click to toggle source
# File lib/demeter/commands/plan.rb, line 8 def start sgs_manager = Demeter::Aws::ManageSecurityGroups.new(ec2: @ec2, options: @options) diff = sgs_manager.diff_all rows = [] i = 0 diff.each do |sg, diffs| rows << :separator if i > 0 rows << [{:value => sg, :colspan => 3, :alignment => :left}] rows << :separator diffs.sort_by! { |d| d[0] } diffs.each do |_diff| if _diff[2].is_a? Array _diff[2].each do |__diff| rows << [_diff[0] == '+' ? _diff[0].colorize(:green) : _diff[0].colorize(:red), _diff[1], __diff.to_s] end else rows << [_diff[0] == '+' ? _diff[0].colorize(:green) : _diff[0].colorize(:red), _diff[1], _diff[2].to_s] end end i += 1 end if rows.empty? puts "All #{Demeter::env} security groups are in sync" else table = Terminal::Table.new :rows => rows puts table end end