class Awspec::Generator::Spec::Kms

Public Instance Methods

generate_all() click to toggle source
# File lib/awspec/generator/spec/kms.rb, line 5
def generate_all
  aliases = select_all_kms_aliases.select { |kms_alias| customer_managed_key?(kms_alias) }
  raise 'Not Found alias' if aliases.empty?
  ERB.new(keys_spec_template, nil, '-').result(binding).chomp
end
keys_spec_template() click to toggle source
# File lib/awspec/generator/spec/kms.rb, line 11
      def keys_spec_template
        template = <<-'EOF'
<% aliases.each do |kms_alias| %>
describe kms('<%= kms_alias.alias_name.split('/').last %>') do
  it { should exist }
<% if find_kms_key(kms_alias.target_key_id).enabled -%>
  it { should be_enabled }
<% end -%>
end
<% end %>
EOF
        template
      end

Private Instance Methods

customer_managed_key?(kms_alias) click to toggle source
# File lib/awspec/generator/spec/kms.rb, line 27
def customer_managed_key?(kms_alias)
  # An aliase that has no target key id field is predefined by AWS.
  # see: https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#list_aliases-instance_method
  !kms_alias.target_key_id.nil?
end