class Awful::Subnet
Public Instance Methods
create(name)
click to toggle source
# File lib/awful/subnet.rb, line 30 def create(name) opt = load_cfg whitelist = %i[vpc_id cidr_block availability_zone] opt = remove_empty_strings(opt) ec2.create_subnet(only_keys_matching(opt, whitelist)).tap do |response| id = response.map(&:subnet).map(&:subnet_id) ec2.create_tags(resources: Array(id), tags: opt[:tags]) if opt[:tags] puts id end end
delete(name)
click to toggle source
# File lib/awful/subnet.rb, line 42 def delete(name) id = find_subnet(name) if id and yes?("really delete subnet #{name} (#{id})?") ec2.delete_subnet(subnet_id: id) end end
dump(name)
click to toggle source
# File lib/awful/subnet.rb, line 21 def dump(name) ec2.describe_subnets.map(&:subnets).flatten.find do |subnet| subnet.subnet_id == name or subnet.tags.any? { |tag| tag.value == name } end.tap do |subnet| puts YAML.dump(stringify_keys(subnet.to_hash)) end end
ls(name = /./)
click to toggle source
# File lib/awful/subnet.rb, line 7 def ls(name = /./) fields = options[:long] ? ->(s) { [(tag_name(s) || '-'), s.subnet_id, s.state, s.cidr_block, s.available_ip_address_count, s.availability_zone] } : ->(s) { [s.subnet_id] } ec2.describe_subnets.map(&:subnets).flatten.select do |subnet| subnet.tags.any? { |tag| tag.value.match(name) } end.map do |subnet| fields.call(subnet) end.tap do |list| print_table list.sort end end