Class: Demeter::Commands::Plan

Inherits:
Base
  • Object
show all
Defined in:
lib/demeter/commands/plan.rb

Instance Method Summary collapse

Methods inherited from Base

#check_path, #initialize

Constructor Details

This class inherits a constructor from Demeter::Commands::Base

Instance Method Details

#startObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 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