chef-dk 3.13.1 → 4.0.60

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 (373) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +33 -25
  3. data/Gemfile.lock +317 -293
  4. data/LICENSE +0 -0
  5. data/Rakefile +0 -0
  6. data/bin/chef +1 -1
  7. data/chef-dk.gemspec +3 -3
  8. data/lib/chef-dk.rb +0 -0
  9. data/lib/chef-dk/authenticated_http.rb +0 -0
  10. data/lib/chef-dk/builtin_commands.rb +1 -3
  11. data/lib/chef-dk/chef_runner.rb +0 -0
  12. data/lib/chef-dk/chef_server_api_multi.rb +0 -0
  13. data/lib/chef-dk/cli.rb +2 -3
  14. data/lib/chef-dk/command/base.rb +9 -1
  15. data/lib/chef-dk/command/clean_policy_cookbooks.rb +2 -3
  16. data/lib/chef-dk/command/clean_policy_revisions.rb +3 -4
  17. data/lib/chef-dk/command/delete_policy.rb +1 -1
  18. data/lib/chef-dk/command/delete_policy_group.rb +1 -2
  19. data/lib/chef-dk/command/describe_cookbook.rb +5 -4
  20. data/lib/chef-dk/command/diff.rb +7 -9
  21. data/lib/chef-dk/command/env.rb +0 -0
  22. data/lib/chef-dk/command/exec.rb +0 -0
  23. data/lib/chef-dk/command/export.rb +0 -1
  24. data/lib/chef-dk/command/gem.rb +0 -0
  25. data/lib/chef-dk/command/generate.rb +1 -6
  26. data/lib/chef-dk/command/generator_commands.rb +0 -0
  27. data/lib/chef-dk/command/generator_commands/attribute.rb +0 -0
  28. data/lib/chef-dk/command/generator_commands/base.rb +0 -0
  29. data/lib/chef-dk/command/generator_commands/build_cookbook.rb +7 -7
  30. data/lib/chef-dk/command/generator_commands/chef_exts/generator_desc_resource.rb +4 -49
  31. data/lib/chef-dk/command/generator_commands/chef_exts/quieter_doc_formatter.rb +0 -0
  32. data/lib/chef-dk/command/generator_commands/chef_exts/recipe_dsl_ext.rb +0 -0
  33. data/lib/chef-dk/command/generator_commands/cookbook.rb +22 -23
  34. data/lib/chef-dk/command/generator_commands/cookbook_code_file.rb +0 -0
  35. data/lib/chef-dk/command/generator_commands/cookbook_file.rb +0 -0
  36. data/lib/chef-dk/command/generator_commands/generator_generator.rb +0 -0
  37. data/lib/chef-dk/command/generator_commands/helpers.rb +0 -0
  38. data/lib/chef-dk/command/generator_commands/policyfile.rb +0 -0
  39. data/lib/chef-dk/command/generator_commands/recipe.rb +0 -0
  40. data/lib/chef-dk/command/generator_commands/repo.rb +25 -9
  41. data/lib/chef-dk/command/generator_commands/resource.rb +0 -0
  42. data/lib/chef-dk/command/generator_commands/template.rb +0 -0
  43. data/lib/chef-dk/command/install.rb +1 -2
  44. data/lib/chef-dk/command/provision.rb +2 -404
  45. data/lib/chef-dk/command/push.rb +1 -2
  46. data/lib/chef-dk/command/push_archive.rb +2 -2
  47. data/lib/chef-dk/command/shell_init.rb +9 -5
  48. data/lib/chef-dk/command/show_policy.rb +0 -1
  49. data/lib/chef-dk/command/undelete.rb +0 -1
  50. data/lib/chef-dk/command/update.rb +0 -1
  51. data/lib/chef-dk/command/verify.rb +13 -110
  52. data/lib/chef-dk/commands_map.rb +0 -0
  53. data/lib/chef-dk/completions/bash.sh.erb +0 -0
  54. data/lib/chef-dk/completions/chef.fish.erb +0 -0
  55. data/lib/chef-dk/completions/zsh.zsh.erb +0 -0
  56. data/lib/chef-dk/component_test.rb +4 -2
  57. data/lib/chef-dk/configurable.rb +0 -1
  58. data/lib/chef-dk/cookbook_metadata.rb +0 -0
  59. data/lib/chef-dk/cookbook_omnifetch.rb +0 -0
  60. data/lib/chef-dk/cookbook_profiler/git.rb +0 -0
  61. data/lib/chef-dk/cookbook_profiler/identifiers.rb +0 -0
  62. data/lib/chef-dk/cookbook_profiler/null_scm.rb +0 -0
  63. data/lib/chef-dk/exceptions.rb +1 -1
  64. data/lib/chef-dk/generator.rb +1 -1
  65. data/lib/chef-dk/helpers.rb +1 -2
  66. data/lib/chef-dk/pager.rb +0 -0
  67. data/lib/chef-dk/policyfile/artifactory_cookbook_source.rb +0 -0
  68. data/lib/chef-dk/policyfile/attribute_merge_checker.rb +0 -0
  69. data/lib/chef-dk/policyfile/chef_repo_cookbook_source.rb +0 -0
  70. data/lib/chef-dk/policyfile/chef_server_cookbook_source.rb +0 -0
  71. data/lib/chef-dk/policyfile/chef_server_lock_fetcher.rb +2 -2
  72. data/lib/chef-dk/policyfile/community_cookbook_source.rb +0 -0
  73. data/lib/chef-dk/policyfile/comparison_base.rb +0 -0
  74. data/lib/chef-dk/policyfile/cookbook_location_specification.rb +0 -0
  75. data/lib/chef-dk/policyfile/cookbook_locks.rb +1 -1
  76. data/lib/chef-dk/policyfile/cookbook_sources.rb +0 -0
  77. data/lib/chef-dk/policyfile/delivery_supermarket_source.rb +0 -0
  78. data/lib/chef-dk/policyfile/differ.rb +0 -0
  79. data/lib/chef-dk/policyfile/dsl.rb +1 -1
  80. data/lib/chef-dk/policyfile/git_lock_fetcher.rb +0 -0
  81. data/lib/chef-dk/policyfile/included_policies_cookbook_source.rb +0 -0
  82. data/lib/chef-dk/policyfile/lister.rb +0 -0
  83. data/lib/chef-dk/policyfile/local_lock_fetcher.rb +0 -0
  84. data/lib/chef-dk/policyfile/lock_applier.rb +0 -0
  85. data/lib/chef-dk/policyfile/lock_fetcher_mixin.rb +0 -0
  86. data/lib/chef-dk/policyfile/null_cookbook_source.rb +0 -0
  87. data/lib/chef-dk/policyfile/policyfile_location_specification.rb +0 -0
  88. data/lib/chef-dk/policyfile/read_cookbook_for_compat_mode_upload.rb +0 -0
  89. data/lib/chef-dk/policyfile/remote_lock_fetcher.rb +0 -0
  90. data/lib/chef-dk/policyfile/reports/install.rb +0 -0
  91. data/lib/chef-dk/policyfile/reports/table_printer.rb +0 -0
  92. data/lib/chef-dk/policyfile/reports/upload.rb +0 -0
  93. data/lib/chef-dk/policyfile/solution_dependencies.rb +1 -1
  94. data/lib/chef-dk/policyfile/source_uri.rb +0 -0
  95. data/lib/chef-dk/policyfile/storage_config.rb +0 -0
  96. data/lib/chef-dk/policyfile/undo_record.rb +0 -0
  97. data/lib/chef-dk/policyfile/undo_stack.rb +0 -0
  98. data/lib/chef-dk/policyfile/uploader.rb +0 -0
  99. data/lib/chef-dk/policyfile_compiler.rb +2 -4
  100. data/lib/chef-dk/policyfile_lock.rb +1 -3
  101. data/lib/chef-dk/policyfile_services/clean_policies.rb +0 -0
  102. data/lib/chef-dk/policyfile_services/clean_policy_cookbooks.rb +0 -0
  103. data/lib/chef-dk/policyfile_services/export_repo.rb +6 -6
  104. data/lib/chef-dk/policyfile_services/install.rb +0 -0
  105. data/lib/chef-dk/policyfile_services/push.rb +0 -0
  106. data/lib/chef-dk/policyfile_services/push_archive.rb +2 -2
  107. data/lib/chef-dk/policyfile_services/rm_policy.rb +0 -0
  108. data/lib/chef-dk/policyfile_services/rm_policy_group.rb +0 -0
  109. data/lib/chef-dk/policyfile_services/show_policy.rb +0 -0
  110. data/lib/chef-dk/policyfile_services/undelete.rb +0 -0
  111. data/lib/chef-dk/policyfile_services/update_attributes.rb +0 -0
  112. data/lib/chef-dk/service_exception_inspectors.rb +0 -0
  113. data/lib/chef-dk/service_exception_inspectors/base.rb +0 -0
  114. data/lib/chef-dk/service_exception_inspectors/http.rb +0 -0
  115. data/lib/chef-dk/service_exceptions.rb +0 -0
  116. data/lib/chef-dk/shell_out.rb +0 -0
  117. data/lib/chef-dk/skeletons/code_generator/files/default/Berksfile +0 -0
  118. data/lib/chef-dk/skeletons/code_generator/files/default/build_cookbook/README.md +0 -0
  119. data/lib/chef-dk/skeletons/code_generator/files/default/build_cookbook/kitchen.yml +1 -1
  120. data/lib/chef-dk/skeletons/code_generator/files/default/build_cookbook/test-fixture-recipe.rb +0 -0
  121. data/lib/chef-dk/skeletons/code_generator/files/default/chefignore +0 -0
  122. data/lib/chef-dk/skeletons/code_generator/files/default/cookbook_readmes/README-policy.md +0 -0
  123. data/lib/chef-dk/skeletons/code_generator/files/default/cookbook_readmes/README.md +0 -0
  124. data/lib/chef-dk/skeletons/code_generator/files/default/delivery-config.json +0 -0
  125. data/lib/chef-dk/skeletons/code_generator/files/default/delivery-project.toml +0 -0
  126. data/lib/chef-dk/skeletons/code_generator/files/default/gitignore +0 -0
  127. data/lib/chef-dk/skeletons/code_generator/files/default/repo/README.md +0 -0
  128. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/README.md +0 -0
  129. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/attributes/default.rb +0 -0
  130. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/metadata.rb +0 -0
  131. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb +0 -0
  132. data/lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/README.md +0 -0
  133. data/lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/example/example_item.json +0 -0
  134. data/lib/chef-dk/skeletons/code_generator/files/default/repo/dot-chef-repo.txt +0 -0
  135. data/lib/chef-dk/skeletons/code_generator/files/default/repo/environments/README.md +0 -0
  136. data/lib/chef-dk/skeletons/code_generator/files/default/repo/environments/example.json +0 -0
  137. data/lib/chef-dk/skeletons/code_generator/files/default/repo/policyfiles/README.md +0 -0
  138. data/lib/chef-dk/skeletons/code_generator/files/default/repo/roles/README.md +0 -0
  139. data/lib/chef-dk/skeletons/code_generator/files/default/repo/roles/example.json +0 -0
  140. data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper.rb +0 -0
  141. data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper_policyfile.rb +0 -0
  142. data/lib/chef-dk/skeletons/code_generator/metadata.rb +0 -0
  143. data/lib/chef-dk/skeletons/code_generator/recipes/attribute.rb +0 -0
  144. data/lib/chef-dk/skeletons/code_generator/recipes/build_cookbook.rb +20 -20
  145. data/lib/chef-dk/skeletons/code_generator/recipes/cookbook.rb +24 -16
  146. data/lib/chef-dk/skeletons/code_generator/recipes/cookbook_file.rb +0 -0
  147. data/lib/chef-dk/skeletons/code_generator/recipes/helpers.rb +0 -0
  148. data/lib/chef-dk/skeletons/code_generator/recipes/policyfile.rb +0 -0
  149. data/lib/chef-dk/skeletons/code_generator/recipes/recipe.rb +0 -0
  150. data/lib/chef-dk/skeletons/code_generator/recipes/repo.rb +7 -3
  151. data/lib/chef-dk/skeletons/code_generator/recipes/resource.rb +0 -0
  152. data/lib/chef-dk/skeletons/code_generator/recipes/template.rb +0 -0
  153. data/lib/chef-dk/skeletons/code_generator/templates/default/CHANGELOG.md.erb +0 -0
  154. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.all_rights.erb +0 -0
  155. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.apachev2.erb +0 -0
  156. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.gplv2.erb +0 -0
  157. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.gplv3.erb +0 -0
  158. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.mit.erb +0 -0
  159. data/lib/chef-dk/skeletons/code_generator/templates/default/Policyfile.rb.erb +0 -0
  160. data/lib/chef-dk/skeletons/code_generator/templates/default/README.md.erb +0 -0
  161. data/lib/chef-dk/skeletons/code_generator/templates/default/attribute.rb.erb +0 -0
  162. data/lib/chef-dk/skeletons/code_generator/templates/default/build_cookbook/Berksfile.erb +1 -1
  163. data/lib/chef-dk/skeletons/code_generator/templates/default/build_cookbook/metadata.rb.erb +1 -1
  164. data/lib/chef-dk/skeletons/code_generator/templates/default/build_cookbook/recipe.rb.erb +0 -0
  165. data/lib/chef-dk/skeletons/code_generator/templates/default/cookbook_file.erb +0 -0
  166. data/lib/chef-dk/skeletons/code_generator/templates/default/helpers.rb.erb +0 -0
  167. data/lib/chef-dk/skeletons/code_generator/templates/default/inspec_default_test.rb.erb +0 -0
  168. data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen.yml.erb +1 -1
  169. data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen_dokken.yml.erb +0 -0
  170. data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen_policyfile.yml.erb +1 -1
  171. data/lib/chef-dk/skeletons/code_generator/templates/default/metadata.rb.erb +1 -1
  172. data/lib/chef-dk/skeletons/code_generator/templates/default/recipe.rb.erb +0 -0
  173. data/lib/chef-dk/skeletons/code_generator/templates/default/recipe_spec.rb.erb +0 -0
  174. data/lib/chef-dk/skeletons/code_generator/templates/default/repo/gitignore.erb +0 -0
  175. data/lib/chef-dk/skeletons/code_generator/templates/default/resource.rb.erb +0 -0
  176. data/lib/chef-dk/skeletons/code_generator/templates/default/template.erb +0 -0
  177. data/lib/chef-dk/ui.rb +0 -0
  178. data/lib/chef-dk/version.rb +1 -1
  179. data/lib/kitchen/provisioner/policyfile_zero.rb +0 -0
  180. data/spec/shared/a_file_generator.rb +0 -0
  181. data/spec/shared/a_generated_file.rb +0 -0
  182. data/spec/shared/command_with_ui_object.rb +0 -0
  183. data/spec/shared/custom_generator_cookbook.rb +0 -0
  184. data/spec/shared/fixture_cookbook_checksums.rb +1 -1
  185. data/spec/shared/setup_git_committer_config.rb +0 -0
  186. data/spec/shared/setup_git_cookbooks.rb +0 -0
  187. data/spec/spec_helper.rb +0 -4
  188. data/spec/test_helpers.rb +0 -0
  189. data/spec/unit/chef_runner_spec.rb +0 -0
  190. data/spec/unit/chef_server_api_multi_spec.rb +0 -0
  191. data/spec/unit/cli_spec.rb +0 -0
  192. data/spec/unit/command/base_spec.rb +24 -1
  193. data/spec/unit/command/clean_policy_cookbooks_spec.rb +0 -0
  194. data/spec/unit/command/clean_policy_revisions_spec.rb +0 -0
  195. data/spec/unit/command/delete_policy_group_spec.rb +0 -0
  196. data/spec/unit/command/delete_policy_spec.rb +0 -0
  197. data/spec/unit/command/diff_spec.rb +0 -0
  198. data/spec/unit/command/env_spec.rb +1 -1
  199. data/spec/unit/command/exec_spec.rb +1 -1
  200. data/spec/unit/command/export_spec.rb +0 -0
  201. data/spec/unit/command/generate_spec.rb +0 -0
  202. data/spec/unit/command/generator_commands/attribute_spec.rb +0 -0
  203. data/spec/unit/command/generator_commands/base_spec.rb +0 -0
  204. data/spec/unit/command/generator_commands/build_cookbook_spec.rb +15 -15
  205. data/spec/unit/command/generator_commands/chef_exts/generator_desc_resource_spec.rb +6 -26
  206. data/spec/unit/command/generator_commands/chef_exts/recipe_dsl_ext_spec.rb +0 -0
  207. data/spec/unit/command/generator_commands/cookbook_file_spec.rb +0 -0
  208. data/spec/unit/command/generator_commands/cookbook_spec.rb +200 -203
  209. data/spec/unit/command/generator_commands/generator_generator_spec.rb +7 -7
  210. data/spec/unit/command/generator_commands/helpers_spec.rb +0 -0
  211. data/spec/unit/command/generator_commands/policyfile_spec.rb +0 -0
  212. data/spec/unit/command/generator_commands/recipe_spec.rb +1 -2
  213. data/spec/unit/command/generator_commands/repo_spec.rb +8 -8
  214. data/spec/unit/command/generator_commands/resource_spec.rb +0 -0
  215. data/spec/unit/command/generator_commands/template_spec.rb +0 -0
  216. data/spec/unit/command/install_spec.rb +0 -0
  217. data/spec/unit/command/push_archive_spec.rb +0 -0
  218. data/spec/unit/command/push_spec.rb +0 -0
  219. data/spec/unit/command/shell_init_spec.rb +0 -0
  220. data/spec/unit/command/show_policy_spec.rb +0 -0
  221. data/spec/unit/command/undelete_spec.rb +0 -0
  222. data/spec/unit/command/update_spec.rb +0 -0
  223. data/spec/unit/command/verify_spec.rb +2 -3
  224. data/spec/unit/commands_map_spec.rb +0 -0
  225. data/spec/unit/component_test_spec.rb +0 -0
  226. data/spec/unit/configurable_spec.rb +0 -0
  227. data/spec/unit/cookbook_metadata_spec.rb +0 -0
  228. data/spec/unit/cookbook_profiler/git_spec.rb +0 -0
  229. data/spec/unit/cookbook_profiler/identifiers_spec.rb +3 -3
  230. data/spec/unit/fixtures/chef-runner-cookbooks/test_cookbook/recipes/recipe_one.rb +0 -0
  231. data/spec/unit/fixtures/chef-runner-cookbooks/test_cookbook/recipes/recipe_two.rb +0 -0
  232. data/spec/unit/fixtures/command/cli_test_command.rb +0 -0
  233. data/spec/unit/fixtures/command/explicit_path_example.rb +0 -0
  234. data/spec/unit/fixtures/configurable/test_config_loader.rb +0 -0
  235. data/spec/unit/fixtures/configurable/test_configurable.rb +0 -0
  236. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/.kitchen.yml +0 -0
  237. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/Berksfile +0 -0
  238. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/README.md +0 -0
  239. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/chefignore +0 -0
  240. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/metadata.rb +0 -0
  241. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/recipes/default.rb +0 -0
  242. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/.kitchen.yml +0 -0
  243. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/Berksfile +0 -0
  244. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/README.md +0 -0
  245. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/chefignore +0 -0
  246. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/metadata.rb +0 -0
  247. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/recipes/default.rb +0 -0
  248. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/Berksfile +0 -0
  249. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/README.md +0 -0
  250. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/chefignore +0 -0
  251. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/{.kitchen.yml → kitchen.yml} +0 -0
  252. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/metadata.rb +0 -0
  253. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/recipes/default.rb +0 -0
  254. data/spec/unit/fixtures/cookbooks_api/chef_server_universe.json +0 -0
  255. data/spec/unit/fixtures/cookbooks_api/pruned_chef_server_universe.json +0 -0
  256. data/spec/unit/fixtures/cookbooks_api/pruned_small_universe.json +0 -0
  257. data/spec/unit/fixtures/cookbooks_api/small_universe.json +0 -0
  258. data/spec/unit/fixtures/cookbooks_api/universe.json +0 -0
  259. data/spec/unit/fixtures/cookbooks_api/update_fixtures.rb +0 -0
  260. data/spec/unit/fixtures/dev_cookbooks/README.md +0 -0
  261. data/spec/unit/fixtures/dev_cookbooks/bar-cookbook.gitbundle +0 -0
  262. data/spec/unit/fixtures/eg_omnibus_dir/missing_apps/bin/.keep +0 -0
  263. data/spec/unit/fixtures/eg_omnibus_dir/missing_apps/embedded/.keep +0 -0
  264. data/spec/unit/fixtures/eg_omnibus_dir/missing_apps/embedded/bin/.keep +0 -0
  265. data/spec/unit/fixtures/eg_omnibus_dir/missing_component/bin/.keep +0 -0
  266. data/spec/unit/fixtures/eg_omnibus_dir/missing_component/embedded/apps/berkshelf/.keep +0 -0
  267. data/spec/unit/fixtures/eg_omnibus_dir/missing_component/embedded/apps/test-kitchen/.keep +0 -0
  268. data/spec/unit/fixtures/eg_omnibus_dir/missing_component/embedded/bin/.keep +0 -0
  269. data/spec/unit/fixtures/eg_omnibus_dir/valid/bin/.keep +0 -0
  270. data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/chef-dk/.keep +0 -0
  271. data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/bin/.keep +0 -0
  272. data/spec/unit/fixtures/example_app/Policyfile.rb +0 -0
  273. data/spec/unit/fixtures/example_cookbook/.gitignore +0 -0
  274. data/spec/unit/fixtures/example_cookbook/.kitchen.yml +0 -0
  275. data/spec/unit/fixtures/example_cookbook/Berksfile +0 -0
  276. data/spec/unit/fixtures/example_cookbook/README.md +0 -0
  277. data/spec/unit/fixtures/example_cookbook/chefignore +0 -0
  278. data/spec/unit/fixtures/example_cookbook/metadata.rb +0 -0
  279. data/spec/unit/fixtures/example_cookbook/recipes/default.rb +0 -0
  280. data/spec/unit/fixtures/example_cookbook_metadata_json_only/.gitignore +0 -0
  281. data/spec/unit/fixtures/example_cookbook_metadata_json_only/.kitchen.yml +0 -0
  282. data/spec/unit/fixtures/example_cookbook_metadata_json_only/Berksfile +0 -0
  283. data/spec/unit/fixtures/example_cookbook_metadata_json_only/README.md +0 -0
  284. data/spec/unit/fixtures/example_cookbook_metadata_json_only/chefignore +0 -0
  285. data/spec/unit/fixtures/example_cookbook_metadata_json_only/metadata.json +0 -0
  286. data/spec/unit/fixtures/example_cookbook_metadata_json_only/recipes/default.rb +0 -0
  287. data/spec/unit/fixtures/example_cookbook_no_metadata/.gitignore +0 -0
  288. data/spec/unit/fixtures/example_cookbook_no_metadata/.kitchen.yml +0 -0
  289. data/spec/unit/fixtures/example_cookbook_no_metadata/Berksfile +0 -0
  290. data/spec/unit/fixtures/example_cookbook_no_metadata/README.md +0 -0
  291. data/spec/unit/fixtures/example_cookbook_no_metadata/chefignore +0 -0
  292. data/spec/unit/fixtures/example_cookbook_no_metadata/recipes/default.rb +0 -0
  293. data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/README.md +0 -0
  294. data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/chefignore +0 -0
  295. data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/metadata.rb +0 -0
  296. data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/recipes/default.rb +0 -0
  297. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/Berksfile +0 -0
  298. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/README.md +0 -0
  299. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/chefignore +0 -0
  300. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/metadata.rb +0 -0
  301. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/recipes/default.rb +0 -0
  302. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/.kitchen.yml +0 -0
  303. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/Berksfile +0 -0
  304. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/README.md +0 -0
  305. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/chefignore +0 -0
  306. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/extra/extra_file.txt +0 -0
  307. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/metadata.rb +0 -0
  308. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/recipes/default.rb +0 -0
  309. data/spec/unit/fixtures/local_path_cookbooks/metadata-missing/README.md +0 -0
  310. data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/.kitchen.yml +0 -0
  311. data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/README.md +0 -0
  312. data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/metadata.rb +0 -0
  313. data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/recipes/default.rb +0 -0
  314. data/spec/unit/generator_spec.rb +0 -0
  315. data/spec/unit/pager_spec.rb +0 -0
  316. data/spec/unit/policyfile/artifactory_cookbook_source_spec.rb +0 -0
  317. data/spec/unit/policyfile/attribute_merge_checker_spec.rb +0 -0
  318. data/spec/unit/policyfile/chef_repo_cookbook_source_spec.rb +0 -0
  319. data/spec/unit/policyfile/chef_server_cookbook_source_spec.rb +0 -0
  320. data/spec/unit/policyfile/chef_server_lock_fetcher_spec.rb +0 -0
  321. data/spec/unit/policyfile/community_cookbook_source_spec.rb +0 -0
  322. data/spec/unit/policyfile/comparison_base_spec.rb +0 -0
  323. data/spec/unit/policyfile/cookbook_location_specification_spec.rb +0 -0
  324. data/spec/unit/policyfile/cookbook_locks_spec.rb +0 -0
  325. data/spec/unit/policyfile/delivery_supermarket_source_spec.rb +0 -0
  326. data/spec/unit/policyfile/differ_spec.rb +0 -0
  327. data/spec/unit/policyfile/git_lock_fetcher_spec.rb +0 -0
  328. data/spec/unit/policyfile/included_policies_cookbook_source_spec.rb +0 -0
  329. data/spec/unit/policyfile/lister_spec.rb +0 -0
  330. data/spec/unit/policyfile/local_lock_fetcher_spec.rb +0 -0
  331. data/spec/unit/policyfile/lock_applier_spec.rb +0 -0
  332. data/spec/unit/policyfile/lock_fetcher_mixin_spec.rb +0 -0
  333. data/spec/unit/policyfile/null_cookbook_source_spec.rb +0 -0
  334. data/spec/unit/policyfile/read_cookbook_for_compat_mode_upload_spec.rb +0 -0
  335. data/spec/unit/policyfile/remote_lock_fetcher_spec.rb +0 -0
  336. data/spec/unit/policyfile/reports/install_spec.rb +0 -0
  337. data/spec/unit/policyfile/reports/upload_spec.rb +0 -0
  338. data/spec/unit/policyfile/solution_dependencies_spec.rb +0 -0
  339. data/spec/unit/policyfile/source_uri_spec.rb +0 -0
  340. data/spec/unit/policyfile/storage_config_spec.rb +0 -0
  341. data/spec/unit/policyfile/undo_record_spec.rb +0 -0
  342. data/spec/unit/policyfile/undo_stack_spec.rb +0 -0
  343. data/spec/unit/policyfile/uploader_spec.rb +0 -0
  344. data/spec/unit/policyfile_demands_spec.rb +0 -0
  345. data/spec/unit/policyfile_evaluation_spec.rb +0 -0
  346. data/spec/unit/policyfile_includes_dsl_spec.rb +0 -0
  347. data/spec/unit/policyfile_includes_spec.rb +0 -0
  348. data/spec/unit/policyfile_install_with_includes_spec.rb +0 -0
  349. data/spec/unit/policyfile_lock_build_spec.rb +2 -2
  350. data/spec/unit/policyfile_lock_install_spec.rb +0 -0
  351. data/spec/unit/policyfile_lock_serialization_spec.rb +0 -0
  352. data/spec/unit/policyfile_lock_validation_spec.rb +0 -0
  353. data/spec/unit/policyfile_services/clean_policies_spec.rb +0 -0
  354. data/spec/unit/policyfile_services/clean_policy_cookbooks_spec.rb +0 -0
  355. data/spec/unit/policyfile_services/export_repo_spec.rb +6 -6
  356. data/spec/unit/policyfile_services/install_spec.rb +0 -0
  357. data/spec/unit/policyfile_services/push_archive_spec.rb +2 -2
  358. data/spec/unit/policyfile_services/push_spec.rb +0 -0
  359. data/spec/unit/policyfile_services/rm_policy_group_spec.rb +0 -0
  360. data/spec/unit/policyfile_services/rm_policy_spec.rb +0 -0
  361. data/spec/unit/policyfile_services/show_policy_spec.rb +0 -0
  362. data/spec/unit/policyfile_services/undelete_spec.rb +0 -0
  363. data/spec/unit/policyfile_services/update_attributes_spec.rb +0 -0
  364. data/spec/unit/policyfile_services/update_spec.rb +0 -0
  365. data/spec/unit/service_exception_inspectors/base_spec.rb +0 -0
  366. data/spec/unit/service_exception_inspectors/http_spec.rb +1 -1
  367. data/spec/unit/shell_out_spec.rb +0 -0
  368. data/warning.txt +3 -2
  369. metadata +20 -19
  370. data/lib/chef-dk/command/generator_commands/app.rb +0 -106
  371. data/lib/chef-dk/skeletons/code_generator/recipes/app.rb +0 -87
  372. data/spec/unit/command/generator_commands/app_spec.rb +0 -166
  373. data/spec/unit/command/provision_spec.rb +0 -589
@@ -38,28 +38,28 @@ module ChefDK
38
38
  option :berks,
39
39
  short: "-b",
40
40
  long: "--berks",
41
- description: "Generate cookbooks with berkshelf integration",
41
+ description: "Generate cookbooks using Berkshelf dependency resolution.",
42
42
  boolean: true,
43
43
  default: nil
44
44
 
45
45
  option :kitchen,
46
46
  long: "--kitchen CONFIGURATION",
47
- description: "Generate cookbooks with a specific kitchen configuration (dokken|vagrant) - defaults to vagrant",
47
+ description: "Generate cookbooks with a specific Test Kitchen configuration (dokken|vagrant) - defaults to vagrant",
48
48
  default: "vagrant"
49
49
 
50
50
  option :policy,
51
51
  short: "-P",
52
52
  long: "--policy",
53
- description: "Use policyfiles instead of Berkshelf",
53
+ description: "Generate a cookbook using Policyfile dependency resolution (default).",
54
54
  boolean: true,
55
55
  default: nil
56
56
 
57
- option :delivery,
58
- short: "-d",
59
- long: "--delivery",
60
- description: "This option has no effect and exists only for compatibility with past releases",
57
+ option :workflow,
58
+ short: "-w",
59
+ long: "--workflow",
60
+ description: "Generate a cookbook with a full Chef Workflow (Delivery) build cookbook.",
61
61
  boolean: true,
62
- default: true
62
+ default: false
63
63
 
64
64
  option :verbose,
65
65
  short: "-V",
@@ -69,17 +69,16 @@ module ChefDK
69
69
  default: false
70
70
 
71
71
  option :pipeline,
72
- long: "--pipeline PIPELINE",
73
- description: "Use PIPELINE to set target branch to something other than master for the build_cookbook",
74
- default: "master"
72
+ long: "--pipeline PIPELINE",
73
+ description: "Use PIPELINE to set target branch to something other than master for the Workflow build_cookbook",
74
+ default: "master"
75
75
 
76
76
  options.merge!(SharedGeneratorOptions.options)
77
77
 
78
78
  def initialize(params)
79
79
  @params_valid = true
80
80
  @cookbook_name = nil
81
- @berks_mode = true
82
- @enable_delivery = true
81
+ @policy_mode = true
83
82
  @verbose = false
84
83
  super
85
84
  end
@@ -127,14 +126,14 @@ module ChefDK
127
126
  Generator.add_attr_to_context(:policy_run_list, policy_run_list)
128
127
  Generator.add_attr_to_context(:policy_local_cookbook, ".")
129
128
 
130
- Generator.add_attr_to_context(:enable_delivery, enable_delivery?)
131
- Generator.add_attr_to_context(:delivery_project_dir, cookbook_full_path)
129
+ Generator.add_attr_to_context(:enable_workflow, enable_workflow?)
130
+ Generator.add_attr_to_context(:workflow_project_dir, cookbook_full_path)
132
131
  Generator.add_attr_to_context(:build_cookbook_parent_is_cookbook, true)
133
- Generator.add_attr_to_context(:delivery_project_git_initialized, have_git? && !cookbook_path_in_git_repo?)
132
+ Generator.add_attr_to_context(:workflow_project_git_initialized, have_git? && !cookbook_path_in_git_repo?)
134
133
 
135
134
  Generator.add_attr_to_context(:verbose, verbose?)
136
135
 
137
- Generator.add_attr_to_context(:use_berkshelf, berks_mode?)
136
+ Generator.add_attr_to_context(:use_policyfile, policy_mode?)
138
137
  Generator.add_attr_to_context(:pipeline, pipeline)
139
138
  Generator.add_attr_to_context(:kitchen, kitchen)
140
139
  end
@@ -175,12 +174,12 @@ module ChefDK
175
174
  File.expand_path(cookbook_name_or_path, Dir.pwd)
176
175
  end
177
176
 
178
- def berks_mode?
179
- @berks_mode
177
+ def policy_mode?
178
+ @policy_mode
180
179
  end
181
180
 
182
- def enable_delivery?
183
- @enable_delivery
181
+ def enable_workflow?
182
+ config[:workflow]
184
183
  end
185
184
 
186
185
  def verbose?
@@ -224,8 +223,8 @@ module ChefDK
224
223
  @params_valid = false
225
224
  end
226
225
 
227
- if config[:policy]
228
- @berks_mode = false
226
+ if config[:berks]
227
+ @policy_mode = false
229
228
  end
230
229
 
231
230
  if config[:verbose]
@@ -35,28 +35,36 @@ module ChefDK
35
35
  option :policy_only,
36
36
  short: "-p",
37
37
  long: "--policy-only",
38
- description: "Create a repository for policy only, not cookbooks",
38
+ description: "Create a repository to store Policyfiles only, not cookbooks.",
39
39
  default: false
40
40
 
41
41
  option :roles,
42
42
  short: "-r",
43
43
  long: "--roles",
44
- description: "Create roles and environments directories instead of using policyfiles",
44
+ description: "Create roles and environments directories instead of using Policyfiles.",
45
45
  default: nil
46
46
 
47
47
  option :policy,
48
48
  short: "-P",
49
49
  long: "--policy",
50
- description: "Use policyfiles instead of Berkshelf",
50
+ description: "Use Policyfiles instead of roles and environments.",
51
51
  boolean: true,
52
52
  default: nil
53
53
 
54
+ option :verbose,
55
+ short: "-V",
56
+ long: "--verbose",
57
+ description: "Show detailed output from the generator",
58
+ boolean: true,
59
+ default: false
60
+
54
61
  options.merge!(SharedGeneratorOptions.options)
55
62
 
56
63
  def initialize(params)
57
64
  @params_valid = true
58
65
  @repo_name = nil
59
- @use_roles = true
66
+ @use_policy = true
67
+ @verbose = false
60
68
  super
61
69
  end
62
70
 
@@ -64,7 +72,10 @@ module ChefDK
64
72
  read_and_validate_params
65
73
  if params_valid?
66
74
  setup_context
75
+ msg("Generating Chef Infra repo #{repo_name}")
67
76
  chef_runner.converge
77
+ msg("")
78
+ msg("Your new Chef Infra repo is ready! Type `cd #{repo_name}` to enter it.")
68
79
  0
69
80
  else
70
81
  err(opt_parser)
@@ -74,9 +85,10 @@ module ChefDK
74
85
 
75
86
  def setup_context
76
87
  super
88
+ Generator.add_attr_to_context(:verbose, verbose?)
77
89
  Generator.add_attr_to_context(:repo_root, repo_root)
78
90
  Generator.add_attr_to_context(:repo_name, repo_name)
79
- Generator.add_attr_to_context(:use_roles, use_roles?)
91
+ Generator.add_attr_to_context(:use_policy, use_policy?)
80
92
  end
81
93
 
82
94
  def recipe
@@ -95,8 +107,12 @@ module ChefDK
95
107
  File.expand_path(repo_name_or_path, Dir.pwd)
96
108
  end
97
109
 
98
- def use_roles?
99
- @use_roles
110
+ def use_policy?
111
+ @use_policy
112
+ end
113
+
114
+ def verbose?
115
+ @verbose
100
116
  end
101
117
 
102
118
  def read_and_validate_params
@@ -109,8 +125,8 @@ module ChefDK
109
125
  err("Roles and Policyfiles are exclusive. Please only select one.")
110
126
  @params_valid = false
111
127
  end
112
- if config[:policy]
113
- @use_roles = false
128
+ if config[:roles]
129
+ @use_policy = false
114
130
  end
115
131
  end
116
132
 
@@ -34,7 +34,7 @@ module ChefDK
34
34
  cookbooks for the policy's run_list and caches them locally. It emits a
35
35
  Policyfile.lock.json describing the locked cookbook set. You can use the
36
36
  lockfile to install the locked cookbooks on another machine. You can also push
37
- the lockfile to a "policy group" on a Chef Server and apply that exact set of
37
+ the lockfile to a "policy group" on a Chef Infra Server and apply that exact set of
38
38
  cookbooks to nodes in your infrastructure.
39
39
 
40
40
  See our detailed README for more information:
@@ -70,7 +70,6 @@ module ChefDK
70
70
 
71
71
  def run(params = [])
72
72
  return 1 unless apply_params!(params)
73
-
74
73
  # Force config file to be loaded. We don't use the configuration
75
74
  # directly, but the user may have SSL configuration options that they
76
75
  # need to talk to a private supermarket (e.g., trusted_certs or
@@ -18,420 +18,18 @@
18
18
  require "ostruct"
19
19
 
20
20
  require "chef-dk/command/base"
21
- require "chef-dk/configurable"
22
21
  require "chef-dk/chef_runner"
23
- require "chef-dk/policyfile_services/push"
24
-
25
- require "chef/provisioning"
26
22
 
27
23
  module ChefDK
28
24
 
29
- module ProvisioningData
30
-
31
- def self.reset
32
- @context = nil
33
- end
34
-
35
- def self.context
36
- @context ||= Context.new
37
- end
38
-
39
- class Context
40
-
41
- attr_accessor :action
42
-
43
- attr_accessor :node_name
44
-
45
- attr_accessor :target
46
-
47
- attr_accessor :enable_policyfile
48
-
49
- attr_accessor :policy_group
50
-
51
- attr_accessor :policy_name
52
-
53
- attr_accessor :extra_chef_config
54
-
55
- attr_accessor :opts
56
-
57
- def initialize
58
- @extra_chef_config = ""
59
- @opts = nil
60
- end
61
-
62
- def set_user_opts(hash)
63
- @opts = OpenStruct.new(hash)
64
- end
65
-
66
- def convergence_options
67
- {
68
- chef_server: Chef::Config.chef_server_url,
69
- chef_config: chef_config,
70
- }
71
- end
72
-
73
- def chef_config
74
- config = <<~CONFIG
75
- # SSL Settings:
76
- ssl_verify_mode #{Chef::Config.ssl_verify_mode.inspect}
77
-
78
- CONFIG
79
- if enable_policyfile
80
- policyfile_config = <<~CONFIG
81
- # Policyfile Settings:
82
- use_policyfile true
83
- policy_document_native_api true
84
-
85
- policy_group "#{policy_group}"
86
- policy_name "#{policy_name}"
87
-
88
- CONFIG
89
- config << policyfile_config
90
- end
91
-
92
- config << extra_chef_config.to_s
93
- config
94
- end
95
-
96
- end
97
- end
98
-
99
25
  module Command
100
26
 
101
27
  class Provision < Base
102
28
 
103
- banner(<<~E)
104
- DEPRECATED: This command is deprecated and will be removed in ChefDK 4.
105
-
106
- Usage: chef provision POLICY_GROUP --policy-name POLICY_NAME [options]
107
- chef provision POLICY_GROUP --sync [POLICYFILE_PATH] [options]
108
- chef provision --no-policy [options]
109
-
110
- `chef provision` invokes an embedded chef-client run to provision machines
111
- using Chef Provisioning. If not otherwise specified, `chef provision` will
112
- expect to find a cookbook named 'provision' in the current working directory.
113
- It runs a recipe in this cookbook which should use Chef Provisioning to create
114
- one or more machines (or other infrastructure).
115
-
116
- `chef provision` provides three forms of operation:
117
-
118
- ### chef provision POLICY_GROUP --policy-name POLICY_NAME
119
-
120
- In the first form of the command, `chef provision` creates machines that will
121
- operate in policyfile mode. The chef configuration passed to the cookbook will
122
- set the policy group and policy name as given.
123
-
124
- ### chef provision POLICY_GROUP --sync [POLICYFILE_PATH] [options]
125
-
126
- In the second form of the command, `chef provision` create machines that will
127
- operate in policyfile mode and syncronizes a local policyfile to the server
128
- before converging the machine(s) defined in the provision cookbook.
129
-
130
- ### chef provision --no-policy [options]
131
-
132
- In the third form of the command, `chef provision` expects to create machines
133
- that will not operate in policyfile mode.
134
-
135
- Chef Provisioning is documented at https://docs.chef.io/provisioning.html
136
-
137
- Options:
138
-
139
- E
140
- include Configurable
141
-
142
- option :config_file,
143
- short: "-c CONFIG_FILE",
144
- long: "--config CONFIG_FILE",
145
- description: "Path to configuration file"
146
-
147
- option :policy_name,
148
- short: "-p POLICY_NAME",
149
- long: "--policy-name POLICY_NAME",
150
- description: "Set the default policy name for provisioned machines"
151
-
152
- option :sync,
153
- short: "-s [POLICYFILE_PATH]",
154
- long: "--sync [POLICYFILE_PATH]",
155
- description: "Push policyfile to the server before converging node(s)"
156
-
157
- option :enable_policyfile,
158
- long: "--[no-]policy",
159
- description: "Enable/disable policyfile integration (defaults to enabled, use --no-policy to disable)",
160
- default: true
161
-
162
- option :destroy,
163
- short: "-d",
164
- long: "--destroy",
165
- description: "Set default machine action to :destroy",
166
- default: false,
167
- boolean: true
168
-
169
- option :machine_recipe,
170
- short: "-r RECIPE",
171
- long: "--recipe RECIPE",
172
- description: "Machine recipe to use",
173
- default: "default"
174
-
175
- option :cookbook,
176
- long: "--cookbook COOKBOOK_PATH",
177
- description: "Path to your provisioning cookbook",
178
- default: "./provision"
179
-
180
- option :node_name,
181
- short: "-n NODE_NAME",
182
- long: "--node-name NODE_NAME",
183
- description: "Set default node name (may be overriden by provisioning cookbook)"
184
-
185
- option :target,
186
- short: "-t REMOTE_HOST",
187
- long: "--target REMOTE_HOST",
188
- description: "Set hostname or IP of the host to converge (may be overriden by provisioning cookbook)"
189
-
190
- OPT_SEPARATOR = /[=\s]+/
191
-
192
- def self.split_opt(key_value)
193
- key, _separator, value = key_value.partition(OPT_SEPARATOR)
194
- [key, value]
195
- end
196
-
197
- opts = {}
198
-
199
- option :opts,
200
- short: "-o OPT=VALUE",
201
- long: "--opt OPT=VALUE",
202
- description: "Set arbitrary option OPT on the provisioning context",
203
- proc: lambda { |arg| key, value = split_opt(arg); opts[key] = value; opts },
204
- default: {}
205
-
206
- option :debug,
207
- short: "-D",
208
- long: "--debug",
209
- description: "Enable stacktraces and other debug output",
210
- default: false
211
-
212
- attr_reader :params
213
- attr_reader :policyfile_relative_path
214
- attr_reader :policy_group
215
-
216
- attr_accessor :ui
217
-
218
- def initialize(*args)
219
- super
220
-
221
- @ui = UI.new
222
-
223
- @policyfile_relative_path = nil
224
- @policy_group = nil
225
-
226
- @provisioning_cookbook_path = nil
227
- @provisioning_cookbook_name = nil
228
- end
29
+ banner("DEPRECATED: Chef provisioning has been removed from ChefDK / Workstation. If you require Chef Provisioning you will need to install an earlier version of these products!")
229
30
 
230
31
  def run(params = [])
231
- ui.msg("DEPRECATED: This command is deprecated and will be removed in ChefDK 4.")
232
- return 1 unless apply_params!(params)
233
- chef_config # force chef config to load
234
- return 1 unless check_cookbook_and_recipe_path
235
-
236
- push.run if sync_policy?
237
-
238
- setup_context
239
-
240
- chef_runner.converge
241
- 0
242
- rescue ChefRunnerError, PolicyfileServiceError => e
243
- handle_error(e)
244
- 1
245
- # Chef Provisioning doesn't fail gracefully when a driver is missing:
246
- # https://github.com/chef/chef-provisioning/issues/338
247
- rescue StandardError, LoadError => error
248
- ui.err("Error: #{error.message}")
249
- 1
250
- end
251
-
252
- # An instance of ChefRunner. Calling ChefRunner#converge will trigger
253
- # convergence and generate the desired code.
254
- def chef_runner
255
- @chef_runner ||= ChefRunner.new(provisioning_cookbook_path, ["recipe[#{provisioning_cookbook_name}::#{recipe}]"])
256
- end
257
-
258
- def push
259
- @push ||= PolicyfileServices::Push.new(policyfile: policyfile_relative_path,
260
- ui: ui,
261
- policy_group: policy_group,
262
- config: chef_config,
263
- root_dir: Dir.pwd)
264
- end
265
-
266
- def setup_context
267
- ProvisioningData.context.tap do |c|
268
-
269
- c.action = default_action
270
- c.node_name = node_name
271
- c.target = target
272
-
273
- c.set_user_opts(user_opts)
274
-
275
- c.enable_policyfile = enable_policyfile?
276
-
277
- if enable_policyfile?
278
- c.policy_group = policy_group
279
- c.policy_name = policy_name
280
- end
281
-
282
- end
283
- end
284
-
285
- def policy_name
286
- if sync_policy?
287
- push.policy_data["name"]
288
- else
289
- config[:policy_name]
290
- end
291
- end
292
-
293
- def default_action
294
- if config[:destroy]
295
- :destroy
296
- else
297
- :converge
298
- end
299
- end
300
-
301
- def node_name
302
- config[:node_name]
303
- end
304
-
305
- def target
306
- config[:target]
307
- end
308
-
309
- def user_opts
310
- config[:opts]
311
- end
312
-
313
- def recipe
314
- config[:machine_recipe]
315
- end
316
-
317
- # Gives the `cookbook_path` in the chef-client sense, which is the
318
- # directory that contains the provisioning cookbook.
319
- def provisioning_cookbook_path
320
- detect_provisioning_cookbook_name_and_path! unless @provisioning_cookbook_path
321
- @provisioning_cookbook_path
322
- end
323
-
324
- # The name of the provisioning cookbook
325
- def provisioning_cookbook_name
326
- detect_provisioning_cookbook_name_and_path! unless @provisioning_cookbook_name
327
- @provisioning_cookbook_name
328
- end
329
-
330
- def cookbook_path
331
- config[:cookbook]
332
- end
333
-
334
- def enable_policyfile?
335
- config[:enable_policyfile]
336
- end
337
-
338
- def apply_params!(params)
339
- remaining_args = parse_options(params)
340
- if enable_policyfile?
341
- handle_policy_argv(remaining_args)
342
- else
343
- handle_no_policy_argv(remaining_args)
344
- end
345
- end
346
-
347
- def debug?
348
- !!config[:debug]
349
- end
350
-
351
- def sync_policy?
352
- config.key?(:sync)
353
- end
354
-
355
- private
356
-
357
- def detect_provisioning_cookbook_name_and_path!
358
- given_path = File.expand_path(cookbook_path, Dir.pwd)
359
- @provisioning_cookbook_name = File.basename(given_path)
360
- @provisioning_cookbook_path = File.dirname(given_path)
361
- end
362
-
363
- def check_cookbook_and_recipe_path
364
- if !File.exist?(cookbook_expanded_path)
365
- ui.err("ERROR: Provisioning cookbook not found at path #{cookbook_expanded_path}")
366
- false
367
- elsif !File.exist?(provisioning_recipe_path)
368
- ui.err("ERROR: Provisioning recipe not found at path #{provisioning_recipe_path}")
369
- false
370
- else
371
- true
372
- end
373
- end
374
-
375
- def provisioning_recipe_path
376
- File.join(cookbook_expanded_path, "recipes", "#{recipe}.rb")
377
- end
378
-
379
- def cookbook_expanded_path
380
- File.join(chef_runner.cookbook_path, provisioning_cookbook_name)
381
- end
382
-
383
- def handle_no_policy_argv(remaining_args)
384
- if remaining_args.empty?
385
- true
386
- else
387
- ui.err("The --no-policy flag cannot be combined with policyfile arguments")
388
- ui.err("")
389
- ui.err(opt_parser)
390
- false
391
- end
392
- end
393
-
394
- def handle_policy_argv(remaining_args)
395
- if remaining_args.size > 1
396
- ui.err("Too many arguments")
397
- ui.err("")
398
- ui.err(opt_parser)
399
- false
400
- elsif remaining_args.size < 1
401
- ui.err("You must specify a POLICY_GROUP or disable policyfiles with --no-policy")
402
- ui.err("")
403
- ui.err(opt_parser)
404
- false
405
- elsif !sync_policy? && config[:policy_name].nil?
406
- ui.err("You must pass either --sync or --policy-name to provision machines in policyfile mode")
407
- ui.err("")
408
- ui.err(opt_parser)
409
- false
410
- elsif sync_policy? && config[:policy_name]
411
- ui.err("The --policy-name and --sync arguments cannot be combined")
412
- ui.err("")
413
- ui.err(opt_parser)
414
- false
415
- elsif sync_policy?
416
- @policy_group = remaining_args[0]
417
- @policyfile_relative_path = config[:sync]
418
- true
419
- elsif config[:policy_name]
420
- @policy_group = remaining_args[0]
421
- true
422
- else
423
- raise BUG, "Cannot properly parse input argv '#{ARGV.inspect}'"
424
- end
425
- end
426
-
427
- def handle_error(error)
428
- ui.err("Error: #{error.message}")
429
- if error.respond_to?(:reason)
430
- ui.err("Reason: #{error.reason}")
431
- ui.err("")
432
- ui.err(error.extended_error_info) if debug?
433
- ui.err(error.cause.backtrace.join("\n")) if debug?
434
- end
32
+ raise "Chef provisioning has been removed from ChefDK / Workstation. If you require Chef Provisioning you will need to install an earlier version of these products!"
435
33
  end
436
34
 
437
35
  end