kitchen-dokken 2.4.1 → 2.4.3

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: b36486a74d03c58b8ed8fdad948f06028f1fb1ae
4
- data.tar.gz: c8a95b0ab5526d783a60a23c0a693392645f51d2
3
+ metadata.gz: 2c96c48b219e98045ac11e51e56610767eaba3b5
4
+ data.tar.gz: f3bdb6494d7c029ce6144d27a8ffa1448940309b
5
5
  SHA512:
6
- metadata.gz: 7ca1a539cecff671e82091faf2cb41e696bf52c8b330398748dd89989d18e8842011ef2ead744537cd569f3771582f98f00641ef9a5647ecc7450c9f373c5796
7
- data.tar.gz: 59ffd591e931ae9698c3aafc8240baaa1c13101838b6e1d729294b8270563671769097fe29ffa1a6f1dc216e07262ff5a980003154ab032de4741b9509ebbc9a
6
+ metadata.gz: 2c452fb897d7a6cfa9a537e403b205556578f079592eee2746418b79a2069b7956c250638e887cc2f1ca0b8784785783c3bdb6b5ded4c7991e48d698fa090914
7
+ data.tar.gz: ec2525c3c9baae58bb5aeaa4ef206d586e1f5ab6672c1633a9e9bbf0f3ca4957e1f4004b5887d99e620adc67922008c2b4849de073a5b0819d7057f64af9cc2b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Dokken Changelog
2
2
 
3
+ # 2.4.3
4
+ - Using better paths for lockfiles
5
+
6
+ # 2.4.2
7
+ - Using lockfile gem around chef-client container and dokken network creation
8
+
3
9
  # 2.4.1
4
10
  - Adding NotFoundError to with_retries and beefing up rescues
5
11
 
File without changes
@@ -19,6 +19,7 @@ require 'digest'
19
19
  require 'kitchen'
20
20
  require 'tmpdir'
21
21
  require 'docker'
22
+ require 'lockfile'
22
23
  require_relative '../helpers'
23
24
 
24
25
  include Dokken::Helpers
@@ -56,7 +57,7 @@ module Kitchen
56
57
  default_config :write_timeout, 3600
57
58
 
58
59
  # (see Base#create)
59
- def create(state)
60
+ def create(state)
60
61
  # image to config
61
62
  pull_platform_image
62
63
 
@@ -297,17 +298,18 @@ module Kitchen
297
298
  end
298
299
 
299
300
  def make_dokken_network
300
- debug 'driver - checking for dokken network'
301
- with_retries { ::Docker::Network.get('dokken', {}, docker_connection) }
302
- rescue
303
- with_retries do
301
+ lockfile = Lockfile.new "#{home_dir}/.dokken-network.lock"
302
+ begin
303
+ lockfile.lock
304
+ with_retries { ::Docker::Network.get('dokken', {}, docker_connection) }
305
+ rescue
304
306
  begin
305
- info 'Creating dokken network'
306
- n = ::Docker::Network.create('dokken', {})
307
- debug "n - #{n}"
307
+ with_retries { ::Docker::Network.create('dokken', {}) }
308
308
  rescue ::Docker::Error => e
309
- debug "driver - :#{e}:"
309
+ debug "driver - error :#{e}:"
310
310
  end
311
+ ensure
312
+ lockfile.unlock
311
313
  end
312
314
  end
313
315
 
@@ -317,24 +319,30 @@ module Kitchen
317
319
  end
318
320
 
319
321
  def create_chef_container(state)
320
- with_retries { ::Docker::Container.get(chef_container_name, {}, docker_connection) }
321
- rescue ::Docker::Error::NotFoundError
322
- with_retries do
323
- begin
324
- debug "driver - creating volume container #{chef_container_name} from #{chef_image}"
325
- config = {
326
- 'name' => chef_container_name,
327
- 'Cmd' => 'true',
328
- 'Image' => "#{repo(chef_image)}:#{tag(chef_image)}",
329
- 'HostConfig' => {
330
- 'NetworkMode' => self[:network_mode],
331
- },
332
- }
333
- chef_container = create_container(config)
334
- state[:chef_container] = chef_container.json
335
- rescue ::Docker::Error => e
336
- raise "driver - #{chef_container_name} failed to create #{e}"
322
+ lockfile = Lockfile.new "#{home_dir}/.dokken-#{chef_container_name}.lock"
323
+ begin
324
+ lockfile.lock
325
+ with_retries { ::Docker::Container.get(chef_container_name, {}, docker_connection) }
326
+ rescue ::Docker::Error::NotFoundError
327
+ with_retries do
328
+ begin
329
+ debug "driver - creating volume container #{chef_container_name} from #{chef_image}"
330
+ config = {
331
+ 'name' => chef_container_name,
332
+ 'Cmd' => 'true',
333
+ 'Image' => "#{repo(chef_image)}:#{tag(chef_image)}",
334
+ 'HostConfig' => {
335
+ 'NetworkMode' => self[:network_mode],
336
+ },
337
+ }
338
+ chef_container = create_container(config)
339
+ state[:chef_container] = chef_container.json
340
+ rescue ::Docker::Error => e
341
+ raise "driver - #{chef_container_name} failed to create #{e}"
342
+ end
337
343
  end
344
+ ensure
345
+ lockfile.unlock
338
346
  end
339
347
  end
340
348
 
@@ -396,6 +404,7 @@ module Kitchen
396
404
  end
397
405
  end
398
406
  rescue ::Docker::Error => e
407
+ debug "driver - error :#{e}:"
399
408
  raise "driver - failed to create_container #{args['name']}"
400
409
  end
401
410
  end
@@ -524,7 +533,7 @@ module Kitchen
524
533
  tries -= 1
525
534
  sleep 0.1
526
535
  retry if tries > 0
527
- debug "tries: #{tries} e: #{e}"
536
+ debug "tries: #{tries} error: #{e}"
528
537
  raise e
529
538
  end
530
539
  end
@@ -19,6 +19,6 @@
19
19
  module Kitchen
20
20
  module Driver
21
21
  # Version string for Dokken Kitchen driver
22
- DOKKEN_VERSION = '2.4.1'.freeze
22
+ DOKKEN_VERSION = '2.4.3'.freeze
23
23
  end
24
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-dokken
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.1
4
+ version: 2.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean OMeara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-21 00:00:00.000000000 Z
11
+ date: 2017-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-kitchen
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.33'
41
+ - !ruby/object:Gem::Dependency
42
+ name: lockfile
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.1'
41
55
  description: A Test Kitchen Driver for Dokken
42
56
  email:
43
57
  - sean@sean.io
@@ -47,6 +61,7 @@ extra_rdoc_files: []
47
61
  files:
48
62
  - CHANGELOG.md
49
63
  - LICENSE
64
+ - lib/kitchen/driver/dokken
50
65
  - lib/kitchen/driver/dokken.rb
51
66
  - lib/kitchen/driver/dokken_version.rb
52
67
  - lib/kitchen/helpers.rb