class Chef::Knife::Ec2VpcList

Public Instance Methods

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

  vpcs_list = [
    ui.color("ID", :bold),
    ui.color("State", :bold),
    ui.color("CIDR Block", :bold),
    ui.color("Instance Tenancy", :bold),
    ui.color("DHCP Options ID", :bold),
    ui.color("Default VPC?", :bold),
  ].flatten.compact

  output_column_count = vpcs_list.length

  if config[:format] == "summary"
    vpc_hash.each_pair do |_k, v|
      vpcs_list << v["vpc_id"]
      vpcs_list << v["state"]
      vpcs_list << v["cidr_block"]
      vpcs_list << v["instance_tenancy"]
      vpcs_list << v["dhcp_options_id"]
      vpcs_list << (v["is_default"] ? "Yes" : "No")
    end
    puts ui.list(vpcs_list, :uneven_columns_across, output_column_count)
  else
    output(format_for_display(vpc_hash))
  end
end

Private Instance Methods

vpc_hash() click to toggle source

@return [Hash<Hash>]

# File lib/chef/knife/ec2_vpc_list.rb, line 62
def vpc_hash
  all_data = {}
  ec2_connection.describe_vpcs.first.vpcs.each do |v|
    v_data = {}
    %w{vpc_id cidr_block dhcp_options_id instance_tenancy is_default state}.each do |id|
      v_data[id] = v.send(id)
    end
    all_data[v_data["vpc_id"]] = v_data
  end
  all_data
end