kitchen-ec2 1.3.2 → 1.4.0
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 +4 -4
- data/.travis.yml +6 -2
- data/CHANGELOG.md +18 -0
- data/Gemfile +3 -5
- data/README.md +52 -18
- data/Rakefile +1 -1
- data/kitchen-ec2.gemspec +3 -8
- data/lib/kitchen/driver/aws/client.rb +16 -16
- data/lib/kitchen/driver/aws/instance_generator.rb +17 -17
- data/lib/kitchen/driver/aws/standard_platform.rb +2 -2
- data/lib/kitchen/driver/aws/standard_platform/amazon.rb +34 -0
- data/lib/kitchen/driver/aws/standard_platform/centos.rb +2 -2
- data/lib/kitchen/driver/aws/standard_platform/debian.rb +3 -2
- data/lib/kitchen/driver/aws/standard_platform/fedora.rb +1 -1
- data/lib/kitchen/driver/aws/standard_platform/freebsd.rb +1 -1
- data/lib/kitchen/driver/aws/standard_platform/rhel.rb +1 -1
- data/lib/kitchen/driver/aws/standard_platform/ubuntu.rb +1 -1
- data/lib/kitchen/driver/aws/standard_platform/windows.rb +3 -3
- data/lib/kitchen/driver/ec2.rb +30 -14
- data/lib/kitchen/driver/ec2_version.rb +1 -1
- data/spec/kitchen/driver/ec2/client_spec.rb +3 -3
- data/spec/kitchen/driver/ec2/image_selection_spec.rb +157 -122
- data/spec/kitchen/driver/ec2/instance_generator_spec.rb +51 -43
- data/spec/kitchen/driver/ec2_spec.rb +36 -16
- metadata +8 -22
- data/.rubocop.yml +0 -21
@@ -27,7 +27,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
27
27
|
let(:config) { Hash.new }
|
28
28
|
let(:resource) { instance_double(Aws::EC2::Resource) }
|
29
29
|
let(:ec2) { instance_double(Kitchen::Driver::Aws::Client, :resource => resource) }
|
30
|
-
let(:logger)
|
30
|
+
let(:logger) { instance_double(Logger) }
|
31
31
|
let(:generator) { Kitchen::Driver::Aws::InstanceGenerator.new(config, ec2, logger) }
|
32
32
|
|
33
33
|
describe "#prepared_user_data" do
|
@@ -57,6 +57,14 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
57
57
|
expect(decoded).to eq("foo\nbar")
|
58
58
|
end
|
59
59
|
end
|
60
|
+
|
61
|
+
context "when config[:user_data] is binary" do
|
62
|
+
let(:config) { { :user_data => "foo\0bar" } }
|
63
|
+
|
64
|
+
it "handles nulls in user_data" do
|
65
|
+
expect(Base64.decode64(generator.prepared_user_data)).to eq "foo\0bar"
|
66
|
+
end
|
67
|
+
end
|
60
68
|
end
|
61
69
|
|
62
70
|
describe "#ec2_instance_data" do
|
@@ -67,8 +75,8 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
67
75
|
:subnets => [
|
68
76
|
{
|
69
77
|
:subnet_id => "s-123",
|
70
|
-
:tags => [{ :key => "foo", :value => "bar" }]
|
71
|
-
}
|
78
|
+
:tags => [{ :key => "foo", :value => "bar" }],
|
79
|
+
},
|
72
80
|
]
|
73
81
|
)
|
74
82
|
|
@@ -77,8 +85,8 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
77
85
|
:security_groups => [
|
78
86
|
{
|
79
87
|
:group_id => "sg-123",
|
80
|
-
:tags => [{ :key => "foo", :value => "bar" }]
|
81
|
-
}
|
88
|
+
:tags => [{ :key => "foo", :value => "bar" }],
|
89
|
+
},
|
82
90
|
]
|
83
91
|
)
|
84
92
|
|
@@ -100,7 +108,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
100
108
|
:ebs_optimized => true,
|
101
109
|
:image_id => "ami-123",
|
102
110
|
:subnet_id => "s-456",
|
103
|
-
:private_ip_address => "0.0.0.0"
|
111
|
+
:private_ip_address => "0.0.0.0",
|
104
112
|
}
|
105
113
|
end
|
106
114
|
|
@@ -124,7 +132,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
124
132
|
:image_id => "ami-123",
|
125
133
|
:aws_ssh_key_id => "key",
|
126
134
|
:subnet_id => "s-456",
|
127
|
-
:private_ip_address => "0.0.0.0"
|
135
|
+
:private_ip_address => "0.0.0.0",
|
128
136
|
}
|
129
137
|
end
|
130
138
|
|
@@ -152,8 +160,8 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
152
160
|
:subnet_filter =>
|
153
161
|
{
|
154
162
|
:tag => "foo",
|
155
|
-
:value => "bar"
|
156
|
-
}
|
163
|
+
:value => "bar",
|
164
|
+
},
|
157
165
|
}
|
158
166
|
end
|
159
167
|
|
@@ -163,8 +171,8 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
163
171
|
:filters => [
|
164
172
|
{
|
165
173
|
:name => "tag:foo",
|
166
|
-
:values => ["bar"]
|
167
|
-
}
|
174
|
+
:values => ["bar"],
|
175
|
+
},
|
168
176
|
]
|
169
177
|
).and_return(ec2_stub.describe_subnets)
|
170
178
|
expect(generator.ec2_instance_data[:subnet_id]).to eq("s-123")
|
@@ -184,8 +192,8 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
184
192
|
:security_group_filter =>
|
185
193
|
{
|
186
194
|
:tag => "foo",
|
187
|
-
:value => "bar"
|
188
|
-
}
|
195
|
+
:value => "bar",
|
196
|
+
},
|
189
197
|
}
|
190
198
|
end
|
191
199
|
|
@@ -195,8 +203,8 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
195
203
|
:filters => [
|
196
204
|
{
|
197
205
|
:name => "tag:foo",
|
198
|
-
:values => ["bar"]
|
199
|
-
}
|
206
|
+
:values => ["bar"],
|
207
|
+
},
|
200
208
|
]
|
201
209
|
).and_return(ec2_stub.describe_security_groups)
|
202
210
|
expect(generator.ec2_instance_data[:security_group_ids]).to eq(["sg-123"])
|
@@ -212,7 +220,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
212
220
|
:aws_ssh_key_id => "key",
|
213
221
|
:subnet_id => "s-456",
|
214
222
|
:private_ip_address => "0.0.0.0",
|
215
|
-
:block_device_mappings => []
|
223
|
+
:block_device_mappings => [],
|
216
224
|
}
|
217
225
|
end
|
218
226
|
|
@@ -232,7 +240,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
232
240
|
let(:config) do
|
233
241
|
{
|
234
242
|
:region => "eu-east-1",
|
235
|
-
:availability_zone => "eu-west-1c"
|
243
|
+
:availability_zone => "eu-west-1c",
|
236
244
|
}
|
237
245
|
end
|
238
246
|
it "returns that in the instance data" do
|
@@ -252,7 +260,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
252
260
|
let(:config) do
|
253
261
|
{
|
254
262
|
:region => "eu-east-1",
|
255
|
-
:availability_zone => "c"
|
263
|
+
:availability_zone => "c",
|
256
264
|
}
|
257
265
|
end
|
258
266
|
it "adds the region to it in the instance data" do
|
@@ -271,7 +279,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
271
279
|
context "when availability_zone is not provided" do
|
272
280
|
let(:config) do
|
273
281
|
{
|
274
|
-
:region => "eu-east-1"
|
282
|
+
:region => "eu-east-1",
|
275
283
|
}
|
276
284
|
end
|
277
285
|
it "is not added to the instance data" do
|
@@ -291,7 +299,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
291
299
|
{
|
292
300
|
:region => "eu-east-1",
|
293
301
|
:availability_zone => "c",
|
294
|
-
:tenancy => "dedicated"
|
302
|
+
:tenancy => "dedicated",
|
295
303
|
}
|
296
304
|
end
|
297
305
|
it "adds the region to it in the instance data" do
|
@@ -312,7 +320,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
312
320
|
let(:config) do
|
313
321
|
{
|
314
322
|
:region => "eu-east-1",
|
315
|
-
:tenancy => "default"
|
323
|
+
:tenancy => "default",
|
316
324
|
}
|
317
325
|
end
|
318
326
|
it "is not added to the instance data" do
|
@@ -332,7 +340,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
332
340
|
let(:config) do
|
333
341
|
{
|
334
342
|
:region => "eu-east-1",
|
335
|
-
:tenancy => "ephemeral"
|
343
|
+
:tenancy => "ephemeral",
|
336
344
|
}
|
337
345
|
end
|
338
346
|
it "is not added to the instance data" do
|
@@ -352,7 +360,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
352
360
|
{
|
353
361
|
:region => "eu-east-1",
|
354
362
|
:availability_zone => "c",
|
355
|
-
:tenancy => "dedicated"
|
363
|
+
:tenancy => "dedicated",
|
356
364
|
}
|
357
365
|
end
|
358
366
|
it "adds the region to it in the instance data" do
|
@@ -373,7 +381,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
373
381
|
let(:config) do
|
374
382
|
{
|
375
383
|
:region => "eu-east-1",
|
376
|
-
:tenancy => "default"
|
384
|
+
:tenancy => "default",
|
377
385
|
}
|
378
386
|
end
|
379
387
|
it "is not added to the instance data" do
|
@@ -393,7 +401,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
393
401
|
let(:config) do
|
394
402
|
{
|
395
403
|
:region => "eu-east-1",
|
396
|
-
:tenancy => "ephemeral"
|
404
|
+
:tenancy => "ephemeral",
|
397
405
|
}
|
398
406
|
end
|
399
407
|
it "is not added to the instance data" do
|
@@ -411,7 +419,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
411
419
|
context "when subnet_id is provided" do
|
412
420
|
let(:config) do
|
413
421
|
{
|
414
|
-
:subnet_id => "s-456"
|
422
|
+
:subnet_id => "s-456",
|
415
423
|
}
|
416
424
|
end
|
417
425
|
|
@@ -430,7 +438,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
430
438
|
context "when associate_public_ip is provided" do
|
431
439
|
let(:config) do
|
432
440
|
{
|
433
|
-
:associate_public_ip => true
|
441
|
+
:associate_public_ip => true,
|
434
442
|
}
|
435
443
|
end
|
436
444
|
|
@@ -445,7 +453,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
445
453
|
:network_interfaces => [{
|
446
454
|
:device_index => 0,
|
447
455
|
:associate_public_ip_address => true,
|
448
|
-
:delete_on_termination => true
|
456
|
+
:delete_on_termination => true,
|
449
457
|
}]
|
450
458
|
)
|
451
459
|
end
|
@@ -454,7 +462,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
454
462
|
let(:config) do
|
455
463
|
{
|
456
464
|
:associate_public_ip => true,
|
457
|
-
:subnet_id => "s-456"
|
465
|
+
:subnet_id => "s-456",
|
458
466
|
}
|
459
467
|
end
|
460
468
|
|
@@ -469,7 +477,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
469
477
|
:device_index => 0,
|
470
478
|
:associate_public_ip_address => true,
|
471
479
|
:delete_on_termination => true,
|
472
|
-
:subnet_id => "s-456"
|
480
|
+
:subnet_id => "s-456",
|
473
481
|
}]
|
474
482
|
)
|
475
483
|
end
|
@@ -479,7 +487,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
479
487
|
let(:config) do
|
480
488
|
{
|
481
489
|
:associate_public_ip => true,
|
482
|
-
:security_group_ids => ["sg-789"]
|
490
|
+
:security_group_ids => ["sg-789"],
|
483
491
|
}
|
484
492
|
end
|
485
493
|
|
@@ -495,7 +503,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
495
503
|
:device_index => 0,
|
496
504
|
:associate_public_ip_address => true,
|
497
505
|
:delete_on_termination => true,
|
498
|
-
:groups => ["sg-789"]
|
506
|
+
:groups => ["sg-789"],
|
499
507
|
}]
|
500
508
|
)
|
501
509
|
end
|
@@ -508,7 +516,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
508
516
|
:device_index => 0,
|
509
517
|
:associate_public_ip_address => true,
|
510
518
|
:delete_on_termination => true,
|
511
|
-
:groups => ["only-one"]
|
519
|
+
:groups => ["only-one"],
|
512
520
|
}]
|
513
521
|
)
|
514
522
|
end
|
@@ -518,7 +526,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
518
526
|
let(:config) do
|
519
527
|
{
|
520
528
|
:associate_public_ip => true,
|
521
|
-
:private_ip_address => "0.0.0.0"
|
529
|
+
:private_ip_address => "0.0.0.0",
|
522
530
|
}
|
523
531
|
end
|
524
532
|
|
@@ -533,7 +541,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
533
541
|
:device_index => 0,
|
534
542
|
:associate_public_ip_address => true,
|
535
543
|
:delete_on_termination => true,
|
536
|
-
:private_ip_address => "0.0.0.0"
|
544
|
+
:private_ip_address => "0.0.0.0",
|
537
545
|
}]
|
538
546
|
)
|
539
547
|
end
|
@@ -558,14 +566,14 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
558
566
|
:volume_size => 15,
|
559
567
|
:delete_on_termination => false,
|
560
568
|
:volume_type => "gp2",
|
561
|
-
:snapshot_id => "id"
|
562
|
-
}
|
563
|
-
}
|
569
|
+
:snapshot_id => "id",
|
570
|
+
},
|
571
|
+
},
|
564
572
|
],
|
565
573
|
:security_group_ids => ["sg-789"],
|
566
574
|
:user_data => "foo",
|
567
575
|
:iam_profile_name => "iam-123",
|
568
|
-
:associate_public_ip => true
|
576
|
+
:associate_public_ip => true,
|
569
577
|
}
|
570
578
|
end
|
571
579
|
|
@@ -583,9 +591,9 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
583
591
|
:volume_size => 15,
|
584
592
|
:delete_on_termination => false,
|
585
593
|
:volume_type => "gp2",
|
586
|
-
:snapshot_id => "id"
|
587
|
-
}
|
588
|
-
}
|
594
|
+
:snapshot_id => "id",
|
595
|
+
},
|
596
|
+
},
|
589
597
|
],
|
590
598
|
:iam_instance_profile => { :name => "iam-123" },
|
591
599
|
:network_interfaces => [{
|
@@ -594,7 +602,7 @@ describe Kitchen::Driver::Aws::InstanceGenerator do
|
|
594
602
|
:subnet_id => "s-456",
|
595
603
|
:delete_on_termination => true,
|
596
604
|
:groups => ["sg-789"],
|
597
|
-
:private_ip_address => "0.0.0.0"
|
605
|
+
:private_ip_address => "0.0.0.0",
|
598
606
|
}],
|
599
607
|
:placement => { :availability_zone => "eu-west-1a" },
|
600
608
|
:user_data => Base64.encode64("foo")
|
@@ -29,7 +29,7 @@ describe Kitchen::Driver::Ec2 do
|
|
29
29
|
{
|
30
30
|
:aws_ssh_key_id => "key",
|
31
31
|
:image_id => "ami-1234567",
|
32
|
-
:block_duration_minutes => 60
|
32
|
+
:block_duration_minutes => 60,
|
33
33
|
}
|
34
34
|
end
|
35
35
|
let(:platform) { Kitchen::Platform.new(:name => "fooos-99") }
|
@@ -79,18 +79,18 @@ describe Kitchen::Driver::Ec2 do
|
|
79
79
|
allow(instance).to receive(:name).and_return("instance_name")
|
80
80
|
end
|
81
81
|
context "Windows 2016" do
|
82
|
-
let(:image)
|
82
|
+
let(:image) do
|
83
83
|
FakeImage.new(:name => "Windows_Server-2016-English-Full-Base-2017.01.11")
|
84
|
-
|
84
|
+
end
|
85
85
|
it "sets :user_data to something" do
|
86
86
|
expect(driver[:user_data]).to include
|
87
87
|
'$logfile=C:\\ProgramData\\Amazon\\EC2-Windows\\Launch\\Log\\kitchen-ec2.log'
|
88
88
|
end
|
89
89
|
end
|
90
90
|
context "Windows 2012R2" do
|
91
|
-
let(:image)
|
91
|
+
let(:image) do
|
92
92
|
FakeImage.new(:name => "Windows_Server-2012-R2_RTM-English-64Bit-Base-2017.01.11")
|
93
|
-
|
93
|
+
end
|
94
94
|
it "sets :user_data to something" do
|
95
95
|
expect(driver[:user_data]).to include
|
96
96
|
'$logfile=C:\\Program Files\\Amazon\\Ec2ConfigService\\Logs\\kitchen-ec2.log'
|
@@ -104,14 +104,14 @@ describe Kitchen::Driver::Ec2 do
|
|
104
104
|
let(:private_dns_name) { nil }
|
105
105
|
let(:public_ip_address) { nil }
|
106
106
|
let(:private_ip_address) { nil }
|
107
|
-
let(:server)
|
107
|
+
let(:server) do
|
108
108
|
double("server",
|
109
109
|
:public_dns_name => public_dns_name,
|
110
110
|
:private_dns_name => private_dns_name,
|
111
111
|
:public_ip_address => public_ip_address,
|
112
112
|
:private_ip_address => private_ip_address
|
113
113
|
)
|
114
|
-
|
114
|
+
end
|
115
115
|
|
116
116
|
it "returns nil if all sources are nil" do
|
117
117
|
expect(driver.hostname(server)).to eq(nil)
|
@@ -235,9 +235,9 @@ describe Kitchen::Driver::Ec2 do
|
|
235
235
|
|
236
236
|
describe "#submit_spot" do
|
237
237
|
let(:state) { {} }
|
238
|
-
let(:response)
|
238
|
+
let(:response) do
|
239
239
|
{ :spot_instance_requests => [{ :spot_instance_request_id => "id" }] }
|
240
|
-
|
240
|
+
end
|
241
241
|
|
242
242
|
before do
|
243
243
|
expect(driver).to receive(:instance).at_least(:once).and_return(instance)
|
@@ -265,7 +265,7 @@ describe Kitchen::Driver::Ec2 do
|
|
265
265
|
expect(server).to receive(:create_tags).with(
|
266
266
|
:tags => [
|
267
267
|
{ :key => :key1, :value => :value1 },
|
268
|
-
{ :key => :key2, :value => :value2 }
|
268
|
+
{ :key => :key2, :value => :value2 },
|
269
269
|
]
|
270
270
|
)
|
271
271
|
driver.tag_server(server)
|
@@ -286,7 +286,7 @@ describe Kitchen::Driver::Ec2 do
|
|
286
286
|
expect(volume).to receive(:create_tags).with(
|
287
287
|
:tags => [
|
288
288
|
{ :key => :key1, :value => :value1 },
|
289
|
-
{ :key => :key2, :value => :value2 }
|
289
|
+
{ :key => :key2, :value => :value2 },
|
290
290
|
]
|
291
291
|
)
|
292
292
|
driver.tag_volumes(server)
|
@@ -407,7 +407,7 @@ describe Kitchen::Driver::Ec2 do
|
|
407
407
|
let(:tries) { 111 }
|
408
408
|
let(:sleep) { 222 }
|
409
409
|
let(:msg) { "msg" }
|
410
|
-
given_block = lambda
|
410
|
+
given_block = lambda { ; }
|
411
411
|
|
412
412
|
before do
|
413
413
|
config[:retryable_sleep] = sleep
|
@@ -429,14 +429,14 @@ describe Kitchen::Driver::Ec2 do
|
|
429
429
|
expect(server).to receive(:wait_until).and_raise(::Aws::Waiters::Errors::WaiterFailed)
|
430
430
|
expect(driver).to receive(:destroy).with(state)
|
431
431
|
expect(driver).to receive(:error).with(/#{msg}/)
|
432
|
-
expect
|
432
|
+
expect do
|
433
433
|
driver.wait_with_destroy(server, state, msg, &given_block)
|
434
|
-
|
434
|
+
end.to raise_error(::Aws::Waiters::Errors::WaiterFailed)
|
435
435
|
end
|
436
436
|
end
|
437
437
|
|
438
438
|
describe "#create" do
|
439
|
-
let(:server) { double("aws server object", :id => id) }
|
439
|
+
let(:server) { double("aws server object", :id => id, :image_id => "ami-3f807145") }
|
440
440
|
let(:id) { "i-12345" }
|
441
441
|
|
442
442
|
it "returns if the instance is already created" do
|
@@ -444,6 +444,10 @@ describe Kitchen::Driver::Ec2 do
|
|
444
444
|
expect(driver.create(state)).to eq(nil)
|
445
445
|
end
|
446
446
|
|
447
|
+
image_data = Aws::EC2::Types::Image.new(:root_device_type => "ebs")
|
448
|
+
ec2_stub = Aws::EC2::Types::DescribeImagesResult.new
|
449
|
+
ec2_stub.images = [image_data]
|
450
|
+
|
447
451
|
shared_examples "common create" do
|
448
452
|
it "successfully creates and tags the instance" do
|
449
453
|
expect(server).to receive(:wait_until_exists)
|
@@ -452,6 +456,7 @@ describe Kitchen::Driver::Ec2 do
|
|
452
456
|
expect(driver).to receive(:tag_volumes).with(server)
|
453
457
|
expect(driver).to receive(:wait_until_volumes_ready).with(server, state)
|
454
458
|
expect(driver).to receive(:wait_until_ready).with(server, state)
|
459
|
+
allow(actual_client).to receive(:describe_images).with({ :image_ids => [server.image_id] }).and_return(ec2_stub)
|
455
460
|
expect(transport).to receive_message_chain("connection.wait_until_ready")
|
456
461
|
expect(driver).to receive(:create_ec2_json).with(state)
|
457
462
|
driver.create(state)
|
@@ -459,7 +464,7 @@ describe Kitchen::Driver::Ec2 do
|
|
459
464
|
end
|
460
465
|
end
|
461
466
|
|
462
|
-
context "non-windows on-
|
467
|
+
context "non-windows on-demand instance" do
|
463
468
|
before do
|
464
469
|
expect(driver).to receive(:submit_server).and_return(server)
|
465
470
|
end
|
@@ -476,6 +481,21 @@ describe Kitchen::Driver::Ec2 do
|
|
476
481
|
include_examples "common create"
|
477
482
|
end
|
478
483
|
|
484
|
+
context "instance is not ebs-backed" do
|
485
|
+
before do
|
486
|
+
ec2_stub.images[0].root_device_type = "instance-store"
|
487
|
+
end
|
488
|
+
|
489
|
+
it "does not tag volumes or wait for volumes to be ready" do
|
490
|
+
expect(driver).to_not receive(:tag_volumes).with(server)
|
491
|
+
expect(driver).to_not receive(:wait_until_volumes_ready).with(server, state)
|
492
|
+
end
|
493
|
+
|
494
|
+
after do
|
495
|
+
ec2_stub.images[0].root_device_type = "ebs"
|
496
|
+
end
|
497
|
+
end
|
498
|
+
|
479
499
|
context "instance is a windows machine" do
|
480
500
|
before do
|
481
501
|
expect(driver).to receive(:windows_os?).and_return(true)
|