class Chef::Knife::Ec2SecuritygroupList

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/ec2_securitygroup_list.rb, line 29
def run
  validate_aws_config!
  custom_warnings!

  sg_list = [
    ui.color("ID", :bold),
    ui.color("Name", :bold),
    ui.color("VPC ID", :bold),
  ].flatten.compact

  output_column_count = sg_list.length

  if config[:format] == "summary"
    sg_hash.each_pair do |_k, v|
      sg_list << v["group_id"]
      sg_list << v["group_name"]
      sg_list << v["vpc_id"]
    end
    puts ui.list(sg_list, :uneven_columns_across, output_column_count)
  else
    output(format_for_display(sg_hash))
  end
end

Private Instance Methods

sg_hash() click to toggle source
# File lib/chef/knife/ec2_securitygroup_list.rb, line 55
def sg_hash
  all_data = {}
  ec2_connection.describe_security_groups.first.security_groups.each do |s|
    s_data = {}
    %w{group_name group_id vpc_id}.each do |id|
      s_data[id] = s.send(id)
    end
    all_data[s_data["group_id"]] = s_data
  end
  all_data
end