kitchen-vcair 1.0.0 → 1.1.0

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: 795c6c4ab44475c53e864812dace3e69c6177437
4
- data.tar.gz: 776badc46e81d8e63d8b641ddeb92b9e96083403
3
+ metadata.gz: b9852e4b43cfd48b40f2b5f42fb41f655a484603
4
+ data.tar.gz: 6239cfe713bb9d91c233c9501e794bf1543e3f00
5
5
  SHA512:
6
- metadata.gz: 9fe2794583e98129127a580ed9534d2f39d1cd3b8fbac14f87216a56af918cafc5e0f615c3df85e45f062bab92d6838953bd28cb294e2ebc59065de7d6cdb9fe
7
- data.tar.gz: 2bf503afddd35f11b00c875ff4eff1f423dd6dcdebe677352941182a50619405bc7fa211f8b90633c12983f23593c849abe91a427d1efe5a894627cfaa804edb
6
+ metadata.gz: 6c3e7f61e50db260c41582403e35f05ace418d3a4a3f6d029f5444635fbf9dcadfe1180ff76d14d841fdb9f923f26fe0584b0204ce6e948b3702558226db6ec2
7
+ data.tar.gz: a09009ce8a1ad502a160aac0e77e6975171f7e3c8762f4e5ddeb15ab471ab7492c556659d42d39a8aa7dc1b95cc787d1f119eb07f71a3437d0341d4ae7879ad4
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ cache: bundler
3
+ sudo: false
4
+ rvm:
5
+ - 2.0.0
6
+ - 2.1
7
+ - 2.2
@@ -1,5 +1,10 @@
1
1
  # kitchen-vcair Changelog
2
2
 
3
+ ## Release: 1.1.0 / 2015-12-17
4
+ * [pr#2](https://github.com/chef-partners/kitchen-vcair/pull/2) Added better
5
+ error handling to resource fetchers for when the configured resource
6
+ (image, network, catalog, etc.) does not exist.
7
+
3
8
  ## Release: 1.0.0 / 2015-08-21
4
9
  * Initial public release
5
10
  * Refactor by Chef Partner Engineering to match style of other VMware plugins
data/README.md CHANGED
@@ -186,3 +186,5 @@ We'd love to hear from you if this doesn't perform in the manner you expect. Ple
186
186
  3. Commit your changes (`git commit -am 'Add some feature'`)
187
187
  4. Push to the branch (`git push origin my-new-feature`)
188
188
  5. Create a new Pull Request
189
+
190
+
@@ -0,0 +1,8 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+ require 'rubocop/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+ RuboCop::RakeTask.new(:style)
7
+
8
+ task default: [ :spec, :style ]
@@ -24,7 +24,6 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency 'test-kitchen', '~> 1.4', '>= 1.4.1'
25
25
  spec.add_dependency 'fog', '~> 1.33'
26
26
 
27
- spec.add_development_dependency 'bundler', '~> 1.7'
28
27
  spec.add_development_dependency 'rake', '~> 10.0'
29
28
  spec.add_development_dependency 'rspec', '~> 3.2'
30
29
  spec.add_development_dependency 'rubocop', '~> 0.33'
@@ -191,35 +191,47 @@ module Kitchen
191
191
  end
192
192
 
193
193
  def image
194
- if config[:image_id]
195
- catalog.catalog_items.get(config[:image_id])
196
- else
197
- catalog.catalog_items.get_by_name(config[:image_name])
198
- end
194
+ image = if config[:image_id]
195
+ catalog.catalog_items.get(config[:image_id])
196
+ else
197
+ catalog.catalog_items.get_by_name(config[:image_name])
198
+ end
199
+
200
+ raise 'Unable to find image - check your image_id or image_name' if image.nil?
201
+ image
199
202
  end
200
203
 
201
204
  def catalog
202
- if config[:catalog_id]
203
- org.catalogs.get(config[:catalog_id])
204
- else
205
- org.catalogs.get_by_name(config[:catalog_name])
206
- end
205
+ catalog = if config[:catalog_id]
206
+ org.catalogs.get(config[:catalog_id])
207
+ else
208
+ org.catalogs.get_by_name(config[:catalog_name])
209
+ end
210
+
211
+ raise 'Unable to find catalog - check your catalog_id or catalog_name' if catalog.nil?
212
+ catalog
207
213
  end
208
214
 
209
215
  def vdc
210
- if config[:vdc_id]
211
- org.vdcs.get(config[:vdc_id])
212
- else
213
- org.vdcs.get_by_name(config[:vdc_name])
214
- end
216
+ vdc = if config[:vdc_id]
217
+ org.vdcs.get(config[:vdc_id])
218
+ else
219
+ org.vdcs.get_by_name(config[:vdc_name])
220
+ end
221
+
222
+ raise 'Unable to find VDC - check your vdc_id or vdc_name' if vdc.nil?
223
+ vdc
215
224
  end
216
225
 
217
226
  def network
218
- if config[:network_id]
219
- org.networks.get(config[:network_id])
220
- else
221
- org.networks.get_by_name(config[:network_name])
222
- end
227
+ network = if config[:network_id]
228
+ org.networks.get(config[:network_id])
229
+ else
230
+ org.networks.get_by_name(config[:network_name])
231
+ end
232
+
233
+ raise 'Unable to find network - check your network_id or network_name' if network.nil?
234
+ network
223
235
  end
224
236
 
225
237
  def node_description
@@ -20,6 +20,6 @@
20
20
 
21
21
  module Kitchen
22
22
  module Driver
23
- VCAIR_VERSION = '1.0.0'
23
+ VCAIR_VERSION = '1.1.0'
24
24
  end
25
25
  end
@@ -313,6 +313,7 @@ describe Kitchen::Driver::Vcair do
313
313
  describe '#image' do
314
314
  let(:catalog) { double('catalog') }
315
315
  let(:catalog_items) { double('catalog_items') }
316
+ let(:image) { double('image') }
316
317
 
317
318
  before do
318
319
  allow(driver).to receive(:catalog).and_return(catalog)
@@ -326,8 +327,8 @@ describe Kitchen::Driver::Vcair do
326
327
  end
327
328
 
328
329
  it 'fetches the catalog item by ID' do
329
- expect(catalog_items).to receive(:get).with(1)
330
- driver.image
330
+ expect(catalog_items).to receive(:get).with(1).and_return(image)
331
+ expect(driver.image).to eq(image)
331
332
  end
332
333
  end
333
334
 
@@ -338,8 +339,20 @@ describe Kitchen::Driver::Vcair do
338
339
  end
339
340
 
340
341
  it 'fetches the catalog item by name' do
341
- expect(catalog_items).to receive(:get_by_name).with('image name')
342
- driver.image
342
+ expect(catalog_items).to receive(:get_by_name).with('image name').and_return(image)
343
+ expect(driver.image).to eq(image)
344
+ end
345
+ end
346
+
347
+ context 'when no image is returned' do
348
+ before do
349
+ config[:image_id] = 1
350
+ config[:image_name] = nil
351
+ end
352
+
353
+ it 'raises an exception' do
354
+ expect(catalog_items).to receive(:get).with(1).and_return(nil)
355
+ expect { driver.image }.to raise_error(RuntimeError)
343
356
  end
344
357
  end
345
358
  end
@@ -347,6 +360,7 @@ describe Kitchen::Driver::Vcair do
347
360
  describe '#catalog' do
348
361
  let(:org) { double('org') }
349
362
  let(:catalogs) { double('catalogs') }
363
+ let(:catalog) { double('catalog') }
350
364
 
351
365
  before do
352
366
  allow(driver).to receive(:org).and_return(org)
@@ -360,8 +374,8 @@ describe Kitchen::Driver::Vcair do
360
374
  end
361
375
 
362
376
  it 'fetches the catalog by ID' do
363
- expect(catalogs).to receive(:get).with(1)
364
- driver.catalog
377
+ expect(catalogs).to receive(:get).with(1).and_return(catalog)
378
+ expect(driver.catalog).to eq(catalog)
365
379
  end
366
380
  end
367
381
 
@@ -372,8 +386,20 @@ describe Kitchen::Driver::Vcair do
372
386
  end
373
387
 
374
388
  it 'fetches the catalog by name' do
375
- expect(catalogs).to receive(:get_by_name).with('catalog name')
376
- driver.catalog
389
+ expect(catalogs).to receive(:get_by_name).with('catalog name').and_return(catalog)
390
+ expect(driver.catalog).to eq(catalog)
391
+ end
392
+ end
393
+
394
+ context 'when no catalog is returned' do
395
+ before do
396
+ config[:catalog_id] = 1
397
+ config[:catalog_name] = nil
398
+ end
399
+
400
+ it 'raises an exception' do
401
+ expect(catalogs).to receive(:get).with(1).and_return(nil)
402
+ expect { driver.catalog }.to raise_error(RuntimeError)
377
403
  end
378
404
  end
379
405
  end
@@ -381,6 +407,7 @@ describe Kitchen::Driver::Vcair do
381
407
  describe '#vdc' do
382
408
  let(:org) { double('org') }
383
409
  let(:vdcs) { double('vdcs') }
410
+ let(:vdc) { double('vdc') }
384
411
 
385
412
  before do
386
413
  allow(driver).to receive(:org).and_return(org)
@@ -394,8 +421,8 @@ describe Kitchen::Driver::Vcair do
394
421
  end
395
422
 
396
423
  it 'fetches the vdc by ID' do
397
- expect(vdcs).to receive(:get).with(1)
398
- driver.vdc
424
+ expect(vdcs).to receive(:get).with(1).and_return(vdc)
425
+ expect(driver.vdc).to eq(vdc)
399
426
  end
400
427
  end
401
428
 
@@ -406,8 +433,20 @@ describe Kitchen::Driver::Vcair do
406
433
  end
407
434
 
408
435
  it 'fetches the vdc by name' do
409
- expect(vdcs).to receive(:get_by_name).with('vdc name')
410
- driver.vdc
436
+ expect(vdcs).to receive(:get_by_name).with('vdc name').and_return(vdc)
437
+ expect(driver.vdc).to eq(vdc)
438
+ end
439
+ end
440
+
441
+ context 'when no vdc is returned' do
442
+ before do
443
+ config[:vdc_id] = 1
444
+ config[:vdc_name] = nil
445
+ end
446
+
447
+ it 'raises an exception' do
448
+ expect(vdcs).to receive(:get).with(1).and_return(nil)
449
+ expect { driver.vdc }.to raise_error(RuntimeError)
411
450
  end
412
451
  end
413
452
  end
@@ -415,6 +454,7 @@ describe Kitchen::Driver::Vcair do
415
454
  describe '#network' do
416
455
  let(:org) { double('org') }
417
456
  let(:networks) { double('networks') }
457
+ let(:network) { double('network') }
418
458
 
419
459
  before do
420
460
  allow(driver).to receive(:org).and_return(org)
@@ -428,8 +468,8 @@ describe Kitchen::Driver::Vcair do
428
468
  end
429
469
 
430
470
  it 'fetches the network by ID' do
431
- expect(networks).to receive(:get).with(1)
432
- driver.network
471
+ expect(networks).to receive(:get).with(1).and_return(network)
472
+ expect(driver.network).to eq(network)
433
473
  end
434
474
  end
435
475
 
@@ -440,8 +480,20 @@ describe Kitchen::Driver::Vcair do
440
480
  end
441
481
 
442
482
  it 'fetches the network by name' do
443
- expect(networks).to receive(:get_by_name).with('network name')
444
- driver.network
483
+ expect(networks).to receive(:get_by_name).with('network name').and_return(network)
484
+ expect(driver.network).to eq(network)
485
+ end
486
+ end
487
+
488
+ context 'when no network is returned' do
489
+ before do
490
+ config[:network_id] = 1
491
+ config[:network_name] = nil
492
+ end
493
+
494
+ it 'raises an exception' do
495
+ expect(networks).to receive(:get).with(1).and_return(nil)
496
+ expect { driver.network }.to raise_error(RuntimeError)
445
497
  end
446
498
  end
447
499
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-vcair
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chef Partner Engineering
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-08-25 00:00:00.000000000 Z
13
+ date: 2015-12-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: test-kitchen
@@ -46,20 +46,6 @@ dependencies:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
48
  version: '1.33'
49
- - !ruby/object:Gem::Dependency
50
- name: bundler
51
- requirement: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - "~>"
54
- - !ruby/object:Gem::Version
55
- version: '1.7'
56
- type: :development
57
- prerelease: false
58
- version_requirements: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: '1.7'
63
49
  - !ruby/object:Gem::Dependency
64
50
  name: rake
65
51
  requirement: !ruby/object:Gem::Requirement
@@ -126,10 +112,12 @@ extra_rdoc_files: []
126
112
  files:
127
113
  - ".gitignore"
128
114
  - ".rubocop.yml"
115
+ - ".travis.yml"
129
116
  - CHANGELOG.md
130
117
  - Gemfile
131
118
  - LICENSE.txt
132
119
  - README.md
120
+ - Rakefile
133
121
  - examples/VIDEOS.md
134
122
  - examples/windows_customization.bat
135
123
  - kitchen-vcair.gemspec
@@ -157,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
145
  version: '0'
158
146
  requirements: []
159
147
  rubyforge_project:
160
- rubygems_version: 2.4.4
148
+ rubygems_version: 2.4.8
161
149
  signing_key:
162
150
  specification_version: 4
163
151
  summary: A Test Kitchen vCloud Air driver built on Fog