class Chef::Resource::AwsSecurityGroup

Public Instance Methods

aws_object() click to toggle source
# File lib/chef/resource/aws_security_group.rb, line 56
def aws_object
  if security_group_id
    result = driver.ec2_resource.security_group(security_group_id)
  else
    # Names are unique within a VPC.  Try to search by name and narroy by VPC, if
    # provided
    if vpc
      vpc_object = Chef::Resource::AwsVpc.get_aws_object(vpc, resource: self)
      results = vpc_object.security_groups.to_a.select { |s| (s.group_name == name) || (s.id == name) }
    else
      results = driver.ec2_resource.security_groups.to_a.select { |s| (s.group_name == name) || (s.id == name) }
    end
    if results.size >= 2
      raise ::Chef::Provisioning::AWSDriver::Exceptions::MultipleSecurityGroupError.new(name, results)
    end
    result = results.first
  end
  result || nil
end