kitchen-vra 1.2.0 → 1.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5c7f119529c9a3562d45db721bf394fd9742d3a5
4
- data.tar.gz: 7b2578c10fe9bfe7ed5d736c5b0ff0bd4de5cf7b
3
+ metadata.gz: 3f24be35c67ff7449f53d115bc977df954498fb7
4
+ data.tar.gz: ce2936e60a813f39932306710c2834e269cbcc2d
5
5
  SHA512:
6
- metadata.gz: 073bbc3ed64031fb0e99fed859c4211362c354db494d0d21dec266f5039146c911d7fd72d33fb95dab34afaf0860ba9bd8b570ef55046077981e463fa0759dff
7
- data.tar.gz: f8d23dbce4ad8a4c92b9ae42314063237c7149fce5f27c59db918a8d7046aa0baa8a0b470c956f1f87d30fe911fecd6d1b934946625ef7fd4c6b0a8516a3e235
6
+ metadata.gz: e5f0fdcc45c8494a9e223eeb3fcb5e92634d2bd92483470ac307763492c2bf4170ae81638694abc2e611be2d258bd9a729ca945621c9bc0d5b177f51d217a5b6
7
+ data.tar.gz: 59571993d793ff192dc305486bb9ae0a626dec51556b9c1468a9a6d67cee98fa9f9d46d7c4407e00968a7e58c2b5cfcffa8e20a3b4822bc7f74ab22f35521451
data/.travis.yml ADDED
@@ -0,0 +1,19 @@
1
+ language: ruby
2
+ cache: bundler
3
+ sudo: false
4
+
5
+ rvm:
6
+ - 2.0.0
7
+ - 2.1
8
+ - 2.2
9
+
10
+ branches:
11
+ only:
12
+ - master
13
+
14
+ notifications:
15
+ slack:
16
+ on_success: change
17
+ on_failure: always
18
+ rooms:
19
+ secure: iESaLLqy5RK9os0fB83vXF0DgmMaWE8/tuhEg6rL6m2YlHq+mHwT5Hoc+YIFHbzl4PXS07i99ICFpGiUXuyHSn0jrNrI4z4BRA+3EZ+DLmhHGis3znWZJ1SxrCjYCZazj0SFG49mwaZjeggQNafPm/++sqzVVI5zJuLx+92Dwuztr4sa20Oa2UOKtCsgkNojmNwTKNqlN+bh+/pX7IH5rVUDMkd3k8Sdrd8Jk0AblztGvXJO/Sn+L6Ud9NAb38bVkC7Pw8Zows6Icw4ioCIwH4tl/AI6NwfvHJu33UqoEZu/8aBkSvgjGi+hTaztcwK9xMpK70AZlYEqNS4bVTAw/otAbw+xnqWUQfL3Kc2MjSpxdiLDXhELtV9jV/VlnDwX3L79B0sICKFdcLHrG8I4tMgCDxYTNjUHY+UcccHrPsYwXn01lkCc6Pa7LZnCqS69/2vVfdb8i2LOaEvMvj9uLeeADu2EHeqM0VV1Y58dRCef7Ls8cOiOZEqghG24H1Cu26vHKamLUMZu0ctYOOmxGP159j1iwCkygb2k10BXTGdFuMch3GE3RfwaPFk8UZoY+0tQNP5OGiHhhLyLo16yxXQuDyHq5kkSMuhT/34kdY2cZuJAi8U79YJkNb29CGPUeBJ1QqXulYg/xPKW03FBWxpbkPjdPr9WTbpMGOlhBwc=
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # kitchen-vra Changelog
2
2
 
3
+ ## v1.3.0 (2016-01-25)
4
+ * [pr#10](https://github.com/chef-partners/kitchen-vra/pull/10) Capping the server wait_until_ready retry growth at 30 seconds.
5
+
3
6
  ## v1.2.0 (2015-11-25)
4
7
  * [pr#7](https://github.com/chef-partners/kitchen-vra/pull/7) Added retry logic for wait_until_ready in cases where Test Kitchen would unwind (such as DNS issues). Added fallback logic for when a host has no IP address, complimenting the `use_dns` parameter.
5
8
 
data/Rakefile CHANGED
@@ -1 +1,8 @@
1
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 ]
data/kitchen-vra.gemspec CHANGED
@@ -26,4 +26,5 @@ Gem::Specification.new do |spec|
26
26
  spec.add_development_dependency 'rspec', '~> 3.2'
27
27
  spec.add_development_dependency 'simplecov', '~> 0.10'
28
28
  spec.add_development_dependency 'webmock', '~> 1.21'
29
+ spec.add_development_dependency 'rubocop', '~> 0.35'
29
30
  end
@@ -103,7 +103,7 @@ module Kitchen
103
103
  info("Server #{server.id} (#{server.name}) created. Waiting until ready...")
104
104
 
105
105
  try = 0
106
- sleep_time = 1
106
+ sleep_time = 0
107
107
 
108
108
  begin
109
109
  instance.transport.connection(state).wait_until_ready
@@ -111,7 +111,7 @@ module Kitchen
111
111
  warn("Server #{server.id} (#{server.name}) not reachable: #{e.class} -- #{e.message}")
112
112
 
113
113
  try += 1
114
- sleep_time *= 2
114
+ sleep_time += 5 if sleep_time < 30
115
115
 
116
116
  if try > config[:server_ready_retries]
117
117
  error('Retries exceeded. Destroying server...')
@@ -18,6 +18,6 @@
18
18
 
19
19
  module Kitchen
20
20
  module Driver
21
- VRA_VERSION = '1.2.0'
21
+ VRA_VERSION = '1.3.0'.freeze
22
22
  end
23
23
  end
data/spec/vra_spec.rb CHANGED
@@ -260,8 +260,8 @@ describe Kitchen::Driver::Vra do
260
260
 
261
261
  it 'displays a warning, sleeps once, retries, errors, destroys, and raises' do
262
262
  expect(connection).to receive(:wait_until_ready).twice.and_raise(Timeout::Error)
263
- expect(driver).to receive(:warn).once.with('Sleeping 2 seconds and retrying...')
264
- expect(driver).to receive(:sleep).once.with(2)
263
+ expect(driver).to receive(:warn).once.with('Sleeping 5 seconds and retrying...')
264
+ expect(driver).to receive(:sleep).once.with(5)
265
265
  expect(driver).to receive(:error).with('Retries exceeded. Destroying server...')
266
266
  expect(driver).to receive(:destroy).with(state)
267
267
  expect { driver.wait_for_server(state, resource1) }.to raise_error(Timeout::Error)
@@ -273,10 +273,10 @@ describe Kitchen::Driver::Vra do
273
273
 
274
274
  it 'displays 2 warnings, sleeps twice, retries, errors, destroys, and raises' do
275
275
  expect(connection).to receive(:wait_until_ready).exactly(3).times.and_raise(Timeout::Error)
276
- expect(driver).to receive(:warn).once.with('Sleeping 2 seconds and retrying...')
277
- expect(driver).to receive(:warn).once.with('Sleeping 4 seconds and retrying...')
278
- expect(driver).to receive(:sleep).once.with(2)
279
- expect(driver).to receive(:sleep).once.with(4)
276
+ expect(driver).to receive(:warn).once.with('Sleeping 5 seconds and retrying...')
277
+ expect(driver).to receive(:warn).once.with('Sleeping 10 seconds and retrying...')
278
+ expect(driver).to receive(:sleep).once.with(5)
279
+ expect(driver).to receive(:sleep).once.with(10)
280
280
  expect(driver).to receive(:error).with('Retries exceeded. Destroying server...')
281
281
  expect(driver).to receive(:destroy).with(state)
282
282
  expect { driver.wait_for_server(state, resource1) }.to raise_error(Timeout::Error)
@@ -289,15 +289,30 @@ describe Kitchen::Driver::Vra do
289
289
  it 'displays 2 warnings, sleeps twice, retries, but does not destroy or raise' do
290
290
  expect(connection).to receive(:wait_until_ready).twice.and_raise(Timeout::Error)
291
291
  expect(connection).to receive(:wait_until_ready).once.and_return(true)
292
- expect(driver).to receive(:warn).once.with('Sleeping 2 seconds and retrying...')
293
- expect(driver).to receive(:warn).once.with('Sleeping 4 seconds and retrying...')
294
- expect(driver).to receive(:sleep).once.with(2)
295
- expect(driver).to receive(:sleep).once.with(4)
292
+ expect(driver).to receive(:warn).once.with('Sleeping 5 seconds and retrying...')
293
+ expect(driver).to receive(:warn).once.with('Sleeping 10 seconds and retrying...')
294
+ expect(driver).to receive(:sleep).once.with(5)
295
+ expect(driver).to receive(:sleep).once.with(10)
296
296
  expect(driver).not_to receive(:error)
297
297
  expect(driver).not_to receive(:destroy)
298
298
  expect { driver.wait_for_server(state, resource1) }.not_to raise_error
299
299
  end
300
300
  end
301
+
302
+ context 'when retries is 7, always erroring' do
303
+ let(:config) { { server_ready_retries: 8 } }
304
+
305
+ it 'caps the delays at 30 seconds' do
306
+ expect(connection).to receive(:wait_until_ready).exactly(9).times.and_raise(Timeout::Error)
307
+ expect(driver).to receive(:sleep).once.with(5)
308
+ expect(driver).to receive(:sleep).once.with(10)
309
+ expect(driver).to receive(:sleep).once.with(15)
310
+ expect(driver).to receive(:sleep).once.with(20)
311
+ expect(driver).to receive(:sleep).once.with(25)
312
+ expect(driver).to receive(:sleep).exactly(3).times.with(30)
313
+ expect { driver.wait_for_server(state, resource1) }.to raise_error(Timeout::Error)
314
+ end
315
+ end
301
316
  end
302
317
 
303
318
  describe '#destroy' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-vra
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chef Partner Engineering
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-26 00:00:00.000000000 Z
11
+ date: 2016-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-kitchen
@@ -114,6 +114,20 @@ dependencies:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
116
  version: '1.21'
117
+ - !ruby/object:Gem::Dependency
118
+ name: rubocop
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '0.35'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '0.35'
117
131
  description: A Test Kitchen driver for VMware vRealize Automation (vRA)
118
132
  email:
119
133
  - partnereng@chef.io
@@ -123,6 +137,7 @@ extra_rdoc_files: []
123
137
  files:
124
138
  - ".gitignore"
125
139
  - ".rubocop.yml"
140
+ - ".travis.yml"
126
141
  - CHANGELOG.md
127
142
  - Gemfile
128
143
  - LICENSE.txt