awspec 0.66.0 → 0.66.1

Sign up to get free protection for your applications and to get access to all the features.
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