Class: Sgdoc::Client
- Inherits:
-
Object
- Object
- Sgdoc::Client
- Defined in:
- lib/sgdoc/client.rb
Overview
TODO: VPCから順に構造体にしていく方法にした方がいい
Instance Attribute Summary collapse
-
#security_groups ⇒ Object
readonly
Returns the value of attribute security_groups.
Instance Method Summary collapse
-
#initialize(ec2_client: nil, ec2_resource: nil) ⇒ Client
constructor
A new instance of Client.
- #instances_by_vpc_id ⇒ Object
- #security_groups_by_vpc_id ⇒ Object
Constructor Details
#initialize(ec2_client: nil, ec2_resource: nil) ⇒ Client
Returns a new instance of Client.
6 7 8 9 |
# File 'lib/sgdoc/client.rb', line 6 def initialize(ec2_client: nil, ec2_resource: nil) @ec2_client = ec2_client || Aws::EC2::Client.new @ec2_resource = ec2_resource || Aws::EC2::Resource.new(client: @ec2_client) end |
Instance Attribute Details
#security_groups ⇒ Object (readonly)
Returns the value of attribute security_groups.
4 5 6 |
# File 'lib/sgdoc/client.rb', line 4 def security_groups @security_groups end |
Instance Method Details
#instances_by_vpc_id ⇒ Object
19 20 21 22 |
# File 'lib/sgdoc/client.rb', line 19 def instances_by_vpc_id instances = @ec2_resource.instances.map { |i| Sgdoc::EC2::Instance.new(i) } instances.group_by { |i| i.vpc_id } end |
#security_groups_by_vpc_id ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/sgdoc/client.rb', line 11 def security_groups_by_vpc_id describe_security_groups = @ec2_client.describe_security_groups.security_groups security_groups ||= describe_security_groups.map { |sg| Sgdoc::EC2::SecurityGroup.new(sg) } # vpcIDのキーをvpcのオブジェクトにしても良い security_groups.group_by { |sg| sg.vpc_id } end |