dapp 0.4.6 → 0.4.7
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 +4 -4
- data/config/en/common.yml +1 -3
- data/lib/dapp/application.rb +16 -2
- data/lib/dapp/build/stage/base.rb +1 -3
- data/lib/dapp/build/stage/mod/artifact.rb +1 -1
- data/lib/dapp/builder/chef.rb +42 -47
- data/lib/dapp/builder/chef/error.rb +1 -0
- data/lib/dapp/cli/build.rb +0 -11
- data/lib/dapp/error/base.rb +1 -1
- data/lib/dapp/image/stage.rb +2 -3
- data/lib/dapp/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ccc9bcb7c5c18e275f571a8d61bc1cab29f9000b
|
4
|
+
data.tar.gz: b222fdf8b55c8592b4c64cb6081edefb6b707d8c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fcf8a7f80e2e02ae5e234940e8c600f90eb0483f93749d4b64394f6fe8b1266127c9c509b490b3f95f1e626080daba99157e7a1cc4496d527aafeed93065cb2b
|
7
|
+
data.tar.gz: f4748cee47bb3b584774028c8393218274a1886921703e859e29bc42813910d6526bec762d7765894d592b3dbf079ac96e94177bd85066ad3518ea8a89bd485e
|
data/config/en/common.yml
CHANGED
data/lib/dapp/application.rb
CHANGED
@@ -32,8 +32,10 @@ module Dapp
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def build!
|
35
|
-
|
36
|
-
|
35
|
+
with_introspection do
|
36
|
+
last_stage.build!
|
37
|
+
last_stage.save_in_cache!
|
38
|
+
end
|
37
39
|
ensure
|
38
40
|
FileUtils.rm_rf(tmp_path)
|
39
41
|
end
|
@@ -73,6 +75,18 @@ module Dapp
|
|
73
75
|
|
74
76
|
protected
|
75
77
|
|
78
|
+
def with_introspection
|
79
|
+
yield
|
80
|
+
rescue Exception::IntrospectImage => e
|
81
|
+
data = e.net_status[:data]
|
82
|
+
cmd = "docker run -ti --rm --entrypoint /bin/bash #{data[:options]} #{data[:built_id]}"
|
83
|
+
system(cmd).tap do |res|
|
84
|
+
shellout!("docker rmi #{data[:built_id]}") if data[:rmi]
|
85
|
+
res || raise(Error::Application, code: :application_not_run)
|
86
|
+
end
|
87
|
+
exit 0
|
88
|
+
end
|
89
|
+
|
76
90
|
attr_reader :last_stage
|
77
91
|
end # Application
|
78
92
|
end # Dapp
|
@@ -22,9 +22,7 @@ module Dapp
|
|
22
22
|
return if should_be_skipped?
|
23
23
|
prev_stage.build! if prev_stage
|
24
24
|
image_build
|
25
|
-
raise Exception::IntrospectImage,
|
26
|
-
message: application.t(code: 'introspect.stage', data: { name: name }),
|
27
|
-
data: { built_id: image.built_id, options: image.send(:prepared_options) } if should_be_introspected?
|
25
|
+
raise Exception::IntrospectImage, data: { built_id: image.built_id, options: image.send(:prepared_options) } if should_be_introspected?
|
28
26
|
end
|
29
27
|
|
30
28
|
def save_in_cache!
|
@@ -59,7 +59,7 @@ module Dapp
|
|
59
59
|
'--entrypoint /bin/bash']
|
60
60
|
commands = safe_cp(where_to_add, app.container_tmp_path(artifact_name), Process.uid, Process.gid)
|
61
61
|
application.log_secondary_process(application.t(code: 'process.artifact_copy', data: { name: artifact_name }), short: true) do
|
62
|
-
app.run(docker_options, [%
|
62
|
+
app.run(docker_options, [%(-ec '#{application.shellout_pack(commands)}')])
|
63
63
|
end
|
64
64
|
|
65
65
|
commands = safe_cp(application.container_tmp_path('artifact', artifact_name), where_to_add, owner, group, cwd, paths)
|
data/lib/dapp/builder/chef.rb
CHANGED
@@ -44,9 +44,7 @@ module Dapp
|
|
44
44
|
private
|
45
45
|
|
46
46
|
def enabled_modules
|
47
|
-
application.config._chef._modules
|
48
|
-
mod.start_with?('mdapp-') ? mod.split('mdapp-')[1] : mod
|
49
|
-
end
|
47
|
+
application.config._chef._modules
|
50
48
|
end
|
51
49
|
|
52
50
|
def enabled_recipes
|
@@ -83,13 +81,13 @@ module Dapp
|
|
83
81
|
|
84
82
|
def local_cookbook_paths_for_checksum
|
85
83
|
@local_cookbook_paths_for_checksum ||= berksfile
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
84
|
+
.local_cookbooks
|
85
|
+
.values
|
86
|
+
.map { |cookbook| cookbook[:path] }
|
87
|
+
.product(LOCAL_COOKBOOK_CHECKSUM_PATTERNS)
|
88
|
+
.map { |cb, dir| Dir[cb.join(dir)] }
|
89
|
+
.flatten
|
90
|
+
.map(&Pathname.method(:new))
|
93
91
|
end
|
94
92
|
|
95
93
|
def stage_cookbooks_paths_for_checksum(stage)
|
@@ -214,47 +212,45 @@ module Dapp
|
|
214
212
|
@install_stage_cookbooks[stage] ||= true.tap do
|
215
213
|
common_paths = proc do |cookbook_path|
|
216
214
|
[['metadata.json', 'metadata.json'],
|
217
|
-
[
|
215
|
+
['attributes/common', 'attributes'],
|
218
216
|
["attributes/#{stage}", 'attributes'],
|
219
217
|
["files/#{stage}", 'files/default'],
|
220
|
-
["templates/#{stage}", 'templates/default']
|
221
|
-
].select { |from, _| cookbook_path.join(from).exist? }
|
218
|
+
["templates/#{stage}", 'templates/default']].select { |from, _| cookbook_path.join(from).exist? }
|
222
219
|
end
|
223
220
|
|
224
221
|
install_paths = Dir[cookbooks_vendor_path('*')]
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
222
|
+
.map(&Pathname.method(:new))
|
223
|
+
.map do |cookbook_path|
|
224
|
+
cookbook_name = File.basename cookbook_path
|
225
|
+
is_project = (cookbook_name == project_name)
|
226
|
+
is_mdapp = cookbook_name.start_with? 'mdapp-'
|
227
|
+
mdapp_name = (is_mdapp ? cookbook_name.split('mdapp-')[1] : nil)
|
228
|
+
mdapp_enabled = is_mdapp && enabled_modules.include?(mdapp_name)
|
229
|
+
|
230
|
+
paths = if is_project
|
231
|
+
recipe_paths = enabled_recipes
|
232
|
+
.map { |recipe| ["recipes/#{stage}/#{recipe}.rb", "recipes/#{recipe}.rb"] }
|
233
|
+
.select { |from, _| cookbook_path.join(from).exist? }
|
234
|
+
|
235
|
+
if recipe_paths.any?
|
236
|
+
[*recipe_paths, *common_paths[cookbook_path]]
|
237
|
+
else
|
238
|
+
[nil, *common_paths[cookbook_path]]
|
239
|
+
end
|
240
|
+
elsif is_mdapp && mdapp_enabled
|
241
|
+
recipe_path = "recipes/#{stage}.rb"
|
242
|
+
|
243
|
+
if cookbook_path.join(recipe_path).exist?
|
244
|
+
[[recipe_path, recipe_path], *common_paths[cookbook_path]]
|
245
|
+
else
|
246
|
+
[nil, *common_paths[cookbook_path]]
|
247
|
+
end
|
248
|
+
else
|
249
|
+
[['.', '.']]
|
250
|
+
end
|
254
251
|
|
255
|
-
|
256
|
-
|
257
|
-
.compact
|
252
|
+
[cookbook_path, paths] if paths && paths.any?
|
253
|
+
end.compact
|
258
254
|
|
259
255
|
stage_cookbooks_path(stage).mkpath
|
260
256
|
install_paths.each do |cookbook_path, paths|
|
@@ -277,8 +273,7 @@ module Dapp
|
|
277
273
|
data: { stage: stage,
|
278
274
|
cookbook: cookbook,
|
279
275
|
from: from_subpath.relative_path_from(cookbook_path),
|
280
|
-
to: to_subpath.relative_path_from(stage_cookbooks_path(stage, cookbook))
|
281
|
-
} if to_subpath.exist?
|
276
|
+
to: to_subpath.relative_path_from(stage_cookbooks_path(stage, cookbook)) } if to_subpath.exist?
|
282
277
|
|
283
278
|
to_subpath.parent.mkpath
|
284
279
|
FileUtils.cp_r from_subpath, to_subpath
|
data/lib/dapp/cli/build.rb
CHANGED
@@ -43,17 +43,6 @@ BANNER
|
|
43
43
|
proc: proc { |v| v.to_sym },
|
44
44
|
in: [nil, :from, :infra_install, :source_1_archive, :source_1, :install, :source_2,
|
45
45
|
:infra_setup, :source_3, :chef_cookbooks, :setup, :source_4, :source_5]
|
46
|
-
|
47
|
-
def run(*args)
|
48
|
-
super
|
49
|
-
rescue Exception::IntrospectImage => e
|
50
|
-
$stderr.puts(e.net_status[:message])
|
51
|
-
data = e.net_status[:data]
|
52
|
-
system("docker run -ti --rm --entrypoint /bin/bash #{data[:options]} #{data[:built_id]}").tap do |res|
|
53
|
-
shellout("docker rmi #{data[:built_id]}") if data[:rmi]
|
54
|
-
res || raise(Dapp::Error::Application, code: :application_not_run)
|
55
|
-
end
|
56
|
-
end
|
57
46
|
end
|
58
47
|
end
|
59
48
|
end
|
data/lib/dapp/error/base.rb
CHANGED
@@ -3,7 +3,7 @@ module Dapp
|
|
3
3
|
# Base
|
4
4
|
class Base < NetStatus::Exception
|
5
5
|
def initialize(net_status = {})
|
6
|
-
super({context: self.class.to_s.split('::').last.downcase}.merge(net_status))
|
6
|
+
super({ context: self.class.to_s.split('::').last.downcase }.merge(net_status))
|
7
7
|
end
|
8
8
|
end
|
9
9
|
end
|
data/lib/dapp/image/stage.rb
CHANGED
@@ -49,11 +49,10 @@ module Dapp
|
|
49
49
|
raise Error::Build, code: :built_id_not_defined if from.built_id.nil?
|
50
50
|
shellout!("docker run #{prepared_options} --entrypoint /bin/bash --name=#{container_name} #{from.built_id} -ec '#{prepared_bash_command}'",
|
51
51
|
log_verbose: log_verbose, log_time: log_time)
|
52
|
-
rescue Error::Shellout =>
|
52
|
+
rescue Error::Shellout => _e
|
53
53
|
raise unless introspect_error || introspect_before_error
|
54
54
|
built_id = introspect_error ? commit! : from.built_id
|
55
|
-
raise Exception::IntrospectImage,
|
56
|
-
data: { built_id: built_id, options: prepared_options, rmi: introspect_error }
|
55
|
+
raise Exception::IntrospectImage, data: { built_id: built_id, options: prepared_options, rmi: introspect_error }
|
57
56
|
end
|
58
57
|
|
59
58
|
def commit!
|
data/lib/dapp/version.rb
CHANGED