kitchen-dokken 0.0.34 → 0.0.35
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9bd5711a6236c9c2dc47a25a39f8ae501f1028bf
|
4
|
+
data.tar.gz: ec7bcf47d0e3fda4f7d8cf7acb2b244f988623ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b98109b62876a75718afbdc3dc69fcf14179ca1b6d5b2de194d70f301a1755e49196a96c530fd96c1001186b24e3f73ebf61e6abf9aa0676beb897adc279ce7
|
7
|
+
data.tar.gz: 3eb5d9079cb646069be4203954d69e2a94090b2c48a9cf57f343a3c834cb3ef5a5fd1ac69e11443d456658e2192a3e5ff91ed5651847767b88ff9464da1539b0
|
@@ -110,31 +110,26 @@ module Kitchen
|
|
110
110
|
|
111
111
|
return if ::Docker::Image.exist?(work_image, docker_connection)
|
112
112
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
113
|
+
Dir.mktmpdir do |context_root|
|
114
|
+
File.write("#{context_root}/Dockerfile", work_image_dockerfile)
|
115
|
+
begin
|
116
|
+
with_retries do
|
117
|
+
@intermediate_image = ::Docker::Image.build_from_dir(
|
118
|
+
context_root,
|
119
|
+
{
|
120
|
+
# 'nocache' => true,
|
121
|
+
# 'forcerm' => true,
|
122
|
+
# 'q' => true,
|
123
|
+
't' => work_image
|
124
|
+
},
|
125
|
+
docker_connection
|
126
|
+
)
|
127
|
+
end
|
128
|
+
rescue Exception => e
|
129
|
+
raise "work_image build failed: #{e}"
|
128
130
|
end
|
129
|
-
|
130
|
-
fail "work_image build failed: #{e}"
|
131
|
+
state[:work_image] = work_image
|
131
132
|
end
|
132
|
-
state[:work_image] = work_image
|
133
|
-
end
|
134
|
-
|
135
|
-
def context_root
|
136
|
-
tmpdir = Dir.tmpdir
|
137
|
-
"#{tmpdir}/dokken/#{instance_name}"
|
138
133
|
end
|
139
134
|
|
140
135
|
def work_image_dockerfile
|
@@ -211,7 +206,7 @@ module Kitchen
|
|
211
206
|
'CapDrop' => Array(config[:cap_drop]),
|
212
207
|
'SecurityOpt' => Array(config[:security_opt]),
|
213
208
|
'NetworkMode' => config[:network_mode],
|
214
|
-
'PortBindings' => port_forwards({}, config[:forward])
|
209
|
+
'PortBindings' => port_forwards({}, config[:forward])
|
215
210
|
}
|
216
211
|
)
|
217
212
|
state[:runner_container] = runner_container.json
|
@@ -222,7 +217,7 @@ module Kitchen
|
|
222
217
|
data_container = run_container(
|
223
218
|
'name' => data_container_name,
|
224
219
|
'Image' => "#{repo(data_image)}:#{tag(data_image)}",
|
225
|
-
'PortBindings' => port_forwards({},
|
220
|
+
'PortBindings' => port_forwards({}, '22'),
|
226
221
|
'PublishAllPorts' => true
|
227
222
|
)
|
228
223
|
# require 'pry' ; binding.pry
|
@@ -304,24 +299,20 @@ module Kitchen
|
|
304
299
|
end
|
305
300
|
|
306
301
|
def stop_container(name)
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
wait_running_state(name, false)
|
312
|
-
end
|
313
|
-
rescue ::Docker::Error::NotFoundError
|
314
|
-
debug "Container #{name} not found. Nothing to stop."
|
302
|
+
with_retries { @container = ::Docker::Container.get(name, docker_connection) }
|
303
|
+
with_retries do
|
304
|
+
@container.stop(force: true)
|
305
|
+
wait_running_state(name, false)
|
315
306
|
end
|
307
|
+
rescue ::Docker::Error::NotFoundError
|
308
|
+
debug "Container #{name} not found. Nothing to stop."
|
316
309
|
end
|
317
310
|
|
318
311
|
def delete_container(name)
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
debug "Container #{name} not found. Nothing to delete."
|
324
|
-
end
|
312
|
+
with_retries { @container = ::Docker::Container.get(name, docker_connection) }
|
313
|
+
with_retries { @container.delete(force: true, v: true) }
|
314
|
+
rescue ::Docker::Error::NotFoundError
|
315
|
+
debug "Container #{name} not found. Nothing to delete."
|
325
316
|
end
|
326
317
|
|
327
318
|
def wait_running_state(name, v)
|
@@ -366,7 +357,7 @@ module Kitchen
|
|
366
357
|
|
367
358
|
def exposed_ports(config, rules)
|
368
359
|
Array(rules).each do |prt_string|
|
369
|
-
guest, host = prt_string.to_s.split(
|
360
|
+
guest, host = prt_string.to_s.split(':').reverse
|
370
361
|
config["#{guest}/tcp"] = {}
|
371
362
|
end
|
372
363
|
config
|
@@ -374,9 +365,9 @@ module Kitchen
|
|
374
365
|
|
375
366
|
def port_forwards(config, rules)
|
376
367
|
Array(rules).each do |prt_string|
|
377
|
-
guest, host = prt_string.to_s.split(
|
368
|
+
guest, host = prt_string.to_s.split(':').reverse
|
378
369
|
config["#{guest}/tcp"] = [{
|
379
|
-
:
|
370
|
+
HostPort: host || ''
|
380
371
|
}]
|
381
372
|
end
|
382
373
|
config
|
@@ -388,20 +379,20 @@ module Kitchen
|
|
388
379
|
end
|
389
380
|
|
390
381
|
def pull_image(image)
|
391
|
-
with_retries
|
382
|
+
with_retries do
|
392
383
|
::Docker::Image.create({ 'fromImage' => "#{repo(image)}:#{tag(image)}" }, docker_connection)
|
393
|
-
|
384
|
+
end
|
394
385
|
end
|
395
386
|
|
396
387
|
def runner_container_name
|
397
|
-
|
388
|
+
instance_name.to_s
|
398
389
|
end
|
399
390
|
|
400
|
-
def with_retries
|
391
|
+
def with_retries
|
401
392
|
tries = api_retries
|
402
393
|
begin
|
403
|
-
|
404
|
-
|
394
|
+
yield
|
395
|
+
# Only catch errors that can be fixed with retries.
|
405
396
|
rescue ::Docker::Error::ServerError, # 404
|
406
397
|
::Docker::Error::UnexpectedResponseError, # 400
|
407
398
|
::Docker::Error::TimeoutError,
|
@@ -54,7 +54,7 @@ EOF
|
|
54
54
|
File.write("#{tmpdir}/dokken/Dockerfile", data_dockerfile)
|
55
55
|
File.write("#{tmpdir}/dokken/authorized_keys", insecure_ssh_public_key)
|
56
56
|
|
57
|
-
i = ::Docker::Image.build_from_dir("#{tmpdir}/dokken",
|
57
|
+
i = ::Docker::Image.build_from_dir("#{tmpdir}/dokken", 'nocache' => true, 'rm' => true)
|
58
58
|
i.tag('repo' => repo(data_image), 'tag' => tag(data_image), 'force' => true)
|
59
59
|
end
|
60
60
|
end
|
@@ -65,13 +65,13 @@ module Kitchen
|
|
65
65
|
|
66
66
|
with_retries { @runner = ::Docker::Container.get(instance_name, {}, docker_connection) }
|
67
67
|
with_retries do
|
68
|
-
o = @runner.exec(Shellwords.shellwords(command)) { |_stream, chunk| print
|
68
|
+
o = @runner.exec(Shellwords.shellwords(command)) { |_stream, chunk| print chunk.to_s }
|
69
69
|
@exit_code = o[2]
|
70
70
|
end
|
71
71
|
|
72
72
|
if @exit_code != 0
|
73
|
-
|
74
|
-
|
73
|
+
raise Transport::DockerExecFailed,
|
74
|
+
"Docker Exec (#{@exit_code}) for command: [#{command}]"
|
75
75
|
end
|
76
76
|
|
77
77
|
# Disabling this for now.. the Docker ZFS driver won't let us
|
@@ -93,7 +93,7 @@ module Kitchen
|
|
93
93
|
elsif options[:docker_host_url] =~ /tcp:/
|
94
94
|
ip = options[:docker_host_url].split('tcp://')[1].split(':')[0]
|
95
95
|
else
|
96
|
-
|
96
|
+
raise Kitchen::UserError, 'docker_host_url must be tcp:// or unix://'
|
97
97
|
end
|
98
98
|
|
99
99
|
port = options[:data_container][:NetworkSettings][:Ports][:"22/tcp"][0][:HostPort]
|
@@ -120,7 +120,7 @@ module Kitchen
|
|
120
120
|
end
|
121
121
|
|
122
122
|
def login_command
|
123
|
-
@runner =
|
123
|
+
@runner = options[:instance_name].to_s
|
124
124
|
args = ['exec', '-it', @runner, '/bin/bash', '-login', '-i']
|
125
125
|
LoginCommand.new('docker', args)
|
126
126
|
end
|
@@ -140,10 +140,10 @@ module Kitchen
|
|
140
140
|
options[:image_prefix]
|
141
141
|
end
|
142
142
|
|
143
|
-
def with_retries
|
143
|
+
def with_retries
|
144
144
|
tries = 20
|
145
145
|
begin
|
146
|
-
|
146
|
+
yield
|
147
147
|
# Only catch errors that can be fixed with retries.
|
148
148
|
rescue ::Docker::Error::ServerError, # 404
|
149
149
|
::Docker::Error::UnexpectedResponseError, # 400
|
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: 0.0.
|
4
|
+
version: 0.0.35
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean OMeara
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: test-kitchen
|
@@ -55,7 +55,7 @@ files:
|
|
55
55
|
- lib/kitchen/transport/dokken/helpers.rb
|
56
56
|
homepage: https://github.com/someara/kitchen-dokken
|
57
57
|
licenses:
|
58
|
-
- Apache
|
58
|
+
- Apache-2.0
|
59
59
|
metadata: {}
|
60
60
|
post_install_message:
|
61
61
|
rdoc_options: []
|