Module: Cumulus::SecurityGroups

Defined in:
lib/security/Commands.rb,
lib/security/loader/Loader.rb,
lib/security/SecurityGroups.rb,
lib/security/manager/Manager.rb,
lib/security/models/RuleDiff.rb,
lib/security/models/RuleConfig.rb,
lib/security/models/RuleMigration.rb,
lib/security/models/SecurityGroupDiff.rb,
lib/security/models/SecurityGroupConfig.rb

Defined Under Namespace

Modules: Loader, RuleChange, SecurityGroupChange Classes: Commands, Manager, RuleConfig, RuleDiff, RuleMigration, SecurityGroupConfig, SecurityGroupDiff

Constant Summary collapse

@@client =
Aws::EC2::Client.new(Configuration.instance.client)

Class Method Summary collapse

Class Method Details

.id_security_groupsObject



14
15
16
# File 'lib/security/SecurityGroups.rb', line 14

def id_security_groups
  @id_security_groups ||= Hash[security_groups.map { |a| [a.group_id, a] }]
end

.security_groupsObject

Describe all security groups



26
27
28
# File 'lib/security/SecurityGroups.rb', line 26

def security_groups
  @security_groups ||= @@client.describe_security_groups.security_groups
end

.vpc_security_group_id_namesObject

Public: Returns a Hash of vpc id to Hash of security group id to group name



31
32
33
34
35
# File 'lib/security/SecurityGroups.rb', line 31

def vpc_security_group_id_names
  @vpc_security_group_id_names ||= Hash[vpc_security_groups.map do |vpc_id, group_hash|
    [vpc_id, Hash[group_hash.map {|_, sg| [sg.group_id, sg.group_name]}]]
  end]
end

.vpc_security_groupsObject

Public: Returns a Hash of vpc id to Hash of security group name to group



19
20
21
22
23
# File 'lib/security/SecurityGroups.rb', line 19

def vpc_security_groups
  @vpc_security_groups ||= Hash[security_groups.map(&:vpc_id).uniq.map do |vpc_id|
    [vpc_id, Hash[security_groups.select { |g| g.vpc_id == vpc_id }.map { |g| [g.group_name, g] }]]
  end]
end