chef-dk 0.14.25 → 0.15.9

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 (328) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +15 -12
  3. data/Gemfile.lock +56 -82
  4. data/LICENSE +201 -201
  5. data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +27 -27
  6. data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +288 -288
  7. data/acceptance/.shared/kitchen_acceptance/.kitchen.vagrant.yml +52 -52
  8. data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +51 -51
  9. data/acceptance/.shared/kitchen_acceptance/metadata.rb +1 -1
  10. data/acceptance/Gemfile.lock +18 -21
  11. data/acceptance/README.md +132 -132
  12. data/acceptance/trivial/.acceptance/acceptance-cookbook/.gitignore +2 -2
  13. data/acceptance/trivial/.acceptance/acceptance-cookbook/metadata.rb +2 -2
  14. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -1
  15. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/provision.rb +1 -1
  16. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -1
  17. data/acceptance/trivial/.kitchen.yml +7 -7
  18. data/acceptance/trivial/test/integration/chefdk-current-install/inspec/chef_client_spec.rb +5 -5
  19. data/bin/chef +25 -25
  20. data/chef-dk.gemspec +1 -0
  21. data/lib/chef-dk.rb +19 -19
  22. data/lib/chef-dk/authenticated_http.rb +40 -40
  23. data/lib/chef-dk/chef_runner.rb +1 -1
  24. data/lib/chef-dk/cli.rb +2 -2
  25. data/lib/chef-dk/command/base.rb +79 -79
  26. data/lib/chef-dk/command/clean_policy_cookbooks.rb +116 -116
  27. data/lib/chef-dk/command/clean_policy_revisions.rb +113 -113
  28. data/lib/chef-dk/command/delete_policy.rb +122 -122
  29. data/lib/chef-dk/command/delete_policy_group.rb +122 -122
  30. data/lib/chef-dk/command/diff.rb +316 -316
  31. data/lib/chef-dk/command/env.rb +90 -90
  32. data/lib/chef-dk/command/exec.rb +45 -45
  33. data/lib/chef-dk/command/export.rb +2 -2
  34. data/lib/chef-dk/command/gem.rb +47 -47
  35. data/lib/chef-dk/command/generate.rb +2 -0
  36. data/lib/chef-dk/command/generator_commands/app.rb +107 -107
  37. data/lib/chef-dk/command/generator_commands/attribute.rb +37 -37
  38. data/lib/chef-dk/command/generator_commands/base.rb +148 -148
  39. data/lib/chef-dk/command/generator_commands/build_cookbook.rb +110 -0
  40. data/lib/chef-dk/command/generator_commands/cookbook.rb +21 -0
  41. data/lib/chef-dk/command/generator_commands/cookbook_code_file.rb +100 -100
  42. data/lib/chef-dk/command/generator_commands/cookbook_file.rb +45 -45
  43. data/lib/chef-dk/command/generator_commands/generator_generator.rb +177 -177
  44. data/lib/chef-dk/command/generator_commands/lwrp.rb +36 -36
  45. data/lib/chef-dk/command/generator_commands/policyfile.rb +127 -127
  46. data/lib/chef-dk/command/generator_commands/recipe.rb +36 -36
  47. data/lib/chef-dk/command/generator_commands/repo.rb +125 -125
  48. data/lib/chef-dk/command/generator_commands/template.rb +46 -46
  49. data/lib/chef-dk/command/install.rb +121 -121
  50. data/lib/chef-dk/command/provision.rb +438 -438
  51. data/lib/chef-dk/command/push.rb +118 -118
  52. data/lib/chef-dk/command/push_archive.rb +126 -126
  53. data/lib/chef-dk/command/shell_init.rb +180 -180
  54. data/lib/chef-dk/command/show_policy.rb +165 -165
  55. data/lib/chef-dk/command/undelete.rb +155 -155
  56. data/lib/chef-dk/command/update.rb +148 -148
  57. data/lib/chef-dk/command/verify.rb +9 -11
  58. data/lib/chef-dk/completions/bash.sh.erb +5 -5
  59. data/lib/chef-dk/completions/chef.fish.erb +10 -10
  60. data/lib/chef-dk/completions/zsh.zsh.erb +21 -21
  61. data/lib/chef-dk/configurable.rb +69 -69
  62. data/lib/chef-dk/cookbook_metadata.rb +45 -45
  63. data/lib/chef-dk/cookbook_omnifetch.rb +32 -32
  64. data/lib/chef-dk/cookbook_profiler/git.rb +151 -151
  65. data/lib/chef-dk/cookbook_profiler/identifiers.rb +72 -72
  66. data/lib/chef-dk/cookbook_profiler/null_scm.rb +32 -32
  67. data/lib/chef-dk/exceptions.rb +129 -129
  68. data/lib/chef-dk/helpers.rb +24 -17
  69. data/lib/chef-dk/pager.rb +106 -106
  70. data/lib/chef-dk/policyfile/chef_repo_cookbook_source.rb +138 -138
  71. data/lib/chef-dk/policyfile/chef_server_cookbook_source.rb +54 -54
  72. data/lib/chef-dk/policyfile/community_cookbook_source.rb +97 -97
  73. data/lib/chef-dk/policyfile/comparison_base.rb +124 -124
  74. data/lib/chef-dk/policyfile/cookbook_location_specification.rb +154 -154
  75. data/lib/chef-dk/policyfile/cookbook_locks.rb +466 -466
  76. data/lib/chef-dk/policyfile/cookbook_sources.rb +22 -22
  77. data/lib/chef-dk/policyfile/delivery_supermarket_source.rb +90 -90
  78. data/lib/chef-dk/policyfile/differ.rb +266 -266
  79. data/lib/chef-dk/policyfile/dsl.rb +261 -261
  80. data/lib/chef-dk/policyfile/lister.rb +232 -232
  81. data/lib/chef-dk/policyfile/null_cookbook_source.rb +45 -45
  82. data/lib/chef-dk/policyfile/read_cookbook_for_compat_mode_upload.rb +124 -124
  83. data/lib/chef-dk/policyfile/reports/install.rb +70 -70
  84. data/lib/chef-dk/policyfile/reports/table_printer.rb +58 -58
  85. data/lib/chef-dk/policyfile/reports/upload.rb +70 -70
  86. data/lib/chef-dk/policyfile/solution_dependencies.rb +298 -298
  87. data/lib/chef-dk/policyfile/storage_config.rb +100 -100
  88. data/lib/chef-dk/policyfile/undo_record.rb +142 -142
  89. data/lib/chef-dk/policyfile/undo_stack.rb +130 -130
  90. data/lib/chef-dk/policyfile/uploader.rb +213 -213
  91. data/lib/chef-dk/policyfile_compiler.rb +419 -419
  92. data/lib/chef-dk/policyfile_lock.rb +552 -552
  93. data/lib/chef-dk/policyfile_services/clean_policies.rb +95 -95
  94. data/lib/chef-dk/policyfile_services/clean_policy_cookbooks.rb +125 -125
  95. data/lib/chef-dk/policyfile_services/export_repo.rb +421 -421
  96. data/lib/chef-dk/policyfile_services/install.rb +126 -126
  97. data/lib/chef-dk/policyfile_services/push_archive.rb +204 -204
  98. data/lib/chef-dk/policyfile_services/rm_policy.rb +142 -142
  99. data/lib/chef-dk/policyfile_services/rm_policy_group.rb +86 -86
  100. data/lib/chef-dk/policyfile_services/show_policy.rb +237 -237
  101. data/lib/chef-dk/policyfile_services/undelete.rb +108 -108
  102. data/lib/chef-dk/policyfile_services/update_attributes.rb +104 -104
  103. data/lib/chef-dk/service_exception_inspectors.rb +25 -25
  104. data/lib/chef-dk/service_exception_inspectors/base.rb +40 -40
  105. data/lib/chef-dk/service_exception_inspectors/http.rb +121 -121
  106. data/lib/chef-dk/service_exceptions.rb +143 -143
  107. data/lib/chef-dk/shell_out.rb +36 -36
  108. data/lib/chef-dk/skeletons/code_generator/files/default/Berksfile +3 -3
  109. data/lib/chef-dk/skeletons/code_generator/files/default/build-cookbook/.kitchen.yml +21 -0
  110. data/lib/chef-dk/skeletons/code_generator/files/default/build-cookbook/README.md +146 -0
  111. data/lib/chef-dk/skeletons/code_generator/files/default/build-cookbook/test-fixture-recipe.rb +7 -0
  112. data/lib/chef-dk/skeletons/code_generator/files/default/chefignore +102 -102
  113. data/lib/chef-dk/skeletons/code_generator/files/default/cookbook_readmes/README-policy.md +9 -9
  114. data/lib/chef-dk/skeletons/code_generator/files/default/cookbook_readmes/README.md +54 -54
  115. data/lib/chef-dk/skeletons/code_generator/files/default/delivery-config.json +10 -0
  116. data/lib/chef-dk/skeletons/code_generator/files/default/gitignore +16 -16
  117. data/lib/chef-dk/skeletons/code_generator/files/default/repo/README.md +28 -28
  118. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/README.md +27 -27
  119. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/attributes/default.rb +7 -7
  120. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/metadata.rb +3 -3
  121. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb +8 -8
  122. data/lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/README.md +58 -58
  123. data/lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/example/example_item.json +3 -3
  124. data/lib/chef-dk/skeletons/code_generator/files/default/repo/dot-chef-repo.txt +6 -6
  125. data/lib/chef-dk/skeletons/code_generator/files/default/repo/environments/README.md +9 -9
  126. data/lib/chef-dk/skeletons/code_generator/files/default/repo/environments/example.json +12 -12
  127. data/lib/chef-dk/skeletons/code_generator/files/default/repo/policies/README.md +24 -24
  128. data/lib/chef-dk/skeletons/code_generator/files/default/repo/roles/README.md +9 -9
  129. data/lib/chef-dk/skeletons/code_generator/files/default/repo/roles/example.json +12 -12
  130. data/lib/chef-dk/skeletons/code_generator/files/default/serverspec_spec_helper.rb +8 -8
  131. data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper.rb +2 -2
  132. data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper_policyfile.rb +2 -2
  133. data/lib/chef-dk/skeletons/code_generator/metadata.rb +8 -8
  134. data/lib/chef-dk/skeletons/code_generator/recipes/app.rb +97 -97
  135. data/lib/chef-dk/skeletons/code_generator/recipes/attribute.rb +12 -12
  136. data/lib/chef-dk/skeletons/code_generator/recipes/build_cookbook.rb +88 -0
  137. data/lib/chef-dk/skeletons/code_generator/recipes/cookbook.rb +6 -0
  138. data/lib/chef-dk/skeletons/code_generator/recipes/cookbook_file.rb +24 -24
  139. data/lib/chef-dk/skeletons/code_generator/recipes/lwrp.rb +23 -23
  140. data/lib/chef-dk/skeletons/code_generator/recipes/policyfile.rb +8 -8
  141. data/lib/chef-dk/skeletons/code_generator/recipes/recipe.rb +27 -27
  142. data/lib/chef-dk/skeletons/code_generator/recipes/repo.rb +67 -67
  143. data/lib/chef-dk/skeletons/code_generator/recipes/template.rb +32 -32
  144. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.all_rights.erb +3 -3
  145. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.gplv2.erb +339 -339
  146. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.gplv3.erb +674 -674
  147. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.mit.erb +21 -21
  148. data/lib/chef-dk/skeletons/code_generator/templates/default/Policyfile.rb.erb +25 -25
  149. data/lib/chef-dk/skeletons/code_generator/templates/default/README.md.erb +4 -4
  150. data/lib/chef-dk/skeletons/code_generator/templates/default/build-cookbook/Berksfile.erb +20 -0
  151. data/lib/chef-dk/skeletons/code_generator/templates/default/build-cookbook/metadata.rb.erb +9 -0
  152. data/lib/chef-dk/skeletons/code_generator/templates/default/build-cookbook/recipe.rb.erb +8 -0
  153. data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen.yml.erb +3 -2
  154. data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen_policyfile.yml.erb +3 -2
  155. data/lib/chef-dk/skeletons/code_generator/templates/default/metadata.rb.erb +7 -7
  156. data/lib/chef-dk/skeletons/code_generator/templates/default/recipe.rb.erb +5 -5
  157. data/lib/chef-dk/skeletons/code_generator/templates/default/recipe_spec.rb.erb +20 -20
  158. data/lib/chef-dk/skeletons/code_generator/templates/default/repo/gitignore.erb +11 -11
  159. data/lib/chef-dk/skeletons/code_generator/templates/default/serverspec_default_spec.rb.erb +9 -9
  160. data/lib/chef-dk/ui.rb +58 -58
  161. data/lib/chef-dk/version.rb +1 -1
  162. data/lib/kitchen/provisioner/policyfile_zero.rb +195 -195
  163. data/omnibus_overrides.rb +2 -1
  164. data/spec/shared/a_file_generator.rb +125 -125
  165. data/spec/shared/a_generated_file.rb +12 -12
  166. data/spec/shared/command_with_ui_object.rb +11 -11
  167. data/spec/shared/fixture_cookbook_checksums.rb +47 -47
  168. data/spec/shared/setup_git_cookbooks.rb +53 -53
  169. data/spec/spec_helper.rb +51 -51
  170. data/spec/test_helpers.rb +84 -84
  171. data/spec/unit/chef_runner_spec.rb +1 -1
  172. data/spec/unit/cli_spec.rb +23 -6
  173. data/spec/unit/command/clean_policy_cookbooks_spec.rb +181 -181
  174. data/spec/unit/command/clean_policy_revisions_spec.rb +181 -181
  175. data/spec/unit/command/delete_policy_group_spec.rb +207 -207
  176. data/spec/unit/command/delete_policy_spec.rb +207 -207
  177. data/spec/unit/command/diff_spec.rb +312 -312
  178. data/spec/unit/command/env_spec.rb +52 -52
  179. data/spec/unit/command/exec_spec.rb +179 -179
  180. data/spec/unit/command/export_spec.rb +200 -200
  181. data/spec/unit/command/generate_spec.rb +142 -142
  182. data/spec/unit/command/generator_commands/app_spec.rb +169 -169
  183. data/spec/unit/command/generator_commands/attribute_spec.rb +32 -32
  184. data/spec/unit/command/generator_commands/base_spec.rb +136 -136
  185. data/spec/unit/command/generator_commands/build_cookbook_spec.rb +309 -0
  186. data/spec/unit/command/generator_commands/cookbook_file_spec.rb +32 -32
  187. data/spec/unit/command/generator_commands/cookbook_spec.rb +98 -4
  188. data/spec/unit/command/generator_commands/generator_generator_spec.rb +229 -229
  189. data/spec/unit/command/generator_commands/lwrp_spec.rb +32 -32
  190. data/spec/unit/command/generator_commands/policyfile_spec.rb +225 -225
  191. data/spec/unit/command/generator_commands/recipe_spec.rb +34 -34
  192. data/spec/unit/command/generator_commands/template_spec.rb +32 -32
  193. data/spec/unit/command/install_spec.rb +179 -179
  194. data/spec/unit/command/provision_spec.rb +592 -592
  195. data/spec/unit/command/push_archive_spec.rb +153 -153
  196. data/spec/unit/command/push_spec.rb +199 -199
  197. data/spec/unit/command/shell_init_spec.rb +329 -329
  198. data/spec/unit/command/show_policy_spec.rb +235 -235
  199. data/spec/unit/command/undelete_spec.rb +246 -246
  200. data/spec/unit/command/update_spec.rb +275 -275
  201. data/spec/unit/command/verify_spec.rb +1 -3
  202. data/spec/unit/commands_map_spec.rb +57 -57
  203. data/spec/unit/configurable_spec.rb +41 -41
  204. data/spec/unit/cookbook_metadata_spec.rb +98 -98
  205. data/spec/unit/cookbook_profiler/git_spec.rb +176 -176
  206. data/spec/unit/cookbook_profiler/identifiers_spec.rb +83 -83
  207. data/spec/unit/fixtures/chef-runner-cookbooks/test_cookbook/recipes/recipe_one.rb +9 -9
  208. data/spec/unit/fixtures/chef-runner-cookbooks/test_cookbook/recipes/recipe_two.rb +9 -9
  209. data/spec/unit/fixtures/command/cli_test_command.rb +26 -26
  210. data/spec/unit/fixtures/command/explicit_path_example.rb +7 -7
  211. data/spec/unit/fixtures/configurable/test_config_loader.rb +5 -5
  212. data/spec/unit/fixtures/configurable/test_configurable.rb +10 -10
  213. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/.kitchen.yml +16 -16
  214. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/Berksfile +3 -3
  215. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/README.md +4 -4
  216. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/chefignore +96 -96
  217. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/metadata.rb +8 -8
  218. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/recipes/default.rb +8 -8
  219. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/.kitchen.yml +16 -16
  220. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/Berksfile +3 -3
  221. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/README.md +4 -4
  222. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/chefignore +96 -96
  223. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/metadata.rb +8 -8
  224. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/recipes/default.rb +8 -8
  225. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/.kitchen.yml +16 -16
  226. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/Berksfile +3 -3
  227. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/README.md +4 -4
  228. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/chefignore +96 -96
  229. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/metadata.rb +8 -8
  230. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/recipes/default.rb +8 -8
  231. data/spec/unit/fixtures/cookbooks_api/pruned_small_universe.json +1321 -1321
  232. data/spec/unit/fixtures/cookbooks_api/small_universe.json +2987 -2987
  233. data/spec/unit/fixtures/cookbooks_api/universe.json +1 -1
  234. data/spec/unit/fixtures/cookbooks_api/update_fixtures.rb +36 -36
  235. data/spec/unit/fixtures/dev_cookbooks/README.md +16 -16
  236. data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/berkshelf/integration_test +2 -2
  237. data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/berkshelf/verify_me +5 -5
  238. data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/chef/verify_me +3 -3
  239. data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/test-kitchen/verify_me +2 -2
  240. data/spec/unit/fixtures/example_cookbook/.gitignore +17 -17
  241. data/spec/unit/fixtures/example_cookbook/.kitchen.yml +16 -16
  242. data/spec/unit/fixtures/example_cookbook/Berksfile +3 -3
  243. data/spec/unit/fixtures/example_cookbook/README.md +4 -4
  244. data/spec/unit/fixtures/example_cookbook/chefignore +96 -96
  245. data/spec/unit/fixtures/example_cookbook/metadata.rb +8 -8
  246. data/spec/unit/fixtures/example_cookbook/recipes/default.rb +8 -8
  247. data/spec/unit/fixtures/example_cookbook_metadata_json_only/.gitignore +17 -17
  248. data/spec/unit/fixtures/example_cookbook_metadata_json_only/.kitchen.yml +16 -16
  249. data/spec/unit/fixtures/example_cookbook_metadata_json_only/Berksfile +3 -3
  250. data/spec/unit/fixtures/example_cookbook_metadata_json_only/README.md +4 -4
  251. data/spec/unit/fixtures/example_cookbook_metadata_json_only/chefignore +96 -96
  252. data/spec/unit/fixtures/example_cookbook_metadata_json_only/metadata.json +5 -5
  253. data/spec/unit/fixtures/example_cookbook_metadata_json_only/recipes/default.rb +8 -8
  254. data/spec/unit/fixtures/example_cookbook_no_metadata/.gitignore +17 -17
  255. data/spec/unit/fixtures/example_cookbook_no_metadata/.kitchen.yml +16 -16
  256. data/spec/unit/fixtures/example_cookbook_no_metadata/Berksfile +3 -3
  257. data/spec/unit/fixtures/example_cookbook_no_metadata/README.md +4 -4
  258. data/spec/unit/fixtures/example_cookbook_no_metadata/chefignore +96 -96
  259. data/spec/unit/fixtures/example_cookbook_no_metadata/recipes/default.rb +8 -8
  260. data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/README.md +4 -4
  261. data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/chefignore +96 -96
  262. data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/metadata.rb +8 -8
  263. data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/recipes/default.rb +8 -8
  264. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/Berksfile +3 -3
  265. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/README.md +4 -4
  266. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/chefignore +96 -96
  267. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/metadata.rb +9 -9
  268. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/recipes/default.rb +8 -8
  269. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/.kitchen.yml +16 -16
  270. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/Berksfile +3 -3
  271. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/README.md +4 -4
  272. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/chefignore +96 -96
  273. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/metadata.rb +8 -8
  274. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/recipes/default.rb +8 -8
  275. data/spec/unit/fixtures/local_path_cookbooks/metadata-missing/README.md +2 -2
  276. data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/.kitchen.yml +16 -16
  277. data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/README.md +4 -4
  278. data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/metadata.rb +8 -8
  279. data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/recipes/default.rb +8 -8
  280. data/spec/unit/gemfile_util_spec.rb +41 -0
  281. data/spec/unit/helpers_spec.rb +19 -0
  282. data/spec/unit/pager_spec.rb +119 -119
  283. data/spec/unit/policyfile/chef_repo_cookbook_source_spec.rb +93 -93
  284. data/spec/unit/policyfile/chef_server_cookbook_source_spec.rb +34 -34
  285. data/spec/unit/policyfile/community_cookbook_source_spec.rb +84 -84
  286. data/spec/unit/policyfile/comparison_base_spec.rb +343 -343
  287. data/spec/unit/policyfile/cookbook_location_specification_spec.rb +277 -277
  288. data/spec/unit/policyfile/cookbook_locks_spec.rb +529 -529
  289. data/spec/unit/policyfile/delivery_supermarket_source_spec.rb +130 -130
  290. data/spec/unit/policyfile/differ_spec.rb +687 -687
  291. data/spec/unit/policyfile/lister_spec.rb +272 -272
  292. data/spec/unit/policyfile/null_cookbook_source_spec.rb +35 -35
  293. data/spec/unit/policyfile/read_cookbook_for_compat_mode_upload_spec.rb +92 -92
  294. data/spec/unit/policyfile/reports/install_spec.rb +115 -115
  295. data/spec/unit/policyfile/reports/upload_spec.rb +96 -96
  296. data/spec/unit/policyfile/solution_dependencies_spec.rb +145 -145
  297. data/spec/unit/policyfile/storage_config_spec.rb +172 -172
  298. data/spec/unit/policyfile/undo_record_spec.rb +260 -260
  299. data/spec/unit/policyfile/undo_stack_spec.rb +266 -266
  300. data/spec/unit/policyfile/uploader_spec.rb +410 -410
  301. data/spec/unit/policyfile_demands_spec.rb +1203 -1203
  302. data/spec/unit/policyfile_evaluation_spec.rb +642 -642
  303. data/spec/unit/policyfile_lock_build_spec.rb +1056 -1056
  304. data/spec/unit/policyfile_lock_install_spec.rb +138 -138
  305. data/spec/unit/policyfile_lock_serialization_spec.rb +425 -425
  306. data/spec/unit/policyfile_lock_validation_spec.rb +611 -611
  307. data/spec/unit/policyfile_services/clean_policies_spec.rb +236 -236
  308. data/spec/unit/policyfile_services/clean_policy_cookbooks_spec.rb +275 -275
  309. data/spec/unit/policyfile_services/export_repo_spec.rb +481 -481
  310. data/spec/unit/policyfile_services/install_spec.rb +211 -211
  311. data/spec/unit/policyfile_services/push_archive_spec.rb +378 -378
  312. data/spec/unit/policyfile_services/push_spec.rb +233 -233
  313. data/spec/unit/policyfile_services/rm_policy_group_spec.rb +241 -241
  314. data/spec/unit/policyfile_services/rm_policy_spec.rb +266 -266
  315. data/spec/unit/policyfile_services/show_policy_spec.rb +889 -889
  316. data/spec/unit/policyfile_services/undelete_spec.rb +304 -304
  317. data/spec/unit/policyfile_services/update_attributes_spec.rb +217 -217
  318. data/spec/unit/service_exception_inspectors/base_spec.rb +43 -43
  319. data/spec/unit/service_exception_inspectors/http_spec.rb +140 -140
  320. data/spec/unit/shell_out_spec.rb +34 -34
  321. data/tasks/bin/bundle-platform +6 -2
  322. data/tasks/bin/bundle-platform.bat +0 -0
  323. data/tasks/bin/create-override-gemfile +0 -0
  324. data/tasks/bundle_util.rb +18 -2
  325. data/tasks/gemfile_util.rb +53 -8
  326. data/version_policy.rb +9 -1
  327. data/warning.txt +9 -9
  328. metadata +30 -3
@@ -1,6 +1,6 @@
1
- .chef-repo.txt
2
- ==============
3
-
4
- This file gives ChefDK's generators a hint that you are using a Chef Repo and
5
- this is the root directory of your Chef Repo. ChefDK's generators use this to
6
- generate code that is designed to work with the Chef Repo workflow.
1
+ .chef-repo.txt
2
+ ==============
3
+
4
+ This file gives ChefDK's generators a hint that you are using a Chef Repo and
5
+ this is the root directory of your Chef Repo. ChefDK's generators use this to
6
+ generate code that is designed to work with the Chef Repo workflow.
@@ -1,9 +1,9 @@
1
- Create environments here, in either the Role Ruby DSL (.rb) or JSON (.json) files. To install environments on the server, use knife.
2
-
3
- For example, in this directory you'll find an example environment file called `example.json` which can be uploaded to the Chef Server:
4
-
5
- knife environment from file environments/example.json
6
-
7
- For more information on environments, see the Chef wiki page:
8
-
9
- https://docs.chef.io/environments.html
1
+ Create environments here, in either the Role Ruby DSL (.rb) or JSON (.json) files. To install environments on the server, use knife.
2
+
3
+ For example, in this directory you'll find an example environment file called `example.json` which can be uploaded to the Chef Server:
4
+
5
+ knife environment from file environments/example.json
6
+
7
+ For more information on environments, see the Chef wiki page:
8
+
9
+ https://docs.chef.io/environments.html
@@ -1,13 +1,13 @@
1
- {
2
- "name": "example",
3
- "description": "This is an example environment defined as JSON",
4
- "chef_type": "environment",
5
- "json_class": "Chef::Environment",
6
- "default_attributes": {
7
- },
8
- "override_attributes": {
9
- },
10
- "cookbook_versions": {
11
- "example": "= 1.0.0"
12
- }
1
+ {
2
+ "name": "example",
3
+ "description": "This is an example environment defined as JSON",
4
+ "chef_type": "environment",
5
+ "json_class": "Chef::Environment",
6
+ "default_attributes": {
7
+ },
8
+ "override_attributes": {
9
+ },
10
+ "cookbook_versions": {
11
+ "example": "= 1.0.0"
12
+ }
13
13
  }
@@ -1,24 +1,24 @@
1
- Create policyfiles here. When using a chef-repo, give your policyfiles
2
- the same filename as the name set in the policyfile itself, and use the
3
- `.rb` file extension.
4
-
5
- Compile the policy with a command like this:
6
-
7
- ```
8
- chef install policies/my-app-frontend.rb
9
- ```
10
-
11
- This will create a lockfile `policies/my-app-frontend.lock.json`.
12
-
13
- To update locked dependencies, run `chef update` like this:
14
-
15
- ```
16
- chef update policies/my-app-frontend.rb
17
- ```
18
-
19
- You can upload the policy (with associated cookbooks) to the server
20
- using a command like:
21
-
22
- ```
23
- chef push staging policies/my-app-frontend.rb
24
- ```
1
+ Create policyfiles here. When using a chef-repo, give your policyfiles
2
+ the same filename as the name set in the policyfile itself, and use the
3
+ `.rb` file extension.
4
+
5
+ Compile the policy with a command like this:
6
+
7
+ ```
8
+ chef install policies/my-app-frontend.rb
9
+ ```
10
+
11
+ This will create a lockfile `policies/my-app-frontend.lock.json`.
12
+
13
+ To update locked dependencies, run `chef update` like this:
14
+
15
+ ```
16
+ chef update policies/my-app-frontend.rb
17
+ ```
18
+
19
+ You can upload the policy (with associated cookbooks) to the server
20
+ using a command like:
21
+
22
+ ```
23
+ chef push staging policies/my-app-frontend.rb
24
+ ```
@@ -1,9 +1,9 @@
1
- Create roles here, in either the Role Ruby DSL (.rb) or JSON (.json) files. To install roles on the server, use knife.
2
-
3
- For example, in this directory you'll find an example role file called `example.json` which can be uploaded to the Chef Server:
4
-
5
- knife role from file roles/example.json
6
-
7
- For more information on roles, see the Chef wiki page:
8
-
9
- https://docs.chef.io/essentials_roles.html
1
+ Create roles here, in either the Role Ruby DSL (.rb) or JSON (.json) files. To install roles on the server, use knife.
2
+
3
+ For example, in this directory you'll find an example role file called `example.json` which can be uploaded to the Chef Server:
4
+
5
+ knife role from file roles/example.json
6
+
7
+ For more information on roles, see the Chef wiki page:
8
+
9
+ https://docs.chef.io/essentials_roles.html
@@ -1,13 +1,13 @@
1
- {
2
- "name": "example",
3
- "description": "This is an example role defined as JSON",
4
- "chef_type": "role",
5
- "json_class": "Chef::Role",
6
- "default_attributes": {
7
- },
8
- "override_attributes": {
9
- },
10
- "run_list": [
11
- "recipe[example]"
12
- ]
1
+ {
2
+ "name": "example",
3
+ "description": "This is an example role defined as JSON",
4
+ "chef_type": "role",
5
+ "json_class": "Chef::Role",
6
+ "default_attributes": {
7
+ },
8
+ "override_attributes": {
9
+ },
10
+ "run_list": [
11
+ "recipe[example]"
12
+ ]
13
13
  }
@@ -1,8 +1,8 @@
1
- require 'serverspec'
2
-
3
- if (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM).nil?
4
- set :backend, :exec
5
- else
6
- set :backend, :cmd
7
- set :os, family: 'windows'
8
- end
1
+ require 'serverspec'
2
+
3
+ if (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM).nil?
4
+ set :backend, :exec
5
+ else
6
+ set :backend, :cmd
7
+ set :os, family: 'windows'
8
+ end
@@ -1,2 +1,2 @@
1
- require 'chefspec'
2
- require 'chefspec/berkshelf'
1
+ require 'chefspec'
2
+ require 'chefspec/berkshelf'
@@ -1,2 +1,2 @@
1
- require 'chefspec'
2
- require 'chefspec/policyfile'
1
+ require 'chefspec'
2
+ require 'chefspec/policyfile'
@@ -1,8 +1,8 @@
1
- name 'code_generator'
2
- maintainer 'Chef Software, Inc.'
3
- maintainer_email 'dev@chef.io'
4
- license 'Apache 2 License'
5
- description 'Generates Chef code for Chef DK'
6
- long_description 'Generates Chef code for Chef DK'
7
- version '0.1.0'
8
-
1
+ name 'code_generator'
2
+ maintainer 'Chef Software, Inc.'
3
+ maintainer_email 'dev@chef.io'
4
+ license 'Apache 2 License'
5
+ description 'Generates Chef code for Chef DK'
6
+ long_description 'Generates Chef code for Chef DK'
7
+ version '0.1.0'
8
+
@@ -1,97 +1,97 @@
1
-
2
-
3
- context = ChefDK::Generator.context
4
- app_dir = File.join(context.app_root, context.app_name)
5
- cookbooks_dir = context.cookbook_root
6
- cookbook_dir = File.join(cookbooks_dir, context.cookbook_name)
7
-
8
- # app root dir
9
- directory app_dir
10
-
11
- # Top level files
12
-
13
- # TK
14
- template "#{app_dir}/.kitchen.yml" do
15
- source 'kitchen.yml.erb'
16
- helpers(ChefDK::Generator::TemplateHelper)
17
- end
18
-
19
- directory "#{app_dir}/test/integration/default/serverspec" do
20
- recursive true
21
- end
22
-
23
- directory "#{app_dir}/test/integration/helpers/serverspec" do
24
- recursive true
25
- end
26
-
27
- cookbook_file "#{app_dir}/test/integration/helpers/serverspec/spec_helper.rb" do
28
- source 'serverspec_spec_helper.rb'
29
- action :create_if_missing
30
- end
31
-
32
- template "#{app_dir}/test/integration/default/serverspec/default_spec.rb" do
33
- source 'serverspec_default_spec.rb.erb'
34
- helpers(ChefDK::Generator::TemplateHelper)
35
- action :create_if_missing
36
- end
37
-
38
- # README
39
- template "#{app_dir}/README.md" do
40
- helpers(ChefDK::Generator::TemplateHelper)
41
- end
42
-
43
- # Generated Cookbook:
44
-
45
- # cookbook collection dir
46
- directory cookbooks_dir
47
-
48
- # cookbook collection dir
49
- directory cookbook_dir
50
-
51
- # metadata.rb
52
- template "#{cookbook_dir}/metadata.rb" do
53
- helpers(ChefDK::Generator::TemplateHelper)
54
- end
55
-
56
- # chefignore
57
- cookbook_file "#{cookbook_dir}/chefignore"
58
-
59
- # Berks
60
- cookbook_file "#{cookbook_dir}/Berksfile"
61
-
62
- # Recipes
63
-
64
- directory "#{cookbook_dir}/recipes"
65
-
66
- template "#{cookbook_dir}/recipes/default.rb" do
67
- source "recipe.rb.erb"
68
- helpers(ChefDK::Generator::TemplateHelper)
69
- end
70
-
71
- # Chefspec
72
- directory "#{cookbook_dir}/spec/unit/recipes" do
73
- recursive true
74
- end
75
-
76
- cookbook_file "#{cookbook_dir}/spec/spec_helper.rb" do
77
- action :create_if_missing
78
- end
79
-
80
- template "#{cookbook_dir}/spec/unit/recipes/default_spec.rb" do
81
- source "recipe_spec.rb.erb"
82
- helpers(ChefDK::Generator::TemplateHelper)
83
- action :create_if_missing
84
- end
85
-
86
- # git
87
- if context.have_git
88
- if !context.skip_git_init
89
- execute("initialize-git") do
90
- command("git init .")
91
- cwd app_dir
92
- end
93
- end
94
- cookbook_file "#{app_dir}/.gitignore" do
95
- source "gitignore"
96
- end
97
- end
1
+
2
+
3
+ context = ChefDK::Generator.context
4
+ app_dir = File.join(context.app_root, context.app_name)
5
+ cookbooks_dir = context.cookbook_root
6
+ cookbook_dir = File.join(cookbooks_dir, context.cookbook_name)
7
+
8
+ # app root dir
9
+ directory app_dir
10
+
11
+ # Top level files
12
+
13
+ # TK
14
+ template "#{app_dir}/.kitchen.yml" do
15
+ source 'kitchen.yml.erb'
16
+ helpers(ChefDK::Generator::TemplateHelper)
17
+ end
18
+
19
+ directory "#{app_dir}/test/integration/default/serverspec" do
20
+ recursive true
21
+ end
22
+
23
+ directory "#{app_dir}/test/integration/helpers/serverspec" do
24
+ recursive true
25
+ end
26
+
27
+ cookbook_file "#{app_dir}/test/integration/helpers/serverspec/spec_helper.rb" do
28
+ source 'serverspec_spec_helper.rb'
29
+ action :create_if_missing
30
+ end
31
+
32
+ template "#{app_dir}/test/integration/default/serverspec/default_spec.rb" do
33
+ source 'serverspec_default_spec.rb.erb'
34
+ helpers(ChefDK::Generator::TemplateHelper)
35
+ action :create_if_missing
36
+ end
37
+
38
+ # README
39
+ template "#{app_dir}/README.md" do
40
+ helpers(ChefDK::Generator::TemplateHelper)
41
+ end
42
+
43
+ # Generated Cookbook:
44
+
45
+ # cookbook collection dir
46
+ directory cookbooks_dir
47
+
48
+ # cookbook collection dir
49
+ directory cookbook_dir
50
+
51
+ # metadata.rb
52
+ template "#{cookbook_dir}/metadata.rb" do
53
+ helpers(ChefDK::Generator::TemplateHelper)
54
+ end
55
+
56
+ # chefignore
57
+ cookbook_file "#{cookbook_dir}/chefignore"
58
+
59
+ # Berks
60
+ cookbook_file "#{cookbook_dir}/Berksfile"
61
+
62
+ # Recipes
63
+
64
+ directory "#{cookbook_dir}/recipes"
65
+
66
+ template "#{cookbook_dir}/recipes/default.rb" do
67
+ source "recipe.rb.erb"
68
+ helpers(ChefDK::Generator::TemplateHelper)
69
+ end
70
+
71
+ # Chefspec
72
+ directory "#{cookbook_dir}/spec/unit/recipes" do
73
+ recursive true
74
+ end
75
+
76
+ cookbook_file "#{cookbook_dir}/spec/spec_helper.rb" do
77
+ action :create_if_missing
78
+ end
79
+
80
+ template "#{cookbook_dir}/spec/unit/recipes/default_spec.rb" do
81
+ source "recipe_spec.rb.erb"
82
+ helpers(ChefDK::Generator::TemplateHelper)
83
+ action :create_if_missing
84
+ end
85
+
86
+ # git
87
+ if context.have_git
88
+ if !context.skip_git_init
89
+ execute("initialize-git") do
90
+ command("git init .")
91
+ cwd app_dir
92
+ end
93
+ end
94
+ cookbook_file "#{app_dir}/.gitignore" do
95
+ source "gitignore"
96
+ end
97
+ end
@@ -1,12 +1,12 @@
1
-
2
- context = ChefDK::Generator.context
3
- cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
4
- attribute_dir = File.join(cookbook_dir, "attributes")
5
- attribute_path = File.join(cookbook_dir, "attributes", "#{context.new_file_basename}.rb")
6
-
7
- directory attribute_dir
8
-
9
- template attribute_path do
10
- source "attribute.rb.erb"
11
- helpers(ChefDK::Generator::TemplateHelper)
12
- end
1
+
2
+ context = ChefDK::Generator.context
3
+ cookbook_dir = File.join(context.cookbook_root, context.cookbook_name)
4
+ attribute_dir = File.join(cookbook_dir, "attributes")
5
+ attribute_path = File.join(cookbook_dir, "attributes", "#{context.new_file_basename}.rb")
6
+
7
+ directory attribute_dir
8
+
9
+ template attribute_path do
10
+ source "attribute.rb.erb"
11
+ helpers(ChefDK::Generator::TemplateHelper)
12
+ end
@@ -0,0 +1,88 @@
1
+
2
+ context = ChefDK::Generator.context
3
+ delivery_project_dir = context.delivery_project_dir
4
+ dot_delivery_dir = File.join(delivery_project_dir, ".delivery")
5
+
6
+ directory dot_delivery_dir
7
+
8
+ cookbook_file File.join(dot_delivery_dir, "config.json") do
9
+ source "delivery-config.json"
10
+ end
11
+
12
+ build_cookbook_dir = File.join(dot_delivery_dir, "build-cookbook")
13
+
14
+ # cookbook root dir
15
+ directory build_cookbook_dir
16
+
17
+ # metadata.rb
18
+ template "#{build_cookbook_dir}/metadata.rb" do
19
+ source "build-cookbook/metadata.rb.erb"
20
+ helpers(ChefDK::Generator::TemplateHelper)
21
+ action :create_if_missing
22
+ end
23
+
24
+ # README
25
+ cookbook_file "#{build_cookbook_dir}/README.md" do
26
+ source "build-cookbook/README.md"
27
+ action :create_if_missing
28
+ end
29
+
30
+ # LICENSE
31
+ template "#{build_cookbook_dir}/LICENSE" do
32
+ source "LICENSE.#{context.license}.erb"
33
+ helpers(ChefDK::Generator::TemplateHelper)
34
+ action :create_if_missing
35
+ end
36
+
37
+ # chefignore
38
+ cookbook_file "#{build_cookbook_dir}/chefignore"
39
+
40
+ # Berksfile
41
+ template "#{build_cookbook_dir}/Berksfile" do
42
+ source "build-cookbook/Berksfile.erb"
43
+ helpers(ChefDK::Generator::TemplateHelper)
44
+ action :create_if_missing
45
+ end
46
+
47
+ # Recipes
48
+ directory "#{build_cookbook_dir}/recipes"
49
+
50
+ %w(default deploy functional lint provision publish quality security smoke syntax unit).each do |phase|
51
+ template "#{build_cookbook_dir}/recipes/#{phase}.rb" do
52
+ source 'build-cookbook/recipe.rb.erb'
53
+ helpers(ChefDK::Generator::TemplateHelper)
54
+ variables phase: phase
55
+ action :create_if_missing
56
+ end
57
+ end
58
+
59
+ # Test Kitchen build node
60
+ cookbook_file "#{build_cookbook_dir}/.kitchen.yml" do
61
+ source "build-cookbook/.kitchen.yml"
62
+ end
63
+
64
+ directory "#{build_cookbook_dir}/data_bags/keys" do
65
+ recursive true
66
+ end
67
+
68
+ file "#{build_cookbook_dir}/data_bags/keys/delivery_builder_keys.json" do
69
+ content '{"id": "delivery_builder_keys"}'
70
+ end
71
+
72
+ directory "#{build_cookbook_dir}/secrets"
73
+
74
+ file "#{build_cookbook_dir}/secrets/fakey-mcfakerton"
75
+
76
+ directory "#{build_cookbook_dir}/test/fixtures/cookbooks/test/recipes" do
77
+ recursive true
78
+ end
79
+
80
+ file "#{build_cookbook_dir}/test/fixtures/cookbooks/test/metadata.rb" do
81
+ content %(name 'test'
82
+ version '0.1.0')
83
+ end
84
+
85
+ cookbook_file "#{build_cookbook_dir}/test/fixtures/cookbooks/test/recipes/default.rb" do
86
+ source "build-cookbook/test-fixture-recipe.rb"
87
+ end
88
+