lib/resources/aws/aws_security_groups.rb in inspec-2.1.21 vs lib/resources/aws/aws_security_groups.rb in inspec-2.1.30

- old
+ new

@@ -1,68 +1,68 @@ -class AwsSecurityGroups < Inspec.resource(1) - name 'aws_security_groups' - desc 'Verifies settings for AWS Security Groups in bulk' - example <<-EOX - # Verify that you have security groups defined - describe aws_security_groups do - it { should exist } - end - - # Verify you have more than the default security group - describe aws_security_groups do - its('entries.count') { should be > 1 } - end -EOX - supports platform: 'aws' - - include AwsPluralResourceMixin - - # Underlying FilterTable implementation. - filter = FilterTable.create - filter.add_accessor(:where) - .add_accessor(:entries) - .add(:exists?) { |x| !x.entries.empty? } - .add(:group_ids, field: :group_id) - filter.connect(self, :table) - - def to_s - 'EC2 Security Groups' - end - - private - - def validate_params(raw_criteria) - unless raw_criteria.is_a? Hash - raise 'Unrecognized criteria for fetching Security Groups. ' \ - "Use 'criteria: value' format." - end - - # No criteria yet - unless raw_criteria.empty? - raise ArgumentError, 'aws_ec2_security_groups does not currently accept resource parameters.' - end - raw_criteria - end - - def fetch_from_api - @table = [] - backend = BackendFactory.create(inspec_runner) - backend.describe_security_groups({}).security_groups.each do |sg_info| - @table.push({ - group_id: sg_info.group_id, - group_name: sg_info.group_name, - vpc_id: sg_info.vpc_id, - }) - end - end - - class Backend - class AwsClientApi < AwsBackendBase - BackendFactory.set_default_backend self - self.aws_client_class = Aws::EC2::Client - - def describe_security_groups(query) - aws_service_client.describe_security_groups(query) - end - end - end -end +class AwsSecurityGroups < Inspec.resource(1) + name 'aws_security_groups' + desc 'Verifies settings for AWS Security Groups in bulk' + example <<-EOX + # Verify that you have security groups defined + describe aws_security_groups do + it { should exist } + end + + # Verify you have more than the default security group + describe aws_security_groups do + its('entries.count') { should be > 1 } + end +EOX + supports platform: 'aws' + + include AwsPluralResourceMixin + + # Underlying FilterTable implementation. + filter = FilterTable.create + filter.add_accessor(:where) + .add_accessor(:entries) + .add(:exists?) { |x| !x.entries.empty? } + .add(:group_ids, field: :group_id) + filter.connect(self, :table) + + def to_s + 'EC2 Security Groups' + end + + private + + def validate_params(raw_criteria) + unless raw_criteria.is_a? Hash + raise 'Unrecognized criteria for fetching Security Groups. ' \ + "Use 'criteria: value' format." + end + + # No criteria yet + unless raw_criteria.empty? + raise ArgumentError, 'aws_ec2_security_groups does not currently accept resource parameters.' + end + raw_criteria + end + + def fetch_from_api + @table = [] + backend = BackendFactory.create(inspec_runner) + backend.describe_security_groups({}).security_groups.each do |sg_info| + @table.push({ + group_id: sg_info.group_id, + group_name: sg_info.group_name, + vpc_id: sg_info.vpc_id, + }) + end + end + + class Backend + class AwsClientApi < AwsBackendBase + BackendFactory.set_default_backend self + self.aws_client_class = Aws::EC2::Client + + def describe_security_groups(query) + aws_service_client.describe_security_groups(query) + end + end + end +end