chef-dk 1.2.22 → 1.3.40

Sign up to get free protection for your applications and to get access to all the features.
Files changed (232) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +8 -12
  3. data/Gemfile.lock +120 -116
  4. data/README.md +4 -3
  5. data/Rakefile +54 -0
  6. data/acceptance/Gemfile.lock +36 -47
  7. data/bin/chef +1 -1
  8. data/chef-dk.gemspec +9 -9
  9. data/lib/chef-dk/authenticated_http.rb +6 -7
  10. data/lib/chef-dk/builtin_commands.rb +3 -4
  11. data/lib/chef-dk/chef_runner.rb +7 -8
  12. data/lib/chef-dk/cli.rb +11 -11
  13. data/lib/chef-dk/command/base.rb +4 -4
  14. data/lib/chef-dk/command/clean_policy_cookbooks.rb +4 -5
  15. data/lib/chef-dk/command/clean_policy_revisions.rb +4 -6
  16. data/lib/chef-dk/command/delete_policy.rb +4 -6
  17. data/lib/chef-dk/command/delete_policy_group.rb +6 -8
  18. data/lib/chef-dk/command/diff.rb +9 -10
  19. data/lib/chef-dk/command/env.rb +26 -27
  20. data/lib/chef-dk/command/exec.rb +5 -6
  21. data/lib/chef-dk/command/export.rb +8 -10
  22. data/lib/chef-dk/command/gem.rb +5 -5
  23. data/lib/chef-dk/command/generate.rb +19 -19
  24. data/lib/chef-dk/command/generator_commands.rb +8 -8
  25. data/lib/chef-dk/command/generator_commands/app.rb +2 -3
  26. data/lib/chef-dk/command/generator_commands/attribute.rb +2 -3
  27. data/lib/chef-dk/command/generator_commands/base.rb +13 -13
  28. data/lib/chef-dk/command/generator_commands/build_cookbook.rb +2 -2
  29. data/lib/chef-dk/command/generator_commands/chef_exts/generator_desc_resource.rb +2 -2
  30. data/lib/chef-dk/command/generator_commands/chef_exts/quieter_doc_formatter.rb +1 -2
  31. data/lib/chef-dk/command/generator_commands/chef_exts/recipe_dsl_ext.rb +1 -2
  32. data/lib/chef-dk/command/generator_commands/cookbook.rb +2 -2
  33. data/lib/chef-dk/command/generator_commands/cookbook_code_file.rb +3 -3
  34. data/lib/chef-dk/command/generator_commands/cookbook_file.rb +2 -2
  35. data/lib/chef-dk/command/generator_commands/generator_generator.rb +4 -7
  36. data/lib/chef-dk/command/generator_commands/lwrp.rb +2 -2
  37. data/lib/chef-dk/command/generator_commands/policyfile.rb +2 -3
  38. data/lib/chef-dk/command/generator_commands/recipe.rb +2 -2
  39. data/lib/chef-dk/command/generator_commands/repo.rb +1 -3
  40. data/lib/chef-dk/command/generator_commands/template.rb +2 -2
  41. data/lib/chef-dk/command/install.rb +4 -5
  42. data/lib/chef-dk/command/provision.rb +12 -14
  43. data/lib/chef-dk/command/push.rb +5 -6
  44. data/lib/chef-dk/command/push_archive.rb +4 -5
  45. data/lib/chef-dk/command/shell_init.rb +15 -16
  46. data/lib/chef-dk/command/show_policy.rb +5 -7
  47. data/lib/chef-dk/command/undelete.rb +6 -7
  48. data/lib/chef-dk/command/update.rb +5 -6
  49. data/lib/chef-dk/command/verify.rb +30 -31
  50. data/lib/chef-dk/commands_map.rb +1 -3
  51. data/lib/chef-dk/component_test.rb +13 -13
  52. data/lib/chef-dk/configurable.rb +2 -2
  53. data/lib/chef-dk/cookbook_metadata.rb +2 -2
  54. data/lib/chef-dk/cookbook_omnifetch.rb +7 -8
  55. data/lib/chef-dk/cookbook_profiler/git.rb +8 -8
  56. data/lib/chef-dk/cookbook_profiler/identifiers.rb +7 -7
  57. data/lib/chef-dk/cookbook_profiler/null_scm.rb +0 -1
  58. data/lib/chef-dk/exceptions.rb +1 -1
  59. data/lib/chef-dk/generator.rb +9 -7
  60. data/lib/chef-dk/helpers.rb +15 -15
  61. data/lib/chef-dk/pager.rb +2 -3
  62. data/lib/chef-dk/policyfile/chef_repo_cookbook_source.rb +4 -4
  63. data/lib/chef-dk/policyfile/chef_server_cookbook_source.rb +6 -6
  64. data/lib/chef-dk/policyfile/community_cookbook_source.rb +4 -5
  65. data/lib/chef-dk/policyfile/comparison_base.rb +3 -4
  66. data/lib/chef-dk/policyfile/cookbook_location_specification.rb +6 -6
  67. data/lib/chef-dk/policyfile/cookbook_locks.rb +11 -11
  68. data/lib/chef-dk/policyfile/cookbook_sources.rb +5 -5
  69. data/lib/chef-dk/policyfile/delivery_supermarket_source.rb +8 -9
  70. data/lib/chef-dk/policyfile/differ.rb +7 -10
  71. data/lib/chef-dk/policyfile/dsl.rb +10 -11
  72. data/lib/chef-dk/policyfile/lister.rb +3 -6
  73. data/lib/chef-dk/policyfile/null_cookbook_source.rb +3 -3
  74. data/lib/chef-dk/policyfile/read_cookbook_for_compat_mode_upload.rb +3 -3
  75. data/lib/chef-dk/policyfile/reports/install.rb +3 -4
  76. data/lib/chef-dk/policyfile/reports/table_printer.rb +0 -1
  77. data/lib/chef-dk/policyfile/reports/upload.rb +4 -4
  78. data/lib/chef-dk/policyfile/solution_dependencies.rb +22 -22
  79. data/lib/chef-dk/policyfile/source_uri.rb +2 -2
  80. data/lib/chef-dk/policyfile/storage_config.rb +4 -5
  81. data/lib/chef-dk/policyfile/undo_record.rb +6 -9
  82. data/lib/chef-dk/policyfile/undo_stack.rb +5 -7
  83. data/lib/chef-dk/policyfile/uploader.rb +8 -8
  84. data/lib/chef-dk/policyfile_compiler.rb +16 -20
  85. data/lib/chef-dk/policyfile_lock.rb +10 -11
  86. data/lib/chef-dk/policyfile_services/clean_policies.rb +3 -3
  87. data/lib/chef-dk/policyfile_services/clean_policy_cookbooks.rb +3 -5
  88. data/lib/chef-dk/policyfile_services/export_repo.rb +13 -14
  89. data/lib/chef-dk/policyfile_services/install.rb +6 -6
  90. data/lib/chef-dk/policyfile_services/push.rb +6 -8
  91. data/lib/chef-dk/policyfile_services/push_archive.rb +6 -10
  92. data/lib/chef-dk/policyfile_services/rm_policy.rb +4 -5
  93. data/lib/chef-dk/policyfile_services/rm_policy_group.rb +4 -5
  94. data/lib/chef-dk/policyfile_services/show_policy.rb +5 -6
  95. data/lib/chef-dk/policyfile_services/undelete.rb +3 -3
  96. data/lib/chef-dk/policyfile_services/update_attributes.rb +4 -6
  97. data/lib/chef-dk/service_exception_inspectors.rb +2 -3
  98. data/lib/chef-dk/service_exception_inspectors/base.rb +0 -1
  99. data/lib/chef-dk/service_exception_inspectors/http.rb +1 -3
  100. data/lib/chef-dk/service_exceptions.rb +1 -2
  101. data/lib/chef-dk/shell_out.rb +1 -1
  102. data/lib/chef-dk/skeletons/code_generator/files/default/build_cookbook/.kitchen.yml +2 -2
  103. data/lib/chef-dk/skeletons/code_generator/files/default/build_cookbook/README.md +2 -2
  104. data/lib/chef-dk/skeletons/code_generator/files/default/build_cookbook/test-fixture-recipe.rb +1 -0
  105. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/attributes/default.rb +1 -1
  106. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb +1 -1
  107. data/lib/chef-dk/skeletons/code_generator/metadata.rb +0 -1
  108. data/lib/chef-dk/skeletons/code_generator/recipes/app.rb +6 -6
  109. data/lib/chef-dk/skeletons/code_generator/recipes/attribute.rb +3 -3
  110. data/lib/chef-dk/skeletons/code_generator/recipes/build_cookbook.rb +43 -39
  111. data/lib/chef-dk/skeletons/code_generator/recipes/cookbook.rb +31 -22
  112. data/lib/chef-dk/skeletons/code_generator/recipes/cookbook_file.rb +5 -5
  113. data/lib/chef-dk/skeletons/code_generator/recipes/lwrp.rb +4 -4
  114. data/lib/chef-dk/skeletons/code_generator/recipes/policyfile.rb +1 -1
  115. data/lib/chef-dk/skeletons/code_generator/recipes/recipe.rb +8 -8
  116. data/lib/chef-dk/skeletons/code_generator/recipes/repo.rb +15 -15
  117. data/lib/chef-dk/skeletons/code_generator/recipes/template.rb +6 -6
  118. data/lib/chef-dk/skeletons/code_generator/templates/default/build_cookbook/Berksfile.erb +0 -2
  119. data/lib/chef-dk/skeletons/code_generator/templates/default/build_cookbook/metadata.rb.erb +1 -0
  120. data/lib/chef-dk/skeletons/code_generator/templates/default/inspec_default_test.rb.erb +4 -4
  121. data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen.yml.erb +1 -1
  122. data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen_policyfile.yml.erb +1 -1
  123. data/lib/chef-dk/skeletons/code_generator/templates/default/metadata.rb.erb +4 -3
  124. data/lib/chef-dk/skeletons/code_generator/templates/default/recipe_spec.rb.erb +4 -2
  125. data/lib/chef-dk/ui.rb +0 -1
  126. data/lib/chef-dk/version.rb +1 -1
  127. data/lib/kitchen/provisioner/policyfile_zero.rb +7 -7
  128. data/omnibus_overrides.rb +3 -3
  129. data/spec/shared/a_file_generator.rb +3 -3
  130. data/spec/shared/custom_generator_cookbook.rb +6 -6
  131. data/spec/shared/fixture_cookbook_checksums.rb +2 -3
  132. data/spec/shared/setup_git_committer_config.rb +1 -1
  133. data/spec/shared/setup_git_cookbooks.rb +2 -2
  134. data/spec/spec_helper.rb +5 -5
  135. data/spec/test_helpers.rb +2 -2
  136. data/spec/unit/chef_runner_spec.rb +5 -7
  137. data/spec/unit/cli_spec.rb +36 -37
  138. data/spec/unit/command/base_spec.rb +4 -5
  139. data/spec/unit/command/clean_policy_cookbooks_spec.rb +8 -9
  140. data/spec/unit/command/clean_policy_revisions_spec.rb +8 -9
  141. data/spec/unit/command/delete_policy_group_spec.rb +11 -12
  142. data/spec/unit/command/delete_policy_spec.rb +11 -12
  143. data/spec/unit/command/diff_spec.rb +5 -6
  144. data/spec/unit/command/env_spec.rb +5 -5
  145. data/spec/unit/command/exec_spec.rb +18 -19
  146. data/spec/unit/command/export_spec.rb +5 -6
  147. data/spec/unit/command/generate_spec.rb +10 -10
  148. data/spec/unit/command/generator_commands/app_spec.rb +6 -6
  149. data/spec/unit/command/generator_commands/attribute_spec.rb +3 -4
  150. data/spec/unit/command/generator_commands/base_spec.rb +46 -46
  151. data/spec/unit/command/generator_commands/build_cookbook_spec.rb +50 -16
  152. data/spec/unit/command/generator_commands/chef_exts/generator_desc_resource_spec.rb +9 -9
  153. data/spec/unit/command/generator_commands/chef_exts/recipe_dsl_ext_spec.rb +16 -16
  154. data/spec/unit/command/generator_commands/cookbook_file_spec.rb +3 -4
  155. data/spec/unit/command/generator_commands/cookbook_spec.rb +23 -26
  156. data/spec/unit/command/generator_commands/generator_generator_spec.rb +4 -6
  157. data/spec/unit/command/generator_commands/lwrp_spec.rb +3 -4
  158. data/spec/unit/command/generator_commands/policyfile_spec.rb +3 -5
  159. data/spec/unit/command/generator_commands/recipe_spec.rb +4 -4
  160. data/spec/unit/command/generator_commands/repo_spec.rb +11 -11
  161. data/spec/unit/command/generator_commands/template_spec.rb +3 -4
  162. data/spec/unit/command/install_spec.rb +6 -6
  163. data/spec/unit/command/provision_spec.rb +27 -30
  164. data/spec/unit/command/push_archive_spec.rb +3 -3
  165. data/spec/unit/command/push_spec.rb +5 -6
  166. data/spec/unit/command/shell_init_spec.rb +17 -19
  167. data/spec/unit/command/show_policy_spec.rb +11 -12
  168. data/spec/unit/command/undelete_spec.rb +12 -14
  169. data/spec/unit/command/update_spec.rb +8 -8
  170. data/spec/unit/command/verify_spec.rb +10 -10
  171. data/spec/unit/commands_map_spec.rb +4 -4
  172. data/spec/unit/component_test_spec.rb +3 -3
  173. data/spec/unit/configurable_spec.rb +7 -7
  174. data/spec/unit/cookbook_metadata_spec.rb +5 -7
  175. data/spec/unit/cookbook_profiler/git_spec.rb +6 -7
  176. data/spec/unit/cookbook_profiler/identifiers_spec.rb +5 -7
  177. data/spec/unit/fixtures/command/cli_test_command.rb +2 -2
  178. data/spec/unit/fixtures/configurable/test_configurable.rb +1 -1
  179. data/spec/unit/fixtures/cookbooks_api/update_fixtures.rb +13 -16
  180. data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/berkshelf/verify_me +1 -1
  181. data/spec/unit/gemfile_util_spec.rb +4 -4
  182. data/spec/unit/generator_spec.rb +10 -10
  183. data/spec/unit/helpers_spec.rb +31 -31
  184. data/spec/unit/pager_spec.rb +5 -7
  185. data/spec/unit/policyfile/chef_repo_cookbook_source_spec.rb +11 -11
  186. data/spec/unit/policyfile/chef_server_cookbook_source_spec.rb +13 -13
  187. data/spec/unit/policyfile/community_cookbook_source_spec.rb +3 -4
  188. data/spec/unit/policyfile/comparison_base_spec.rb +3 -6
  189. data/spec/unit/policyfile/cookbook_location_specification_spec.rb +3 -3
  190. data/spec/unit/policyfile/cookbook_locks_spec.rb +7 -9
  191. data/spec/unit/policyfile/delivery_supermarket_source_spec.rb +16 -17
  192. data/spec/unit/policyfile/differ_spec.rb +4 -5
  193. data/spec/unit/policyfile/lister_spec.rb +31 -35
  194. data/spec/unit/policyfile/null_cookbook_source_spec.rb +2 -3
  195. data/spec/unit/policyfile/read_cookbook_for_compat_mode_upload_spec.rb +3 -3
  196. data/spec/unit/policyfile/reports/install_spec.rb +4 -5
  197. data/spec/unit/policyfile/reports/upload_spec.rb +4 -6
  198. data/spec/unit/policyfile/solution_dependencies_spec.rb +13 -13
  199. data/spec/unit/policyfile/source_uri_spec.rb +5 -5
  200. data/spec/unit/policyfile/storage_config_spec.rb +3 -7
  201. data/spec/unit/policyfile/undo_record_spec.rb +21 -23
  202. data/spec/unit/policyfile/undo_stack_spec.rb +5 -6
  203. data/spec/unit/policyfile/uploader_spec.rb +73 -75
  204. data/spec/unit/policyfile_demands_spec.rb +93 -99
  205. data/spec/unit/policyfile_evaluation_spec.rb +14 -14
  206. data/spec/unit/policyfile_lock_build_spec.rb +64 -65
  207. data/spec/unit/policyfile_lock_install_spec.rb +5 -6
  208. data/spec/unit/policyfile_lock_serialization_spec.rb +14 -15
  209. data/spec/unit/policyfile_lock_validation_spec.rb +17 -20
  210. data/spec/unit/policyfile_services/clean_policies_spec.rb +16 -16
  211. data/spec/unit/policyfile_services/clean_policy_cookbooks_spec.rb +26 -29
  212. data/spec/unit/policyfile_services/export_repo_spec.rb +3 -6
  213. data/spec/unit/policyfile_services/install_spec.rb +5 -7
  214. data/spec/unit/policyfile_services/push_archive_spec.rb +4 -8
  215. data/spec/unit/policyfile_services/push_spec.rb +3 -3
  216. data/spec/unit/policyfile_services/rm_policy_group_spec.rb +16 -20
  217. data/spec/unit/policyfile_services/rm_policy_spec.rb +14 -17
  218. data/spec/unit/policyfile_services/show_policy_spec.rb +78 -80
  219. data/spec/unit/policyfile_services/undelete_spec.rb +5 -7
  220. data/spec/unit/policyfile_services/update_attributes_spec.rb +34 -35
  221. data/spec/unit/service_exception_inspectors/base_spec.rb +2 -4
  222. data/spec/unit/service_exception_inspectors/http_spec.rb +9 -11
  223. data/spec/unit/shell_out_spec.rb +2 -2
  224. data/spec/unit/tasks/helpers_spec.rb +2 -2
  225. data/tasks/bin/bundle-platform +1 -1
  226. data/tasks/bundle_util.rb +1 -1
  227. data/tasks/dependencies.rb +21 -7
  228. data/tasks/gemfile_util.rb +1 -1
  229. data/tasks/helpers.rb +2 -2
  230. data/tasks/version.rb +26 -1
  231. data/version_policy.rb +6 -6
  232. metadata +3 -3
@@ -15,19 +15,19 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require 'spec_helper'
19
- require 'shared/custom_generator_cookbook'
20
- require 'chef-dk/command/generator_commands/app'
18
+ require "spec_helper"
19
+ require "shared/custom_generator_cookbook"
20
+ require "chef-dk/command/generator_commands/app"
21
21
 
22
22
  describe ChefDK::Command::GeneratorCommands::App do
23
23
 
24
- let(:argv) { %w[new_app] }
24
+ let(:argv) { %w{new_app} }
25
25
 
26
26
  let(:stdout_io) { StringIO.new }
27
27
  let(:stderr_io) { StringIO.new }
28
28
 
29
29
  let(:expected_cookbook_file_relpaths) do
30
- %w[
30
+ %w{
31
31
  .gitignore
32
32
  .kitchen.yml
33
33
  test
@@ -45,7 +45,7 @@ describe ChefDK::Command::GeneratorCommands::App do
45
45
  cookbooks/new_app/spec/unit
46
46
  cookbooks/new_app/spec/unit/recipes
47
47
  cookbooks/new_app/spec/unit/recipes/default_spec.rb
48
- ]
48
+ }
49
49
  end
50
50
 
51
51
  let(:expected_cookbook_files) do
@@ -15,9 +15,9 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require 'spec_helper'
19
- require 'shared/a_file_generator'
20
- require 'chef-dk/command/generator_commands/attribute'
18
+ require "spec_helper"
19
+ require "shared/a_file_generator"
20
+ require "chef-dk/command/generator_commands/attribute"
21
21
 
22
22
  describe ChefDK::Command::GeneratorCommands::Attribute do
23
23
 
@@ -29,4 +29,3 @@ describe ChefDK::Command::GeneratorCommands::Attribute do
29
29
 
30
30
  end
31
31
  end
32
-
@@ -15,12 +15,12 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require 'pry'
19
- require 'spec_helper'
20
- require 'chef-dk/command/generator_commands/base'
18
+ require "pry"
19
+ require "spec_helper"
20
+ require "chef-dk/command/generator_commands/base"
21
21
 
22
22
  describe ChefDK::Command::GeneratorCommands::Base do
23
- describe 'parsing Chef configuration' do
23
+ describe "parsing Chef configuration" do
24
24
  let(:cli_args) do
25
25
  [
26
26
  "-C", "Business Man",
@@ -33,7 +33,7 @@ describe ChefDK::Command::GeneratorCommands::Base do
33
33
  Chef::Config.reset
34
34
  end
35
35
 
36
- context 'when generator configuration is defined' do
36
+ context "when generator configuration is defined" do
37
37
  before do
38
38
  Chef::Config.reset
39
39
  Chef::Config.chefdk.generator.copyright_holder = "This Guy"
@@ -41,17 +41,17 @@ describe ChefDK::Command::GeneratorCommands::Base do
41
41
  Chef::Config.chefdk.generator.license = "Two Thumbs License"
42
42
  end
43
43
 
44
- it 'uses the defined values' do
44
+ it "uses the defined values" do
45
45
  cmd = ChefDK::Command::GeneratorCommands::Base.new([])
46
46
  cmd.parse_options
47
47
  cmd.setup_context
48
48
  cfg = cmd.config
49
- expect(cfg[:copyright_holder]).to eq('This Guy')
50
- expect(cfg[:email]).to eq('this.guy@twothumbs.net')
51
- expect(cfg[:license]).to eq('Two Thumbs License')
49
+ expect(cfg[:copyright_holder]).to eq("This Guy")
50
+ expect(cfg[:email]).to eq("this.guy@twothumbs.net")
51
+ expect(cfg[:license]).to eq("Two Thumbs License")
52
52
  end
53
53
 
54
- context 'when cli overrides are provided' do
54
+ context "when cli overrides are provided" do
55
55
  before do
56
56
  Chef::Config.reset
57
57
  Chef::Config.chefdk.generator.copyright_holder = "This Guy"
@@ -59,18 +59,18 @@ describe ChefDK::Command::GeneratorCommands::Base do
59
59
  Chef::Config.chefdk.generator.license = "Two Thumbs License"
60
60
  end
61
61
 
62
- it 'uses the cli args' do
62
+ it "uses the cli args" do
63
63
  cmd = ChefDK::Command::GeneratorCommands::Base.new(cli_args)
64
64
  cmd.parse_options(cli_args)
65
65
  cmd.setup_context
66
66
  cfg = cmd.config
67
- expect(cfg[:copyright_holder]).to eq('Business Man')
68
- expect(cfg[:email]).to eq('business.man@corporation.com')
69
- expect(cfg[:license]).to eq('Serious Business')
67
+ expect(cfg[:copyright_holder]).to eq("Business Man")
68
+ expect(cfg[:email]).to eq("business.man@corporation.com")
69
+ expect(cfg[:license]).to eq("Serious Business")
70
70
  end
71
71
  end
72
72
 
73
- context 'when knife configuration is also defined' do
73
+ context "when knife configuration is also defined" do
74
74
 
75
75
  before do
76
76
  Chef::Config.reset
@@ -82,19 +82,19 @@ describe ChefDK::Command::GeneratorCommands::Base do
82
82
  Chef::Config.knife.cookbook_license = "GPLv9000"
83
83
  end
84
84
 
85
- it 'uses the generator configuration' do
85
+ it "uses the generator configuration" do
86
86
  cmd = ChefDK::Command::GeneratorCommands::Base.new([])
87
87
  cmd.parse_options
88
88
  cmd.setup_context
89
89
  cfg = cmd.config
90
- expect(cfg[:copyright_holder]).to eq('This Guy')
91
- expect(cfg[:email]).to eq('this.guy@twothumbs.net')
92
- expect(cfg[:license]).to eq('Two Thumbs License')
90
+ expect(cfg[:copyright_holder]).to eq("This Guy")
91
+ expect(cfg[:email]).to eq("this.guy@twothumbs.net")
92
+ expect(cfg[:license]).to eq("Two Thumbs License")
93
93
  end
94
94
  end
95
95
  end
96
96
 
97
- context 'when knife configuration is defined' do
97
+ context "when knife configuration is defined" do
98
98
  before do
99
99
  Chef::Config.reset
100
100
  Chef::Config.knife.cookbook_copyright = "Knife User"
@@ -102,17 +102,17 @@ describe ChefDK::Command::GeneratorCommands::Base do
102
102
  Chef::Config.knife.cookbook_license = "GPLv9000"
103
103
  end
104
104
 
105
- it 'uses the defined values' do
105
+ it "uses the defined values" do
106
106
  cmd = ChefDK::Command::GeneratorCommands::Base.new([])
107
107
  cmd.parse_options
108
108
  cmd.setup_context
109
109
  cfg = cmd.config
110
- expect(cfg[:copyright_holder]).to eq('Knife User')
111
- expect(cfg[:email]).to eq('knife.user@example.com')
112
- expect(cfg[:license]).to eq('GPLv9000')
110
+ expect(cfg[:copyright_holder]).to eq("Knife User")
111
+ expect(cfg[:email]).to eq("knife.user@example.com")
112
+ expect(cfg[:license]).to eq("GPLv9000")
113
113
  end
114
114
 
115
- context 'when cli overrides are provided' do
115
+ context "when cli overrides are provided" do
116
116
 
117
117
  before do
118
118
  Chef::Config.reset
@@ -121,14 +121,14 @@ describe ChefDK::Command::GeneratorCommands::Base do
121
121
  Chef::Config.knife.cookbook_license = "GPLv9000"
122
122
  end
123
123
 
124
- it 'uses the cli args' do
124
+ it "uses the cli args" do
125
125
  cmd = ChefDK::Command::GeneratorCommands::Base.new(cli_args)
126
126
  cmd.parse_options(cli_args)
127
127
  cmd.setup_context
128
128
  cfg = cmd.config
129
- expect(cfg[:copyright_holder]).to eq('Business Man')
130
- expect(cfg[:email]).to eq('business.man@corporation.com')
131
- expect(cfg[:license]).to eq('Serious Business')
129
+ expect(cfg[:copyright_holder]).to eq("Business Man")
130
+ expect(cfg[:email]).to eq("business.man@corporation.com")
131
+ expect(cfg[:license]).to eq("Serious Business")
132
132
  end
133
133
  end
134
134
  end
@@ -136,44 +136,44 @@ describe ChefDK::Command::GeneratorCommands::Base do
136
136
 
137
137
  describe '#have_git?' do
138
138
  let(:cmd) { described_class.new([]) }
139
- let(:path) { 'bin_path' }
139
+ let(:path) { "bin_path" }
140
140
 
141
141
  before do
142
142
  allow(File).to receive(:exist?)
143
- allow(ENV).to receive(:[]).with('PATH').and_return(path)
144
- allow(ENV).to receive(:[]).with('PATHEXT').and_return(nil)
145
- allow(RbConfig::CONFIG).to receive(:[]).with('EXEEXT').and_return('')
143
+ allow(ENV).to receive(:[]).with("PATH").and_return(path)
144
+ allow(ENV).to receive(:[]).with("PATHEXT").and_return(nil)
145
+ allow(RbConfig::CONFIG).to receive(:[]).with("EXEEXT").and_return("")
146
146
  end
147
147
 
148
- describe 'when git executable exists' do
149
- it 'returns true' do
148
+ describe "when git executable exists" do
149
+ it "returns true" do
150
150
  allow(File).to receive(:exist?).and_return(true)
151
151
  expect(cmd.have_git?).to eq(true)
152
152
  end
153
153
  end
154
154
 
155
- describe 'when git executable does not exist' do
156
- it 'returns false' do
155
+ describe "when git executable does not exist" do
156
+ it "returns false" do
157
157
  allow(File).to receive(:exist?).and_return(false)
158
158
  expect(cmd.have_git?).to eq(false)
159
159
  end
160
160
  end
161
161
 
162
- it 'checks PATH for git executable' do
163
- expect(File).to receive(:exist?).with(File.join(path, 'git'))
162
+ it "checks PATH for git executable" do
163
+ expect(File).to receive(:exist?).with(File.join(path, "git"))
164
164
  cmd.have_git?
165
165
  end
166
166
 
167
- describe 'when on Windows' do
167
+ describe "when on Windows" do
168
168
  before do
169
- allow(ENV).to receive(:[]).with('PATHEXT').and_return('.com;.exe;.bat')
170
- allow(RbConfig::CONFIG).to receive(:[]).with('EXEEXT').and_return('.exe')
169
+ allow(ENV).to receive(:[]).with("PATHEXT").and_return(".com;.exe;.bat")
170
+ allow(RbConfig::CONFIG).to receive(:[]).with("EXEEXT").and_return(".exe")
171
171
  end
172
172
 
173
- it 'checks PATH for git executable with an extension found in PATHEXT' do
174
- expect(File).to receive(:exist?).with(File.join(path, 'git.com'))
175
- expect(File).to receive(:exist?).with(File.join(path, 'git.exe'))
176
- expect(File).to receive(:exist?).with(File.join(path, 'git.bat'))
173
+ it "checks PATH for git executable with an extension found in PATHEXT" do
174
+ expect(File).to receive(:exist?).with(File.join(path, "git.com"))
175
+ expect(File).to receive(:exist?).with(File.join(path, "git.exe"))
176
+ expect(File).to receive(:exist?).with(File.join(path, "git.bat"))
177
177
  cmd.have_git?
178
178
  end
179
179
  end
@@ -15,23 +15,23 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require 'spec_helper'
19
- require 'shared/custom_generator_cookbook'
20
- require 'shared/setup_git_committer_config'
21
- require 'chef-dk/command/generator_commands/build_cookbook'
22
- require 'mixlib/shellout'
18
+ require "spec_helper"
19
+ require "shared/custom_generator_cookbook"
20
+ require "shared/setup_git_committer_config"
21
+ require "chef-dk/command/generator_commands/build_cookbook"
22
+ require "mixlib/shellout"
23
23
 
24
24
  describe ChefDK::Command::GeneratorCommands::BuildCookbook do
25
25
 
26
26
  include_context("setup_git_committer_config")
27
27
 
28
- let(:argv) { %w[delivery_project] }
28
+ let(:argv) { %w{delivery_project} }
29
29
 
30
30
  let(:stdout_io) { StringIO.new }
31
31
  let(:stderr_io) { StringIO.new }
32
32
 
33
33
  let(:expected_cookbook_file_relpaths) do
34
- %w[
34
+ %w{
35
35
  .kitchen.yml
36
36
  data_bags
37
37
  data_bags/keys
@@ -62,7 +62,7 @@ describe ChefDK::Command::GeneratorCommands::BuildCookbook do
62
62
  recipes/unit.rb
63
63
  secrets
64
64
  secrets/fakey-mcfakerton
65
- ]
65
+ }
66
66
  end
67
67
 
68
68
  let(:expected_cookbook_files) do
@@ -85,7 +85,7 @@ describe ChefDK::Command::GeneratorCommands::BuildCookbook do
85
85
 
86
86
  it "configures the chef runner" do
87
87
  expect(cookbook_generator.chef_runner).to be_a(ChefDK::ChefRunner)
88
- expect(cookbook_generator.chef_runner.cookbook_path).to eq(File.expand_path('lib/chef-dk/skeletons', project_root))
88
+ expect(cookbook_generator.chef_runner.cookbook_path).to eq(File.expand_path("lib/chef-dk/skeletons", project_root))
89
89
  end
90
90
 
91
91
  context "when given invalid/incomplete arguments" do
@@ -94,7 +94,6 @@ describe ChefDK::Command::GeneratorCommands::BuildCookbook do
94
94
  "Usage: chef generate build-cookbook NAME [options]\n"
95
95
  end
96
96
 
97
-
98
97
  def with_argv(argv)
99
98
  generator = described_class.new(argv)
100
99
  allow(generator).to receive(:stdout).and_return(stdout_io)
@@ -111,7 +110,7 @@ describe ChefDK::Command::GeneratorCommands::BuildCookbook do
111
110
 
112
111
  context "when given the name of the delivery project" do
113
112
 
114
- let(:argv) { %w[delivery_project] }
113
+ let(:argv) { %w{delivery_project} }
115
114
 
116
115
  let(:project_dir) { File.join(tempdir, "delivery_project") }
117
116
 
@@ -199,6 +198,7 @@ maintainer 'The Authors'
199
198
  maintainer_email 'you@example.com'
200
199
  license 'all_rights'
201
200
  version '0.1.0'
201
+ chef_version '>= 12.1' if respond_to?(:chef_version)
202
202
 
203
203
  depends 'delivery-truck'
204
204
  METADATA
@@ -216,7 +216,7 @@ METADATA
216
216
  end
217
217
 
218
218
  it "generates phase recipes which include the corresponding delivery truck recipe" do
219
- %w[
219
+ %w{
220
220
  deploy.rb
221
221
  functional.rb
222
222
  lint.rb
@@ -227,10 +227,10 @@ METADATA
227
227
  smoke.rb
228
228
  syntax.rb
229
229
  unit.rb
230
- ].each do |phase_recipe|
230
+ }.each do |phase_recipe|
231
231
  recipe_file = File.join(tempdir, "delivery_project", ".delivery", "build_cookbook", "recipes", phase_recipe)
232
232
  phase = File.basename(phase_recipe, ".rb")
233
- expected_content = %Q[include_recipe 'delivery-truck::#{phase}']
233
+ expected_content = %Q{include_recipe 'delivery-truck::#{phase}'}
234
234
  expect(IO.read(recipe_file)).to include(expected_content)
235
235
  end
236
236
  end
@@ -273,7 +273,7 @@ METADATA
273
273
  end
274
274
 
275
275
  it "generates phase recipes that are empty" do
276
- %w[
276
+ %w{
277
277
  deploy.rb
278
278
  functional.rb
279
279
  lint.rb
@@ -284,7 +284,7 @@ METADATA
284
284
  smoke.rb
285
285
  syntax.rb
286
286
  unit.rb
287
- ].each do |phase_recipe|
287
+ }.each do |phase_recipe|
288
288
  recipe_file = File.join(tempdir, "delivery_project", ".delivery", "build_cookbook", "recipes", phase_recipe)
289
289
  expect(IO.read(recipe_file)).to_not include("include_recipe")
290
290
  end
@@ -323,6 +323,40 @@ METADATA
323
323
  end
324
324
 
325
325
  end
326
+
327
+ context "when the delivery project has already a config.json and project.toml" do
328
+
329
+ let(:dot_delivery) { File.join(project_dir, ".delivery") }
330
+ let(:config_json) { File.join(dot_delivery, "config.json") }
331
+ let(:project_toml) { File.join(dot_delivery, "project.toml") }
332
+
333
+ def git!(cmd)
334
+ Mixlib::ShellOut.new("git #{cmd}", cwd: project_dir).tap do |c|
335
+ c.run_command
336
+ c.error!
337
+ end
338
+ end
339
+
340
+ before do
341
+ FileUtils.mkdir_p(dot_delivery)
342
+ FileUtils.touch(config_json)
343
+ FileUtils.touch(project_toml)
344
+
345
+ git!("init .")
346
+ git!("add .")
347
+ git!("commit -m \"initial commit\"")
348
+
349
+ Dir.chdir(tempdir) do
350
+ allow(cookbook_generator.chef_runner).to receive(:stdout).and_return(stdout_io)
351
+ expect(cookbook_generator.run).to eq(0)
352
+ end
353
+ end
354
+
355
+ it "does not overwrite the delivery config" do
356
+ expect(git!("log").stdout).to_not include("Add generated delivery configuration")
357
+ end
358
+
359
+ end
326
360
  end
327
361
 
328
362
  context "when given a path including the .delivery directory" do
@@ -15,18 +15,18 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require 'spec_helper'
19
- require 'stringio'
18
+ require "spec_helper"
19
+ require "stringio"
20
20
 
21
- require 'chef/run_context'
22
- require 'chef/cookbook/cookbook_collection'
23
- require 'chef/node'
24
- require 'chef/event_dispatch/dispatcher'
25
- require 'chef/formatters/base'
21
+ require "chef/run_context"
22
+ require "chef/cookbook/cookbook_collection"
23
+ require "chef/node"
24
+ require "chef/event_dispatch/dispatcher"
25
+ require "chef/formatters/base"
26
26
 
27
- require 'ohai/system'
27
+ require "ohai/system"
28
28
 
29
- require 'chef-dk/command/generator_commands/chef_exts/generator_desc_resource'
29
+ require "chef-dk/command/generator_commands/chef_exts/generator_desc_resource"
30
30
 
31
31
  describe ChefDK::ChefResource::GeneratorDesc do
32
32
 
@@ -15,24 +15,24 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- require 'spec_helper'
19
- require 'stringio'
18
+ require "spec_helper"
19
+ require "stringio"
20
20
 
21
- require 'chef/config'
22
- require 'chef/recipe'
23
- require 'chef/run_context'
24
- require 'chef/event_dispatch/dispatcher'
25
- require 'chef/policy_builder'
26
- require 'chef/formatters/doc'
27
- require 'chef/cookbook/file_vendor'
28
- require 'chef/cookbook/file_system_file_vendor'
29
- require 'chef/cookbook/cookbook_collection'
30
- require 'chef/cookbook_loader'
21
+ require "chef/config"
22
+ require "chef/recipe"
23
+ require "chef/run_context"
24
+ require "chef/event_dispatch/dispatcher"
25
+ require "chef/policy_builder"
26
+ require "chef/formatters/doc"
27
+ require "chef/cookbook/file_vendor"
28
+ require "chef/cookbook/file_system_file_vendor"
29
+ require "chef/cookbook/cookbook_collection"
30
+ require "chef/cookbook_loader"
31
31
 
32
- require 'ohai/system'
32
+ require "ohai/system"
33
33
 
34
- require 'chef-dk/command/generator_commands/chef_exts/recipe_dsl_ext'
35
- require 'chef-dk/command/generator_commands/chef_exts/quieter_doc_formatter'
34
+ require "chef-dk/command/generator_commands/chef_exts/recipe_dsl_ext"
35
+ require "chef-dk/command/generator_commands/chef_exts/quieter_doc_formatter"
36
36
 
37
37
  describe ChefDK::RecipeDSLExt do
38
38
 
@@ -56,7 +56,7 @@ describe ChefDK::RecipeDSLExt do
56
56
 
57
57
  let(:ohai) do
58
58
  Ohai::System.new.tap do |o|
59
- o.all_plugins(["platform", "platform_version"])
59
+ o.all_plugins(%w{platform platform_version})
60
60
  end
61
61
  end
62
62