class Akashi::Vpc::SecurityGroup::Base

Public Class Methods

all() click to toggle source
Calls superclass method Akashi::Base::all
# File lib/akashi/vpc/security_group/base.rb, line 8
def all
  super.select { |security_group| security_group.name.end_with?("-#{role}") }
end
create(vpc:) click to toggle source
# File lib/akashi/vpc/security_group/base.rb, line 12
def create(vpc:)
  response = Akashi::Aws.ec2.client.create_security_group(
    vpc_id:      vpc.id,
    group_name:  name,
    description: name,
  )

  new(response[:group_id]).tap do |instance|
    ingress_ip_permissions.each do |ip_permission|
      instance.authorize_ingress(
        ip_permission[:protocol],
        ip_permission[:port],
        *ip_permission[:sources],
      )
    end
    instance.name = name
    puts "Created a SecurityGroup (#{instance.id}) whose role is \"#{role}\"."
  end
end
name() click to toggle source
# File lib/akashi/vpc/security_group/base.rb, line 32
def name
  "#{Akashi.name}-#{role}"
end
object_class() click to toggle source
# File lib/akashi/vpc/security_group/base.rb, line 40
def object_class
  @object_class ||= "SecurityGroup"
end
role() click to toggle source
# File lib/akashi/vpc/security_group/base.rb, line 36
def role
  self.to_s.demodulize.underscore.dasherize
end