chef-dk 0.9.0 → 0.10.0

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 (306) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +190 -190
  3. data/Gemfile +26 -26
  4. data/LICENSE +201 -201
  5. data/README.md +292 -276
  6. data/Rakefile +18 -18
  7. data/bin/chef +25 -25
  8. data/chef-dk.gemspec +62 -0
  9. data/lib/chef-dk.rb +19 -19
  10. data/lib/chef-dk/authenticated_http.rb +40 -40
  11. data/lib/chef-dk/builtin_commands.rb +60 -60
  12. data/lib/chef-dk/chef_runner.rb +98 -98
  13. data/lib/chef-dk/cli.rb +200 -200
  14. data/lib/chef-dk/command/base.rb +79 -79
  15. data/lib/chef-dk/command/clean_policy_cookbooks.rb +116 -116
  16. data/lib/chef-dk/command/clean_policy_revisions.rb +113 -113
  17. data/lib/chef-dk/command/delete_policy.rb +122 -122
  18. data/lib/chef-dk/command/delete_policy_group.rb +122 -122
  19. data/lib/chef-dk/command/diff.rb +316 -316
  20. data/lib/chef-dk/command/env.rb +90 -90
  21. data/lib/chef-dk/command/exec.rb +45 -45
  22. data/lib/chef-dk/command/export.rb +151 -151
  23. data/lib/chef-dk/command/gem.rb +47 -47
  24. data/lib/chef-dk/command/generate.rb +120 -120
  25. data/lib/chef-dk/command/generator_commands.rb +80 -80
  26. data/lib/chef-dk/command/generator_commands/app.rb +107 -107
  27. data/lib/chef-dk/command/generator_commands/attribute.rb +37 -37
  28. data/lib/chef-dk/command/generator_commands/base.rb +121 -121
  29. data/lib/chef-dk/command/generator_commands/cookbook.rb +153 -119
  30. data/lib/chef-dk/command/generator_commands/cookbook_code_file.rb +100 -100
  31. data/lib/chef-dk/command/generator_commands/cookbook_file.rb +45 -45
  32. data/lib/chef-dk/command/generator_commands/generator_generator.rb +177 -177
  33. data/lib/chef-dk/command/generator_commands/lwrp.rb +36 -36
  34. data/lib/chef-dk/command/generator_commands/policyfile.rb +127 -86
  35. data/lib/chef-dk/command/generator_commands/recipe.rb +36 -36
  36. data/lib/chef-dk/command/generator_commands/repo.rb +125 -96
  37. data/lib/chef-dk/command/generator_commands/template.rb +46 -46
  38. data/lib/chef-dk/command/install.rb +121 -121
  39. data/lib/chef-dk/command/provision.rb +438 -438
  40. data/lib/chef-dk/command/push.rb +118 -118
  41. data/lib/chef-dk/command/push_archive.rb +126 -126
  42. data/lib/chef-dk/command/shell_init.rb +180 -180
  43. data/lib/chef-dk/command/show_policy.rb +165 -165
  44. data/lib/chef-dk/command/undelete.rb +155 -155
  45. data/lib/chef-dk/command/update.rb +129 -129
  46. data/lib/chef-dk/command/verify.rb +534 -490
  47. data/lib/chef-dk/commands_map.rb +115 -115
  48. data/lib/chef-dk/completions/bash.sh.erb +5 -5
  49. data/lib/chef-dk/completions/chef.fish.erb +10 -10
  50. data/lib/chef-dk/completions/zsh.zsh.erb +21 -21
  51. data/lib/chef-dk/component_test.rb +173 -171
  52. data/lib/chef-dk/configurable.rb +57 -57
  53. data/lib/chef-dk/cookbook_metadata.rb +45 -45
  54. data/lib/chef-dk/cookbook_omnifetch.rb +32 -32
  55. data/lib/chef-dk/cookbook_profiler/git.rb +151 -151
  56. data/lib/chef-dk/cookbook_profiler/identifiers.rb +72 -72
  57. data/lib/chef-dk/cookbook_profiler/null_scm.rb +32 -32
  58. data/lib/chef-dk/exceptions.rb +126 -113
  59. data/lib/chef-dk/generator.rb +163 -163
  60. data/lib/chef-dk/helpers.rb +159 -159
  61. data/lib/chef-dk/pager.rb +106 -106
  62. data/lib/chef-dk/policyfile/chef_repo_cookbook_source.rb +138 -122
  63. data/lib/chef-dk/policyfile/chef_server_cookbook_source.rb +54 -54
  64. data/lib/chef-dk/policyfile/community_cookbook_source.rb +97 -82
  65. data/lib/chef-dk/policyfile/comparison_base.rb +124 -124
  66. data/lib/chef-dk/policyfile/cookbook_location_specification.rb +141 -133
  67. data/lib/chef-dk/policyfile/cookbook_locks.rb +466 -466
  68. data/lib/chef-dk/policyfile/cookbook_sources.rb +22 -21
  69. data/lib/chef-dk/policyfile/delivery_supermarket_source.rb +90 -0
  70. data/lib/chef-dk/policyfile/differ.rb +266 -266
  71. data/lib/chef-dk/policyfile/dsl.rb +223 -197
  72. data/lib/chef-dk/policyfile/lister.rb +232 -232
  73. data/lib/chef-dk/policyfile/null_cookbook_source.rb +45 -45
  74. data/lib/chef-dk/policyfile/read_cookbook_for_compat_mode_upload.rb +124 -124
  75. data/lib/chef-dk/policyfile/reports/install.rb +70 -70
  76. data/lib/chef-dk/policyfile/reports/table_printer.rb +58 -58
  77. data/lib/chef-dk/policyfile/reports/upload.rb +70 -70
  78. data/lib/chef-dk/policyfile/solution_dependencies.rb +298 -298
  79. data/lib/chef-dk/policyfile/storage_config.rb +100 -100
  80. data/lib/chef-dk/policyfile/undo_record.rb +142 -142
  81. data/lib/chef-dk/policyfile/undo_stack.rb +130 -130
  82. data/lib/chef-dk/policyfile/uploader.rb +213 -213
  83. data/lib/chef-dk/policyfile_compiler.rb +380 -322
  84. data/lib/chef-dk/policyfile_lock.rb +552 -552
  85. data/lib/chef-dk/policyfile_services/clean_policies.rb +95 -95
  86. data/lib/chef-dk/policyfile_services/clean_policy_cookbooks.rb +125 -125
  87. data/lib/chef-dk/policyfile_services/export_repo.rb +309 -309
  88. data/lib/chef-dk/policyfile_services/install.rb +125 -125
  89. data/lib/chef-dk/policyfile_services/push.rb +114 -114
  90. data/lib/chef-dk/policyfile_services/push_archive.rb +173 -173
  91. data/lib/chef-dk/policyfile_services/rm_policy.rb +142 -142
  92. data/lib/chef-dk/policyfile_services/rm_policy_group.rb +86 -86
  93. data/lib/chef-dk/policyfile_services/show_policy.rb +237 -237
  94. data/lib/chef-dk/policyfile_services/undelete.rb +108 -108
  95. data/lib/chef-dk/policyfile_services/update_attributes.rb +104 -104
  96. data/lib/chef-dk/service_exception_inspectors.rb +25 -25
  97. data/lib/chef-dk/service_exception_inspectors/base.rb +40 -40
  98. data/lib/chef-dk/service_exception_inspectors/http.rb +121 -121
  99. data/lib/chef-dk/service_exceptions.rb +143 -143
  100. data/lib/chef-dk/shell_out.rb +36 -36
  101. data/lib/chef-dk/skeletons/code_generator/files/default/Berksfile +3 -3
  102. data/lib/chef-dk/skeletons/code_generator/files/default/chefignore +100 -100
  103. data/lib/chef-dk/skeletons/code_generator/files/default/cookbook_readmes/README-policy.md +9 -9
  104. data/lib/chef-dk/skeletons/code_generator/files/default/cookbook_readmes/README.md +54 -54
  105. data/lib/chef-dk/skeletons/code_generator/files/default/gitignore +16 -16
  106. data/lib/chef-dk/skeletons/code_generator/files/default/repo/README.md +28 -28
  107. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/README.md +27 -27
  108. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/attributes/default.rb +7 -7
  109. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/metadata.rb +3 -3
  110. data/lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb +8 -8
  111. data/lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/README.md +58 -58
  112. data/lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/example/example_item.json +3 -3
  113. data/lib/chef-dk/skeletons/code_generator/files/default/repo/dot-chef-repo.txt +6 -0
  114. data/lib/chef-dk/skeletons/code_generator/files/default/repo/environments/README.md +9 -9
  115. data/lib/chef-dk/skeletons/code_generator/files/default/repo/environments/example.json +12 -12
  116. data/lib/chef-dk/skeletons/code_generator/files/default/repo/policies/README.md +24 -0
  117. data/lib/chef-dk/skeletons/code_generator/files/default/repo/roles/README.md +9 -9
  118. data/lib/chef-dk/skeletons/code_generator/files/default/repo/roles/example.json +12 -12
  119. data/lib/chef-dk/skeletons/code_generator/files/default/serverspec_spec_helper.rb +8 -8
  120. data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper.rb +2 -2
  121. data/lib/chef-dk/skeletons/code_generator/files/default/spec_helper_policyfile.rb +2 -0
  122. data/lib/chef-dk/skeletons/code_generator/metadata.rb +8 -8
  123. data/lib/chef-dk/skeletons/code_generator/recipes/app.rb +97 -97
  124. data/lib/chef-dk/skeletons/code_generator/recipes/attribute.rb +12 -12
  125. data/lib/chef-dk/skeletons/code_generator/recipes/cookbook.rb +117 -104
  126. data/lib/chef-dk/skeletons/code_generator/recipes/cookbook_file.rb +24 -24
  127. data/lib/chef-dk/skeletons/code_generator/recipes/lwrp.rb +23 -23
  128. data/lib/chef-dk/skeletons/code_generator/recipes/policyfile.rb +8 -8
  129. data/lib/chef-dk/skeletons/code_generator/recipes/recipe.rb +27 -27
  130. data/lib/chef-dk/skeletons/code_generator/recipes/repo.rb +67 -48
  131. data/lib/chef-dk/skeletons/code_generator/recipes/template.rb +32 -32
  132. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.all_rights.erb +3 -3
  133. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.apache2.erb +201 -201
  134. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.gplv2.erb +339 -339
  135. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.gplv3.erb +674 -674
  136. data/lib/chef-dk/skeletons/code_generator/templates/default/LICENSE.mit.erb +21 -21
  137. data/lib/chef-dk/skeletons/code_generator/templates/default/Policyfile.rb.erb +25 -20
  138. data/lib/chef-dk/skeletons/code_generator/templates/default/README.md.erb +4 -4
  139. data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen.yml.erb +21 -16
  140. data/lib/chef-dk/skeletons/code_generator/templates/default/kitchen_policyfile.yml.erb +32 -27
  141. data/lib/chef-dk/skeletons/code_generator/templates/default/metadata.rb.erb +7 -7
  142. data/lib/chef-dk/skeletons/code_generator/templates/default/recipe.rb.erb +5 -5
  143. data/lib/chef-dk/skeletons/code_generator/templates/default/recipe_spec.rb.erb +20 -20
  144. data/lib/chef-dk/skeletons/code_generator/templates/default/repo/gitignore.erb +11 -11
  145. data/lib/chef-dk/skeletons/code_generator/templates/default/serverspec_default_spec.rb.erb +9 -9
  146. data/lib/chef-dk/ui.rb +58 -58
  147. data/lib/chef-dk/version.rb +20 -20
  148. data/lib/kitchen/provisioner/policyfile_zero.rb +189 -193
  149. data/spec/shared/a_file_generator.rb +125 -125
  150. data/spec/shared/a_generated_file.rb +12 -12
  151. data/spec/shared/command_with_ui_object.rb +11 -11
  152. data/spec/shared/custom_generator_cookbook.rb +117 -117
  153. data/spec/shared/fixture_cookbook_checksums.rb +47 -47
  154. data/spec/shared/setup_git_cookbooks.rb +53 -53
  155. data/spec/spec_helper.rb +50 -49
  156. data/spec/test_helpers.rb +84 -84
  157. data/spec/unit/chef_runner_spec.rb +111 -111
  158. data/spec/unit/cli_spec.rb +357 -357
  159. data/spec/unit/command/base_spec.rb +169 -169
  160. data/spec/unit/command/clean_policy_cookbooks_spec.rb +181 -181
  161. data/spec/unit/command/clean_policy_revisions_spec.rb +181 -181
  162. data/spec/unit/command/delete_policy_group_spec.rb +207 -207
  163. data/spec/unit/command/delete_policy_spec.rb +207 -207
  164. data/spec/unit/command/diff_spec.rb +312 -312
  165. data/spec/unit/command/env_spec.rb +52 -52
  166. data/spec/unit/command/exec_spec.rb +179 -179
  167. data/spec/unit/command/export_spec.rb +189 -189
  168. data/spec/unit/command/generate_spec.rb +142 -142
  169. data/spec/unit/command/generator_commands/app_spec.rb +169 -169
  170. data/spec/unit/command/generator_commands/attribute_spec.rb +32 -32
  171. data/spec/unit/command/generator_commands/cookbook_file_spec.rb +32 -32
  172. data/spec/unit/command/generator_commands/cookbook_spec.rb +450 -320
  173. data/spec/unit/command/generator_commands/generator_generator_spec.rb +229 -229
  174. data/spec/unit/command/generator_commands/lwrp_spec.rb +32 -32
  175. data/spec/unit/command/generator_commands/policyfile_spec.rb +225 -125
  176. data/spec/unit/command/generator_commands/recipe_spec.rb +34 -34
  177. data/spec/unit/command/generator_commands/repo_spec.rb +367 -283
  178. data/spec/unit/command/generator_commands/template_spec.rb +32 -32
  179. data/spec/unit/command/install_spec.rb +179 -179
  180. data/spec/unit/command/provision_spec.rb +592 -592
  181. data/spec/unit/command/push_archive_spec.rb +153 -153
  182. data/spec/unit/command/push_spec.rb +199 -199
  183. data/spec/unit/command/shell_init_spec.rb +329 -329
  184. data/spec/unit/command/show_policy_spec.rb +235 -235
  185. data/spec/unit/command/undelete_spec.rb +246 -246
  186. data/spec/unit/command/update_spec.rb +251 -251
  187. data/spec/unit/command/verify_spec.rb +325 -323
  188. data/spec/unit/commands_map_spec.rb +57 -57
  189. data/spec/unit/component_test_spec.rb +126 -126
  190. data/spec/unit/cookbook_metadata_spec.rb +98 -98
  191. data/spec/unit/cookbook_profiler/git_spec.rb +176 -176
  192. data/spec/unit/cookbook_profiler/identifiers_spec.rb +83 -83
  193. data/spec/unit/fixtures/chef-runner-cookbooks/test_cookbook/recipes/recipe_one.rb +9 -9
  194. data/spec/unit/fixtures/chef-runner-cookbooks/test_cookbook/recipes/recipe_two.rb +9 -9
  195. data/spec/unit/fixtures/command/cli_test_command.rb +26 -26
  196. data/spec/unit/fixtures/command/explicit_path_example.rb +7 -7
  197. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/.kitchen.yml +16 -16
  198. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/Berksfile +3 -3
  199. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/README.md +4 -4
  200. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/chefignore +96 -96
  201. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/metadata.rb +8 -8
  202. data/spec/unit/fixtures/cookbook_cache/baz-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/recipes/default.rb +8 -8
  203. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/.kitchen.yml +16 -16
  204. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/Berksfile +3 -3
  205. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/README.md +4 -4
  206. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/chefignore +96 -96
  207. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/metadata.rb +8 -8
  208. data/spec/unit/fixtures/cookbook_cache/dep_of_bar-1.2.3/recipes/default.rb +8 -8
  209. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/.kitchen.yml +16 -16
  210. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/Berksfile +3 -3
  211. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/README.md +4 -4
  212. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/chefignore +96 -96
  213. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/metadata.rb +8 -8
  214. data/spec/unit/fixtures/cookbook_cache/foo-1.0.0/recipes/default.rb +8 -8
  215. data/spec/unit/fixtures/cookbooks_api/pruned_small_universe.json +1321 -1321
  216. data/spec/unit/fixtures/cookbooks_api/small_universe.json +2987 -2987
  217. data/spec/unit/fixtures/cookbooks_api/universe.json +1 -1
  218. data/spec/unit/fixtures/cookbooks_api/update_fixtures.rb +36 -36
  219. data/spec/unit/fixtures/dev_cookbooks/README.md +16 -16
  220. data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/berkshelf/integration_test +2 -2
  221. data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/berkshelf/verify_me +5 -5
  222. data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/chef/verify_me +3 -3
  223. data/spec/unit/fixtures/eg_omnibus_dir/valid/embedded/apps/test-kitchen/verify_me +2 -2
  224. data/spec/unit/fixtures/example_cookbook/.gitignore +17 -17
  225. data/spec/unit/fixtures/example_cookbook/.kitchen.yml +16 -16
  226. data/spec/unit/fixtures/example_cookbook/Berksfile +3 -3
  227. data/spec/unit/fixtures/example_cookbook/README.md +4 -4
  228. data/spec/unit/fixtures/example_cookbook/chefignore +96 -96
  229. data/spec/unit/fixtures/example_cookbook/metadata.rb +8 -8
  230. data/spec/unit/fixtures/example_cookbook/recipes/default.rb +8 -8
  231. data/spec/unit/fixtures/example_cookbook_metadata_json_only/.gitignore +17 -17
  232. data/spec/unit/fixtures/example_cookbook_metadata_json_only/.kitchen.yml +16 -16
  233. data/spec/unit/fixtures/example_cookbook_metadata_json_only/Berksfile +3 -3
  234. data/spec/unit/fixtures/example_cookbook_metadata_json_only/README.md +4 -4
  235. data/spec/unit/fixtures/example_cookbook_metadata_json_only/chefignore +96 -96
  236. data/spec/unit/fixtures/example_cookbook_metadata_json_only/metadata.json +5 -5
  237. data/spec/unit/fixtures/example_cookbook_metadata_json_only/recipes/default.rb +8 -8
  238. data/spec/unit/fixtures/example_cookbook_no_metadata/.gitignore +17 -17
  239. data/spec/unit/fixtures/example_cookbook_no_metadata/.kitchen.yml +16 -16
  240. data/spec/unit/fixtures/example_cookbook_no_metadata/Berksfile +3 -3
  241. data/spec/unit/fixtures/example_cookbook_no_metadata/README.md +4 -4
  242. data/spec/unit/fixtures/example_cookbook_no_metadata/chefignore +96 -96
  243. data/spec/unit/fixtures/example_cookbook_no_metadata/recipes/default.rb +8 -8
  244. data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/README.md +4 -4
  245. data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/chefignore +96 -96
  246. data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/metadata.rb +8 -8
  247. data/spec/unit/fixtures/local_path_cookbooks/another-local-cookbook/recipes/default.rb +8 -8
  248. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/Berksfile +3 -3
  249. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/README.md +4 -4
  250. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/chefignore +96 -96
  251. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/metadata.rb +9 -9
  252. data/spec/unit/fixtures/local_path_cookbooks/cookbook-with-a-dep/recipes/default.rb +8 -8
  253. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/.kitchen.yml +16 -16
  254. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/Berksfile +3 -3
  255. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/README.md +4 -4
  256. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/chefignore +96 -96
  257. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/metadata.rb +8 -8
  258. data/spec/unit/fixtures/local_path_cookbooks/local-cookbook/recipes/default.rb +8 -8
  259. data/spec/unit/fixtures/local_path_cookbooks/metadata-missing/README.md +2 -2
  260. data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/.kitchen.yml +16 -16
  261. data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/README.md +4 -4
  262. data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/metadata.rb +8 -8
  263. data/spec/unit/fixtures/local_path_cookbooks/noignore-f59ee7a5bca6a4e606b67f7f856b768d847c39bb/recipes/default.rb +8 -8
  264. data/spec/unit/generator_spec.rb +120 -120
  265. data/spec/unit/helpers_spec.rb +92 -92
  266. data/spec/unit/pager_spec.rb +119 -119
  267. data/spec/unit/policyfile/chef_repo_cookbook_source_spec.rb +93 -66
  268. data/spec/unit/policyfile/chef_server_cookbook_source_spec.rb +34 -34
  269. data/spec/unit/policyfile/community_cookbook_source_spec.rb +84 -51
  270. data/spec/unit/policyfile/comparison_base_spec.rb +343 -343
  271. data/spec/unit/policyfile/cookbook_location_specification_spec.rb +257 -252
  272. data/spec/unit/policyfile/cookbook_locks_spec.rb +529 -529
  273. data/spec/unit/policyfile/delivery_supermarket_source_spec.rb +130 -0
  274. data/spec/unit/policyfile/differ_spec.rb +687 -687
  275. data/spec/unit/policyfile/lister_spec.rb +272 -272
  276. data/spec/unit/policyfile/null_cookbook_source_spec.rb +35 -35
  277. data/spec/unit/policyfile/read_cookbook_for_compat_mode_upload_spec.rb +92 -92
  278. data/spec/unit/policyfile/reports/install_spec.rb +115 -115
  279. data/spec/unit/policyfile/reports/upload_spec.rb +96 -96
  280. data/spec/unit/policyfile/solution_dependencies_spec.rb +145 -145
  281. data/spec/unit/policyfile/storage_config_spec.rb +172 -172
  282. data/spec/unit/policyfile/undo_record_spec.rb +260 -260
  283. data/spec/unit/policyfile/undo_stack_spec.rb +266 -266
  284. data/spec/unit/policyfile/uploader_spec.rb +410 -410
  285. data/spec/unit/policyfile_demands_spec.rb +997 -876
  286. data/spec/unit/policyfile_evaluation_spec.rb +557 -441
  287. data/spec/unit/policyfile_lock_build_spec.rb +1056 -1056
  288. data/spec/unit/policyfile_lock_install_spec.rb +138 -138
  289. data/spec/unit/policyfile_lock_serialization_spec.rb +425 -425
  290. data/spec/unit/policyfile_lock_validation_spec.rb +611 -611
  291. data/spec/unit/policyfile_services/clean_policies_spec.rb +236 -236
  292. data/spec/unit/policyfile_services/clean_policy_cookbooks_spec.rb +275 -275
  293. data/spec/unit/policyfile_services/export_repo_spec.rb +439 -439
  294. data/spec/unit/policyfile_services/install_spec.rb +191 -191
  295. data/spec/unit/policyfile_services/push_archive_spec.rb +345 -345
  296. data/spec/unit/policyfile_services/push_spec.rb +233 -233
  297. data/spec/unit/policyfile_services/rm_policy_group_spec.rb +241 -241
  298. data/spec/unit/policyfile_services/rm_policy_spec.rb +266 -266
  299. data/spec/unit/policyfile_services/show_policy_spec.rb +889 -889
  300. data/spec/unit/policyfile_services/undelete_spec.rb +304 -304
  301. data/spec/unit/policyfile_services/update_attributes_spec.rb +217 -217
  302. data/spec/unit/service_exception_inspectors/base_spec.rb +43 -43
  303. data/spec/unit/service_exception_inspectors/http_spec.rb +140 -140
  304. data/spec/unit/shell_out_spec.rb +34 -34
  305. data/warning.txt +9 -0
  306. metadata +18 -5
@@ -1,140 +1,140 @@
1
- #
2
- # Copyright:: Copyright (c) 2014 Chef Software Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- require 'spec_helper'
19
- require 'net/http'
20
- require 'chef/monkey_patches/net_http'
21
- require 'chef-dk/service_exception_inspectors/http'
22
-
23
- describe ChefDK::ServiceExceptionInspectors::HTTP do
24
-
25
- let(:message) { "something went wrong, oops" }
26
-
27
- let(:response_body) { "" }
28
-
29
- let(:request_headers) do
30
- {
31
- "content-type" => "application/json",
32
- "accept" => "application/json"
33
- }
34
- end
35
-
36
- let(:request_body) { "this is the request" }
37
-
38
- let(:request) do
39
- r = instance_double(Net::HTTP::Post,
40
- method: "POST",
41
- uri: nil,
42
- path: "/organizations/chef-oss-dev/cookbooks",
43
- body: request_body)
44
- stub = allow(r).to(receive(:each_header))
45
- request_headers.each { |k,v| stub.and_yield(k,v) }
46
- r
47
- end
48
-
49
- let(:response_headers) do
50
- {
51
- "server" => "ngx_openresty",
52
- "date" => "Wed, 29 Oct 2014 22:27:47 GMT"
53
- }
54
- end
55
-
56
- let(:response) do
57
- r = instance_double(Net::HTTPClientError,
58
- code: "400",
59
- message: "Bad Request",
60
- body: response_body)
61
- stub = allow(r).to(receive(:each_header))
62
- response_headers.each { |k,v| stub.and_yield(k,v) }
63
- r
64
- end
65
-
66
- let(:exception) do
67
- Net::HTTPServerException.new(message, response).tap {|e| e.chef_rest_request = request }
68
- end
69
-
70
-
71
- subject(:inspector) { described_class.new(exception) }
72
-
73
- it "has an exception" do
74
- expect(inspector.exception).to eq(exception)
75
- end
76
-
77
- context "with a string response body" do
78
-
79
- let(:response_body) { "No sir, I didn't like it" }
80
-
81
- it "gives a customized exception message including the server response" do
82
- expect(inspector.message).to eq("HTTP 400 Bad Request: No sir, I didn't like it")
83
- end
84
-
85
- end
86
-
87
- context "with an empty response body" do
88
-
89
- let(:response_body) { "" }
90
-
91
- it "gives a customized exception message including the server response" do
92
- expect(inspector.message).to eq("HTTP 400 Bad Request: (No explanation provided by server)")
93
- end
94
-
95
- end
96
-
97
- context "with a JSON response body in the standard Chef Server format" do
98
-
99
- let(:response_body) { %q[{"error":["Field 'name' invalid"]}] }
100
-
101
- it "gives a customized exception message including the server response" do
102
- expect(inspector.message).to eq("HTTP 400 Bad Request: Field 'name' invalid")
103
- end
104
-
105
- end
106
-
107
- describe "showing the request and response in extended error info" do
108
-
109
- let(:response_body) { "this is the response" }
110
-
111
- it "shows the request in a format similar to HTTP messages" do
112
- expected_request_string = <<-E
113
- --- REQUEST DATA ----
114
- POST /organizations/chef-oss-dev/cookbooks
115
- content-type: application/json
116
- accept: application/json
117
-
118
- this is the request
119
-
120
- E
121
- expect(inspector.extended_error_info).to include(expected_request_string)
122
- end
123
-
124
- it "shows the response in a format similar to HTTP messages" do
125
- expected_response_string = <<-E
126
- --- RESPONSE DATA ---
127
- 400 Bad Request
128
- server: ngx_openresty
129
- date: Wed, 29 Oct 2014 22:27:47 GMT
130
-
131
-
132
- this is the response
133
- E
134
- expect(inspector.extended_error_info).to include(expected_response_string)
135
- end
136
-
137
- end
138
-
139
- end
140
-
1
+ #
2
+ # Copyright:: Copyright (c) 2014 Chef Software Inc.
3
+ # License:: Apache License, Version 2.0
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+
18
+ require 'spec_helper'
19
+ require 'net/http'
20
+ require 'chef/monkey_patches/net_http'
21
+ require 'chef-dk/service_exception_inspectors/http'
22
+
23
+ describe ChefDK::ServiceExceptionInspectors::HTTP do
24
+
25
+ let(:message) { "something went wrong, oops" }
26
+
27
+ let(:response_body) { "" }
28
+
29
+ let(:request_headers) do
30
+ {
31
+ "content-type" => "application/json",
32
+ "accept" => "application/json"
33
+ }
34
+ end
35
+
36
+ let(:request_body) { "this is the request" }
37
+
38
+ let(:request) do
39
+ r = instance_double(Net::HTTP::Post,
40
+ method: "POST",
41
+ uri: nil,
42
+ path: "/organizations/chef-oss-dev/cookbooks",
43
+ body: request_body)
44
+ stub = allow(r).to(receive(:each_header))
45
+ request_headers.each { |k,v| stub.and_yield(k,v) }
46
+ r
47
+ end
48
+
49
+ let(:response_headers) do
50
+ {
51
+ "server" => "ngx_openresty",
52
+ "date" => "Wed, 29 Oct 2014 22:27:47 GMT"
53
+ }
54
+ end
55
+
56
+ let(:response) do
57
+ r = instance_double(Net::HTTPClientError,
58
+ code: "400",
59
+ message: "Bad Request",
60
+ body: response_body)
61
+ stub = allow(r).to(receive(:each_header))
62
+ response_headers.each { |k,v| stub.and_yield(k,v) }
63
+ r
64
+ end
65
+
66
+ let(:exception) do
67
+ Net::HTTPServerException.new(message, response).tap {|e| e.chef_rest_request = request }
68
+ end
69
+
70
+
71
+ subject(:inspector) { described_class.new(exception) }
72
+
73
+ it "has an exception" do
74
+ expect(inspector.exception).to eq(exception)
75
+ end
76
+
77
+ context "with a string response body" do
78
+
79
+ let(:response_body) { "No sir, I didn't like it" }
80
+
81
+ it "gives a customized exception message including the server response" do
82
+ expect(inspector.message).to eq("HTTP 400 Bad Request: No sir, I didn't like it")
83
+ end
84
+
85
+ end
86
+
87
+ context "with an empty response body" do
88
+
89
+ let(:response_body) { "" }
90
+
91
+ it "gives a customized exception message including the server response" do
92
+ expect(inspector.message).to eq("HTTP 400 Bad Request: (No explanation provided by server)")
93
+ end
94
+
95
+ end
96
+
97
+ context "with a JSON response body in the standard Chef Server format" do
98
+
99
+ let(:response_body) { %q[{"error":["Field 'name' invalid"]}] }
100
+
101
+ it "gives a customized exception message including the server response" do
102
+ expect(inspector.message).to eq("HTTP 400 Bad Request: Field 'name' invalid")
103
+ end
104
+
105
+ end
106
+
107
+ describe "showing the request and response in extended error info" do
108
+
109
+ let(:response_body) { "this is the response" }
110
+
111
+ it "shows the request in a format similar to HTTP messages" do
112
+ expected_request_string = <<-E
113
+ --- REQUEST DATA ----
114
+ POST /organizations/chef-oss-dev/cookbooks
115
+ content-type: application/json
116
+ accept: application/json
117
+
118
+ this is the request
119
+
120
+ E
121
+ expect(inspector.extended_error_info).to include(expected_request_string)
122
+ end
123
+
124
+ it "shows the response in a format similar to HTTP messages" do
125
+ expected_response_string = <<-E
126
+ --- RESPONSE DATA ---
127
+ 400 Bad Request
128
+ server: ngx_openresty
129
+ date: Wed, 29 Oct 2014 22:27:47 GMT
130
+
131
+
132
+ this is the response
133
+ E
134
+ expect(inspector.extended_error_info).to include(expected_response_string)
135
+ end
136
+
137
+ end
138
+
139
+ end
140
+
@@ -1,34 +1,34 @@
1
- #
2
- # Copyright:: Copyright (c) 2014 Chef Software Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- require 'spec_helper'
19
- require 'chef-dk/shell_out'
20
-
21
- describe ChefDK::ShellOut do
22
-
23
- describe "providing the API expected by CookbookOmnifetch" do
24
-
25
- it "provides a `shell_out` class method" do
26
- expect(described_class).to respond_to(:shell_out)
27
- end
28
-
29
- it "responds to #success?" do
30
- expect(described_class.new("echo 'foo'")).to respond_to(:success?)
31
- end
32
-
33
- end
34
- end
1
+ #
2
+ # Copyright:: Copyright (c) 2014 Chef Software Inc.
3
+ # License:: Apache License, Version 2.0
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+
18
+ require 'spec_helper'
19
+ require 'chef-dk/shell_out'
20
+
21
+ describe ChefDK::ShellOut do
22
+
23
+ describe "providing the API expected by CookbookOmnifetch" do
24
+
25
+ it "provides a `shell_out` class method" do
26
+ expect(described_class).to respond_to(:shell_out)
27
+ end
28
+
29
+ it "responds to #success?" do
30
+ expect(described_class.new("echo 'foo'")).to respond_to(:success?)
31
+ end
32
+
33
+ end
34
+ end
@@ -0,0 +1,9 @@
1
+ Thanks for installing chef-dk! Unfortunately, since Chef Development Kit is
2
+ supposed to be installed as the omnibus binaries in order to support various
3
+ platforms, this is not the official way to install chef-dk.
4
+
5
+ Please download the latest version for your operating system from the URL below,
6
+ and make sure you have uninstalled your chef-dk gem to avoid conflicts:
7
+
8
+ https://downloads.chef.io/chef-dk/
9
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef-dk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel DeLeo
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-10-20 00:00:00.000000000 Z
13
+ date: 2015-11-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: mixlib-cli
@@ -121,6 +121,9 @@ dependencies:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
123
  version: '0.2'
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: 0.2.2
124
127
  type: :runtime
125
128
  prerelease: false
126
129
  version_requirements: !ruby/object:Gem::Requirement
@@ -128,6 +131,9 @@ dependencies:
128
131
  - - "~>"
129
132
  - !ruby/object:Gem::Version
130
133
  version: '0.2'
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: 0.2.2
131
137
  - !ruby/object:Gem::Dependency
132
138
  name: diff-lcs
133
139
  requirement: !ruby/object:Gem::Requirement
@@ -228,6 +234,7 @@ files:
228
234
  - README.md
229
235
  - Rakefile
230
236
  - bin/chef
237
+ - chef-dk.gemspec
231
238
  - lib/chef-dk.rb
232
239
  - lib/chef-dk/authenticated_http.rb
233
240
  - lib/chef-dk/builtin_commands.rb
@@ -288,6 +295,7 @@ files:
288
295
  - lib/chef-dk/policyfile/cookbook_location_specification.rb
289
296
  - lib/chef-dk/policyfile/cookbook_locks.rb
290
297
  - lib/chef-dk/policyfile/cookbook_sources.rb
298
+ - lib/chef-dk/policyfile/delivery_supermarket_source.rb
291
299
  - lib/chef-dk/policyfile/differ.rb
292
300
  - lib/chef-dk/policyfile/dsl.rb
293
301
  - lib/chef-dk/policyfile/lister.rb
@@ -331,12 +339,15 @@ files:
331
339
  - lib/chef-dk/skeletons/code_generator/files/default/repo/cookbooks/example/recipes/default.rb
332
340
  - lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/README.md
333
341
  - lib/chef-dk/skeletons/code_generator/files/default/repo/data_bags/example/example_item.json
342
+ - lib/chef-dk/skeletons/code_generator/files/default/repo/dot-chef-repo.txt
334
343
  - lib/chef-dk/skeletons/code_generator/files/default/repo/environments/README.md
335
344
  - lib/chef-dk/skeletons/code_generator/files/default/repo/environments/example.json
345
+ - lib/chef-dk/skeletons/code_generator/files/default/repo/policies/README.md
336
346
  - lib/chef-dk/skeletons/code_generator/files/default/repo/roles/README.md
337
347
  - lib/chef-dk/skeletons/code_generator/files/default/repo/roles/example.json
338
348
  - lib/chef-dk/skeletons/code_generator/files/default/serverspec_spec_helper.rb
339
349
  - lib/chef-dk/skeletons/code_generator/files/default/spec_helper.rb
350
+ - lib/chef-dk/skeletons/code_generator/files/default/spec_helper_policyfile.rb
340
351
  - lib/chef-dk/skeletons/code_generator/metadata.rb
341
352
  - lib/chef-dk/skeletons/code_generator/recipes/app.rb
342
353
  - lib/chef-dk/skeletons/code_generator/recipes/attribute.rb
@@ -505,6 +516,7 @@ files:
505
516
  - spec/unit/policyfile/comparison_base_spec.rb
506
517
  - spec/unit/policyfile/cookbook_location_specification_spec.rb
507
518
  - spec/unit/policyfile/cookbook_locks_spec.rb
519
+ - spec/unit/policyfile/delivery_supermarket_source_spec.rb
508
520
  - spec/unit/policyfile/differ_spec.rb
509
521
  - spec/unit/policyfile/lister_spec.rb
510
522
  - spec/unit/policyfile/null_cookbook_source_spec.rb
@@ -536,12 +548,13 @@ files:
536
548
  - spec/unit/service_exception_inspectors/base_spec.rb
537
549
  - spec/unit/service_exception_inspectors/http_spec.rb
538
550
  - spec/unit/shell_out_spec.rb
551
+ - warning.txt
539
552
  homepage: https://www.chef.io/
540
553
  licenses: []
541
554
  metadata: {}
542
555
  post_install_message: |+
543
556
  Thanks for installing chef-dk! Unfortunately, since Chef Development Kit is
544
- supposed to be installed as the omnibus binaries in order to support vairous
557
+ supposed to be installed as the omnibus binaries in order to support various
545
558
  platforms, this is not the official way to install chef-dk.
546
559
 
547
560
  Please download the latest version for your operating system from the URL below,
@@ -564,7 +577,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
564
577
  version: '0'
565
578
  requirements: []
566
579
  rubyforge_project:
567
- rubygems_version: 2.4.6
580
+ rubygems_version: 2.4.7
568
581
  signing_key:
569
582
  specification_version: 4
570
583
  summary: A streamlined development and deployment workflow for Chef platform.
@@ -705,6 +718,7 @@ test_files:
705
718
  - spec/unit/policyfile/comparison_base_spec.rb
706
719
  - spec/unit/policyfile/cookbook_location_specification_spec.rb
707
720
  - spec/unit/policyfile/cookbook_locks_spec.rb
721
+ - spec/unit/policyfile/delivery_supermarket_source_spec.rb
708
722
  - spec/unit/policyfile/differ_spec.rb
709
723
  - spec/unit/policyfile/lister_spec.rb
710
724
  - spec/unit/policyfile/null_cookbook_source_spec.rb
@@ -736,4 +750,3 @@ test_files:
736
750
  - spec/unit/service_exception_inspectors/base_spec.rb
737
751
  - spec/unit/service_exception_inspectors/http_spec.rb
738
752
  - spec/unit/shell_out_spec.rb
739
- has_rdoc: