Class: Awspec::Generator::Spec::Ec2
- Inherits:
-
Object
- Object
- Awspec::Generator::Spec::Ec2
- Includes:
- Helper::Finder
- Defined in:
- lib/awspec/generator/spec/ec2.rb
Constant Summary
Constants included from Helper::Finder
Instance Method Summary collapse
-
#ec2_spec_template ⇒ Object
rubocop:disable all.
- #generate_by_vpc_id(vpc_id) ⇒ Object
Methods included from Helper::Finder::Ami
Methods included from Helper::Finder::Directconnect
#find_virtual_interface, #select_virtual_interfaces
Methods included from Helper::Finder::Ses
Methods included from Helper::Finder::Cloudwatch
#find_cloudwatch_alarm, #select_all_cloudwatch_alarms
Methods included from Helper::Finder::Elasticache
#find_cache_cluster, #find_cache_subnet_group
Methods included from Helper::Finder::Iam
#select_all_attached_policies, #select_attached_entities, #select_attached_groups, #select_attached_roles, #select_attached_users, #select_iam_group_by_user_name, #select_iam_policy_by_group_name, #select_iam_policy_by_role_name, #select_iam_policy_by_user_name, #select_policy_evaluation_results
Methods included from Helper::Finder::Lambda
#find_lambda, #select_event_source_by_function_arn
Methods included from Helper::Finder::Elb
#find_elb, #select_elb_by_vpc_id
Methods included from Helper::Finder::Ebs
#find_ebs, #select_all_attached_ebs, #select_ebs_by_instance_id
Methods included from Helper::Finder::Autoscaling
#find_autoscaling_group, #find_launch_configuration
Methods included from Helper::Finder::S3
#find_bucket, #find_bucket_acl, #find_bucket_cors, #find_bucket_policy, #select_all_buckets
Methods included from Helper::Finder::Route53
#find_hosted_zone, #select_record_sets_by_hosted_zone_id
Methods included from Helper::Finder::Rds
#find_rds, #select_rds_by_vpc_id
Methods included from Helper::Finder::SecurityGroup
#find_security_group, #select_security_group_by_vpc_id
Methods included from Helper::Finder::Ec2
#find_ec2, #find_ec2_attribute, #find_nat_gateway, #find_security_group, #select_ec2_by_vpc_id, #select_eip_by_instance_id, #select_nat_gateway_by_vpc_id
Methods included from Helper::Finder::Vpc
#find_network_acl, #find_route_table, #find_subnet, #find_vpc, #find_vpc_peering_connection, #select_network_acl_by_vpc_id, #select_route_table_by_vpc_id, #select_subnet_by_vpc_id
Instance Method Details
#ec2_spec_template ⇒ Object
rubocop:disable all
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/awspec/generator/spec/ec2.rb', line 27 def ec2_spec_template template = <<-'EOF' <%- if instance_tag_name -%> describe ec2('<%= instance_tag_name %>') do <%- else -%> describe ec2('<%= instance_id %>') do <%- end -%> it { should exist } it { should be_<%= instance.state.name %> } <% describes.each do |describe| %> <%- if instance.members.include?(describe.to_sym) && !instance[describe.to_sym].nil? -%> <%- if instance[describe].is_a?(String) -%> its(:<%= describe %>) { should eq '<%= instance[describe] %>' } <%- else -%> its(:<%= describe %>) { should eq <%= instance[describe] %> } <%- end -%> <%- end -%> <% end %> <% instance.security_groups.each do |sg| %> it { should have_security_group('<%= sg.group_name %>') } <% end %> <%- if @vpc_tag_name -%> it { should belong_to_vpc('<%= @vpc_tag_name %>') } <%- else -%> it { should belong_to_vpc('<%= @vpc_id %>') } <%- end -%> <%- if subnet.tag_name -%> it { should belong_to_subnet('<%= subnet.tag_name %>') } <%- else -%> it { should belong_to_subnet('<%= subnet.subnet_id %>') } <%- end -%> <% eips.each do |eip| %> it { should have_eip('<%= eip.public_ip %>') } <% end %> <% volumes.each do |volume| %> <%- if volume.tag_name -%> it { should have_ebs('<%= volume.tag_name %>') } <%- else -%> it { should have_ebs('<%= volume.volume_id %>') } <%- end -%> <% end %> end EOF template end |
#generate_by_vpc_id(vpc_id) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/awspec/generator/spec/ec2.rb', line 5 def generate_by_vpc_id(vpc_id) describes = %w( instance_id image_id private_dns_name public_dns_name instance_type private_ip_address public_ip_address ) vpc = find_vpc(vpc_id) fail 'Not Found VPC' unless vpc @vpc_id = vpc[:vpc_id] @vpc_tag_name = vpc.tag_name instances = select_ec2_by_vpc_id(@vpc_id) specs = instances.map do |instance| instance_id = instance[:instance_id] instance_tag_name = instance.tag_name subnet = find_subnet(instance.subnet_id) eips = select_eip_by_instance_id(instance_id) volumes = select_ebs_by_instance_id(instance_id) content = ERB.new(ec2_spec_template, nil, '-').result(binding).gsub(/^\n/, '') end specs.join("\n") end |