class AwsUtils::Ec2DeleteSecurityGroup
Public Class Methods
new(args)
click to toggle source
# File lib/awsutils/ec2delsg.rb, line 56 def initialize(args) @opts = Ec2SecurityGroup.parse_opts(args) end
Public Instance Methods
delete_group_refs()
click to toggle source
# File lib/awsutils/ec2delsg.rb, line 45 def delete_group_refs references.each do |ref| puts 'Removing rule: ' + ref.inspect connection.revoke_security_group_ingress( ref['group_name'], ref['options'] ) end end
name()
click to toggle source
# File lib/awsutils/ec2delsg.rb, line 60 def name @opts[:security_group] end
references()
click to toggle source
# File lib/awsutils/ec2delsg.rb, line 7 def references @references ||= begin references = [] connection.security_groups.each do |group| group.ip_permissions.each do |ip_perm| ip_perm['groups'].each do |src_grp| next unless src_grp['groupName'] == @opts[:security_group] options = { 'IpPermissions' => [ { 'FromPort' => ip_perm['fromPort'], 'Groups' => [ { 'GroupName' => @opts[:security_group], 'UserId' => @opts[:owner_group_id] } ], 'IpProtocol' => ip_perm['ipProtocol'], 'IpRanges' => [], 'ToPort' => ip_perm['toPort'] } ] } references << { 'group_name' => group.name, 'options' => options } end end end references end end
run()
click to toggle source
# File lib/awsutils/ec2delsg.rb, line 64 def run unless exist? puts 'Specified group does not exist.' exit 1 end if assigned? puts 'Group is still assigned to one or more instances.' exit 1 end delete_group_refs puts "Deleting group #{@opts[:security_group]}." connection.delete_security_group(nil, connection.security_groups.get(@opts[:security_group]).group_id) end