kitchen-dokken 2.4.1 → 2.4.3

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: 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