awspec 0.66.0 → 0.66.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0d082c7989d077043be4c2678e8319e2ae1692ad
4
- data.tar.gz: a8f134cf2076f264a9019b5e04acb2bd41bf4e5d
3
+ metadata.gz: 7bfc427b5c45404f29d5b083a2677fddfbcb3436
4
+ data.tar.gz: 3fb322b83f4f0eae316f3f3ffdc26e9f1c19e746
5
5
  SHA512:
6
- metadata.gz: 6dcce735c2782bd85a0ee42fdb01a7b7e8e4c14cc7ee605aa0006313249ed3741b307c8e0ff64128fd832a2e42d7b07f5fe73d5874d24930e9e55e9d50261d6d
7
- data.tar.gz: 9f7fecbbf166d249d0ff06d840ec5b50dfe089b2efd00c2120bebb3d3a10f130f904d65f771345a5e51d8165dcec04eac3866ada7c6cff464d026aa791aae7c9
6
+ metadata.gz: 9134db801d2643c9ad4101ef3f27e06bc6f2a402c7e35e0e85a98ad8d384240d7e36c08219e8e3031e73c089561b3b9ac1ca75e7d5bbd80727d963de197bc48c
7
+ data.tar.gz: 03894ab2663220cc3561c58308de62ccc7dbbd9acf3516ca07f3a673775ffaf3fb6defeebaddbc21ffdd159054cb2c7b86538390c0285bbc43a4e17ec6efdec5
@@ -72,6 +72,16 @@ describe ec2('my-ec2') do
72
72
  end
73
73
  ```
74
74
 
75
+ ### have_network_interface
76
+
77
+ ```ruby
78
+ describe ec2('my-ec2') do
79
+ it { should have_network_interface('my-eni') }
80
+ it { should have_network_interface('eni-12ab3cde') }
81
+ it { should have_network_interface('my-eni').as_eth0 }
82
+ end
83
+ ```
84
+
75
85
  ### have_security_group
76
86
 
77
87
  ```ruby
@@ -411,6 +411,17 @@ end
411
411
  ```
412
412
 
413
413
 
414
+ ### have_network_interface
415
+
416
+ ```ruby
417
+ describe ec2('my-ec2') do
418
+ it { should have_network_interface('my-eni') }
419
+ it { should have_network_interface('eni-12ab3cde') }
420
+ it { should have_network_interface('my-eni').as_eth0 }
421
+ end
422
+ ```
423
+
424
+
414
425
  ### have_security_group
415
426
 
416
427
  ```ruby
@@ -476,7 +487,7 @@ EcrRepository resource type.
476
487
  ### exist
477
488
 
478
489
 
479
- ## <a name="ecs cluster">ecs cluster</a>
490
+ ## <a name="ecs_cluster">ecs_cluster</a>
480
491
 
481
492
  ECS Cluster resource type.
482
493
 
@@ -507,7 +518,7 @@ end
507
518
  ```
508
519
 
509
520
  ### its(:cluster_arn), its(:cluster_name), its(:status), its(:registered_container_instances_count), its(:running_tasks_count), its(:pending_tasks_count), its(:active_services_count)
510
- ## <a name="ecs container instance">ecs container instance</a>
521
+ ## <a name="ecs_container_instance">ecs_container_instance</a>
511
522
 
512
523
  ECS Container Instance resource type.
513
524
 
@@ -532,7 +543,7 @@ end
532
543
 
533
544
 
534
545
  ### its(:container_instance_arn), its(:ec2_instance_id), its(:version), its(:version_info), its(:status), its(:agent_connected), its(:running_tasks_count), its(:pending_tasks_count), its(:agent_update_status), its(:attributes)
535
- ## <a name="ecs service">ecs service</a>
546
+ ## <a name="ecs_service">ecs_service</a>
536
547
 
537
548
  ECS Service resource type.
538
549
 
@@ -554,7 +565,7 @@ end
554
565
  ```
555
566
 
556
567
  ### its(:service_arn), its(:service_name), its(:cluster_arn), its(:status), its(:desired_count), its(:running_count), its(:pending_count), its(:task_definition), its(:role_arn), its(:created_at), its(:placement_constraints), its(:placement_strategy)
557
- ## <a name="ecs task definition">ecs task definition</a>
568
+ ## <a name="ecs_task_definition">ecs_task_definition</a>
558
569
 
559
570
  ECS Task Definition resource type.
560
571
 
@@ -56,7 +56,7 @@ module Awspec::Generator
56
56
 
57
57
  def doc_template
58
58
  template = <<-'EOF'
59
- ## <a name="<%= @type_name.underscore %>"><%= @type_name.underscore %></a>
59
+ ## <a name="<%= @type_name.gsub(/ /, '_').underscore %>"><%= @type_name.gsub(/ /, '_').underscore %></a>
60
60
 
61
61
  <%= @type_name %> resource type.
62
62
  <%- if @descriptions.include?('first') -%><%= @descriptions['first'] %><%- end -%>
@@ -18,6 +18,7 @@ module Awspec::Generator
18
18
  subnet = find_subnet(instance.subnet_id)
19
19
  eips = select_eip_by_instance_id(instance_id)
20
20
  volumes = select_ebs_by_instance_id(instance_id)
21
+ network_interfaces = select_network_interface_by_instance_id(instance_id)
21
22
  content = ERB.new(ec2_spec_template, nil, '-').result(binding).gsub(/^\n/, '')
22
23
  end
23
24
  specs.join("\n")
@@ -65,6 +66,9 @@ describe ec2('<%= instance_id %>') do
65
66
  it { should have_ebs('<%= volume.volume_id %>') }
66
67
  <%- end -%>
67
68
  <% end %>
69
+ <% network_interfaces.each do |interface| %>
70
+ it { should have_network_interface('<%= interface.network_interface_id %>') }
71
+ <% end %>
68
72
  end
69
73
  EOF
70
74
  template
@@ -109,6 +109,13 @@ module Awspec::Helper
109
109
  res.addresses
110
110
  end
111
111
 
112
+ def select_network_interface_by_instance_id(id)
113
+ res = ec2_client.describe_network_interfaces({
114
+ filters: [{ name: 'attachment.instance-id', values: [id] }]
115
+ })
116
+ res.network_interfaces
117
+ end
118
+
112
119
  def select_nat_gateway_by_vpc_id(vpc_id)
113
120
  res = ec2_client.describe_nat_gateways({
114
121
  filter: [{ name: 'vpc-id', values: [vpc_id] }]
@@ -2,6 +2,7 @@
2
2
  require 'awspec/matcher/belong_to_vpc'
3
3
  require 'awspec/matcher/belong_to_subnet'
4
4
  require 'awspec/matcher/have_tag'
5
+ require 'awspec/matcher/have_network_interface'
5
6
 
6
7
  # RDS
7
8
  require 'awspec/matcher/belong_to_db_subnet_group'
@@ -0,0 +1,15 @@
1
+ RSpec::Matchers.define :have_network_interface do |network_interface_id|
2
+ match do |type|
3
+ type.has_network_interface?(network_interface_id, @device_index)
4
+ end
5
+
6
+ chain :device_index do |device_index|
7
+ @device_index = device_index
8
+ end
9
+
10
+ (0..10).each do |idx|
11
+ chain "as_eth#{idx}".to_sym do
12
+ @device_index = idx
13
+ end
14
+ end
15
+ end
@@ -29,6 +29,16 @@ Aws.config[:ec2] = {
29
29
  }
30
30
  }
31
31
  ],
32
+ network_interfaces: [
33
+ {
34
+ network_interface_id: 'eni-12ab3cde',
35
+ subnet_id: 'subnet-1234a567',
36
+ vpc_id: 'vpc-ab123cde',
37
+ attachment: {
38
+ device_index: 1
39
+ }
40
+ }
41
+ ],
32
42
  tags: [
33
43
  {
34
44
  key: 'Name',
@@ -151,6 +161,63 @@ Aws.config[:ec2] = {
151
161
  { group_name: 'my-vpc-security-group-name', group_id: nil }
152
162
  ]
153
163
  ]
164
+ },
165
+ describe_network_interfaces: {
166
+ network_interfaces: [
167
+ {
168
+ network_interface_id: 'eni-12ab3cde',
169
+ subnet_id: 'subnet-1234a567',
170
+ vpc_id: 'vpc-ab123cde',
171
+ availability_zone: 'ap-northeast-1c',
172
+ description: '',
173
+ owner_id: '1234567890',
174
+ requester_id: nil,
175
+ requester_managed: false,
176
+ status: 'in-use',
177
+ mac_address: '00:11:aa:bb:cc:22',
178
+ private_ip_address: '10.0.1.1',
179
+ private_dns_name: nil,
180
+ source_dest_check: true,
181
+ groups:
182
+ [
183
+ {
184
+ group_name: 'my-security-group-name',
185
+ group_id: 'sg-1a2b3cd4'
186
+ }
187
+ ],
188
+ attachment: {
189
+ attachment_id: 'eni-attach-12ab3cde',
190
+ instance_id: 'i-ec12345a',
191
+ instance_owner_id: '1234567890',
192
+ device_index: 0,
193
+ status: 'attached',
194
+ attach_time: nil,
195
+ delete_on_termination: true
196
+ },
197
+ association: nil,
198
+ tag_set: [
199
+ {
200
+ key: 'Name',
201
+ value: 'my-eni'
202
+ }
203
+ ],
204
+ private_ip_addresses: [
205
+ {
206
+ private_ip_address: '10.0.1.1',
207
+ private_dns_name: nil,
208
+ primary: true,
209
+ association: nil
210
+ },
211
+ {
212
+ private_ip_address: '10.0.1.2',
213
+ private_dns_name: '',
214
+ primary: false,
215
+ association: nil
216
+ }
217
+ ],
218
+ interface_type: nil
219
+ }
220
+ ]
154
221
  }
155
222
  }
156
223
  }
@@ -27,7 +27,7 @@ Aws.config[:ec2] = {
27
27
  attachment_id: 'eni-attach-12ab3cde',
28
28
  instance_id: 'i-ec12345a',
29
29
  instance_owner_id: '1234567890',
30
- device_index: 0,
30
+ device_index: 1,
31
31
  status: 'attached',
32
32
  attach_time: nil,
33
33
  delete_on_termination: true
@@ -68,6 +68,15 @@ module Awspec::Type
68
68
  end
69
69
  end
70
70
 
71
+ def has_network_interface?(network_interface_id, device_index = nil)
72
+ res = find_network_interface(network_interface_id)
73
+ interfaces = resource_via_client.network_interfaces
74
+ ret = interfaces.find do |interface|
75
+ next false if device_index && interface.attachment.device_index != device_index
76
+ interface.network_interface_id == res.network_interface_id
77
+ end
78
+ end
79
+
71
80
  def has_event?(event_code)
72
81
  status = find_ec2_status(id)
73
82
  ret = status.events.find do |event|
@@ -20,13 +20,13 @@ module Awspec::Type
20
20
  end
21
21
  end
22
22
 
23
- def attached_to?(instance_id, device_index = 0)
23
+ def attached_to?(instance_id, device_index = nil)
24
24
  instance = find_ec2(instance_id)
25
25
  return false unless instance
26
26
  return false unless resource_via_client.attachment
27
+ return false if device_index && resource_via_client.attachment.device_index != device_index
27
28
  resource_via_client.attachment.instance_id == instance.instance_id && \
28
- resource_via_client.attachment.status == 'attached' && \
29
- resource_via_client.attachment.device_index == device_index
29
+ resource_via_client.attachment.status == 'attached'
30
30
  end
31
31
 
32
32
  def has_private_ip_address?(ip_address, primary = nil)
@@ -1,3 +1,3 @@
1
1
  module Awspec
2
- VERSION = '0.66.0'
2
+ VERSION = '0.66.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.66.0
4
+ version: 0.66.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - k1LoW
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-02-14 00:00:00.000000000 Z
11
+ date: 2017-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -380,6 +380,7 @@ files:
380
380
  - lib/awspec/matcher/belong_to_vpc.rb
381
381
  - lib/awspec/matcher/have_inline_policy.rb
382
382
  - lib/awspec/matcher/have_key_policy.rb
383
+ - lib/awspec/matcher/have_network_interface.rb
383
384
  - lib/awspec/matcher/have_origin.rb
384
385
  - lib/awspec/matcher/have_private_ip_address.rb
385
386
  - lib/awspec/matcher/have_record_set.rb