Sha256: b67887e0b10a3faec448e1412d71a772392da0dd3629443dc36acbec660f3266
Contents?: true
Size: 1.36 KB
Versions: 1
Compression:
Stored size: 1.36 KB
Contents
module AwsRds class SecurityGroup include AwsServices # Returns Aws::EC2::Types::SecurityGroup def find_or_create(name) resp = ec2.describe_security_groups( filters: [ {name: 'vpc-id', values: [fallback_vpc_id]}, {name: 'group-name', values: [name]}] ) sg = resp.security_groups.first return sg if sg puts "Creating security group #{name}".colorize(:green) result = ec2.create_security_group( group_name: name, description: name, vpc_id: fallback_vpc_id, ) # TODO: add waiter # ec2.create_tags( # resources: [result.group_id], # tags: [{ key: "Name", value: name }], # ) resp = ec2.describe_security_groups(group_ids: [result.group_id]) resp.security_groups.first end def fallback_vpc_id AwsRds.config["fallback"]["vpc_id"] rescue NoMethodError => e puts "ERROR: a vpc_id was not specified.".colorize(:red) puts <<-EOL No vpc_id was specified in your profile. Also, a fallback vpc_id was set. Please add a vpc_id in your profile file or add a fallback vpc_id to your config/#{AwsRds.env}.yml. To specify a fallback vpc_id setting. Example config/#{AwsRds.env}.yml: --- fallback: vpc_id: vpc-123 EOL exit 1 end def self.find_or_create(name) new.find_or_create(name) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
aws-rds-0.6.0 | lib/aws_rds/security_group.rb |