Class: Awspec::Type::Ec2
Constant Summary collapse
- STATES =
%w( pending running shutting-down terminated stopping stopped )
Constants included from Helper::Finder
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
- #disabled_api_termination? ⇒ Boolean
- #has_classiclink?(vpc_id = nil) ⇒ Boolean
- #has_classiclink_security_group?(sg_id) ⇒ Boolean
- #has_ebs?(volume_id) ⇒ Boolean
- #has_eip?(ip_address = nil) ⇒ Boolean
- #has_event?(event_code) ⇒ Boolean
- #has_events? ⇒ Boolean
- #has_security_group?(sg_id) ⇒ Boolean
-
#initialize(id) ⇒ Ec2
constructor
A new instance of Ec2.
Methods inherited from Base
aws_resource, #exists?, #inspect, #method_missing, tags_allowed, #to_s
Methods included from BlackListForwardable
#method_missing_via_black_list
Methods included from Helper::Finder::Cloudtrail
#find_trail, #get_trail_status, #is_logging?, #select_all_trails
Methods included from Helper::Finder::Elastictranscoder
Methods included from Helper::Finder::Cloudfront
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_all_iam_groups, #select_all_iam_roles, #select_all_iam_users, #select_attached_entities, #select_attached_groups, #select_attached_roles, #select_attached_users, #select_iam_group_by_user_name, #select_policy_evaluation_results
Methods included from Helper::Finder::Lambda
#find_lambda, #select_all_lambda_functions, #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_logging, #find_bucket_policy, #find_bucket_versioning, #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_ec2_status, #find_nat_gateway, #find_network_interface, #select_ec2_by_vpc_id, #select_eip_by_instance_id, #select_nat_gateway_by_vpc_id, #select_network_interface_by_vpc_id
Methods included from Helper::Finder::Subnet
#find_subnet, #select_subnet_by_vpc_id
Methods included from Helper::Finder::Vpc
#find_network_acl, #find_route_table, #find_vpc, #find_vpc_peering_connection, #select_network_acl_by_vpc_id, #select_route_table_by_vpc_id
Constructor Details
#initialize(id) ⇒ Ec2
Returns a new instance of Ec2.
6 7 8 9 10 |
# File 'lib/awspec/type/ec2.rb', line 6 def initialize(id) super @resource_via_client = find_ec2(id) @id = @resource_via_client.instance_id if @resource_via_client end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Awspec::Type::Base
Instance Method Details
#disabled_api_termination? ⇒ Boolean
23 24 25 26 |
# File 'lib/awspec/type/ec2.rb', line 23 def disabled_api_termination? ret = find_ec2_attribute(@id, 'disableApiTermination') ret.disable_api_termination.value end |
#has_classiclink?(vpc_id = nil) ⇒ Boolean
77 78 79 80 81 82 83 84 |
# File 'lib/awspec/type/ec2.rb', line 77 def has_classiclink?(vpc_id = nil) option = { instance_ids: [@id] } option[:filters] = [{ name: 'vpc-id', values: [vpc_id] }] if vpc_id ret = ec2_client.describe_classic_link_instances(option) return ret.instances.count == 1 if vpc_id end |
#has_classiclink_security_group?(sg_id) ⇒ Boolean
86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/awspec/type/ec2.rb', line 86 def has_classiclink_security_group?(sg_id) option = { instance_ids: [@id] } classic_link_instances = ec2_client.describe_classic_link_instances(option) return false if classic_link_instances.instances.count == 0 instances = classic_link_instances[0] sgs = instances[0].groups ret = sgs.find do |sg| sg.group_id == sg_id || sg.group_name == sg_id end return true if ret end |
#has_ebs?(volume_id) ⇒ Boolean
51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/awspec/type/ec2.rb', line 51 def has_ebs?(volume_id) blocks = @resource_via_client.block_device_mappings ret = blocks.find do |block| next false unless block.ebs block.ebs.volume_id == volume_id end return true if ret blocks2 = find_ebs(volume_id) blocks2..find do || .instance_id == @id end end |
#has_eip?(ip_address = nil) ⇒ Boolean
28 29 30 31 32 33 34 35 36 |
# File 'lib/awspec/type/ec2.rb', line 28 def has_eip?(ip_address = nil) option = { filters: [{ name: 'instance-id', values: [@id] }] } option[:public_ips] = [ip_address] if ip_address ret = ec2_client.describe_addresses(option) return ret.addresses.count == 1 if ip_address return ret.addresses.count > 0 unless ip_address end |
#has_event?(event_code) ⇒ Boolean
64 65 66 67 68 69 |
# File 'lib/awspec/type/ec2.rb', line 64 def has_event?(event_code) status = find_ec2_status(@id) ret = status.events.find do |event| event.code == event_code end end |
#has_events? ⇒ Boolean
71 72 73 74 75 |
# File 'lib/awspec/type/ec2.rb', line 71 def has_events? status = find_ec2_status(@id) return false if status.nil? status.events.count > 0 end |
#has_security_group?(sg_id) ⇒ Boolean
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/awspec/type/ec2.rb', line 38 def has_security_group?(sg_id) sgs = @resource_via_client.security_groups ret = sgs.find do |sg| sg.group_id == sg_id || sg.group_name == sg_id end return true if ret sg2 = find_security_group(sg_id) return false unless sg2.tag_name == sg_id sgs.find do |sg| sg.group_id == sg2.group_id end end |