dapp 0.6.17 → 0.7.1

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.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/config/en/common.yml +2 -2
  3. data/config/en/net_status.yml +25 -23
  4. data/lib/dapp.rb +24 -16
  5. data/lib/dapp/artifact.rb +1 -1
  6. data/lib/dapp/build/stage/after_install_artifact.rb +2 -2
  7. data/lib/dapp/build/stage/after_setup_artifact.rb +4 -4
  8. data/lib/dapp/build/stage/artifact_base.rb +25 -25
  9. data/lib/dapp/build/stage/artifact_default.rb +16 -16
  10. data/lib/dapp/build/stage/base.rb +36 -31
  11. data/lib/dapp/build/stage/before_install.rb +8 -8
  12. data/lib/dapp/build/stage/before_install_artifact.rb +2 -2
  13. data/lib/dapp/build/stage/before_setup.rb +8 -8
  14. data/lib/dapp/build/stage/before_setup_artifact.rb +2 -2
  15. data/lib/dapp/build/stage/build_artifact.rb +10 -10
  16. data/lib/dapp/build/stage/docker_instructions.rb +3 -3
  17. data/lib/dapp/build/stage/from.rb +7 -3
  18. data/lib/dapp/build/stage/ga_archive.rb +2 -2
  19. data/lib/dapp/build/stage/ga_archive_dependencies.rb +3 -3
  20. data/lib/dapp/build/stage/ga_artifact_patch.rb +2 -2
  21. data/lib/dapp/build/stage/ga_base.rb +2 -2
  22. data/lib/dapp/build/stage/ga_dependencies_base.rb +2 -2
  23. data/lib/dapp/build/stage/ga_latest_patch.rb +3 -3
  24. data/lib/dapp/build/stage/import_artifact.rb +19 -19
  25. data/lib/dapp/build/stage/install/ga_post_install_patch.rb +2 -2
  26. data/lib/dapp/build/stage/install/ga_post_install_patch_dependencies.rb +2 -2
  27. data/lib/dapp/build/stage/install/ga_pre_install_patch.rb +2 -2
  28. data/lib/dapp/build/stage/install/ga_pre_install_patch_dependencies.rb +2 -2
  29. data/lib/dapp/build/stage/install/install.rb +9 -9
  30. data/lib/dapp/build/stage/mod/group.rb +2 -2
  31. data/lib/dapp/build/stage/mod/logging.rb +19 -19
  32. data/lib/dapp/build/stage/setup/chef_cookbooks.rb +4 -4
  33. data/lib/dapp/build/stage/setup/ga_post_setup_patch.rb +2 -2
  34. data/lib/dapp/build/stage/setup/ga_post_setup_patch_dependencies.rb +3 -3
  35. data/lib/dapp/build/stage/setup/ga_pre_setup_patch.rb +2 -2
  36. data/lib/dapp/build/stage/setup/ga_pre_setup_patch_dependencies.rb +2 -2
  37. data/lib/dapp/build/stage/setup/setup.rb +9 -9
  38. data/lib/dapp/builder/base.rb +4 -4
  39. data/lib/dapp/builder/chef.rb +65 -64
  40. data/lib/dapp/builder/none.rb +45 -0
  41. data/lib/dapp/builder/shell.rb +3 -3
  42. data/lib/dapp/cli.rb +9 -10
  43. data/lib/dapp/cli/base.rb +6 -1
  44. data/lib/dapp/cli/bp.rb +2 -2
  45. data/lib/dapp/cli/build.rb +2 -2
  46. data/lib/dapp/cli/cleanup.rb +2 -2
  47. data/lib/dapp/cli/list.rb +2 -2
  48. data/lib/dapp/cli/mrproper.rb +0 -4
  49. data/lib/dapp/cli/push.rb +3 -3
  50. data/lib/dapp/cli/run.rb +3 -3
  51. data/lib/dapp/cli/spush.rb +2 -2
  52. data/lib/dapp/cli/stage_image.rb +2 -2
  53. data/lib/dapp/cli/stages/cleanup_local.rb +3 -3
  54. data/lib/dapp/cli/stages/cleanup_repo.rb +3 -3
  55. data/lib/dapp/cli/stages/flush_local.rb +3 -3
  56. data/lib/dapp/cli/stages/flush_repo.rb +3 -3
  57. data/lib/dapp/cli/stages/pull.rb +3 -3
  58. data/lib/dapp/cli/stages/push.rb +3 -3
  59. data/lib/dapp/config/artifact_dimg.rb +18 -0
  60. data/lib/dapp/config/artifact_group.rb +54 -0
  61. data/lib/dapp/config/base.rb +19 -0
  62. data/lib/dapp/config/dimg.rb +23 -0
  63. data/lib/dapp/config/dimg/instance_methods.rb +179 -0
  64. data/lib/dapp/config/dimg/validation.rb +124 -0
  65. data/lib/dapp/config/dimg_group.rb +56 -0
  66. data/lib/dapp/config/dimg_group_base.rb +36 -0
  67. data/lib/dapp/config/dimg_group_main.rb +21 -0
  68. data/lib/dapp/config/directive/artifact.rb +29 -54
  69. data/lib/dapp/config/directive/artifact_base.rb +92 -0
  70. data/lib/dapp/config/directive/base.rb +22 -0
  71. data/lib/dapp/config/directive/chef.rb +23 -61
  72. data/lib/dapp/config/directive/docker/artifact.rb +3 -14
  73. data/lib/dapp/config/directive/docker/base.rb +3 -78
  74. data/lib/dapp/config/directive/docker/dimg.rb +81 -0
  75. data/lib/dapp/config/directive/git_artifact_local.rb +13 -0
  76. data/lib/dapp/config/directive/git_artifact_remote.rb +55 -0
  77. data/lib/dapp/config/directive/mount.rb +25 -0
  78. data/lib/dapp/config/directive/shell/artifact.rb +3 -24
  79. data/lib/dapp/config/directive/shell/dimg.rb +68 -0
  80. data/lib/dapp/{application.rb → dimg.rb} +12 -33
  81. data/lib/dapp/{application → dimg}/git_artifact.rb +3 -3
  82. data/lib/dapp/{application → dimg}/path.rb +9 -5
  83. data/lib/dapp/{application → dimg}/stages.rb +8 -8
  84. data/lib/dapp/{application → dimg}/tags.rb +6 -6
  85. data/lib/dapp/docker_registry.rb +11 -15
  86. data/lib/dapp/error/dimg.rb +6 -0
  87. data/lib/dapp/git_artifact.rb +19 -20
  88. data/lib/dapp/git_repo/base.rb +6 -6
  89. data/lib/dapp/git_repo/own.rb +4 -4
  90. data/lib/dapp/git_repo/remote.rb +5 -5
  91. data/lib/dapp/image/docker.rb +0 -15
  92. data/lib/dapp/image/stage.rb +12 -22
  93. data/lib/dapp/project.rb +14 -18
  94. data/lib/dapp/project/command/build.rb +2 -2
  95. data/lib/dapp/project/command/cleanup.rb +9 -11
  96. data/lib/dapp/project/command/common.rb +8 -20
  97. data/lib/dapp/project/command/list.rb +7 -1
  98. data/lib/dapp/project/command/mrproper.rb +12 -22
  99. data/lib/dapp/project/command/push.rb +3 -4
  100. data/lib/dapp/project/command/run.rb +2 -2
  101. data/lib/dapp/project/command/spush.rb +3 -4
  102. data/lib/dapp/project/command/stage_image.rb +2 -2
  103. data/lib/dapp/project/command/stages/cleanup_local.rb +20 -24
  104. data/lib/dapp/project/command/stages/cleanup_repo.rb +3 -3
  105. data/lib/dapp/project/command/stages/common.rb +2 -3
  106. data/lib/dapp/project/command/stages/flush_local.rb +5 -7
  107. data/lib/dapp/project/command/stages/flush_repo.rb +2 -2
  108. data/lib/dapp/project/command/stages/pull.rb +3 -4
  109. data/lib/dapp/project/command/stages/push.rb +3 -4
  110. data/lib/dapp/project/dappfile.rb +9 -26
  111. data/lib/dapp/project/logging/base.rb +14 -0
  112. data/lib/dapp/project/logging/process.rb +1 -1
  113. data/lib/dapp/project/shellout/system.rb +2 -4
  114. data/lib/dapp/version.rb +1 -1
  115. metadata +25 -17
  116. data/lib/dapp/cli/tag.rb +0 -24
  117. data/lib/dapp/config/application.rb +0 -288
  118. data/lib/dapp/config/artifact.rb +0 -20
  119. data/lib/dapp/config/directive/build_dir.rb +0 -9
  120. data/lib/dapp/config/directive/git_artifact.rb +0 -59
  121. data/lib/dapp/config/directive/shell/base.rb +0 -85
  122. data/lib/dapp/config/directive/tmp_dir.rb +0 -36
  123. data/lib/dapp/config/main.rb +0 -20
  124. data/lib/dapp/error/application.rb +0 -6
  125. data/lib/dapp/project/command/tag.rb +0 -18
@@ -9,7 +9,7 @@ module Dapp
9
9
  if empty? then log_state(:empty)
10
10
  elsif image.tagged? then log_state(:using_cache)
11
11
  elsif should_be_not_present? then log_state(:not_present)
12
- elsif application.project.dry_run? then log_state(:build, styles: { status: :success })
12
+ elsif dimg.project.dry_run? then log_state(:build, styles: { status: :success })
13
13
  else log_image_build_process(&image_build)
14
14
  end
15
15
  ensure
@@ -17,10 +17,10 @@ module Dapp
17
17
  end
18
18
 
19
19
  def log_build
20
- application.project.with_log_indent do
21
- application.project.log_info application.project.t(code: 'image.signature', data: { signature: image_name })
20
+ dimg.project.with_log_indent do
21
+ dimg.project.log_info dimg.project.t(code: 'image.signature', data: { signature: image_name })
22
22
  log_image_details unless empty?
23
- end if application.project.log_verbose? && !should_be_quiet?
23
+ end if dimg.project.log_verbose? && !should_be_quiet?
24
24
  end
25
25
 
26
26
  def log_image_details
@@ -34,13 +34,13 @@ module Dapp
34
34
 
35
35
  def log_image_instructions
36
36
  return if (instructions = image.prepare_instructions(image.send(:change_options))).empty?
37
- application.project.log_info application.project.t(code: 'image.instructions')
38
- application.project.with_log_indent { application.project.log_info instructions.join("\n") }
37
+ dimg.project.log_info dimg.project.t(code: 'image.instructions')
38
+ dimg.project.with_log_indent { dimg.project.log_info instructions.join("\n") }
39
39
  end
40
40
 
41
41
  def log_image_created_at
42
- application.project.log_info application.project.t(code: 'image.info.created_at',
43
- data: { value: Time.parse(image.created_at).localtime })
42
+ dimg.project.log_info dimg.project.t(code: 'image.info.created_at',
43
+ data: { value: Time.parse(image.created_at).localtime })
44
44
  end
45
45
 
46
46
  def log_image_size
@@ -51,17 +51,17 @@ module Dapp
51
51
  size = image.size
52
52
  code = 'image.info.size'
53
53
  end
54
- application.project.log_info application.project.t(code: code, data: { value: size.to_f.round(2) })
54
+ dimg.project.log_info dimg.project.t(code: code, data: { value: size.to_f.round(2) })
55
55
  end
56
56
 
57
57
  def log_image_commands
58
58
  return if (bash_commands = image.send(:bash_commands)).empty?
59
- application.project.log_info application.project.t(code: 'image.commands')
60
- application.project.with_log_indent { application.project.log_info bash_commands.join("\n") }
59
+ dimg.project.log_info dimg.project.t(code: 'image.commands')
60
+ dimg.project.with_log_indent { dimg.project.log_info bash_commands.join("\n") }
61
61
  end
62
62
 
63
63
  def log_name
64
- application.project.t(code: name, context: log_name_context)
64
+ dimg.project.t(code: name, context: log_name_context)
65
65
  end
66
66
 
67
67
  def log_name_context
@@ -69,15 +69,15 @@ module Dapp
69
69
  end
70
70
 
71
71
  def log_state(state_code, styles: {})
72
- application.project.log_state(log_name,
73
- state: application.project.t(code: state_code, context: 'state'),
74
- styles: styles) unless should_be_quiet?
72
+ dimg.project.log_state(log_name,
73
+ state: dimg.project.t(code: state_code, context: 'state'),
74
+ styles: styles) unless should_be_quiet?
75
75
  end
76
76
 
77
77
  def log_image_build_process
78
78
  return yield if should_be_quiet?
79
- application.project.log_process(log_name, process: application.project.t(code: 'status.process.building'),
80
- short: should_not_be_detailed?) do
79
+ dimg.project.log_process(log_name, process: dimg.project.t(code: 'status.process.building'),
80
+ short: should_not_be_detailed?) do
81
81
  yield
82
82
  end
83
83
  end
@@ -91,11 +91,11 @@ module Dapp
91
91
  end
92
92
 
93
93
  def should_be_introspected?
94
- application.project.cli_options[:introspect_stage] == name && !application.project.dry_run? && !application.artifact?
94
+ dimg.project.cli_options[:introspect_stage] == name && !dimg.project.dry_run? && !dimg.artifact?
95
95
  end
96
96
 
97
97
  def should_be_quiet?
98
- application.artifact? && !application.project.log_verbose?
98
+ dimg.artifact? && !dimg.project.log_verbose?
99
99
  end
100
100
  end
101
101
  end # Mod
@@ -6,18 +6,18 @@ module Dapp
6
6
  class ChefCookbooks < Base
7
7
  include Mod::Group
8
8
 
9
- def initialize(application, next_stage)
10
- @prev_stage = Setup.new(application, self)
9
+ def initialize(dimg, next_stage)
10
+ @prev_stage = Setup.new(dimg, self)
11
11
  super
12
12
  end
13
13
 
14
14
  def dependencies
15
- [application.builder.chef_cookbooks_checksum]
15
+ [dimg.builder.chef_cookbooks_checksum]
16
16
  end
17
17
 
18
18
  def prepare_image
19
19
  super
20
- application.builder.chef_cookbooks(image)
20
+ dimg.builder.chef_cookbooks(image)
21
21
  end
22
22
 
23
23
  protected
@@ -6,8 +6,8 @@ module Dapp
6
6
  class GAPostSetupPatch < GABase
7
7
  include Mod::Group
8
8
 
9
- def initialize(application, next_stage)
10
- @prev_stage = GAPostSetupPatchDependencies.new(application, self)
9
+ def initialize(dimg, next_stage)
10
+ @prev_stage = GAPostSetupPatchDependencies.new(dimg, self)
11
11
  super
12
12
  end
13
13
 
@@ -8,8 +8,8 @@ module Dapp
8
8
 
9
9
  MAX_PATCH_SIZE = 1024 * 1024
10
10
 
11
- def initialize(application, next_stage)
12
- @prev_stage = ChefCookbooks.new(application, self)
11
+ def initialize(dimg, next_stage)
12
+ @prev_stage = ChefCookbooks.new(dimg, self)
13
13
  super
14
14
  end
15
15
 
@@ -20,7 +20,7 @@ module Dapp
20
20
  private
21
21
 
22
22
  def changes_size_since_g_a_pre_setup_patch
23
- application.git_artifacts.map do |git_artifact|
23
+ dimg.git_artifacts.map do |git_artifact|
24
24
  git_artifact.patch_size(prev_stage.prev_stage.prev_stage.layer_commit(git_artifact), git_artifact.latest_commit)
25
25
  end.reduce(0, :+)
26
26
  end
@@ -6,8 +6,8 @@ module Dapp
6
6
  class GAPreSetupPatch < GABase
7
7
  include Mod::Group
8
8
 
9
- def initialize(application, next_stage)
10
- @prev_stage = GAPreSetupPatchDependencies.new(application, self)
9
+ def initialize(dimg, next_stage)
10
+ @prev_stage = GAPreSetupPatchDependencies.new(dimg, self)
11
11
  super
12
12
  end
13
13
 
@@ -6,8 +6,8 @@ module Dapp
6
6
  class GAPreSetupPatchDependencies < GADependenciesBase
7
7
  include Mod::Group
8
8
 
9
- def initialize(application, next_stage)
10
- @prev_stage = BeforeSetupArtifact.new(application, self)
9
+ def initialize(dimg, next_stage)
10
+ @prev_stage = BeforeSetupArtifact.new(dimg, self)
11
11
  super
12
12
  end
13
13
 
@@ -6,32 +6,32 @@ module Dapp
6
6
  class Setup < Base
7
7
  include Mod::Group
8
8
 
9
- def initialize(application, next_stage)
10
- @prev_stage = GAPreSetupPatch.new(application, self)
9
+ def initialize(dimg, next_stage)
10
+ @prev_stage = GAPreSetupPatch.new(dimg, self)
11
11
  super
12
12
  end
13
13
 
14
14
  def empty?
15
- !application.builder.setup?
16
- end
17
-
18
- def builder_checksum
19
- application.builder.setup_checksum
15
+ !dimg.builder.setup?
20
16
  end
21
17
 
22
18
  def context
23
19
  [setup_dependencies_files_checksum, builder_checksum]
24
20
  end
25
21
 
22
+ def builder_checksum
23
+ dimg.builder.setup_checksum
24
+ end
25
+
26
26
  def prepare_image
27
27
  super
28
- application.builder.setup(image)
28
+ dimg.builder.setup(image)
29
29
  end
30
30
 
31
31
  private
32
32
 
33
33
  def setup_dependencies_files_checksum
34
- @setup_files_checksum ||= dependencies_files_checksum(application.config._setup_dependencies)
34
+ @setup_files_checksum ||= dependencies_files_checksum(dimg.config._setup_dependencies)
35
35
  end
36
36
  end # Setup
37
37
  end
@@ -2,13 +2,13 @@ module Dapp
2
2
  module Builder
3
3
  # Base
4
4
  class Base
5
- attr_reader :application
5
+ attr_reader :dimg
6
6
 
7
- def initialize(application)
8
- @application = application
7
+ def initialize(dimg)
8
+ @dimg = dimg
9
9
  end
10
10
 
11
- def before_application_should_be_built_check
11
+ def before_dimg_should_be_built_check
12
12
  end
13
13
 
14
14
  def before_install?
@@ -13,9 +13,9 @@ module Dapp
13
13
 
14
14
  %i(before_install install before_setup setup build_artifact).each do |stage|
15
15
  define_method("#{stage}_checksum") do
16
- application.hashsum [stage_cookbooks_checksum(stage),
17
- stage_attributes_raw(stage),
18
- *stage_cookbooks_runlist(stage)]
16
+ dimg.hashsum [stage_cookbooks_checksum(stage),
17
+ stage_attributes_raw(stage),
18
+ *stage_cookbooks_runlist(stage)]
19
19
  end
20
20
 
21
21
  define_method("#{stage}?") { !stage_empty?(stage) }
@@ -38,21 +38,21 @@ module Dapp
38
38
  end
39
39
 
40
40
  def chef_cookbooks(image)
41
- image.add_volume "#{cookbooks_vendor_path(chef_cookbooks_stage: true)}:#{application.container_dapp_path('chef_cookbooks')}"
41
+ image.add_volume "#{cookbooks_vendor_path(chef_cookbooks_stage: true)}:#{dimg.container_dapp_path('chef_cookbooks')}"
42
42
  image.add_command(
43
- "#{application.project.mkdir_path} -p /usr/share/dapp/chef_repo",
44
- ["#{application.project.cp_path} -a #{application.container_dapp_path('chef_cookbooks')} ",
43
+ "#{dimg.project.mkdir_path} -p /usr/share/dapp/chef_repo",
44
+ ["#{dimg.project.cp_path} -a #{dimg.container_dapp_path('chef_cookbooks')} ",
45
45
  '/usr/share/dapp/chef_repo/cookbooks'].join
46
46
  )
47
47
  end
48
48
 
49
- def before_application_should_be_built_check
49
+ def before_dimg_should_be_built_check
50
50
  super
51
51
 
52
52
  %i(before_install install before_setup setup chef_cookbooks).each do |stage|
53
- unless stage_empty?(stage) or stage_cookbooks_checksum_path(stage).exist?
54
- raise ::Dapp::Error::Application, code: :chef_stage_checksum_not_calculated,
55
- data: { stage: stage }
53
+ unless stage_empty?(stage) || stage_cookbooks_checksum_path(stage).exist?
54
+ raise ::Dapp::Error::Dimg, code: :chef_stage_checksum_not_calculated,
55
+ data: { stage: stage }
56
56
  end
57
57
  end
58
58
  end
@@ -60,15 +60,15 @@ module Dapp
60
60
  private
61
61
 
62
62
  def enabled_modules
63
- application.config._chef._modules
63
+ dimg.config._chef._module
64
64
  end
65
65
 
66
66
  def enabled_recipes
67
- application.config._chef._recipes
67
+ dimg.config._chef._recipe
68
68
  end
69
69
 
70
70
  def stage_attributes(stage)
71
- application.config._chef.send("_#{stage}_attributes")
71
+ dimg.config._chef.send("__#{stage}_attributes")
72
72
  end
73
73
 
74
74
  def stage_attributes_raw(stage)
@@ -80,19 +80,19 @@ module Dapp
80
80
  end
81
81
 
82
82
  def berksfile_path
83
- application.home_path('Berksfile')
83
+ dimg.chef_path('Berksfile')
84
84
  end
85
85
 
86
86
  def berksfile_lock_path
87
- application.home_path('Berksfile.lock')
87
+ dimg.chef_path('Berksfile.lock')
88
88
  end
89
89
 
90
90
  def berksfile
91
- @berksfile ||= Berksfile.new(application.home_path, berksfile_path)
91
+ @berksfile ||= Berksfile.new(dimg.chef_path, berksfile_path)
92
92
  end
93
93
 
94
94
  def cookbook_metadata_path
95
- application.home_path('metadata.rb')
95
+ dimg.chef_path('metadata.rb')
96
96
  end
97
97
 
98
98
  def cookbook_metadata
@@ -105,11 +105,11 @@ module Dapp
105
105
  end
106
106
 
107
107
  def berksfile_lock_checksum
108
- application.hashsum(berksfile_lock_path.read) if berksfile_lock_path.exist?
108
+ dimg.hashsum(berksfile_lock_path.read) if berksfile_lock_path.exist?
109
109
  end
110
110
 
111
111
  def stage_cookbooks_checksum_path(stage)
112
- application.build_path.join("#{cookbooks_checksum}.#{stage}.checksum")
112
+ dimg.build_path.join("#{cookbooks_checksum}.#{stage}.checksum")
113
113
  end
114
114
 
115
115
  def stage_cookbooks_checksum(stage)
@@ -119,15 +119,15 @@ module Dapp
119
119
  checksum = if stage == :chef_cookbooks
120
120
  paths = Dir[cookbooks_vendor_path('**/*', chef_cookbooks_stage: true)].map(&Pathname.method(:new))
121
121
 
122
- application.hashsum [
123
- application.paths_content_hashsum(paths),
122
+ dimg.hashsum [
123
+ dimg.paths_content_hashsum(paths),
124
124
  *paths.map { |p| p.relative_path_from(cookbooks_vendor_path(chef_cookbooks_stage: true)).to_s }.sort
125
125
  ]
126
126
  else
127
127
  paths = Dir[stage_cookbooks_path(stage, '**/*')].map(&Pathname.method(:new))
128
128
 
129
- application.hashsum [
130
- application.paths_content_hashsum(paths),
129
+ dimg.hashsum [
130
+ dimg.paths_content_hashsum(paths),
131
131
  *paths.map { |p| p.relative_path_from(stage_cookbooks_path(stage)).to_s }.sort,
132
132
  stage == :before_install ? chefdk_image : nil
133
133
  ].compact
@@ -153,10 +153,10 @@ module Dapp
153
153
  .flatten
154
154
  .map(&Pathname.method(:new))
155
155
 
156
- application.hashsum [
157
- application.paths_content_hashsum(paths),
156
+ dimg.hashsum [
157
+ dimg.paths_content_hashsum(paths),
158
158
  *paths.map { |p| p.relative_path_from(berksfile.home_path).to_s }.sort,
159
- (berksfile_lock_checksum unless application.dev_mode?),
159
+ (berksfile_lock_checksum unless dimg.project.dev_mode?),
160
160
  *enabled_recipes,
161
161
  *enabled_modules
162
162
  ].compact
@@ -173,9 +173,9 @@ module Dapp
173
173
 
174
174
  def chefdk_container
175
175
  @chefdk_container ||= begin
176
- if application.project.shellout("docker inspect #{chefdk_container_name}").exitstatus.nonzero?
177
- application.project.log_secondary_process(application.project.t(code: 'process.chefdk_container_loading'), short: true) do
178
- application.project.shellout!(
176
+ if dimg.project.shellout("docker inspect #{chefdk_container_name}").exitstatus.nonzero?
177
+ dimg.project.log_secondary_process(dimg.project.t(code: 'process.chefdk_container_loading'), short: true) do
178
+ dimg.project.shellout!(
179
179
  ['docker create',
180
180
  "--name #{chefdk_container_name}",
181
181
  "--volume /.dapp/deps/chefdk #{chefdk_image}"].join(' ')
@@ -189,18 +189,18 @@ module Dapp
189
189
 
190
190
  # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
191
191
  def install_cookbooks(dest_path, chef_cookbooks_stage: false)
192
- volumes_from = [application.project.base_container, chefdk_container]
192
+ volumes_from = [dimg.project.base_container, chefdk_container]
193
193
  process_code = [
194
194
  'process',
195
195
  chef_cookbooks_stage ? 'chef_cookbooks_stage_berks_vendor' : 'berks_vendor'
196
196
  ].compact.join('.')
197
197
 
198
- application.project.log_secondary_process(application.project.t(code: process_code)) do
198
+ dimg.project.log_secondary_process(dimg.project.t(code: process_code)) do
199
199
  before_vendor_commands = [].tap do |commands|
200
- unless application.dev_mode? || chef_cookbooks_stage
200
+ unless dimg.project.dev_mode? || chef_cookbooks_stage
201
201
  commands.push(
202
202
  ['if [ ! -f Berksfile.lock ] ; then ',
203
- "echo \"Berksfile.lock not found\" 1>&2 ; ",
203
+ 'echo "Berksfile.lock not found" 1>&2 ; ',
204
204
  'exit 1 ; ',
205
205
  'fi'].join
206
206
  )
@@ -208,15 +208,15 @@ module Dapp
208
208
  end
209
209
 
210
210
  after_vendor_commands = [].tap do |commands|
211
- if application.dev_mode?
211
+ if dimg.project.dev_mode?
212
212
  commands.push(
213
- ["#{application.project.install_path} -o #{Process.uid} -g #{Process.gid} ",
214
- "--mode $(#{application.project.stat_path} -c %a Berksfile.lock) ",
213
+ ["#{dimg.project.install_path} -o #{Process.uid} -g #{Process.gid} ",
214
+ "--mode $(#{dimg.project.stat_path} -c %a Berksfile.lock) ",
215
215
  "Berksfile.lock #{berksfile_lock_path}"].join
216
216
  )
217
217
  elsif !chef_cookbooks_stage
218
218
  commands.push(
219
- "export LOCKDIFF=$(#{application.project.diff_path} -u1 Berksfile.lock #{berksfile_lock_path})",
219
+ "export LOCKDIFF=$(#{dimg.project.diff_path} -u1 Berksfile.lock #{berksfile_lock_path})",
220
220
  ['if [ "$LOCKDIFF" != "" ] ; then ',
221
221
  "echo -e \"Bad Berksfile.lock\n$LOCKDIFF\" 1>&2 ; ",
222
222
  'exit 1 ; ',
@@ -226,14 +226,15 @@ module Dapp
226
226
  end
227
227
 
228
228
  vendor_commands = [
229
- "#{application.project.mkdir_path} -p ~/.ssh",
229
+ "#{dimg.project.mkdir_path} -p ~/.ssh",
230
230
  "echo \"Host *\" >> ~/.ssh/config",
231
231
  "echo \" StrictHostKeyChecking no\" >> ~/.ssh/config",
232
232
  *berksfile
233
233
  .local_cookbooks
234
234
  .values
235
235
  .map {|cookbook|
236
- ["#{application.project.rsync_path} --archive",
236
+ ["#{dimg.project.rsync_path} --archive",
237
+ *cookbook[:chefignore].map {|path| "--exclude #{path}"},
237
238
  "--relative #{cookbook[:path]} /tmp/local_cookbooks",
238
239
  ].join(' ')
239
240
  },
@@ -241,34 +242,34 @@ module Dapp
241
242
  *before_vendor_commands,
242
243
  '/.dapp/deps/chefdk/bin/berks vendor /tmp/cookbooks',
243
244
  *after_vendor_commands,
244
- ["#{application.project.find_path} /tmp/cookbooks -type d -exec #{application.project.bash_path} -ec '",
245
- "#{application.project.install_path} -o #{Process.uid} -g #{Process.gid} --mode $(#{application.project.stat_path} -c %a {}) -d ",
246
- "#{dest_path}/$(echo {} | #{application.project.sed_path} -e \"s/^\\/tmp\\/cookbooks//\")' \\;"].join,
247
- ["#{application.project.find_path} /tmp/cookbooks -type f -exec #{application.project.bash_path} -ec '",
248
- "#{application.project.install_path} -o #{Process.uid} -g #{Process.gid} --mode $(#{application.project.stat_path} -c %a {}) {} ",
249
- "#{dest_path}/$(echo {} | #{application.project.sed_path} -e \"s/\\/tmp\\/cookbooks//\")' \\;"].join,
250
- "#{application.project.install_path} -o #{Process.uid} -g #{Process.gid} --mode 0644 <(#{application.project.date_path} +%s.%N) #{dest_path.join('.created_at')}"
245
+ ["#{dimg.project.find_path} /tmp/cookbooks -type d -exec #{dimg.project.bash_path} -ec '",
246
+ "#{dimg.project.install_path} -o #{Process.uid} -g #{Process.gid} --mode $(#{dimg.project.stat_path} -c %a {}) -d ",
247
+ "#{dest_path}/$(echo {} | #{dimg.project.sed_path} -e \"s/^\\/tmp\\/cookbooks//\")' \\;"].join,
248
+ ["#{dimg.project.find_path} /tmp/cookbooks -type f -exec #{dimg.project.bash_path} -ec '",
249
+ "#{dimg.project.install_path} -o #{Process.uid} -g #{Process.gid} --mode $(#{dimg.project.stat_path} -c %a {}) {} ",
250
+ "#{dest_path}/$(echo {} | #{dimg.project.sed_path} -e \"s/\\/tmp\\/cookbooks//\")' \\;"].join,
251
+ "#{dimg.project.install_path} -o #{Process.uid} -g #{Process.gid} --mode 0644 <(#{dimg.project.date_path} +%s.%N) #{dest_path.join('.created_at')}"
251
252
  ]
252
253
 
253
- application.project.shellout!(
254
+ dimg.project.shellout!(
254
255
  ['docker run --rm',
255
256
  volumes_from.map { |container| "--volumes-from #{container}" }.join(' '),
256
257
  *berksfile.local_cookbooks
257
258
  .values
258
259
  .map { |cookbook| "--volume #{cookbook[:path]}:#{cookbook[:path]}" },
259
- ("--volume #{application.project.ssh_auth_sock}:/tmp/dapp-ssh-agent" if application.project.ssh_auth_sock),
260
+ ("--volume #{dimg.project.ssh_auth_sock}:/tmp/dapp-ssh-agent" if dimg.project.ssh_auth_sock),
260
261
  "--volume #{dest_path.tap(&:mkpath)}:#{dest_path}",
261
- ("--env SSH_AUTH_SOCK=/tmp/dapp-ssh-agent" if application.project.ssh_auth_sock),
262
+ ('--env SSH_AUTH_SOCK=/tmp/dapp-ssh-agent' if dimg.project.ssh_auth_sock),
262
263
  ('--env DAPP_CHEF_COOKBOOKS_VENDORING=1' if chef_cookbooks_stage),
263
- "dappdeps/berksdeps:0.1.0 #{application.project.bash_path} -ec '#{application.project.shellout_pack(vendor_commands.join(' && '))}'"].compact.join(' '),
264
- log_verbose: application.project.log_verbose?
264
+ "dappdeps/berksdeps:0.1.0 #{dimg.project.bash_path} -ec '#{dimg.project.shellout_pack(vendor_commands.join(' && '))}'"].compact.join(' '),
265
+ log_verbose: dimg.project.log_verbose?
265
266
  )
266
267
  end
267
268
  end
268
269
  # rubocop:enable Metrics/MethodLength, Metrics/AbcSize
269
270
 
270
271
  def _cookbooks_vendor_path(chef_cookbooks_stage: false)
271
- application.build_path.join(
272
+ dimg.build_path.join(
272
273
  ['cookbooks', chef_cookbooks_stage ? 'chef_cookbooks_stage' : nil].compact.join('.'),
273
274
  cookbooks_checksum
274
275
  )
@@ -277,16 +278,16 @@ module Dapp
277
278
  def cookbooks_vendor_path(*path, chef_cookbooks_stage: false)
278
279
  _cookbooks_vendor_path(chef_cookbooks_stage: chef_cookbooks_stage).tap do |_cookbooks_path|
279
280
  lock_name = [
280
- application.config._basename,
281
+ dimg.project.name,
281
282
  'cookbooks',
282
283
  chef_cookbooks_stage ? 'chef_cookbooks_stage' : nil,
283
284
  cookbooks_checksum
284
285
  ].compact.join('.')
285
286
 
286
- application.project.lock(lock_name, default_timeout: 120) do
287
+ dimg.project.lock(lock_name, default_timeout: 120) do
287
288
  @install_cookbooks ||= {}
288
289
  @install_cookbooks[chef_cookbooks_stage] ||= begin
289
- install_cookbooks(_cookbooks_path, chef_cookbooks_stage: chef_cookbooks_stage) unless _cookbooks_path.join('.created_at').exist? && !application.dev_mode?
290
+ install_cookbooks(_cookbooks_path, chef_cookbooks_stage: chef_cookbooks_stage) unless _cookbooks_path.join('.created_at').exist? && !dimg.project.dev_mode?
290
291
  true
291
292
  end
292
293
  end
@@ -330,14 +331,14 @@ module Dapp
330
331
  end
331
332
  elsif is_mdapp && mdapp_enabled
332
333
  common_mdapp_paths = select_existing_paths.call(cookbook_path, [
333
- *common_paths,
334
- ["files/#{stage}", 'files/default'],
335
- ['files/common', 'files/default'],
336
- ["templates/#{stage}", 'templates/default'],
337
- ['templates/common', 'templates/default'],
338
- ["attributes/#{stage}.rb", "attributes/#{stage}.rb"],
339
- ['attributes/common.rb', 'attributes/common.rb'],
340
- ])
334
+ *common_paths,
335
+ ["files/#{stage}", 'files/default'],
336
+ ['files/common', 'files/default'],
337
+ ["templates/#{stage}", 'templates/default'],
338
+ ['templates/common', 'templates/default'],
339
+ ["attributes/#{stage}.rb", "attributes/#{stage}.rb"],
340
+ ['attributes/common.rb', 'attributes/common.rb']
341
+ ])
341
342
 
342
343
  recipe_path = "recipes/#{stage}.rb"
343
344
  if cookbook_path.join(recipe_path).exist?
@@ -474,7 +475,7 @@ module Dapp
474
475
  end
475
476
 
476
477
  def stage_build_path(stage, *path)
477
- application.tmp_path(application.config._name, stage).join(*path)
478
+ dimg.tmp_path(dimg.config._name, stage).join(*path)
478
479
  end
479
480
 
480
481
  def container_stage_build_path(_stage, *path)