class Sgupdater::CLI

Public Instance Methods

add() click to toggle source
# File lib/sgupdater/cli.rb, line 33
def add
  added = client.add
  if added
    puts "Add success"
  else
    puts "No change"
  end
end
show() click to toggle source
# File lib/sgupdater/cli.rb, line 14
def show
  client.get.each {|sg| show_security_groups(sg, options[:from_cidr], options[:to_cidr])}
end
update() click to toggle source
# File lib/sgupdater/cli.rb, line 21
def update
  updated = client.update
  if updated
    puts "Update success"
  else
    puts "No change"
  end
end

Private Instance Methods

cidr1_in_ip_permission_and_cidr2_not_in_ip_permission?(ip_permission, cidr1, cidr2) click to toggle source
# File lib/sgupdater/cli.rb, line 51
def cidr1_in_ip_permission_and_cidr2_not_in_ip_permission?(ip_permission, cidr1, cidr2)
   cidr1_find = cidr_in_ip_permission?(ip_permission, cidr1)
   cidr2_not_find = !cidr_in_ip_permission?(ip_permission, cidr2)
   cidr1_find && cidr2_not_find
end
cidr_in_ip_permission?(ip_permission, cidr) click to toggle source
# File lib/sgupdater/cli.rb, line 47
def cidr_in_ip_permission?(ip_permission, cidr)
  ip_permission.ip_ranges.select {|ip| ip.values.include? cidr}.size > 0
end
client() click to toggle source
# File lib/sgupdater/cli.rb, line 43
def client
  @client ||= Client.new options, aws_configuration
end
ip_ranges_to_ips(ip_ranges) click to toggle source
# File lib/sgupdater/cli.rb, line 57
def ip_ranges_to_ips(ip_ranges)
  ip_ranges.map {|ip_range| ip_range.values}.flatten
end
show_security_groups(sg, from_cidr, to_cidr) click to toggle source
# File lib/sgupdater/cli.rb, line 61
def show_security_groups(sg, from_cidr, to_cidr)
  sg.ip_permissions.each do |perm|
    found = false
    if to_cidr
      found = cidr1_in_ip_permission_and_cidr2_not_in_ip_permission?(perm, from_cidr, to_cidr)
    else
      found = cidr_in_ip_permission?(perm, from_cidr)
    end

    if found
      print "#{sg.owner_id}\t" if options[:show_account]
      puts [aws_configuration[:region], sg.vpc_id || '(classic)', sg.group_id, sg.group_name, perm.from_port, perm.to_port, ip_ranges_to_ips(perm.ip_ranges).join(",")].join("\t")
    end
  end
end