chef 12.19.36 → 14.14.25

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1719) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +29 -52
  3. data/README.md +98 -167
  4. data/Rakefile +16 -48
  5. data/bin/chef-apply +0 -1
  6. data/bin/chef-client +1 -2
  7. data/{lib/chef/resource/timestamped_deploy.rb → bin/chef-resource-inspector} +11 -11
  8. data/bin/chef-shell +2 -5
  9. data/bin/chef-solo +1 -2
  10. data/bin/knife +1 -2
  11. data/chef-universal-mingw32.gemspec +6 -5
  12. data/chef.gemspec +14 -13
  13. data/lib/chef.rb +1 -2
  14. data/lib/chef/api_client.rb +21 -24
  15. data/lib/chef/api_client/registration.rb +16 -8
  16. data/lib/chef/api_client_v1.rb +32 -29
  17. data/lib/chef/application.rb +86 -66
  18. data/lib/chef/application/apply.rb +67 -60
  19. data/lib/chef/application/client.rb +228 -197
  20. data/lib/chef/application/exit_code.rb +11 -80
  21. data/lib/chef/application/knife.rb +81 -76
  22. data/lib/chef/application/solo.rb +139 -137
  23. data/lib/chef/application/windows_service.rb +32 -32
  24. data/lib/chef/application/windows_service_manager.rb +39 -39
  25. data/lib/chef/audit/audit_event_proxy.rb +7 -7
  26. data/lib/chef/audit/audit_reporter.rb +15 -15
  27. data/lib/chef/audit/control_group_data.rb +25 -19
  28. data/lib/chef/audit/runner.rb +3 -3
  29. data/lib/chef/blacklist.rb +81 -0
  30. data/lib/chef/chef_class.rb +17 -9
  31. data/lib/chef/chef_fs/chef_fs_data_store.rb +12 -12
  32. data/lib/chef/chef_fs/command_line.rb +20 -21
  33. data/lib/chef/chef_fs/config.rb +3 -3
  34. data/lib/chef/chef_fs/data_handler/acl_data_handler.rb +1 -1
  35. data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +5 -0
  36. data/lib/chef/chef_fs/data_handler/data_handler_base.rb +11 -9
  37. data/lib/chef/chef_fs/data_handler/organization_invites_data_handler.rb +1 -1
  38. data/lib/chef/chef_fs/data_handler/policy_data_handler.rb +1 -1
  39. data/lib/chef/chef_fs/data_handler/policy_group_data_handler.rb +1 -1
  40. data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +2 -2
  41. data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
  42. data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +3 -3
  43. data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +6 -2
  44. data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +16 -29
  45. data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +1 -1
  46. data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +6 -2
  47. data/lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb +1 -1
  48. data/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb +2 -2
  49. data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +1 -1
  50. data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +2 -2
  51. data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +2 -2
  52. data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +5 -5
  53. data/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb +2 -2
  54. data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +3 -3
  55. data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +17 -8
  56. data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +5 -1
  57. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +1 -1
  58. data/lib/chef/chef_fs/file_system/repository/acls_dir.rb +1 -1
  59. data/lib/chef/chef_fs/file_system/repository/base_file.rb +2 -2
  60. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +4 -5
  61. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +3 -3
  62. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +4 -3
  63. data/lib/chef/chef_fs/file_system/repository/directory.rb +3 -3
  64. data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +3 -3
  65. data/lib/chef/chef_fs/file_system_cache.rb +1 -1
  66. data/lib/chef/chef_fs/knife.rb +6 -6
  67. data/lib/chef/chef_fs/parallelizer.rb +1 -1
  68. data/lib/chef/chef_fs/path_utils.rb +2 -2
  69. data/lib/chef/client.rb +113 -51
  70. data/lib/chef/config.rb +1 -2
  71. data/lib/chef/config_fetcher.rb +6 -6
  72. data/lib/chef/constants.rb +1 -1
  73. data/lib/chef/cookbook/chefignore.rb +5 -1
  74. data/lib/chef/cookbook/cookbook_collection.rb +4 -4
  75. data/lib/chef/cookbook/cookbook_version_loader.rb +1 -85
  76. data/lib/chef/cookbook/file_system_file_vendor.rb +2 -2
  77. data/lib/chef/cookbook/gem_installer.rb +28 -11
  78. data/lib/chef/cookbook/manifest_v0.rb +73 -0
  79. data/lib/chef/cookbook/manifest_v2.rb +45 -0
  80. data/lib/chef/cookbook/metadata.rb +73 -181
  81. data/lib/chef/cookbook/remote_file_vendor.rb +7 -7
  82. data/lib/chef/cookbook/synchronizer.rb +42 -28
  83. data/lib/chef/cookbook/syntax_check.rb +4 -4
  84. data/lib/chef/cookbook_loader.rb +15 -7
  85. data/lib/chef/cookbook_manifest.rb +107 -69
  86. data/lib/chef/cookbook_site_streaming_uploader.rb +14 -16
  87. data/lib/chef/cookbook_uploader.rb +8 -9
  88. data/lib/chef/cookbook_version.rb +75 -168
  89. data/lib/chef/data_bag.rb +13 -15
  90. data/lib/chef/data_bag_item.rb +11 -20
  91. data/lib/chef/data_collector.rb +113 -37
  92. data/lib/chef/data_collector/messages.rb +4 -2
  93. data/lib/chef/data_collector/messages/helpers.rb +2 -4
  94. data/lib/chef/data_collector/resource_report.rb +36 -8
  95. data/lib/chef/decorator/unchain.rb +0 -16
  96. data/lib/chef/deprecated.rb +143 -145
  97. data/lib/chef/deprecation/warnings.rb +3 -1
  98. data/lib/chef/dsl/audit.rb +1 -1
  99. data/lib/chef/dsl/data_query.rb +22 -8
  100. data/lib/chef/dsl/declare_resource.rb +40 -16
  101. data/lib/chef/dsl/definitions.rb +1 -1
  102. data/lib/chef/dsl/include_attribute.rb +3 -7
  103. data/lib/chef/dsl/include_recipe.rb +1 -5
  104. data/lib/chef/dsl/platform_introspection.rb +14 -13
  105. data/lib/chef/dsl/reboot_pending.rb +2 -9
  106. data/lib/chef/dsl/recipe.rb +2 -21
  107. data/lib/chef/dsl/resources.rb +3 -10
  108. data/lib/chef/dsl/universal.rb +11 -1
  109. data/lib/chef/encrypted_data_bag_item.rb +6 -4
  110. data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +1 -1
  111. data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
  112. data/lib/chef/environment.rb +17 -22
  113. data/lib/chef/event_dispatch/base.rb +18 -2
  114. data/lib/chef/event_dispatch/dsl.rb +2 -2
  115. data/lib/chef/event_loggers/windows_eventlog.rb +21 -21
  116. data/lib/chef/exceptions.rb +25 -14
  117. data/lib/chef/file_access_control/unix.rb +14 -14
  118. data/lib/chef/file_access_control/windows.rb +5 -3
  119. data/lib/chef/file_cache.rb +18 -16
  120. data/lib/chef/file_content_management/content_base.rb +3 -1
  121. data/lib/chef/file_content_management/deploy/cp.rb +2 -2
  122. data/lib/chef/file_content_management/deploy/mv_unix.rb +9 -8
  123. data/lib/chef/file_content_management/deploy/mv_windows.rb +1 -1
  124. data/lib/chef/file_content_management/tempfile.rb +4 -4
  125. data/lib/chef/formatters/base.rb +10 -11
  126. data/lib/chef/formatters/doc.rb +15 -19
  127. data/lib/chef/formatters/error_description.rb +18 -1
  128. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +51 -51
  129. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +3 -3
  130. data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +11 -11
  131. data/lib/chef/formatters/error_inspectors/cookbook_sync_error_inspector.rb +1 -1
  132. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +14 -14
  133. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +40 -40
  134. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +1 -1
  135. data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +17 -17
  136. data/lib/chef/formatters/indentable_output_stream.rb +17 -5
  137. data/lib/chef/guard_interpreter/default_guard_interpreter.rb +6 -2
  138. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +5 -5
  139. data/lib/chef/handler.rb +3 -5
  140. data/lib/chef/handler/json_file.rb +2 -3
  141. data/lib/chef/http.rb +75 -25
  142. data/lib/chef/http/api_versions.rb +7 -1
  143. data/lib/chef/http/auth_credentials.rb +7 -5
  144. data/lib/chef/http/authenticator.rb +27 -15
  145. data/lib/chef/http/basic_client.rb +16 -17
  146. data/lib/chef/http/cookie_manager.rb +1 -1
  147. data/lib/chef/http/decompressor.rb +6 -6
  148. data/lib/chef/http/http_request.rb +13 -10
  149. data/lib/chef/http/json_input.rb +1 -1
  150. data/lib/chef/http/json_output.rb +5 -2
  151. data/lib/chef/http/json_to_model_output.rb +1 -1
  152. data/lib/chef/http/socketless_chef_zero_client.rb +4 -3
  153. data/lib/chef/http/validate_content_length.rb +5 -5
  154. data/lib/chef/json_compat.rb +3 -95
  155. data/lib/chef/key.rb +17 -20
  156. data/lib/chef/knife.rb +57 -40
  157. data/lib/chef/knife/bootstrap.rb +174 -138
  158. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  159. data/lib/chef/knife/bootstrap/client_builder.rb +2 -2
  160. data/lib/chef/knife/bootstrap/templates/chef-full.erb +15 -8
  161. data/lib/chef/knife/client_bulk_delete.rb +3 -4
  162. data/lib/chef/knife/client_create.rb +17 -18
  163. data/lib/chef/knife/client_delete.rb +4 -5
  164. data/lib/chef/knife/client_edit.rb +2 -3
  165. data/lib/chef/knife/client_key_create.rb +3 -0
  166. data/lib/chef/knife/client_key_delete.rb +1 -0
  167. data/lib/chef/knife/client_key_edit.rb +1 -0
  168. data/lib/chef/knife/client_key_list.rb +1 -0
  169. data/lib/chef/knife/client_key_show.rb +1 -0
  170. data/lib/chef/knife/client_list.rb +3 -4
  171. data/lib/chef/knife/client_reregister.rb +4 -5
  172. data/lib/chef/knife/client_show.rb +0 -1
  173. data/lib/chef/knife/config_get.rb +126 -0
  174. data/lib/chef/{provider/breakpoint.rb → knife/config_get_profile.rb} +13 -14
  175. data/lib/chef/knife/config_list_profiles.rb +121 -0
  176. data/lib/chef/knife/config_use_profile.rb +50 -0
  177. data/lib/chef/knife/configure.rb +39 -63
  178. data/lib/chef/knife/configure_client.rb +1 -3
  179. data/lib/chef/knife/cookbook_bulk_delete.rb +1 -1
  180. data/lib/chef/knife/cookbook_create.rb +1 -434
  181. data/lib/chef/knife/cookbook_delete.rb +5 -5
  182. data/lib/chef/knife/cookbook_download.rb +16 -17
  183. data/lib/chef/knife/cookbook_list.rb +6 -6
  184. data/lib/chef/knife/cookbook_metadata.rb +10 -11
  185. data/lib/chef/knife/cookbook_metadata_from_file.rb +1 -2
  186. data/lib/chef/knife/cookbook_show.rb +23 -19
  187. data/lib/chef/knife/cookbook_site_download.rb +9 -85
  188. data/lib/chef/knife/cookbook_site_install.rb +8 -164
  189. data/lib/chef/knife/cookbook_site_list.rb +9 -34
  190. data/lib/chef/knife/cookbook_site_search.rb +10 -23
  191. data/lib/chef/knife/cookbook_site_share.rb +9 -138
  192. data/lib/chef/knife/cookbook_site_show.rb +10 -36
  193. data/lib/chef/knife/cookbook_site_unshare.rb +9 -31
  194. data/lib/chef/knife/cookbook_test.rb +11 -11
  195. data/lib/chef/knife/cookbook_upload.rb +39 -39
  196. data/lib/chef/knife/core/bootstrap_context.rb +23 -17
  197. data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
  198. data/lib/chef/knife/core/generic_presenter.rb +8 -9
  199. data/lib/chef/knife/core/hashed_command_loader.rb +2 -2
  200. data/lib/chef/knife/core/node_presenter.rb +38 -39
  201. data/lib/chef/knife/core/status_presenter.rb +45 -30
  202. data/lib/chef/knife/core/subcommand_loader.rb +5 -34
  203. data/lib/chef/knife/core/ui.rb +12 -4
  204. data/lib/chef/knife/data_bag_create.rb +6 -4
  205. data/lib/chef/knife/data_bag_edit.rb +1 -1
  206. data/lib/chef/knife/data_bag_from_file.rb +4 -5
  207. data/lib/chef/knife/data_bag_list.rb +3 -3
  208. data/lib/chef/knife/data_bag_secret_options.rb +14 -14
  209. data/lib/chef/knife/data_bag_show.rb +3 -3
  210. data/lib/chef/knife/delete.rb +31 -13
  211. data/lib/chef/knife/deps.rb +26 -10
  212. data/lib/chef/knife/diff.rb +30 -14
  213. data/lib/chef/knife/download.rb +39 -23
  214. data/lib/chef/knife/edit.rb +21 -5
  215. data/lib/chef/knife/environment_compare.rb +12 -12
  216. data/lib/chef/knife/environment_create.rb +3 -4
  217. data/lib/chef/knife/environment_delete.rb +0 -1
  218. data/lib/chef/knife/environment_edit.rb +0 -1
  219. data/lib/chef/knife/environment_from_file.rb +5 -3
  220. data/lib/chef/knife/environment_list.rb +3 -4
  221. data/lib/chef/knife/environment_show.rb +0 -1
  222. data/lib/chef/knife/exec.rb +10 -10
  223. data/lib/chef/knife/key_create.rb +4 -4
  224. data/lib/chef/knife/key_create_base.rb +12 -12
  225. data/lib/chef/knife/key_edit.rb +5 -5
  226. data/lib/chef/knife/key_edit_base.rb +15 -15
  227. data/lib/chef/knife/key_list.rb +3 -3
  228. data/lib/chef/knife/key_list_base.rb +9 -9
  229. data/lib/chef/knife/list.rb +37 -21
  230. data/lib/chef/knife/node_delete.rb +1 -1
  231. data/lib/chef/knife/node_edit.rb +4 -4
  232. data/lib/chef/knife/node_list.rb +3 -3
  233. data/lib/chef/knife/node_policy_set.rb +79 -0
  234. data/lib/chef/knife/node_run_list_add.rb +7 -7
  235. data/lib/chef/knife/node_run_list_remove.rb +1 -1
  236. data/lib/chef/knife/node_show.rb +6 -6
  237. data/lib/chef/knife/osc_user_create.rb +13 -13
  238. data/lib/chef/knife/osc_user_edit.rb +2 -2
  239. data/lib/chef/knife/osc_user_list.rb +3 -3
  240. data/lib/chef/knife/osc_user_reregister.rb +4 -4
  241. data/lib/chef/knife/raw.rb +40 -19
  242. data/lib/chef/knife/role_create.rb +3 -3
  243. data/lib/chef/knife/role_env_run_list_add.rb +5 -4
  244. data/lib/chef/knife/role_env_run_list_clear.rb +1 -1
  245. data/lib/chef/knife/role_env_run_list_remove.rb +3 -3
  246. data/lib/chef/knife/role_env_run_list_replace.rb +2 -1
  247. data/lib/chef/knife/role_env_run_list_set.rb +1 -1
  248. data/lib/chef/knife/role_list.rb +3 -3
  249. data/lib/chef/knife/role_run_list_add.rb +5 -4
  250. data/lib/chef/knife/role_run_list_clear.rb +1 -1
  251. data/lib/chef/knife/role_run_list_remove.rb +3 -4
  252. data/lib/chef/knife/role_run_list_replace.rb +2 -1
  253. data/lib/chef/knife/role_run_list_set.rb +1 -2
  254. data/lib/chef/knife/role_show.rb +2 -3
  255. data/lib/chef/knife/search.rb +36 -43
  256. data/lib/chef/knife/serve.rb +22 -6
  257. data/lib/chef/knife/show.rb +20 -4
  258. data/lib/chef/knife/ssh.rb +173 -130
  259. data/lib/chef/knife/ssl_check.rb +34 -34
  260. data/lib/chef/knife/ssl_fetch.rb +6 -6
  261. data/lib/chef/knife/status.rb +12 -12
  262. data/lib/chef/knife/supermarket_download.rb +95 -6
  263. data/lib/chef/knife/supermarket_install.rb +166 -6
  264. data/lib/chef/knife/supermarket_list.rb +38 -6
  265. data/lib/chef/knife/supermarket_search.rb +27 -7
  266. data/lib/chef/knife/supermarket_share.rb +139 -6
  267. data/lib/chef/knife/supermarket_show.rb +40 -6
  268. data/lib/chef/knife/supermarket_unshare.rb +35 -7
  269. data/lib/chef/knife/upload.rb +42 -26
  270. data/lib/chef/knife/user_create.rb +28 -27
  271. data/lib/chef/knife/user_delete.rb +9 -8
  272. data/lib/chef/knife/user_edit.rb +11 -10
  273. data/lib/chef/knife/user_key_create.rb +1 -0
  274. data/lib/chef/knife/user_key_delete.rb +1 -0
  275. data/lib/chef/knife/user_key_edit.rb +1 -0
  276. data/lib/chef/knife/user_key_list.rb +1 -0
  277. data/lib/chef/knife/user_key_show.rb +1 -0
  278. data/lib/chef/knife/user_list.rb +3 -4
  279. data/lib/chef/knife/user_reregister.rb +13 -12
  280. data/lib/chef/knife/user_show.rb +9 -8
  281. data/lib/chef/knife/xargs.rb +55 -39
  282. data/lib/chef/local_mode.rb +1 -0
  283. data/lib/chef/log.rb +10 -8
  284. data/lib/chef/log/winevt.rb +21 -21
  285. data/lib/chef/mash.rb +6 -0
  286. data/lib/chef/mixin/api_version_request_handling.rb +8 -10
  287. data/lib/chef/mixin/create_path.rb +1 -1
  288. data/lib/chef/mixin/deep_merge.rb +2 -2
  289. data/lib/chef/mixin/deprecation.rb +16 -16
  290. data/lib/chef/mixin/from_file.rb +5 -0
  291. data/lib/chef/mixin/get_source_from_package.rb +2 -2
  292. data/lib/chef/mixin/homebrew_user.rb +13 -2
  293. data/lib/chef/mixin/openssl_helper.rb +402 -0
  294. data/lib/chef/mixin/params_validate.rb +32 -23
  295. data/lib/chef/mixin/path_sanity.rb +17 -19
  296. data/lib/chef/mixin/powershell_exec.rb +105 -0
  297. data/lib/chef/mixin/powershell_out.rb +2 -2
  298. data/lib/chef/mixin/properties.rb +19 -2
  299. data/lib/chef/mixin/provides.rb +3 -2
  300. data/lib/chef/mixin/securable.rb +12 -16
  301. data/lib/chef/mixin/shell_out.rb +157 -110
  302. data/lib/chef/mixin/template.rb +15 -12
  303. data/lib/chef/mixin/user_context.rb +55 -0
  304. data/lib/chef/mixin/versioned_api.rb +16 -1
  305. data/lib/chef/mixin/which.rb +4 -2
  306. data/lib/chef/mixin/why_run.rb +6 -11
  307. data/lib/chef/mixin/wide_string.rb +5 -23
  308. data/lib/chef/mixin/windows_env_helper.rb +1 -1
  309. data/lib/chef/mixin/xml_escape.rb +3 -3
  310. data/lib/chef/mixins.rb +0 -1
  311. data/lib/chef/monkey_patches/net_http.rb +12 -8
  312. data/lib/chef/monologger.rb +2 -86
  313. data/lib/chef/node.rb +71 -60
  314. data/lib/chef/node/attribute.rb +277 -235
  315. data/lib/chef/node/attribute_collections.rb +4 -22
  316. data/lib/chef/node/immutable_collections.rb +54 -53
  317. data/lib/chef/node/mixin/deep_merge_cache.rb +1 -1
  318. data/lib/chef/node/mixin/immutablize_array.rb +117 -4
  319. data/lib/chef/node/mixin/immutablize_hash.rb +117 -6
  320. data/lib/chef/node_map.rb +142 -65
  321. data/lib/chef/null_logger.rb +7 -0
  322. data/lib/chef/org.rb +15 -18
  323. data/lib/chef/platform/provider_mapping.rb +1 -168
  324. data/lib/chef/platform/query_helpers.rb +0 -12
  325. data/lib/chef/platform/rebooter.rb +9 -5
  326. data/lib/chef/platform/service_helpers.rb +1 -1
  327. data/lib/chef/policy_builder/dynamic.rb +1 -1
  328. data/lib/chef/policy_builder/expand_node_object.rb +5 -31
  329. data/lib/chef/policy_builder/policyfile.rb +55 -10
  330. data/lib/chef/powershell.rb +57 -0
  331. data/lib/chef/property.rb +149 -145
  332. data/lib/chef/provider.rb +92 -140
  333. data/lib/chef/provider/apt_preference.rb +94 -0
  334. data/lib/chef/provider/apt_repository.rb +169 -62
  335. data/lib/chef/provider/apt_update.rb +9 -16
  336. data/lib/chef/provider/batch.rb +1 -1
  337. data/lib/chef/provider/cookbook_file.rb +0 -6
  338. data/lib/chef/provider/cookbook_file/content.rb +1 -1
  339. data/lib/chef/provider/cron.rb +35 -41
  340. data/lib/chef/provider/cron/unix.rb +5 -5
  341. data/lib/chef/provider/directory.rb +4 -8
  342. data/lib/chef/provider/dsc_resource.rb +8 -12
  343. data/lib/chef/provider/dsc_script.rb +22 -22
  344. data/lib/chef/provider/execute.rb +16 -14
  345. data/lib/chef/provider/file.rb +13 -23
  346. data/lib/chef/provider/git.rb +47 -24
  347. data/lib/chef/provider/group.rb +7 -13
  348. data/lib/chef/provider/group/aix.rb +8 -8
  349. data/lib/chef/provider/group/dscl.rb +11 -7
  350. data/lib/chef/provider/group/gpasswd.rb +4 -4
  351. data/lib/chef/provider/group/groupadd.rb +8 -8
  352. data/lib/chef/provider/group/groupmod.rb +9 -9
  353. data/lib/chef/provider/group/pw.rb +8 -8
  354. data/lib/chef/provider/group/suse.rb +2 -2
  355. data/lib/chef/provider/group/usermod.rb +1 -1
  356. data/lib/chef/provider/group/windows.rb +3 -2
  357. data/lib/chef/provider/http_request.rb +30 -20
  358. data/lib/chef/provider/ifconfig.rb +108 -50
  359. data/lib/chef/provider/ifconfig/aix.rb +3 -3
  360. data/lib/chef/provider/ifconfig/debian.rb +6 -3
  361. data/lib/chef/provider/ifconfig/redhat.rb +7 -1
  362. data/lib/chef/provider/launchd.rb +24 -1
  363. data/lib/chef/provider/link.rb +7 -11
  364. data/lib/chef/provider/log.rb +5 -19
  365. data/lib/chef/provider/lwrp_base.rb +2 -11
  366. data/lib/chef/provider/mdadm.rb +11 -19
  367. data/lib/chef/provider/mount.rb +22 -18
  368. data/lib/chef/provider/mount/aix.rb +70 -29
  369. data/lib/chef/provider/mount/mount.rb +48 -35
  370. data/lib/chef/provider/mount/solaris.rb +33 -29
  371. data/lib/chef/provider/mount/windows.rb +14 -14
  372. data/lib/chef/provider/noop.rb +2 -2
  373. data/lib/chef/provider/ohai.rb +1 -7
  374. data/lib/chef/provider/osx_profile.rb +12 -18
  375. data/lib/chef/provider/package.rb +117 -86
  376. data/lib/chef/provider/package/apt.rb +67 -19
  377. data/lib/chef/provider/package/{aix.rb → bff.rb} +21 -22
  378. data/lib/chef/provider/package/cab.rb +26 -18
  379. data/lib/chef/provider/package/chocolatey.rb +36 -26
  380. data/lib/chef/provider/package/dnf.rb +22 -11
  381. data/lib/chef/provider/package/dnf/dnf_helper.py +25 -2
  382. data/lib/chef/provider/package/dnf/python_helper.rb +23 -7
  383. data/lib/chef/provider/package/dpkg.rb +29 -13
  384. data/lib/chef/provider/package/freebsd/base.rb +4 -4
  385. data/lib/chef/provider/package/freebsd/pkg.rb +8 -8
  386. data/lib/chef/provider/package/freebsd/pkgng.rb +6 -6
  387. data/lib/chef/provider/package/freebsd/port.rb +4 -4
  388. data/lib/chef/provider/package/homebrew.rb +4 -4
  389. data/lib/chef/provider/package/ips.rb +7 -8
  390. data/lib/chef/provider/package/macports.rb +9 -9
  391. data/lib/chef/provider/package/msu.rb +5 -6
  392. data/lib/chef/provider/package/openbsd.rb +9 -9
  393. data/lib/chef/provider/package/pacman.rb +7 -8
  394. data/lib/chef/provider/package/paludis.rb +5 -5
  395. data/lib/chef/provider/package/portage.rb +31 -38
  396. data/lib/chef/provider/package/powershell.rb +29 -10
  397. data/lib/chef/provider/package/rpm.rb +20 -17
  398. data/lib/chef/provider/package/rubygems.rb +84 -58
  399. data/lib/chef/provider/package/smartos.rb +11 -11
  400. data/lib/chef/provider/package/solaris.rb +19 -20
  401. data/lib/chef/provider/package/windows.rb +55 -9
  402. data/lib/chef/provider/package/windows/exe.rb +6 -4
  403. data/lib/chef/provider/package/windows/msi.rb +9 -7
  404. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +22 -10
  405. data/lib/chef/provider/package/yum.rb +167 -414
  406. data/lib/chef/provider/package/yum/python_helper.rb +222 -0
  407. data/lib/chef/provider/package/yum/rpm_utils.rb +10 -1
  408. data/lib/chef/provider/package/yum/simplejson/LICENSE.txt +79 -0
  409. data/lib/chef/provider/package/yum/simplejson/__init__.py +318 -0
  410. data/lib/chef/provider/package/yum/simplejson/__init__.pyc +0 -0
  411. data/lib/chef/provider/package/yum/simplejson/decoder.py +354 -0
  412. data/lib/chef/provider/package/yum/simplejson/decoder.pyc +0 -0
  413. data/lib/chef/provider/package/yum/simplejson/encoder.py +440 -0
  414. data/lib/chef/provider/package/yum/simplejson/encoder.pyc +0 -0
  415. data/lib/chef/provider/package/yum/simplejson/scanner.py +65 -0
  416. data/lib/chef/provider/package/yum/simplejson/scanner.pyc +0 -0
  417. data/lib/chef/provider/package/yum/simplejson/tool.py +37 -0
  418. data/lib/chef/provider/package/yum/version.rb +56 -0
  419. data/lib/chef/provider/package/yum/yum_cache.rb +33 -316
  420. data/lib/chef/provider/package/yum/yum_helper.py +211 -0
  421. data/lib/chef/provider/package/zypper.rb +41 -37
  422. data/lib/chef/provider/powershell_script.rb +79 -79
  423. data/lib/chef/provider/reboot.rb +19 -11
  424. data/lib/chef/provider/registry_key.rb +29 -12
  425. data/lib/chef/provider/remote_directory.rb +2 -16
  426. data/lib/chef/provider/remote_file.rb +19 -6
  427. data/lib/chef/provider/remote_file/cache_control_data.rb +3 -3
  428. data/lib/chef/provider/remote_file/content.rb +5 -5
  429. data/lib/chef/provider/remote_file/fetcher.rb +3 -0
  430. data/lib/chef/provider/remote_file/http.rb +13 -5
  431. data/lib/chef/provider/remote_file/local_file.rb +1 -1
  432. data/lib/chef/provider/remote_file/network_file.rb +18 -5
  433. data/lib/chef/provider/remote_file/sftp.rb +1 -1
  434. data/lib/chef/provider/resource_update.rb +1 -1
  435. data/lib/chef/provider/route.rb +43 -26
  436. data/lib/chef/provider/ruby_block.rb +2 -6
  437. data/lib/chef/provider/script.rb +2 -2
  438. data/lib/chef/provider/service.rb +16 -23
  439. data/lib/chef/provider/service/aix.rb +4 -8
  440. data/lib/chef/provider/service/aixinit.rb +2 -2
  441. data/lib/chef/provider/service/debian.rb +36 -25
  442. data/lib/chef/provider/service/freebsd.rb +6 -7
  443. data/lib/chef/provider/service/gentoo.rb +2 -3
  444. data/lib/chef/provider/service/init.rb +5 -6
  445. data/lib/chef/provider/service/insserv.rb +5 -3
  446. data/lib/chef/provider/service/macosx.rb +17 -15
  447. data/lib/chef/provider/service/openbsd.rb +4 -5
  448. data/lib/chef/provider/service/redhat.rb +3 -3
  449. data/lib/chef/provider/service/simple.rb +12 -16
  450. data/lib/chef/provider/service/solaris.rb +11 -6
  451. data/lib/chef/provider/service/systemd.rb +19 -18
  452. data/lib/chef/provider/service/upstart.rb +23 -24
  453. data/lib/chef/provider/service/windows.rb +279 -104
  454. data/lib/chef/provider/subversion.rb +12 -18
  455. data/lib/chef/provider/support/yum_repo.erb +6 -0
  456. data/lib/chef/provider/support/zypper_repo.erb +17 -0
  457. data/lib/chef/provider/systemd_unit.rb +66 -45
  458. data/lib/chef/provider/template.rb +0 -6
  459. data/lib/chef/provider/template/content.rb +25 -2
  460. data/lib/chef/provider/user.rb +25 -24
  461. data/lib/chef/provider/user/aix.rb +47 -15
  462. data/lib/chef/provider/user/dscl.rb +16 -23
  463. data/lib/chef/provider/user/linux.rb +12 -21
  464. data/lib/chef/provider/user/pw.rb +14 -20
  465. data/lib/chef/provider/user/solaris.rb +61 -30
  466. data/lib/chef/provider/user/useradd.rb +18 -15
  467. data/lib/chef/provider/user/windows.rb +11 -10
  468. data/lib/chef/provider/whyrun_safe_ruby_block.rb +1 -1
  469. data/lib/chef/provider/{env.rb → windows_env.rb} +65 -27
  470. data/lib/chef/provider/windows_path.rb +61 -0
  471. data/lib/chef/provider/windows_task.rb +631 -0
  472. data/lib/chef/provider/yum_repository.rb +27 -17
  473. data/lib/chef/provider/zypper_repository.rb +169 -0
  474. data/lib/chef/provider_resolver.rb +12 -38
  475. data/lib/chef/providers.rb +7 -13
  476. data/lib/chef/recipe.rb +9 -7
  477. data/lib/chef/resource.rb +212 -245
  478. data/lib/chef/resource/action_class.rb +14 -18
  479. data/lib/chef/resource/apt_package.rb +11 -3
  480. data/lib/chef/resource/apt_preference.rb +52 -0
  481. data/lib/chef/resource/apt_repository.rb +57 -17
  482. data/lib/chef/resource/apt_update.rb +11 -3
  483. data/lib/chef/resource/bash.rb +1 -0
  484. data/lib/chef/resource/batch.rb +2 -1
  485. data/lib/chef/resource/bff_package.rb +5 -1
  486. data/lib/chef/resource/breakpoint.rb +15 -0
  487. data/lib/chef/resource/build_essential.rb +142 -0
  488. data/lib/chef/resource/cab_package.rb +8 -7
  489. data/lib/chef/resource/chef_gem.rb +20 -11
  490. data/lib/chef/resource/chef_handler.rb +132 -0
  491. data/lib/chef/resource/chocolatey_config.rb +83 -0
  492. data/lib/chef/resource/chocolatey_package.rb +20 -10
  493. data/lib/chef/resource/chocolatey_source.rb +95 -0
  494. data/lib/chef/resource/cookbook_file.rb +9 -13
  495. data/lib/chef/resource/cron.rb +29 -71
  496. data/lib/chef/resource/cron_access.rb +70 -0
  497. data/lib/chef/resource/cron_d.rb +238 -0
  498. data/lib/chef/resource/csh.rb +6 -0
  499. data/lib/chef/resource/directory.rb +13 -24
  500. data/lib/chef/resource/dmg_package.rb +171 -0
  501. data/lib/chef/resource/dnf_package.rb +34 -22
  502. data/lib/chef/resource/dpkg_package.rb +5 -2
  503. data/lib/chef/resource/dsc_resource.rb +14 -23
  504. data/lib/chef/resource/dsc_script.rb +24 -40
  505. data/lib/chef/resource/execute.rb +54 -89
  506. data/lib/chef/resource/file.rb +27 -10
  507. data/lib/chef/resource/file/verification.rb +17 -8
  508. data/lib/chef/resource/freebsd_package.rb +14 -3
  509. data/lib/chef/resource/gem_package.rb +29 -12
  510. data/lib/chef/resource/git.rb +4 -13
  511. data/lib/chef/resource/group.rb +24 -65
  512. data/lib/chef/resource/homebrew_cask.rb +100 -0
  513. data/lib/chef/resource/homebrew_package.rb +5 -1
  514. data/lib/chef/resource/homebrew_tap.rb +87 -0
  515. data/lib/chef/resource/hostname.rb +265 -0
  516. data/lib/chef/resource/http_request.rb +11 -22
  517. data/lib/chef/resource/ifconfig.rb +71 -113
  518. data/lib/chef/resource/ips_package.rb +6 -2
  519. data/lib/chef/resource/kernel_module.rb +135 -0
  520. data/lib/chef/resource/ksh.rb +7 -0
  521. data/lib/chef/resource/launchd.rb +211 -115
  522. data/lib/chef/resource/link.rb +28 -42
  523. data/lib/chef/resource/locale.rb +94 -0
  524. data/lib/chef/resource/log.rb +21 -45
  525. data/lib/chef/resource/lwrp_base.rb +8 -9
  526. data/lib/chef/resource/macos_userdefaults.rb +132 -0
  527. data/lib/chef/resource/macosx_service.rb +8 -25
  528. data/lib/chef/resource/macports_package.rb +2 -0
  529. data/lib/chef/resource/mdadm.rb +28 -73
  530. data/lib/chef/resource/mount.rb +45 -136
  531. data/lib/chef/resource/msu_package.rb +16 -14
  532. data/lib/chef/resource/ohai.rb +10 -2
  533. data/lib/chef/resource/ohai_hint.rb +95 -0
  534. data/lib/chef/resource/openbsd_package.rb +3 -0
  535. data/lib/chef/resource/openssl_dhparam.rb +77 -0
  536. data/lib/chef/resource/openssl_ec_private_key.rb +93 -0
  537. data/lib/chef/resource/openssl_ec_public_key.rb +75 -0
  538. data/lib/chef/resource/openssl_rsa_private_key.rb +91 -0
  539. data/lib/chef/resource/openssl_rsa_public_key.rb +74 -0
  540. data/lib/chef/resource/openssl_x509_certificate.rb +221 -0
  541. data/lib/chef/resource/openssl_x509_crl.rb +132 -0
  542. data/lib/chef/resource/openssl_x509_request.rb +151 -0
  543. data/lib/chef/resource/osx_profile.rb +14 -40
  544. data/lib/chef/resource/package.rb +33 -7
  545. data/lib/chef/resource/pacman_package.rb +3 -1
  546. data/lib/chef/resource/paludis_package.rb +8 -3
  547. data/lib/chef/resource/perl.rb +6 -0
  548. data/lib/chef/resource/portage_package.rb +6 -5
  549. data/lib/chef/resource/powershell_package.rb +18 -7
  550. data/lib/chef/resource/powershell_package_source.rb +169 -0
  551. data/lib/chef/resource/powershell_script.rb +12 -3
  552. data/lib/chef/resource/python.rb +5 -0
  553. data/lib/chef/resource/reboot.rb +16 -18
  554. data/lib/chef/resource/registry_key.rb +16 -30
  555. data/lib/chef/resource/remote_directory.rb +13 -48
  556. data/lib/chef/resource/remote_file.rb +70 -47
  557. data/lib/chef/resource/resource_notification.rb +47 -26
  558. data/lib/chef/resource/rhsm_errata.rb +46 -0
  559. data/lib/chef/resource/rhsm_errata_level.rb +51 -0
  560. data/lib/chef/resource/rhsm_register.rb +168 -0
  561. data/lib/chef/resource/rhsm_repo.rb +65 -0
  562. data/lib/chef/resource/rhsm_subscription.rb +98 -0
  563. data/lib/chef/resource/route.rb +16 -107
  564. data/lib/chef/resource/rpm_package.rb +3 -2
  565. data/lib/chef/resource/ruby.rb +6 -0
  566. data/lib/chef/resource/ruby_block.rb +6 -14
  567. data/lib/chef/resource/scm.rb +42 -146
  568. data/lib/chef/resource/script.rb +15 -35
  569. data/lib/chef/resource/service.rb +34 -30
  570. data/lib/chef/resource/smartos_package.rb +4 -2
  571. data/lib/chef/resource/solaris_package.rb +3 -1
  572. data/lib/chef/resource/ssh_known_hosts_entry.rb +146 -0
  573. data/lib/chef/resource/subversion.rb +21 -10
  574. data/lib/chef/resource/sudo.rb +230 -0
  575. data/lib/chef/resource/support/cron.d.erb +28 -0
  576. data/lib/chef/resource/support/cron_access.erb +4 -0
  577. data/lib/chef/resource/support/ssh_known_hosts.erb +3 -0
  578. data/lib/chef/resource/support/sudoer.erb +18 -0
  579. data/lib/chef/resource/swap_file.rb +209 -0
  580. data/lib/chef/resource/sysctl.rb +151 -0
  581. data/lib/chef/resource/systemd_unit.rb +34 -11
  582. data/lib/chef/resource/template.rb +22 -26
  583. data/lib/chef/resource/timezone.rb +135 -0
  584. data/lib/chef/resource/user.rb +19 -34
  585. data/lib/chef/resource/user/aix_user.rb +1 -1
  586. data/lib/chef/resource/user/dscl_user.rb +1 -1
  587. data/lib/chef/resource/user/linux_user.rb +1 -10
  588. data/lib/chef/resource/user/pw_user.rb +1 -1
  589. data/lib/chef/resource/user/solaris_user.rb +1 -1
  590. data/lib/chef/resource/user/windows_user.rb +5 -1
  591. data/lib/chef/resource/windows_ad_join.rb +120 -0
  592. data/lib/chef/resource/windows_auto_run.rb +87 -0
  593. data/lib/chef/resource/windows_certificate.rb +332 -0
  594. data/lib/chef/resource/windows_env.rb +49 -0
  595. data/lib/chef/resource/windows_feature.rb +90 -0
  596. data/lib/chef/resource/windows_feature_dism.rb +222 -0
  597. data/lib/chef/resource/windows_feature_powershell.rb +262 -0
  598. data/lib/chef/resource/windows_firewall_rule.rb +205 -0
  599. data/lib/chef/resource/windows_font.rb +125 -0
  600. data/lib/chef/resource/windows_package.rb +8 -2
  601. data/lib/chef/resource/windows_pagefile.rb +206 -0
  602. data/lib/chef/resource/{easy_install_package.rb → windows_path.rb} +14 -8
  603. data/lib/chef/resource/windows_printer.rb +146 -0
  604. data/lib/chef/resource/windows_printer_port.rb +136 -0
  605. data/lib/chef/resource/windows_script.rb +1 -1
  606. data/lib/chef/resource/windows_service.rb +86 -36
  607. data/lib/chef/resource/windows_share.rb +324 -0
  608. data/lib/chef/resource/windows_shortcut.rb +79 -0
  609. data/lib/chef/resource/windows_task.rb +349 -0
  610. data/lib/chef/resource/windows_workgroup.rb +112 -0
  611. data/lib/chef/resource/yum_package.rb +40 -24
  612. data/lib/chef/resource/yum_repository.rb +154 -45
  613. data/lib/chef/resource/zypper_package.rb +16 -0
  614. data/lib/chef/resource/zypper_repository.rb +103 -0
  615. data/lib/chef/resource_builder.rb +1 -65
  616. data/lib/chef/resource_collection.rb +19 -2
  617. data/lib/chef/resource_collection/resource_collection_serialization.rb +12 -3
  618. data/lib/chef/resource_collection/resource_list.rb +6 -0
  619. data/lib/chef/resource_collection/resource_set.rb +43 -16
  620. data/lib/chef/resource_definition.rb +1 -1
  621. data/lib/chef/resource_inspector.rb +108 -0
  622. data/lib/chef/resource_reporter.rb +9 -10
  623. data/lib/chef/resource_resolver.rb +5 -29
  624. data/lib/chef/resources.rb +53 -7
  625. data/lib/chef/role.rb +14 -20
  626. data/lib/chef/run_context.rb +91 -64
  627. data/lib/chef/run_context/cookbook_compiler.rb +65 -12
  628. data/lib/chef/run_list/run_list_expansion.rb +12 -10
  629. data/lib/chef/run_list/run_list_item.rb +1 -1
  630. data/lib/chef/run_list/versioned_recipe_list.rb +11 -9
  631. data/lib/chef/run_status.rb +14 -12
  632. data/lib/chef/runner.rb +50 -9
  633. data/lib/chef/search/query.rb +32 -33
  634. data/lib/chef/server_api.rb +3 -0
  635. data/lib/chef/server_api_versions.rb +21 -2
  636. data/lib/chef/shell.rb +86 -60
  637. data/lib/chef/shell/ext.rb +151 -151
  638. data/lib/chef/shell/model_wrapper.rb +1 -1
  639. data/lib/chef/shell/shell_session.rb +22 -11
  640. data/lib/chef/user.rb +19 -22
  641. data/lib/chef/user_v1.rb +38 -41
  642. data/lib/chef/util/backup.rb +2 -2
  643. data/lib/chef/util/diff.rb +3 -3
  644. data/lib/chef/util/dsc/configuration_generator.rb +12 -12
  645. data/lib/chef/util/dsc/lcm_output_parser.rb +59 -4
  646. data/lib/chef/util/dsc/local_configuration_manager.rb +35 -25
  647. data/lib/chef/util/file_edit.rb +14 -14
  648. data/lib/chef/util/powershell/cmdlet.rb +5 -5
  649. data/lib/chef/util/selinux.rb +6 -5
  650. data/lib/chef/util/windows/logon_session.rb +129 -0
  651. data/lib/chef/util/windows/net_group.rb +7 -1
  652. data/lib/chef/util/windows/net_use.rb +3 -3
  653. data/lib/chef/util/windows/net_user.rb +24 -16
  654. data/lib/chef/util/windows/volume.rb +2 -6
  655. data/lib/chef/version.rb +5 -3
  656. data/lib/chef/version/platform.rb +18 -0
  657. data/lib/chef/version_constraint.rb +3 -3
  658. data/lib/chef/version_constraint/platform.rb +2 -0
  659. data/lib/chef/version_string.rb +143 -0
  660. data/lib/chef/whitelist.rb +1 -1
  661. data/lib/chef/win32/api.rb +6 -6
  662. data/lib/chef/win32/api/error.rb +4 -4
  663. data/lib/chef/win32/api/file.rb +13 -12
  664. data/lib/chef/win32/api/net.rb +75 -59
  665. data/lib/chef/win32/api/security.rb +16 -0
  666. data/lib/chef/win32/eventlog.rb +2 -2
  667. data/lib/chef/win32/file.rb +10 -0
  668. data/lib/chef/win32/mutex.rb +1 -1
  669. data/lib/chef/win32/net.rb +15 -0
  670. data/lib/chef/win32/registry.rb +25 -25
  671. data/lib/chef/win32/security.rb +68 -35
  672. data/lib/chef/win32/security/securable_object.rb +10 -10
  673. data/lib/chef/win32/security/sid.rb +45 -2
  674. data/lib/chef/win32/system.rb +0 -0
  675. data/lib/chef/win32/unicode.rb +6 -0
  676. data/lib/chef/win32/version.rb +26 -33
  677. data/lib/chef/win32_service_constants.rb +143 -0
  678. data/spec/data/client.d_00/02-strings.rb +2 -0
  679. data/spec/data/cookbooks/openldap/templates/default/openldap_nested_variable_stuff.erb +1 -0
  680. data/spec/data/lwrp/providers/buck_passer.rb +1 -1
  681. data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
  682. data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
  683. data/spec/data/lwrp/providers/inline_compiler.rb +0 -2
  684. data/spec/data/lwrp/resources/buck_passer.rb +5 -0
  685. data/spec/data/lwrp/resources/buck_passer_2.rb +3 -0
  686. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +3 -0
  687. data/spec/data/lwrp/resources/inline_compiler.rb +3 -0
  688. data/spec/data/lwrp/resources/monkey_name_printer.rb +5 -0
  689. data/spec/data/lwrp/resources/paint_drying_watcher.rb +3 -0
  690. data/spec/data/lwrp/resources/thumb_twiddler.rb +3 -0
  691. data/spec/data/mixin/invalid_data.rb +3 -0
  692. data/spec/data/mixin/real_data.rb +2 -0
  693. data/spec/data/root_alias_cookbooks/dup_attr/attributes.rb +1 -0
  694. data/spec/data/root_alias_cookbooks/dup_attr/attributes/default.rb +1 -0
  695. data/spec/data/root_alias_cookbooks/dup_attr/metadata.rb +2 -0
  696. data/spec/data/root_alias_cookbooks/dup_attr/recipe.rb +3 -0
  697. data/spec/data/root_alias_cookbooks/dup_recipe/attributes.rb +1 -0
  698. data/spec/data/root_alias_cookbooks/dup_recipe/metadata.rb +2 -0
  699. data/spec/data/root_alias_cookbooks/dup_recipe/recipe.rb +3 -0
  700. data/spec/data/root_alias_cookbooks/dup_recipe/recipes/default.rb +3 -0
  701. data/spec/data/root_alias_cookbooks/simple/attributes.rb +1 -0
  702. data/spec/data/root_alias_cookbooks/simple/metadata.rb +2 -0
  703. data/spec/data/root_alias_cookbooks/simple/recipe.rb +3 -0
  704. data/spec/data/shef-config.rb +11 -10
  705. data/spec/data/templates/failed.erb +5 -0
  706. data/spec/data/windows_certificates/base64_test.cer +22 -0
  707. data/spec/data/windows_certificates/othertest.cer +0 -0
  708. data/spec/data/windows_certificates/test.cer +0 -0
  709. data/spec/data/windows_certificates/test.p7b +0 -0
  710. data/spec/data/windows_certificates/test.pem +21 -0
  711. data/spec/data/windows_certificates/test.pfx +0 -0
  712. data/spec/functional/assets/chefinittest +6 -4
  713. data/spec/functional/assets/inittest +36 -0
  714. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.aarch64.rpm +0 -0
  715. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.i686.rpm +0 -0
  716. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.ppc64.rpm +0 -0
  717. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.ppc64le.rpm +0 -0
  718. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.s390x.rpm +0 -0
  719. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.src.rpm +0 -0
  720. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.x86_64.rpm +0 -0
  721. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.aarch64.rpm +0 -0
  722. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.i686.rpm +0 -0
  723. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.ppc64.rpm +0 -0
  724. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.ppc64le.rpm +0 -0
  725. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.s390x.rpm +0 -0
  726. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.src.rpm +0 -0
  727. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.x86_64.rpm +0 -0
  728. data/spec/functional/assets/yumrepo/repodata/4632d67cb92636e7575d911c24f0e04d3505a944e97c483abe0c3e73a7c62d33-filelists.sqlite.bz2 +0 -0
  729. data/spec/functional/assets/yumrepo/repodata/74599b793e54d877323837d2d81a1c3c594c44e4335f9528234bb490f7b9b439-other.xml.gz +0 -0
  730. data/spec/functional/assets/yumrepo/repodata/a845d418f919d2115ab95a56b2c76f6825ad0d0bede49181a55c04f58995d057-primary.sqlite.bz2 +0 -0
  731. data/spec/functional/assets/yumrepo/repodata/af9b7cf9ef23bd7b43068d74a460f3b5d06753d638e58e4a0c9edc35bfb9cdc4-other.sqlite.bz2 +0 -0
  732. data/spec/functional/assets/yumrepo/repodata/bdb4f5f1492a3b9532f22c43110a81500dd744f23da0aec5c33b2a41317c737d-filelists.xml.gz +0 -0
  733. data/spec/functional/assets/yumrepo/repodata/c10d1d34ce99e02f12ec96ef68360543ab1bb7c3cb81a4a2bf78df7d8597e9df-primary.xml.gz +0 -0
  734. data/spec/functional/assets/yumrepo/repodata/filelists.xml.gz +0 -0
  735. data/spec/functional/assets/yumrepo/repodata/other.xml.gz +0 -0
  736. data/spec/functional/assets/yumrepo/repodata/primary.xml.gz +0 -0
  737. data/spec/functional/assets/yumrepo/repodata/repomd.xml +19 -53
  738. data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.aarch64.rpm +0 -0
  739. data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.i686.rpm +0 -0
  740. data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.ppc64.rpm +0 -0
  741. data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.ppc64le.rpm +0 -0
  742. data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.s390x.rpm +0 -0
  743. data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.src.rpm +0 -0
  744. data/spec/functional/assets/zypprepo/chef_rpm-1.10-1.x86_64.rpm +0 -0
  745. data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.aarch64.rpm +0 -0
  746. data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.i686.rpm +0 -0
  747. data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.ppc64.rpm +0 -0
  748. data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.ppc64le.rpm +0 -0
  749. data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.s390x.rpm +0 -0
  750. data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.src.rpm +0 -0
  751. data/spec/functional/assets/zypprepo/chef_rpm-1.2-1.x86_64.rpm +0 -0
  752. data/spec/functional/audit/rspec_formatter_spec.rb +1 -1
  753. data/spec/functional/audit/runner_spec.rb +1 -1
  754. data/spec/functional/dsl/reboot_pending_spec.rb +3 -3
  755. data/spec/functional/dsl/registry_helper_spec.rb +3 -3
  756. data/spec/functional/event_loggers/windows_eventlog_spec.rb +2 -2
  757. data/spec/functional/http/simple_spec.rb +25 -19
  758. data/spec/functional/knife/exec_spec.rb +1 -1
  759. data/spec/functional/knife/ssh_spec.rb +84 -9
  760. data/spec/functional/mixin/from_file_spec.rb +82 -0
  761. data/spec/functional/mixin/powershell_out_spec.rb +3 -3
  762. data/spec/functional/mixin/shell_out_spec.rb +33 -3
  763. data/spec/functional/mixin/user_context_spec.rb +117 -0
  764. data/spec/functional/notifications_spec.rb +1 -1
  765. data/spec/functional/rebooter_spec.rb +27 -15
  766. data/spec/functional/resource/aixinit_service_spec.rb +2 -2
  767. data/spec/functional/resource/{package_spec.rb → apt_package_spec.rb} +21 -21
  768. data/spec/functional/resource/bash_spec.rb +12 -46
  769. data/spec/functional/resource/bff_spec.rb +4 -4
  770. data/spec/functional/resource/chocolatey_package_spec.rb +1 -8
  771. data/spec/functional/resource/cron_spec.rb +3 -3
  772. data/spec/functional/resource/dnf_package_spec.rb +128 -128
  773. data/spec/functional/resource/dsc_resource_spec.rb +3 -3
  774. data/spec/functional/resource/dsc_script_spec.rb +95 -95
  775. data/spec/functional/resource/execute_spec.rb +5 -5
  776. data/spec/functional/resource/file_spec.rb +1 -1
  777. data/spec/functional/resource/git_spec.rb +19 -19
  778. data/spec/functional/resource/group_spec.rb +44 -29
  779. data/spec/functional/resource/ifconfig_spec.rb +8 -7
  780. data/spec/functional/resource/insserv_spec.rb +206 -0
  781. data/spec/functional/resource/link_spec.rb +15 -19
  782. data/spec/functional/resource/mount_spec.rb +10 -6
  783. data/spec/functional/resource/msu_package_spec.rb +14 -0
  784. data/spec/functional/resource/powershell_script_spec.rb +15 -17
  785. data/spec/functional/resource/reboot_spec.rb +3 -3
  786. data/spec/functional/resource/registry_spec.rb +86 -86
  787. data/spec/functional/resource/remote_file_spec.rb +190 -15
  788. data/spec/functional/resource/rpm_spec.rb +2 -2
  789. data/spec/functional/resource/template_spec.rb +35 -2
  790. data/{lib/chef/knife/cookbook_site_vendor.rb → spec/functional/resource/timezone_spec.rb} +15 -22
  791. data/spec/functional/resource/user/dscl_spec.rb +2 -3
  792. data/spec/functional/resource/user/windows_spec.rb +131 -19
  793. data/spec/functional/resource/windows_certificate_spec.rb +492 -0
  794. data/spec/functional/resource/windows_env_spec.rb +285 -0
  795. data/spec/functional/resource/windows_path_spec.rb +64 -0
  796. data/spec/functional/resource/windows_service_spec.rb +1 -1
  797. data/spec/functional/resource/windows_task_spec.rb +1917 -0
  798. data/spec/functional/resource/yum_package_spec.rb +959 -0
  799. data/spec/functional/resource/zypper_package_spec.rb +233 -0
  800. data/spec/functional/root_alias_spec.rb +78 -0
  801. data/spec/functional/run_lock_spec.rb +4 -4
  802. data/spec/functional/shell_spec.rb +39 -41
  803. data/spec/functional/util/powershell/cmdlet_spec.rb +9 -9
  804. data/spec/functional/version_spec.rb +1 -1
  805. data/spec/functional/win32/crypto_spec.rb +10 -10
  806. data/spec/functional/win32/registry_spec.rb +66 -66
  807. data/spec/functional/win32/security_spec.rb +113 -7
  808. data/spec/functional/win32/versions_spec.rb +7 -9
  809. data/spec/integration/client/client_spec.rb +384 -187
  810. data/spec/integration/client/exit_code_spec.rb +21 -124
  811. data/spec/integration/client/ipv6_spec.rb +37 -37
  812. data/spec/integration/knife/chef_fs_data_store_spec.rb +130 -130
  813. data/spec/integration/knife/chef_repo_path_spec.rb +422 -420
  814. data/spec/integration/knife/chef_repository_file_system_spec.rb +35 -132
  815. data/spec/integration/knife/chefignore_spec.rb +88 -88
  816. data/spec/integration/knife/client_bulk_delete_spec.rb +49 -49
  817. data/spec/integration/knife/client_create_spec.rb +6 -6
  818. data/spec/integration/knife/client_delete_spec.rb +13 -13
  819. data/spec/integration/knife/client_key_create_spec.rb +1 -1
  820. data/spec/integration/knife/client_key_delete_spec.rb +2 -2
  821. data/spec/integration/knife/client_key_list_spec.rb +4 -4
  822. data/spec/integration/knife/client_list_spec.rb +8 -8
  823. data/spec/integration/knife/common_options_spec.rb +59 -41
  824. data/spec/integration/knife/config_get_profile_spec.rb +112 -0
  825. data/spec/integration/knife/config_get_spec.rb +183 -0
  826. data/spec/integration/knife/config_list_profiles_spec.rb +188 -0
  827. data/spec/integration/knife/config_use_profile_spec.rb +100 -0
  828. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +38 -38
  829. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +16 -16
  830. data/spec/integration/knife/cookbook_download_spec.rb +13 -37
  831. data/spec/integration/knife/cookbook_list_spec.rb +8 -8
  832. data/spec/integration/knife/cookbook_show_spec.rb +85 -96
  833. data/spec/integration/knife/cookbook_upload_spec.rb +24 -24
  834. data/spec/integration/knife/data_bag_create_spec.rb +82 -13
  835. data/spec/integration/knife/data_bag_delete_spec.rb +8 -8
  836. data/spec/integration/knife/data_bag_edit_spec.rb +104 -0
  837. data/spec/integration/knife/data_bag_from_file_spec.rb +47 -47
  838. data/spec/integration/knife/data_bag_list_spec.rb +4 -4
  839. data/spec/integration/knife/data_bag_show_spec.rb +56 -15
  840. data/spec/integration/knife/delete_spec.rb +593 -593
  841. data/spec/integration/knife/deps_spec.rb +192 -196
  842. data/spec/integration/knife/diff_spec.rb +116 -116
  843. data/spec/integration/knife/download_spec.rb +510 -510
  844. data/spec/integration/knife/environment_compare_spec.rb +17 -17
  845. data/spec/integration/knife/environment_create_spec.rb +1 -1
  846. data/spec/integration/knife/environment_from_file_spec.rb +59 -59
  847. data/spec/integration/knife/environment_list_spec.rb +4 -4
  848. data/spec/integration/knife/environment_show_spec.rb +27 -27
  849. data/spec/integration/knife/list_spec.rb +731 -731
  850. data/spec/integration/knife/node_bulk_delete_spec.rb +8 -8
  851. data/spec/integration/knife/node_create_spec.rb +1 -1
  852. data/spec/integration/knife/node_delete_spec.rb +6 -6
  853. data/spec/integration/knife/node_environment_set_spec.rb +3 -3
  854. data/spec/integration/knife/node_from_file_spec.rb +16 -16
  855. data/spec/integration/knife/node_list_spec.rb +5 -5
  856. data/spec/integration/knife/raw_spec.rb +123 -119
  857. data/spec/integration/knife/redirection_spec.rb +6 -4
  858. data/spec/integration/knife/role_bulk_delete_spec.rb +8 -8
  859. data/spec/integration/knife/role_create_spec.rb +1 -1
  860. data/spec/integration/knife/role_delete_spec.rb +6 -6
  861. data/spec/integration/knife/role_from_file_spec.rb +42 -42
  862. data/spec/integration/knife/role_list_spec.rb +5 -5
  863. data/spec/integration/knife/role_show_spec.rb +11 -11
  864. data/spec/integration/knife/search_node_spec.rb +39 -0
  865. data/spec/integration/knife/serve_spec.rb +58 -22
  866. data/spec/integration/knife/show_spec.rb +57 -57
  867. data/spec/integration/knife/upload_spec.rb +399 -407
  868. data/spec/integration/recipes/accumulator_spec.rb +8 -8
  869. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +15 -19
  870. data/spec/integration/recipes/lwrp_spec.rb +12 -12
  871. data/spec/integration/recipes/noop_resource_spec.rb +1 -1
  872. data/spec/integration/recipes/notifies_spec.rb +217 -157
  873. data/spec/integration/recipes/notifying_block_spec.rb +2 -2
  874. data/spec/integration/recipes/recipe_dsl_spec.rb +87 -237
  875. data/spec/integration/recipes/remote_directory.rb +1 -1
  876. data/spec/integration/recipes/resource_action_spec.rb +62 -139
  877. data/spec/integration/recipes/resource_converge_if_changed_spec.rb +144 -88
  878. data/spec/integration/recipes/resource_load_spec.rb +13 -29
  879. data/spec/integration/recipes/unified_mode_spec.rb +876 -0
  880. data/spec/integration/solo/solo_spec.rb +42 -42
  881. data/spec/scripts/ssl-serve.rb +12 -12
  882. data/spec/spec_helper.rb +126 -62
  883. data/spec/stress/win32/file_spec.rb +2 -2
  884. data/spec/stress/win32/security_spec.rb +2 -2
  885. data/spec/support/lib/chef/resource/one_two_three_four.rb +0 -2
  886. data/spec/support/lib/chef/resource/zen_master.rb +1 -3
  887. data/spec/support/mock/constant.rb +1 -1
  888. data/spec/support/platform_helpers.rb +54 -10
  889. data/spec/support/shared/context/client.rb +45 -35
  890. data/spec/support/shared/examples/client.rb +51 -0
  891. data/spec/support/shared/functional/directory_resource.rb +12 -10
  892. data/spec/support/shared/functional/execute_resource.rb +1 -1
  893. data/spec/support/shared/functional/file_resource.rb +8 -8
  894. data/spec/support/shared/functional/securable_resource.rb +116 -85
  895. data/spec/support/shared/functional/securable_resource_with_reporting.rb +6 -6
  896. data/spec/support/shared/functional/win32_service.rb +5 -5
  897. data/spec/support/shared/functional/windows_script.rb +3 -3
  898. data/spec/support/shared/integration/app_server_support.rb +5 -5
  899. data/spec/support/shared/integration/integration_helper.rb +2 -2
  900. data/spec/support/shared/integration/knife_support.rb +15 -4
  901. data/spec/support/shared/unit/api_error_inspector.rb +11 -11
  902. data/spec/support/shared/unit/api_versioning.rb +4 -4
  903. data/spec/support/shared/unit/application_dot_d.rb +2 -0
  904. data/spec/support/shared/unit/execute_resource.rb +14 -16
  905. data/spec/support/shared/unit/provider/file.rb +22 -13
  906. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +41 -41
  907. data/spec/support/shared/unit/script_resource.rb +1 -9
  908. data/spec/support/shared/unit/user_and_client_shared.rb +3 -3
  909. data/spec/tiny_server.rb +8 -9
  910. data/spec/unit/api_client/registration_spec.rb +31 -31
  911. data/spec/unit/api_client_spec.rb +8 -8
  912. data/spec/unit/api_client_v1_spec.rb +9 -9
  913. data/spec/unit/application/apply_spec.rb +4 -4
  914. data/spec/unit/application/client_spec.rb +53 -24
  915. data/spec/unit/application/exit_code_spec.rb +4 -89
  916. data/spec/unit/application/knife_spec.rb +3 -3
  917. data/spec/unit/application/solo_spec.rb +6 -13
  918. data/spec/unit/application_spec.rb +116 -41
  919. data/spec/unit/audit/audit_event_proxy_spec.rb +48 -48
  920. data/spec/unit/audit/audit_reporter_spec.rb +71 -75
  921. data/spec/unit/audit/control_group_data_spec.rb +34 -34
  922. data/spec/unit/audit/runner_spec.rb +2 -2
  923. data/spec/unit/chef_class_spec.rb +130 -0
  924. data/spec/unit/chef_fs/data_handler/data_bag_item_data_handler.rb +82 -0
  925. data/spec/unit/chef_fs/data_handler/data_handler_base_spec.rb +65 -0
  926. data/spec/unit/chef_fs/diff_spec.rb +45 -45
  927. data/spec/unit/chef_fs/file_pattern_spec.rb +2 -2
  928. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +2 -2
  929. data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +4 -4
  930. data/spec/unit/chef_fs/file_system_spec.rb +9 -9
  931. data/spec/unit/chef_fs/parallelizer.rb +12 -12
  932. data/spec/unit/client_spec.rb +97 -46
  933. data/spec/unit/config_fetcher_spec.rb +23 -23
  934. data/spec/unit/config_spec.rb +2 -2
  935. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +22 -19
  936. data/spec/unit/cookbook/file_vendor_spec.rb +20 -9
  937. data/spec/unit/cookbook/gem_installer_spec.rb +113 -0
  938. data/spec/unit/cookbook/manifest_v0_spec.rb +133 -0
  939. data/spec/unit/cookbook/manifest_v2_spec.rb +70 -0
  940. data/spec/unit/cookbook/metadata_spec.rb +114 -193
  941. data/spec/unit/cookbook/synchronizer_spec.rb +188 -158
  942. data/spec/unit/cookbook/syntax_check_spec.rb +1 -0
  943. data/spec/unit/cookbook_loader_spec.rb +33 -30
  944. data/spec/unit/cookbook_manifest_spec.rb +33 -48
  945. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +6 -10
  946. data/spec/unit/cookbook_spec.rb +10 -14
  947. data/spec/unit/cookbook_uploader_spec.rb +9 -9
  948. data/spec/unit/cookbook_version_file_specificity_spec.rb +156 -109
  949. data/spec/unit/cookbook_version_spec.rb +19 -128
  950. data/spec/unit/daemon_spec.rb +25 -16
  951. data/spec/unit/data_bag_item_spec.rb +7 -3
  952. data/spec/unit/data_bag_spec.rb +2 -2
  953. data/spec/unit/data_collector/messages/helpers_spec.rb +9 -0
  954. data/spec/unit/data_collector/messages_spec.rb +137 -0
  955. data/spec/unit/data_collector/resource_report_spec.rb +145 -0
  956. data/spec/unit/data_collector_spec.rb +137 -2
  957. data/spec/unit/deprecated_spec.rb +19 -13
  958. data/spec/unit/deprecation_spec.rb +0 -14
  959. data/spec/unit/dsl/audit_spec.rb +1 -1
  960. data/spec/unit/dsl/declare_resource_spec.rb +10 -1
  961. data/spec/unit/dsl/platform_introspection_spec.rb +16 -16
  962. data/spec/unit/dsl/reboot_pending_spec.rb +1 -14
  963. data/spec/unit/dsl/recipe_spec.rb +1 -18
  964. data/spec/unit/encrypted_data_bag_item_spec.rb +6 -6
  965. data/spec/unit/environment_spec.rb +19 -19
  966. data/spec/unit/exceptions_spec.rb +1 -1
  967. data/spec/unit/file_access_control_spec.rb +8 -8
  968. data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +16 -4
  969. data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +26 -26
  970. data/spec/unit/formatters/base_spec.rb +34 -5
  971. data/spec/unit/formatters/doc_spec.rb +18 -0
  972. data/spec/unit/formatters/error_description_spec.rb +66 -21
  973. data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +16 -16
  974. data/spec/unit/formatters/error_inspectors/cookbook_resolve_error_inspector_spec.rb +4 -4
  975. data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +1 -1
  976. data/spec/unit/formatters/error_inspectors/node_load_error_inspector_spec.rb +1 -1
  977. data/spec/unit/formatters/error_inspectors/registration_error_inspector_spec.rb +1 -1
  978. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +1 -1
  979. data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +7 -7
  980. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +4 -4
  981. data/spec/unit/handler/json_file_spec.rb +1 -1
  982. data/spec/unit/http/api_versions_spec.rb +18 -5
  983. data/spec/unit/http/authenticator_spec.rb +58 -13
  984. data/spec/unit/http/http_request_spec.rb +7 -1
  985. data/spec/unit/http/socketless_chef_zero_client_spec.rb +2 -1
  986. data/spec/unit/http/ssl_policies_spec.rb +1 -1
  987. data/spec/unit/http/validate_content_length_spec.rb +7 -7
  988. data/spec/unit/http_spec.rb +9 -0
  989. data/spec/unit/json_compat_spec.rb +0 -32
  990. data/spec/unit/key_spec.rb +12 -12
  991. data/spec/unit/knife/bootstrap/client_builder_spec.rb +4 -4
  992. data/spec/unit/knife/bootstrap_spec.rb +160 -12
  993. data/spec/unit/knife/client_bulk_delete_spec.rb +1 -1
  994. data/spec/unit/knife/client_delete_spec.rb +2 -2
  995. data/spec/unit/knife/client_reregister_spec.rb +1 -1
  996. data/spec/unit/knife/configure_client_spec.rb +4 -6
  997. data/spec/unit/knife/configure_spec.rb +12 -63
  998. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +1 -1
  999. data/spec/unit/knife/cookbook_create_spec.rb +1 -220
  1000. data/spec/unit/knife/cookbook_delete_spec.rb +6 -6
  1001. data/spec/unit/knife/cookbook_download_spec.rb +64 -46
  1002. data/spec/unit/knife/cookbook_list_spec.rb +7 -7
  1003. data/spec/unit/knife/cookbook_show_spec.rb +62 -29
  1004. data/spec/unit/knife/cookbook_test_spec.rb +2 -2
  1005. data/spec/unit/knife/cookbook_upload_spec.rb +19 -19
  1006. data/spec/unit/knife/core/bootstrap_context_spec.rb +54 -37
  1007. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +21 -21
  1008. data/spec/unit/knife/core/gem_glob_loader_spec.rb +2 -2
  1009. data/spec/unit/knife/core/hashed_command_loader_spec.rb +1 -1
  1010. data/spec/unit/knife/core/node_editor_spec.rb +6 -6
  1011. data/spec/unit/knife/core/object_loader_spec.rb +1 -1
  1012. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -6
  1013. data/spec/unit/knife/core/ui_spec.rb +76 -66
  1014. data/spec/unit/knife/data_bag_create_spec.rb +107 -41
  1015. data/spec/unit/knife/data_bag_edit_spec.rb +2 -3
  1016. data/spec/unit/knife/data_bag_secret_options_spec.rb +5 -5
  1017. data/spec/unit/knife/data_bag_show_spec.rb +16 -2
  1018. data/spec/unit/knife/environment_compare_spec.rb +3 -3
  1019. data/spec/unit/knife/environment_from_file_spec.rb +1 -1
  1020. data/spec/unit/knife/key_create_spec.rb +4 -4
  1021. data/spec/unit/knife/key_delete_spec.rb +3 -3
  1022. data/spec/unit/knife/key_edit_spec.rb +3 -3
  1023. data/spec/unit/knife/key_list_spec.rb +3 -3
  1024. data/spec/unit/knife/key_show_spec.rb +3 -3
  1025. data/spec/unit/knife/node_delete_spec.rb +1 -1
  1026. data/spec/unit/knife/node_edit_spec.rb +10 -8
  1027. data/spec/unit/knife/node_from_file_spec.rb +1 -1
  1028. data/spec/unit/knife/node_policy_set_spec.rb +122 -0
  1029. data/spec/unit/knife/node_run_list_add_spec.rb +1 -1
  1030. data/spec/unit/knife/osc_user_edit_spec.rb +1 -1
  1031. data/spec/unit/knife/osc_user_reregister_spec.rb +2 -2
  1032. data/spec/unit/knife/osc_user_show_spec.rb +1 -1
  1033. data/spec/unit/knife/role_bulk_delete_spec.rb +1 -1
  1034. data/spec/unit/knife/role_create_spec.rb +1 -1
  1035. data/spec/unit/knife/role_delete_spec.rb +1 -1
  1036. data/spec/unit/knife/role_env_run_list_add_spec.rb +4 -4
  1037. data/spec/unit/knife/role_env_run_list_clear_spec.rb +1 -1
  1038. data/spec/unit/knife/role_env_run_list_remove_spec.rb +1 -1
  1039. data/spec/unit/knife/role_env_run_list_replace_spec.rb +1 -1
  1040. data/spec/unit/knife/role_env_run_list_set_spec.rb +1 -1
  1041. data/spec/unit/knife/role_from_file_spec.rb +1 -1
  1042. data/spec/unit/knife/role_run_list_add_spec.rb +4 -4
  1043. data/spec/unit/knife/role_run_list_clear_spec.rb +1 -1
  1044. data/spec/unit/knife/role_run_list_remove_spec.rb +1 -1
  1045. data/spec/unit/knife/role_run_list_replace_spec.rb +1 -1
  1046. data/spec/unit/knife/role_run_list_set_spec.rb +1 -1
  1047. data/spec/unit/knife/ssh_spec.rb +136 -66
  1048. data/spec/unit/knife/ssl_check_spec.rb +23 -23
  1049. data/spec/unit/knife/ssl_fetch_spec.rb +11 -11
  1050. data/spec/unit/knife/status_spec.rb +2 -0
  1051. data/spec/unit/knife/{cookbook_site_download_spec.rb → supermarket_download_spec.rb} +28 -26
  1052. data/spec/unit/knife/{cookbook_site_install_spec.rb → supermarket_install_spec.rb} +10 -9
  1053. data/spec/unit/knife/{cookbook_site_share_spec.rb → supermarket_share_spec.rb} +15 -15
  1054. data/spec/unit/knife/{cookbook_site_unshare_spec.rb → supermarket_unshare_spec.rb} +9 -8
  1055. data/spec/unit/knife/user_delete_spec.rb +1 -1
  1056. data/spec/unit/knife/user_reregister_spec.rb +1 -1
  1057. data/spec/unit/knife_spec.rb +65 -38
  1058. data/spec/unit/log/syslog_spec.rb +4 -6
  1059. data/spec/unit/log/winevt_spec.rb +3 -4
  1060. data/spec/unit/lwrp_spec.rb +50 -137
  1061. data/spec/unit/mash_spec.rb +3 -3
  1062. data/spec/unit/mixin/api_version_request_handling_spec.rb +18 -18
  1063. data/spec/unit/mixin/checksum_spec.rb +1 -1
  1064. data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +8 -8
  1065. data/spec/unit/mixin/homebrew_user_spec.rb +2 -6
  1066. data/spec/unit/mixin/openssl_helper_spec.rb +857 -0
  1067. data/spec/unit/mixin/params_validate_spec.rb +104 -93
  1068. data/spec/unit/mixin/path_sanity_spec.rb +7 -7
  1069. data/spec/unit/mixin/powershell_exec_spec.rb +43 -0
  1070. data/spec/unit/mixin/powershell_type_coercions_spec.rb +8 -7
  1071. data/spec/unit/mixin/properties_spec.rb +12 -2
  1072. data/spec/unit/mixin/securable_spec.rb +27 -27
  1073. data/spec/unit/mixin/shell_out_spec.rb +335 -187
  1074. data/spec/unit/mixin/template_spec.rb +45 -0
  1075. data/spec/unit/mixin/user_context_spec.rb +108 -0
  1076. data/spec/unit/mixin/versioned_api_spec.rb +21 -0
  1077. data/spec/unit/mixin/xml_escape_spec.rb +1 -1
  1078. data/spec/unit/node/attribute_spec.rb +77 -45
  1079. data/spec/unit/node/immutable_collections_spec.rb +126 -5
  1080. data/spec/unit/node/vivid_mash_spec.rb +3 -3
  1081. data/spec/unit/node_map_spec.rb +90 -18
  1082. data/spec/unit/node_spec.rb +171 -156
  1083. data/spec/unit/org_spec.rb +2 -2
  1084. data/spec/unit/platform/query_helpers_spec.rb +30 -43
  1085. data/spec/unit/policy_builder/expand_node_object_spec.rb +6 -31
  1086. data/spec/unit/policy_builder/policyfile_spec.rb +162 -35
  1087. data/spec/unit/property/validation_spec.rb +108 -70
  1088. data/spec/unit/property_spec.rb +139 -135
  1089. data/spec/unit/provider/apt_preference_spec.rb +87 -0
  1090. data/spec/unit/provider/apt_repository_spec.rb +131 -60
  1091. data/spec/unit/provider/apt_update_spec.rb +9 -7
  1092. data/spec/unit/provider/cookbook_file/content_spec.rb +1 -1
  1093. data/spec/unit/provider/cookbook_file_spec.rb +2 -1
  1094. data/spec/unit/provider/cron/unix_spec.rb +20 -15
  1095. data/spec/unit/provider/cron_spec.rb +439 -365
  1096. data/spec/unit/provider/dsc_resource_spec.rb +10 -10
  1097. data/spec/unit/provider/dsc_script_spec.rb +1 -1
  1098. data/spec/unit/provider/execute_spec.rb +25 -16
  1099. data/spec/unit/provider/file/content_spec.rb +3 -3
  1100. data/spec/unit/provider/file_spec.rb +2 -1
  1101. data/spec/unit/provider/git_spec.rb +185 -130
  1102. data/spec/unit/provider/group/dscl_spec.rb +39 -31
  1103. data/spec/unit/provider/group/gpasswd_spec.rb +12 -9
  1104. data/spec/unit/provider/group/groupadd_spec.rb +16 -16
  1105. data/spec/unit/provider/group/groupmod_spec.rb +19 -16
  1106. data/spec/unit/provider/group/pw_spec.rb +12 -9
  1107. data/spec/unit/provider/group/suse_spec.rb +2 -2
  1108. data/spec/unit/provider/group/usermod_spec.rb +10 -10
  1109. data/spec/unit/provider/group/windows_spec.rb +18 -3
  1110. data/spec/unit/provider/group_spec.rb +16 -16
  1111. data/spec/unit/provider/http_request_spec.rb +1 -1
  1112. data/spec/unit/provider/ifconfig/aix_spec.rb +20 -20
  1113. data/spec/unit/provider/ifconfig/debian_spec.rb +16 -16
  1114. data/spec/unit/provider/ifconfig/redhat_spec.rb +10 -0
  1115. data/spec/unit/provider/ifconfig_spec.rb +33 -15
  1116. data/spec/unit/provider/launchd_spec.rb +52 -52
  1117. data/spec/unit/provider/link_spec.rb +13 -11
  1118. data/spec/unit/provider/log_spec.rb +18 -13
  1119. data/spec/unit/provider/mdadm_spec.rb +3 -3
  1120. data/spec/unit/provider/mount/aix_spec.rb +85 -45
  1121. data/spec/unit/provider/mount/mount_spec.rb +90 -37
  1122. data/spec/unit/provider/mount/solaris_spec.rb +88 -88
  1123. data/spec/unit/provider/mount/windows_spec.rb +6 -6
  1124. data/spec/unit/provider/ohai_spec.rb +9 -9
  1125. data/spec/unit/provider/osx_profile_spec.rb +6 -4
  1126. data/spec/unit/provider/package/apt_spec.rb +576 -447
  1127. data/spec/unit/provider/package/{aix_spec.rb → bff_spec.rb} +45 -43
  1128. data/spec/unit/provider/package/cab_spec.rb +58 -58
  1129. data/spec/unit/provider/package/chocolatey_spec.rb +66 -48
  1130. data/spec/unit/provider/package/dpkg_spec.rb +33 -33
  1131. data/spec/unit/provider/package/freebsd/pkg_spec.rb +36 -36
  1132. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +22 -22
  1133. data/spec/unit/provider/package/freebsd/port_spec.rb +21 -21
  1134. data/spec/unit/provider/package/homebrew_spec.rb +6 -5
  1135. data/spec/unit/provider/package/ips_spec.rb +96 -96
  1136. data/spec/unit/provider/package/macports_spec.rb +27 -27
  1137. data/spec/unit/provider/package/msu_spec.rb +44 -44
  1138. data/spec/unit/provider/package/openbsd_spec.rb +19 -19
  1139. data/spec/unit/provider/package/pacman_spec.rb +52 -52
  1140. data/spec/unit/provider/package/paludis_spec.rb +33 -33
  1141. data/spec/unit/provider/package/portage_spec.rb +27 -163
  1142. data/spec/unit/provider/package/powershell_spec.rb +236 -72
  1143. data/spec/unit/provider/package/rpm_spec.rb +26 -26
  1144. data/spec/unit/provider/package/rubygems_spec.rb +255 -98
  1145. data/spec/unit/provider/package/smartos_spec.rb +21 -21
  1146. data/spec/unit/provider/package/solaris_spec.rb +38 -38
  1147. data/spec/unit/provider/package/windows/exe_spec.rb +2 -2
  1148. data/spec/unit/provider/package/windows/msi_spec.rb +2 -2
  1149. data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +78 -0
  1150. data/spec/unit/provider/package/windows_spec.rb +22 -2
  1151. data/{lib/chef/mixin/language_include_recipe.rb → spec/unit/provider/package/yum/python_helper_spec.rb} +8 -10
  1152. data/spec/unit/provider/package/yum/yum_cache_spec.rb +86 -4
  1153. data/spec/unit/provider/package/zypper_spec.rb +207 -68
  1154. data/spec/unit/provider/package_spec.rb +87 -23
  1155. data/spec/unit/provider/powershell_script_spec.rb +16 -6
  1156. data/spec/unit/provider/registry_key_spec.rb +103 -23
  1157. data/spec/unit/provider/remote_directory_spec.rb +1 -1
  1158. data/spec/unit/provider/remote_file/cache_control_data_spec.rb +8 -8
  1159. data/spec/unit/provider/remote_file/content_spec.rb +6 -6
  1160. data/spec/unit/provider/remote_file/fetcher_spec.rb +6 -5
  1161. data/spec/unit/provider/remote_file/ftp_spec.rb +1 -1
  1162. data/spec/unit/provider/remote_file/http_spec.rb +26 -24
  1163. data/spec/unit/provider/remote_file/local_file_spec.rb +2 -2
  1164. data/spec/unit/provider/remote_file/network_file_spec.rb +9 -4
  1165. data/spec/unit/provider/remote_file/sftp_spec.rb +2 -2
  1166. data/spec/unit/provider/remote_file_spec.rb +2 -1
  1167. data/spec/unit/provider/route_spec.rb +36 -14
  1168. data/spec/unit/provider/script_spec.rb +2 -2
  1169. data/spec/unit/provider/service/aix_service_spec.rb +8 -8
  1170. data/spec/unit/provider/service/aixinit_service_spec.rb +4 -4
  1171. data/spec/unit/provider/service/arch_service_spec.rb +36 -36
  1172. data/spec/unit/provider/service/debian_service_spec.rb +42 -168
  1173. data/spec/unit/provider/service/freebsd_service_spec.rb +37 -37
  1174. data/spec/unit/provider/service/gentoo_service_spec.rb +1 -1
  1175. data/spec/unit/provider/service/init_service_spec.rb +30 -30
  1176. data/spec/unit/provider/service/insserv_service_spec.rb +4 -4
  1177. data/spec/unit/provider/service/invokercd_service_spec.rb +30 -30
  1178. data/spec/unit/provider/service/macosx_spec.rb +68 -63
  1179. data/spec/unit/provider/service/openbsd_service_spec.rb +12 -12
  1180. data/spec/unit/provider/service/redhat_spec.rb +27 -27
  1181. data/spec/unit/provider/service/simple_service_spec.rb +20 -20
  1182. data/spec/unit/provider/service/solaris_smf_service_spec.rb +54 -17
  1183. data/spec/unit/provider/service/systemd_service_spec.rb +37 -43
  1184. data/spec/unit/provider/service/upstart_service_spec.rb +33 -46
  1185. data/spec/unit/provider/service/windows_spec.rb +517 -70
  1186. data/spec/unit/provider/service_spec.rb +4 -4
  1187. data/spec/unit/provider/subversion_spec.rb +15 -15
  1188. data/spec/unit/provider/systemd_unit_spec.rb +241 -159
  1189. data/spec/unit/provider/template/content_spec.rb +44 -44
  1190. data/spec/unit/provider/template_spec.rb +3 -5
  1191. data/spec/unit/provider/user/aix_spec.rb +96 -0
  1192. data/spec/unit/provider/user/dscl_spec.rb +39 -21
  1193. data/spec/unit/provider/user/linux_spec.rb +5 -43
  1194. data/spec/unit/provider/user/pw_spec.rb +29 -49
  1195. data/spec/unit/provider/user/solaris_spec.rb +8 -9
  1196. data/spec/unit/provider/user/windows_spec.rb +23 -11
  1197. data/spec/unit/provider/user_spec.rb +52 -36
  1198. data/spec/unit/provider/{env_spec.rb → windows_env_spec.rb} +106 -16
  1199. data/spec/unit/provider/windows_path_spec.rb +65 -0
  1200. data/spec/unit/provider/windows_task_spec.rb +435 -0
  1201. data/spec/unit/provider/zypper_repository_spec.rb +126 -0
  1202. data/spec/unit/provider_resolver_spec.rb +41 -54
  1203. data/spec/unit/provider_spec.rb +10 -7
  1204. data/spec/unit/recipe_spec.rb +19 -188
  1205. data/spec/unit/resource/apt_package_spec.rb +19 -1
  1206. data/spec/unit/resource/apt_preference_spec.rb +57 -0
  1207. data/spec/unit/resource/apt_repository_spec.rb +58 -16
  1208. data/spec/unit/resource/apt_update_spec.rb +22 -10
  1209. data/spec/unit/resource/bash_spec.rb +14 -9
  1210. data/spec/unit/resource/batch_spec.rb +2 -5
  1211. data/spec/unit/resource/bff_package_spec.rb +51 -0
  1212. data/spec/unit/resource/breakpoint_spec.rb +30 -13
  1213. data/spec/unit/resource/build_essential_spec.rb +43 -0
  1214. data/spec/unit/resource/cab_package_spec.rb +30 -4
  1215. data/spec/unit/resource/chef_gem_spec.rb +32 -64
  1216. data/spec/unit/resource/chef_handler_spec.rb +40 -0
  1217. data/spec/unit/resource/chocolatey_config_spec.rb +98 -0
  1218. data/spec/unit/resource/chocolatey_package_spec.rb +24 -12
  1219. data/spec/unit/resource/chocolatey_source_spec.rb +102 -0
  1220. data/spec/unit/resource/conditional_spec.rb +5 -5
  1221. data/spec/unit/resource/cookbook_file_spec.rb +36 -31
  1222. data/{lib/chef/mixin/language_include_attribute.rb → spec/unit/resource/cron_access_spec.rb} +14 -12
  1223. data/spec/unit/resource/cron_d_spec.rb +90 -0
  1224. data/spec/unit/resource/cron_spec.rb +73 -86
  1225. data/spec/unit/resource/csh_spec.rb +14 -9
  1226. data/spec/unit/resource/directory_spec.rb +23 -36
  1227. data/spec/unit/resource/{deploy_revision_spec.rb → dmg_package_spec.rb} +15 -18
  1228. data/spec/unit/resource/dnf_package_spec.rb +47 -38
  1229. data/spec/unit/resource/dpkg_package_spec.rb +18 -0
  1230. data/spec/unit/resource/dsc_resource_spec.rb +7 -7
  1231. data/spec/unit/resource/dsc_script_spec.rb +49 -49
  1232. data/spec/unit/resource/execute_spec.rb +47 -19
  1233. data/spec/unit/resource/file/verification/systemd_unit_spec.rb +1 -1
  1234. data/spec/unit/resource/file/verification_spec.rb +27 -19
  1235. data/spec/unit/resource/file_spec.rb +58 -61
  1236. data/spec/unit/resource/freebsd_package_spec.rb +47 -31
  1237. data/spec/unit/resource/gem_package_spec.rb +30 -5
  1238. data/spec/unit/resource/git_spec.rb +23 -11
  1239. data/spec/unit/resource/group_spec.rb +78 -75
  1240. data/spec/unit/resource/homebrew_cask_spec.rb +40 -0
  1241. data/spec/unit/resource/homebrew_package_spec.rb +18 -0
  1242. data/spec/unit/resource/homebrew_tap_spec.rb +44 -0
  1243. data/spec/unit/resource/hostname_spec.rb +47 -0
  1244. data/spec/unit/resource/http_request_spec.rb +23 -17
  1245. data/spec/unit/resource/ifconfig_spec.rb +4 -4
  1246. data/spec/unit/resource/ips_package_spec.rb +21 -7
  1247. data/spec/unit/resource/kernel_module_spec.rb +48 -0
  1248. data/spec/unit/resource/ksh_spec.rb +14 -9
  1249. data/spec/unit/resource/launchd_spec.rb +23 -15
  1250. data/spec/unit/resource/link_spec.rb +52 -62
  1251. data/spec/unit/resource/locale_spec.rb +60 -0
  1252. data/spec/unit/resource/log_spec.rb +22 -31
  1253. data/spec/unit/resource/{timestamped_deploy_spec.rb → macos_user_defaults_spec.rb} +14 -11
  1254. data/spec/unit/resource/macports_package_spec.rb +19 -0
  1255. data/spec/unit/resource/mdadm_spec.rb +41 -44
  1256. data/spec/unit/resource/mount_spec.rb +94 -131
  1257. data/spec/unit/resource/msu_package_spec.rb +25 -11
  1258. data/spec/unit/resource/ohai_hint_spec.rb +44 -0
  1259. data/spec/unit/resource/ohai_spec.rb +17 -16
  1260. data/spec/unit/resource/openbsd_package_spec.rb +24 -14
  1261. data/spec/unit/resource/openssl_dhparam.rb +61 -0
  1262. data/spec/unit/resource/openssl_ec_private_key_spec.rb +64 -0
  1263. data/spec/unit/resource/openssl_ec_public_key_spec.rb +43 -0
  1264. data/spec/unit/resource/openssl_rsa_private_key_spec.rb +64 -0
  1265. data/spec/unit/resource/openssl_rsa_public_key_spec.rb +43 -0
  1266. data/spec/unit/resource/openssl_x509_certificate_spec.rb +72 -0
  1267. data/spec/unit/resource/openssl_x509_crl_spec.rb +61 -0
  1268. data/spec/unit/resource/openssl_x509_request.rb +68 -0
  1269. data/spec/unit/resource/osx_profile_spec.rb +10 -12
  1270. data/spec/unit/resource/package_spec.rb +47 -37
  1271. data/spec/unit/resource/pacman_package_spec.rb +17 -3
  1272. data/spec/unit/resource/paludis_package_spec.rb +36 -0
  1273. data/spec/unit/resource/perl_spec.rb +13 -9
  1274. data/spec/unit/resource/portage_package_spec.rb +18 -10
  1275. data/spec/unit/resource/powershell_package_source_spec.rb +219 -0
  1276. data/spec/unit/resource/powershell_package_spec.rb +42 -12
  1277. data/spec/unit/resource/powershell_script_spec.rb +10 -10
  1278. data/spec/unit/resource/python_spec.rb +10 -10
  1279. data/spec/unit/resource/reboot_spec.rb +47 -0
  1280. data/spec/unit/resource/registry_key_spec.rb +99 -99
  1281. data/spec/unit/resource/remote_directory_spec.rb +50 -42
  1282. data/spec/unit/resource/remote_file_spec.rb +95 -82
  1283. data/spec/unit/resource/resource_notification_spec.rb +8 -8
  1284. data/spec/unit/resource/rhsm_errata_level_spec.rb +50 -0
  1285. data/spec/unit/resource/rhsm_errata_spec.rb +39 -0
  1286. data/spec/unit/resource/rhsm_register_spec.rb +204 -0
  1287. data/spec/unit/resource/rhsm_repo_spec.rb +64 -0
  1288. data/spec/unit/resource/rhsm_subscription_spec.rb +98 -0
  1289. data/spec/unit/resource/route_spec.rb +36 -48
  1290. data/spec/unit/resource/rpm_package_spec.rb +22 -6
  1291. data/spec/unit/resource/ruby_block_spec.rb +15 -18
  1292. data/spec/unit/resource/ruby_spec.rb +9 -10
  1293. data/spec/unit/resource/scm_spec.rb +64 -84
  1294. data/spec/unit/resource/script_spec.rb +10 -2
  1295. data/spec/unit/resource/service_spec.rb +102 -75
  1296. data/spec/unit/resource/smartos_package_spec.rb +21 -2
  1297. data/spec/unit/resource/solaris_package_spec.rb +16 -4
  1298. data/spec/unit/resource/ssh_known_hosts_entry_spec.rb +55 -0
  1299. data/spec/unit/resource/subversion_spec.rb +39 -19
  1300. data/spec/unit/resource/sudo_spec.rb +99 -0
  1301. data/spec/unit/resource/swap_file_spec.rb +39 -0
  1302. data/spec/unit/resource/sysctl_spec.rb +54 -0
  1303. data/spec/unit/resource/systemd_unit_spec.rb +58 -61
  1304. data/spec/unit/resource/template_spec.rb +74 -62
  1305. data/spec/unit/resource/timezone.rb +39 -0
  1306. data/spec/unit/resource/user_spec.rb +45 -56
  1307. data/spec/unit/resource/windows_ad_join_spec.rb +51 -0
  1308. data/spec/unit/resource/windows_auto_run_spec.rb +50 -0
  1309. data/spec/unit/resource/windows_certificate.rb +83 -0
  1310. data/spec/unit/resource/windows_env_spec.rb +75 -0
  1311. data/spec/unit/resource/windows_feature.rb +64 -0
  1312. data/spec/unit/resource/windows_feature_dism.rb +72 -0
  1313. data/spec/unit/resource/windows_feature_powershell.rb +72 -0
  1314. data/spec/unit/resource/windows_firewall_rule_spec.rb +401 -0
  1315. data/spec/unit/resource/windows_font_spec.rb +43 -0
  1316. data/spec/unit/resource/windows_package_spec.rb +16 -6
  1317. data/spec/unit/resource/windows_pagefile_spec.rb +49 -0
  1318. data/spec/unit/resource/windows_path_spec.rb +40 -0
  1319. data/spec/unit/resource/windows_printer_port_spec.rb +62 -0
  1320. data/spec/unit/resource/windows_printer_spec.rb +52 -0
  1321. data/spec/unit/resource/windows_service_spec.rb +49 -5
  1322. data/spec/unit/resource/windows_share.rb +39 -0
  1323. data/spec/unit/resource/windows_shortcut_spec.rb +38 -0
  1324. data/spec/unit/resource/windows_task_spec.rb +399 -0
  1325. data/spec/unit/resource/windows_workgroup_spec.rb +74 -0
  1326. data/spec/unit/resource/yum_package_spec.rb +6 -6
  1327. data/spec/unit/resource/yum_repository_spec.rb +112 -9
  1328. data/spec/unit/resource/zypper_package_spec.rb +51 -0
  1329. data/spec/unit/resource/zypper_repository_spec.rb +115 -0
  1330. data/spec/unit/resource_collection/resource_set_spec.rb +52 -7
  1331. data/spec/unit/resource_collection_spec.rb +17 -8
  1332. data/spec/unit/resource_definition_spec.rb +2 -2
  1333. data/spec/unit/resource_inspector_spec.rb +60 -0
  1334. data/spec/unit/resource_reporter_spec.rb +39 -39
  1335. data/spec/unit/resource_spec.rb +154 -100
  1336. data/spec/unit/role_spec.rb +22 -22
  1337. data/spec/unit/run_context/child_run_context_spec.rb +3 -3
  1338. data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -3
  1339. data/spec/unit/run_context_spec.rb +1 -1
  1340. data/spec/unit/run_list/run_list_item_spec.rb +3 -3
  1341. data/spec/unit/run_list/versioned_recipe_list_spec.rb +19 -16
  1342. data/spec/unit/run_list_spec.rb +6 -6
  1343. data/spec/unit/runner_spec.rb +16 -30
  1344. data/spec/unit/scan_access_control_spec.rb +3 -3
  1345. data/spec/unit/search/query_spec.rb +36 -43
  1346. data/spec/unit/server_api_spec.rb +75 -1
  1347. data/spec/unit/server_api_versions_spec.rb +22 -0
  1348. data/spec/unit/shell/model_wrapper_spec.rb +4 -4
  1349. data/spec/unit/shell/shell_ext_spec.rb +4 -4
  1350. data/spec/unit/shell/shell_session_spec.rb +113 -58
  1351. data/spec/unit/user_spec.rb +3 -3
  1352. data/spec/unit/user_v1_spec.rb +27 -27
  1353. data/spec/unit/util/diff_spec.rb +1 -1
  1354. data/spec/unit/util/dsc/configuration_generator_spec.rb +4 -4
  1355. data/spec/unit/util/dsc/lcm_output_parser_spec.rb +172 -88
  1356. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +77 -24
  1357. data/spec/unit/util/file_edit_spec.rb +38 -38
  1358. data/spec/unit/util/powershell/cmdlet_spec.rb +1 -1
  1359. data/spec/unit/util/selinux_spec.rb +10 -13
  1360. data/spec/unit/util/windows/logon_session_spec.rb +285 -0
  1361. data/spec/unit/version_string_spec.rb +79 -0
  1362. data/spec/unit/win32/error_spec.rb +12 -2
  1363. data/spec/unit/win32/link_spec.rb +73 -0
  1364. data/spec/unit/win32/registry_spec.rb +3 -3
  1365. data/spec/unit/win32/security_spec.rb +69 -1
  1366. data/spec/unit/windows_service_spec.rb +6 -4
  1367. data/tasks/announce.rb +1 -1
  1368. data/tasks/bin/run_external_test +22 -40
  1369. data/tasks/dependencies.rb +21 -114
  1370. data/tasks/maintainers.rb +13 -13
  1371. data/tasks/rspec.rb +3 -3
  1372. data/tasks/templates/prerelease.md.erb +11 -2
  1373. data/tasks/templates/release.md.erb +9 -1
  1374. metadata +335 -404
  1375. data/CONTRIBUTING.md +0 -151
  1376. data/VERSION +0 -1
  1377. data/acceptance/.gitignore +0 -3
  1378. data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +0 -33
  1379. data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +0 -282
  1380. data/acceptance/.shared/kitchen_acceptance/.kitchen.vagrant.yml +0 -59
  1381. data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +0 -68
  1382. data/acceptance/.shared/kitchen_acceptance/metadata.rb +0 -1
  1383. data/acceptance/Gemfile +0 -16
  1384. data/acceptance/Gemfile.lock +0 -258
  1385. data/acceptance/README.md +0 -137
  1386. data/acceptance/basics/.acceptance/acceptance-cookbook/.gitignore +0 -2
  1387. data/acceptance/basics/.acceptance/acceptance-cookbook/metadata.rb +0 -3
  1388. data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  1389. data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  1390. data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  1391. data/acceptance/basics/.kitchen.yml +0 -4
  1392. data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +0 -19
  1393. data/acceptance/basics/test/integration/chef-current-install/serverspec/spec_helper.rb +0 -6
  1394. data/acceptance/basics/test/integration/helpers/serverspec/Gemfile +0 -8
  1395. data/acceptance/data-collector/.acceptance/acceptance-cookbook/.gitignore +0 -2
  1396. data/acceptance/data-collector/.acceptance/acceptance-cookbook/metadata.rb +0 -3
  1397. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -2
  1398. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -2
  1399. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -2
  1400. data/acceptance/data-collector/.acceptance/data-collector-test/.gitignore +0 -16
  1401. data/acceptance/data-collector/.acceptance/data-collector-test/Berksfile +0 -3
  1402. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/api.rb +0 -85
  1403. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/apigemfile +0 -3
  1404. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-both-mode.rb +0 -4
  1405. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-client-mode.rb +0 -4
  1406. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-no-endpoint.rb +0 -2
  1407. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-solo-mode.rb +0 -4
  1408. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/config.ru +0 -2
  1409. data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +0 -7
  1410. data/acceptance/data-collector/.acceptance/data-collector-test/recipes/default.rb +0 -38
  1411. data/acceptance/data-collector/.kitchen.yml +0 -9
  1412. data/acceptance/data-collector/Berksfile +0 -3
  1413. data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +0 -204
  1414. data/acceptance/data-collector/test/integration/helpers/serverspec/Gemfile +0 -8
  1415. data/acceptance/fips/.acceptance/acceptance-cookbook/.gitignore +0 -2
  1416. data/acceptance/fips/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  1417. data/acceptance/fips/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  1418. data/acceptance/fips/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  1419. data/acceptance/fips/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  1420. data/acceptance/fips/.kitchen.yml +0 -8
  1421. data/acceptance/fips/test/integration/fips-integration/serverspec/Gemfile +0 -9
  1422. data/acceptance/fips/test/integration/fips-integration/serverspec/fips-integration_spec.rb +0 -52
  1423. data/acceptance/fips/test/integration/fips-unit-functional/serverspec/Gemfile +0 -7
  1424. data/acceptance/fips/test/integration/fips-unit-functional/serverspec/fips-unit-functional_spec.rb +0 -56
  1425. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/.gitignore +0 -2
  1426. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/metadata.rb +0 -1
  1427. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  1428. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  1429. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -61
  1430. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/.gitignore +0 -2
  1431. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/cookbook_kitchen.rb +0 -43
  1432. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +0 -45
  1433. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/metadata.rb +0 -3
  1434. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  1435. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  1436. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  1437. data/acceptance/top-cookbooks/.gitignore +0 -1
  1438. data/acceptance/top-cookbooks/.kitchen.chocolatey.yml +0 -6
  1439. data/acceptance/top-cookbooks/.kitchen.docker.yml +0 -9
  1440. data/acceptance/top-cookbooks/.kitchen.git.yml +0 -11
  1441. data/acceptance/top-cookbooks/.kitchen.iis.yml +0 -4
  1442. data/acceptance/top-cookbooks/.kitchen.learn-the-basics-rhel.yml +0 -7
  1443. data/acceptance/top-cookbooks/.kitchen.learn-the-basics-ubuntu.yml +0 -7
  1444. data/acceptance/top-cookbooks/.kitchen.learn-the-basics-windows.yml +0 -7
  1445. data/acceptance/top-cookbooks/.kitchen.powershell.yml +0 -4
  1446. data/acceptance/top-cookbooks/.kitchen.sql_server.yml +0 -5
  1447. data/acceptance/top-cookbooks/.kitchen.winbox.yml +0 -8
  1448. data/acceptance/top-cookbooks/.kitchen.windows.yml +0 -38
  1449. data/acceptance/trivial/.acceptance/acceptance-cookbook/.gitignore +0 -2
  1450. data/acceptance/trivial/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  1451. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  1452. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  1453. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  1454. data/acceptance/trivial/.kitchen.yml +0 -7
  1455. data/acceptance/trivial/test/integration/chef-current-install/inspec/chef_client_spec.rb +0 -5
  1456. data/acceptance/windows-service/.acceptance/acceptance-cookbook/.gitignore +0 -2
  1457. data/acceptance/windows-service/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  1458. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  1459. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  1460. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  1461. data/acceptance/windows-service/.kitchen.yml +0 -7
  1462. data/acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb +0 -58
  1463. data/distro/common/html/_sources/ctl_chef_client.txt +0 -36
  1464. data/distro/common/html/_sources/ctl_chef_server.txt +0 -341
  1465. data/distro/common/html/_sources/ctl_chef_shell.txt +0 -15
  1466. data/distro/common/html/_sources/ctl_chef_solo.txt +0 -25
  1467. data/distro/common/html/_sources/index.txt +0 -135
  1468. data/distro/common/html/_sources/knife.txt +0 -74
  1469. data/distro/common/html/_sources/knife_bootstrap.txt +0 -56
  1470. data/distro/common/html/_sources/knife_client.txt +0 -151
  1471. data/distro/common/html/_sources/knife_common_options.txt +0 -6
  1472. data/distro/common/html/_sources/knife_configure.txt +0 -29
  1473. data/distro/common/html/_sources/knife_cookbook.txt +0 -236
  1474. data/distro/common/html/_sources/knife_cookbook_site.txt +0 -157
  1475. data/distro/common/html/_sources/knife_data_bag.txt +0 -160
  1476. data/distro/common/html/_sources/knife_delete.txt +0 -26
  1477. data/distro/common/html/_sources/knife_deps.txt +0 -61
  1478. data/distro/common/html/_sources/knife_diff.txt +0 -34
  1479. data/distro/common/html/_sources/knife_download.txt +0 -44
  1480. data/distro/common/html/_sources/knife_edit.txt +0 -26
  1481. data/distro/common/html/_sources/knife_environment.txt +0 -158
  1482. data/distro/common/html/_sources/knife_exec.txt +0 -47
  1483. data/distro/common/html/_sources/knife_index_rebuild.txt +0 -21
  1484. data/distro/common/html/_sources/knife_list.txt +0 -33
  1485. data/distro/common/html/_sources/knife_node.txt +0 -250
  1486. data/distro/common/html/_sources/knife_raw.txt +0 -35
  1487. data/distro/common/html/_sources/knife_recipe_list.txt +0 -23
  1488. data/distro/common/html/_sources/knife_role.txt +0 -157
  1489. data/distro/common/html/_sources/knife_search.txt +0 -53
  1490. data/distro/common/html/_sources/knife_serve.txt +0 -19
  1491. data/distro/common/html/_sources/knife_show.txt +0 -27
  1492. data/distro/common/html/_sources/knife_ssh.txt +0 -43
  1493. data/distro/common/html/_sources/knife_ssl_check.txt +0 -41
  1494. data/distro/common/html/_sources/knife_ssl_fetch.txt +0 -41
  1495. data/distro/common/html/_sources/knife_status.txt +0 -37
  1496. data/distro/common/html/_sources/knife_tag.txt +0 -69
  1497. data/distro/common/html/_sources/knife_upload.txt +0 -49
  1498. data/distro/common/html/_sources/knife_user.txt +0 -127
  1499. data/distro/common/html/_sources/knife_using.txt +0 -43
  1500. data/distro/common/html/_sources/knife_xargs.txt +0 -30
  1501. data/distro/common/html/_static/ajax-loader.gif +0 -0
  1502. data/distro/common/html/_static/basic.css +0 -537
  1503. data/distro/common/html/_static/chef.ico +0 -0
  1504. data/distro/common/html/_static/chef_html_logo.png +0 -0
  1505. data/distro/common/html/_static/comment-bright.png +0 -0
  1506. data/distro/common/html/_static/comment-close.png +0 -0
  1507. data/distro/common/html/_static/comment.png +0 -0
  1508. data/distro/common/html/_static/contents.png +0 -0
  1509. data/distro/common/html/_static/doctools.js +0 -238
  1510. data/distro/common/html/_static/down-pressed.png +0 -0
  1511. data/distro/common/html/_static/down.png +0 -0
  1512. data/distro/common/html/_static/file.png +0 -0
  1513. data/distro/common/html/_static/guide.css +0 -505
  1514. data/distro/common/html/_static/jquery.js +0 -2
  1515. data/distro/common/html/_static/minus.png +0 -0
  1516. data/distro/common/html/_static/navigation.png +0 -0
  1517. data/distro/common/html/_static/plus.png +0 -0
  1518. data/distro/common/html/_static/pygments.css +0 -62
  1519. data/distro/common/html/_static/searchtools.js +0 -622
  1520. data/distro/common/html/_static/underscore.js +0 -31
  1521. data/distro/common/html/_static/up-pressed.png +0 -0
  1522. data/distro/common/html/_static/up.png +0 -0
  1523. data/distro/common/html/_static/websupport.js +0 -808
  1524. data/distro/common/html/ctl_chef_client.html +0 -270
  1525. data/distro/common/html/ctl_chef_server.html +0 -728
  1526. data/distro/common/html/ctl_chef_shell.html +0 -163
  1527. data/distro/common/html/ctl_chef_solo.html +0 -194
  1528. data/distro/common/html/index.html +0 -202
  1529. data/distro/common/html/knife.html +0 -170
  1530. data/distro/common/html/knife_bootstrap.html +0 -285
  1531. data/distro/common/html/knife_client.html +0 -285
  1532. data/distro/common/html/knife_common_options.html +0 -96
  1533. data/distro/common/html/knife_configure.html +0 -105
  1534. data/distro/common/html/knife_cookbook.html +0 -487
  1535. data/distro/common/html/knife_cookbook_site.html +0 -375
  1536. data/distro/common/html/knife_data_bag.html +0 -374
  1537. data/distro/common/html/knife_delete.html +0 -93
  1538. data/distro/common/html/knife_deps.html +0 -143
  1539. data/distro/common/html/knife_diff.html +0 -123
  1540. data/distro/common/html/knife_download.html +0 -145
  1541. data/distro/common/html/knife_edit.html +0 -89
  1542. data/distro/common/html/knife_environment.html +0 -322
  1543. data/distro/common/html/knife_exec.html +0 -220
  1544. data/distro/common/html/knife_index_rebuild.html +0 -83
  1545. data/distro/common/html/knife_list.html +0 -114
  1546. data/distro/common/html/knife_node.html +0 -458
  1547. data/distro/common/html/knife_raw.html +0 -110
  1548. data/distro/common/html/knife_recipe_list.html +0 -91
  1549. data/distro/common/html/knife_role.html +0 -295
  1550. data/distro/common/html/knife_search.html +0 -203
  1551. data/distro/common/html/knife_serve.html +0 -79
  1552. data/distro/common/html/knife_show.html +0 -104
  1553. data/distro/common/html/knife_ssh.html +0 -177
  1554. data/distro/common/html/knife_ssl_check.html +0 -151
  1555. data/distro/common/html/knife_ssl_fetch.html +0 -151
  1556. data/distro/common/html/knife_status.html +0 -144
  1557. data/distro/common/html/knife_tag.html +0 -138
  1558. data/distro/common/html/knife_upload.html +0 -153
  1559. data/distro/common/html/knife_user.html +0 -242
  1560. data/distro/common/html/knife_using.html +0 -210
  1561. data/distro/common/html/knife_xargs.html +0 -122
  1562. data/distro/common/html/objects.inv +0 -0
  1563. data/distro/common/html/search.html +0 -82
  1564. data/distro/common/html/searchindex.js +0 -1
  1565. data/distro/common/man/man1/README.md +0 -58
  1566. data/distro/common/man/man1/chef-shell.1 +0 -194
  1567. data/distro/common/man/man1/knife-bootstrap.1 +0 -215
  1568. data/distro/common/man/man1/knife-client.1 +0 -443
  1569. data/distro/common/man/man1/knife-configure.1 +0 -161
  1570. data/distro/common/man/man1/knife-cookbook-site.1 +0 -552
  1571. data/distro/common/man/man1/knife-cookbook.1 +0 -770
  1572. data/distro/common/man/man1/knife-data-bag.1 +0 -617
  1573. data/distro/common/man/man1/knife-delete.1 +0 -127
  1574. data/distro/common/man/man1/knife-deps.1 +0 -246
  1575. data/distro/common/man/man1/knife-diff.1 +0 -226
  1576. data/distro/common/man/man1/knife-download.1 +0 -258
  1577. data/distro/common/man/man1/knife-edit.1 +0 -121
  1578. data/distro/common/man/man1/knife-environment.1 +0 -496
  1579. data/distro/common/man/man1/knife-exec.1 +0 -362
  1580. data/distro/common/man/man1/knife-index-rebuild.1 +0 -63
  1581. data/distro/common/man/man1/knife-list.1 +0 -174
  1582. data/distro/common/man/man1/knife-node.1 +0 -716
  1583. data/distro/common/man/man1/knife-raw.1 +0 -172
  1584. data/distro/common/man/man1/knife-recipe-list.1 +0 -85
  1585. data/distro/common/man/man1/knife-role.1 +0 -426
  1586. data/distro/common/man/man1/knife-search.1 +0 -359
  1587. data/distro/common/man/man1/knife-serve.1 +0 -109
  1588. data/distro/common/man/man1/knife-show.1 +0 -160
  1589. data/distro/common/man/man1/knife-ssh.1 +0 -284
  1590. data/distro/common/man/man1/knife-ssl-check.1 +0 -207
  1591. data/distro/common/man/man1/knife-ssl-fetch.1 +0 -207
  1592. data/distro/common/man/man1/knife-status.1 +0 -234
  1593. data/distro/common/man/man1/knife-tag.1 +0 -189
  1594. data/distro/common/man/man1/knife-upload.1 +0 -280
  1595. data/distro/common/man/man1/knife-user.1 +0 -356
  1596. data/distro/common/man/man1/knife-xargs.1 +0 -189
  1597. data/distro/common/man/man1/knife.1 +0 -332
  1598. data/distro/common/man/man8/chef-apply.8 +0 -86
  1599. data/distro/common/man/man8/chef-client.8 +0 -398
  1600. data/distro/common/man/man8/chef-solo.8 +0 -260
  1601. data/distro/common/markdown/README +0 -3
  1602. data/distro/common/markdown/man1/chef-shell.mkd +0 -195
  1603. data/distro/common/markdown/man1/knife-bootstrap.mkd +0 -141
  1604. data/distro/common/markdown/man1/knife-client.mkd +0 -103
  1605. data/distro/common/markdown/man1/knife-configure.mkd +0 -71
  1606. data/distro/common/markdown/man1/knife-cookbook-site.mkd +0 -123
  1607. data/distro/common/markdown/man1/knife-cookbook.mkd +0 -263
  1608. data/distro/common/markdown/man1/knife-data-bag.mkd +0 -121
  1609. data/distro/common/markdown/man1/knife-environment.mkd +0 -151
  1610. data/distro/common/markdown/man1/knife-exec.mkd +0 -42
  1611. data/distro/common/markdown/man1/knife-index.mkd +0 -30
  1612. data/distro/common/markdown/man1/knife-node.mkd +0 -130
  1613. data/distro/common/markdown/man1/knife-role.mkd +0 -85
  1614. data/distro/common/markdown/man1/knife-search.mkd +0 -180
  1615. data/distro/common/markdown/man1/knife-ssh.mkd +0 -69
  1616. data/distro/common/markdown/man1/knife-status.mkd +0 -36
  1617. data/distro/common/markdown/man1/knife-tag.mkd +0 -39
  1618. data/distro/common/markdown/man1/knife.mkd +0 -213
  1619. data/distro/common/markdown/man8/chef-client.mkd +0 -75
  1620. data/distro/common/markdown/man8/chef-expander.mkd +0 -81
  1621. data/distro/common/markdown/man8/chef-expanderctl.mkd +0 -57
  1622. data/distro/common/markdown/man8/chef-server-webui.mkd +0 -121
  1623. data/distro/common/markdown/man8/chef-server.mkd +0 -120
  1624. data/distro/common/markdown/man8/chef-solo.mkd +0 -107
  1625. data/distro/common/markdown/man8/chef-solr.mkd +0 -89
  1626. data/distro/powershell/chef/chef.psm1 +0 -442
  1627. data/lib-backcompat/chef/chef_fs/file_system/acl_entry.rb +0 -5
  1628. data/lib-backcompat/chef/chef_fs/file_system/already_exists_error.rb +0 -20
  1629. data/lib-backcompat/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +0 -5
  1630. data/lib-backcompat/chef/chef_fs/file_system/chef_server_root_dir.rb +0 -5
  1631. data/lib-backcompat/chef/chef_fs/file_system/cookbook_frozen_error.rb +0 -20
  1632. data/lib-backcompat/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +0 -20
  1633. data/lib-backcompat/chef/chef_fs/file_system/file_system_error.rb +0 -20
  1634. data/lib-backcompat/chef/chef_fs/file_system/must_delete_recursively_error.rb +0 -20
  1635. data/lib-backcompat/chef/chef_fs/file_system/not_found_error.rb +0 -20
  1636. data/lib-backcompat/chef/chef_fs/file_system/operation_failed_error.rb +0 -20
  1637. data/lib-backcompat/chef/chef_fs/file_system/operation_not_allowed_error.rb +0 -20
  1638. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_acls_dir.rb +0 -5
  1639. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_client_keys_dir.rb +0 -5
  1640. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_entry.rb +0 -6
  1641. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_policies_dir.rb +0 -5
  1642. data/lib-backcompat/chef/chef_fs/file_system/repository/file_system_root_dir.rb +0 -34
  1643. data/lib/chef/deprecation/mixin/template.rb +0 -48
  1644. data/lib/chef/deprecation/provider/cookbook_file.rb +0 -54
  1645. data/lib/chef/deprecation/provider/file.rb +0 -198
  1646. data/lib/chef/deprecation/provider/remote_directory.rb +0 -52
  1647. data/lib/chef/deprecation/provider/remote_file.rb +0 -85
  1648. data/lib/chef/deprecation/provider/template.rb +0 -63
  1649. data/lib/chef/dsl/method_missing.rb +0 -75
  1650. data/lib/chef/knife/core/custom_manifest_loader.rb +0 -69
  1651. data/lib/chef/knife/help.rb +0 -101
  1652. data/lib/chef/knife/help_topics.rb +0 -4
  1653. data/lib/chef/knife/index_rebuild.rb +0 -133
  1654. data/lib/chef/mixin/command.rb +0 -194
  1655. data/lib/chef/mixin/command/unix.rb +0 -220
  1656. data/lib/chef/mixin/command/windows.rb +0 -71
  1657. data/lib/chef/mixin/language.rb +0 -48
  1658. data/lib/chef/mixin/recipe_definition_dsl_core.rb +0 -35
  1659. data/lib/chef/provider/deploy.rb +0 -476
  1660. data/lib/chef/provider/deploy/revision.rb +0 -107
  1661. data/lib/chef/provider/deploy/timestamped.rb +0 -34
  1662. data/lib/chef/provider/env/windows.rb +0 -72
  1663. data/lib/chef/provider/erl_call.rb +0 -108
  1664. data/lib/chef/provider/package/easy_install.rb +0 -135
  1665. data/lib/chef/provider/package/yum/yum-dump.py +0 -307
  1666. data/lib/chef/resource/deploy.rb +0 -443
  1667. data/lib/chef/resource/deploy_revision.rb +0 -31
  1668. data/lib/chef/resource/env.rb +0 -65
  1669. data/lib/chef/resource/erl_call.rb +0 -85
  1670. data/lib/chef/rest.rb +0 -210
  1671. data/lib/chef/shell_out.rb +0 -13
  1672. data/lib/chef/tasks/chef_repo.rake +0 -200
  1673. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.fc24.i686.rpm +0 -0
  1674. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.fc24.src.rpm +0 -0
  1675. data/spec/functional/assets/yumrepo/chef_rpm-1.10-1.fc24.x86_64.rpm +0 -0
  1676. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.fc24.i686.rpm +0 -0
  1677. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.fc24.src.rpm +0 -0
  1678. data/spec/functional/assets/yumrepo/chef_rpm-1.2-1.fc24.x86_64.rpm +0 -0
  1679. data/spec/functional/assets/yumrepo/repodata/313329137b55fd333b2dc66394a6661a2befa6cc535d8460d92a4a78a9c581f0-primary.sqlite.bz2 +0 -0
  1680. data/spec/functional/assets/yumrepo/repodata/31ac4db5d5ac593728fcc26aef82b7b93c4cc4dbec843786b1845b939b658553-other.xml.gz +0 -0
  1681. data/spec/functional/assets/yumrepo/repodata/4ac40fa3c6728c1401318e2e20a997436624e83dcf7a5f952b851ef422637773-filelists.sqlite.bz2 +0 -0
  1682. data/spec/functional/assets/yumrepo/repodata/66391e53f0510b98b3f0b79f40ba1048026d9a1ef20905d9c40ba6f5411f3243-primary.xml.gz +0 -0
  1683. data/spec/functional/assets/yumrepo/repodata/8b34697595fcc87928e12d24644dda9462c3857bd932861e28bc77ae1f31be16-filelists.xml.gz +0 -0
  1684. data/spec/functional/assets/yumrepo/repodata/b97cca3fe14bcf06c52be4449b6108f7731239ff221111dcce8aada5467f60dc-other.sqlite.bz2 +0 -0
  1685. data/spec/functional/resource/deploy_revision_spec.rb +0 -881
  1686. data/spec/functional/resource/env_spec.rb +0 -192
  1687. data/spec/functional/resource/user/useradd_spec.rb +0 -709
  1688. data/spec/functional/rest_spec.rb +0 -95
  1689. data/spec/unit/knife/core/custom_manifest_loader_spec.rb +0 -41
  1690. data/spec/unit/knife/index_rebuild_spec.rb +0 -125
  1691. data/spec/unit/knife/knife_help.rb +0 -92
  1692. data/spec/unit/lib_backcompat_spec.rb +0 -34
  1693. data/spec/unit/mixin/command_spec.rb +0 -107
  1694. data/spec/unit/platform_spec.rb +0 -269
  1695. data/spec/unit/provider/breakpoint_spec.rb +0 -53
  1696. data/spec/unit/provider/deploy/revision_spec.rb +0 -110
  1697. data/spec/unit/provider/deploy/timestamped_spec.rb +0 -40
  1698. data/spec/unit/provider/deploy_spec.rb +0 -641
  1699. data/spec/unit/provider/env/windows_spec.rb +0 -103
  1700. data/spec/unit/provider/erl_call_spec.rb +0 -85
  1701. data/spec/unit/provider/package/easy_install_spec.rb +0 -114
  1702. data/spec/unit/provider/package/yum_spec.rb +0 -2294
  1703. data/spec/unit/resource/deploy_spec.rb +0 -283
  1704. data/spec/unit/resource/easy_install_package_spec.rb +0 -39
  1705. data/spec/unit/resource/env_spec.rb +0 -85
  1706. data/spec/unit/resource/erl_call_spec.rb +0 -81
  1707. data/spec/unit/rest/auth_credentials_spec.rb +0 -292
  1708. data/spec/unit/rest_spec.rb +0 -753
  1709. data/spec/unit/shell_out_spec.rb +0 -18
  1710. data/tasks/bin/bundle-platform +0 -20
  1711. data/tasks/bin/bundle-platform.bat +0 -2
  1712. data/tasks/bin/bundler_patch.rb +0 -27
  1713. data/tasks/bin/create-override-gemfile +0 -110
  1714. data/tasks/bin/gem-version-diff +0 -37
  1715. data/tasks/bundle.rb +0 -97
  1716. data/tasks/bundle_util.rb +0 -110
  1717. data/tasks/cbgb.rb +0 -84
  1718. data/tasks/changelog.rb +0 -33
  1719. data/tasks/gemfile_util.rb +0 -390
@@ -51,7 +51,7 @@ describe Chef::Knife::UserDelete do
51
51
  end
52
52
 
53
53
  it "deletes the user" do
54
- #expect(knife).to receive(:delete_object).with(Chef::UserV1, 'my_user')
54
+ # expect(knife).to receive(:delete_object).with(Chef::UserV1, 'my_user')
55
55
  expect(knife).to receive(:delete_object).with("my_user")
56
56
  knife.run
57
57
  end
@@ -20,7 +20,7 @@ require "spec_helper"
20
20
 
21
21
  describe Chef::Knife::UserReregister do
22
22
  let(:knife) { Chef::Knife::UserReregister.new }
23
- let(:user_mock) { double("user_mock", :private_key => "private_key") }
23
+ let(:user_mock) { double("user_mock", private_key: "private_key") }
24
24
  let(:stdout) { StringIO.new }
25
25
 
26
26
  before do
@@ -37,7 +37,7 @@ describe Chef::Knife do
37
37
  instance_double("WorkstationConfigLoader",
38
38
  load: nil, no_config_found?: false,
39
39
  config_location: config_location,
40
- :chef_config_dir => "/etc/chef")
40
+ chef_config_dir: "/etc/chef")
41
41
  end
42
42
 
43
43
  before(:each) do
@@ -47,6 +47,7 @@ describe Chef::Knife do
47
47
 
48
48
  allow(Chef::WorkstationConfigLoader).to receive(:new).and_return(config_loader)
49
49
  allow(config_loader).to receive(:explicit_config_file=)
50
+ allow(config_loader).to receive(:profile=)
50
51
 
51
52
  # Prevent gratuitous code reloading:
52
53
  allow(Chef::Knife).to receive(:load_commands)
@@ -144,9 +145,9 @@ describe Chef::Knife do
144
145
  end
145
146
 
146
147
  it "finds a subcommand class based on ARGV" do
147
- Chef::Knife.subcommands["cookbook_site_vendor"] = :CookbookSiteVendor
148
+ Chef::Knife.subcommands["cookbook_site_install"] = :CookbookSiteInstall
148
149
  Chef::Knife.subcommands["cookbook"] = :Cookbook
149
- expect(Chef::Knife.subcommand_class_from(%w{cookbook site vendor --help foo bar baz})).to eq(:CookbookSiteVendor)
150
+ expect(Chef::Knife.subcommand_class_from(%w{cookbook site install --help foo bar baz})).to eq(:CookbookSiteInstall)
150
151
  end
151
152
 
152
153
  it "special case sets the subcommand_loader to GemGlobLoader when running rehash" do
@@ -224,10 +225,10 @@ describe Chef::Knife do
224
225
 
225
226
  it "merges the global knife CLI options" do
226
227
  extra_opts = {}
227
- extra_opts[:editor] = { :long => "--editor EDITOR",
228
- :description => "Set the editor to use for interactive commands",
229
- :short => "-e EDITOR",
230
- :default => "/usr/bin/vim" }
228
+ extra_opts[:editor] = { long: "--editor EDITOR",
229
+ description: "Set the editor to use for interactive commands",
230
+ short: "-e EDITOR",
231
+ default: "/usr/bin/vim" }
231
232
 
232
233
  # there is special hackery to return the subcommand instance going on here.
233
234
  command = Chef::Knife.run(%w{test yourself}, extra_opts)
@@ -282,8 +283,8 @@ describe Chef::Knife do
282
283
  describe "merging configuration options" do
283
284
  before do
284
285
  KnifeSpecs::TestYourself.option(:opt_with_default,
285
- :short => "-D VALUE",
286
- :default => "default-value")
286
+ short: "-D VALUE",
287
+ default: "default-value")
287
288
  end
288
289
 
289
290
  it "sets the default log_location to STDERR for Chef::Log warnings" do
@@ -299,14 +300,14 @@ describe Chef::Knife do
299
300
  end
300
301
 
301
302
  it "prefers the default value if no config or command line value is present" do
302
- knife_command = KnifeSpecs::TestYourself.new([]) #empty argv
303
+ knife_command = KnifeSpecs::TestYourself.new([]) # empty argv
303
304
  knife_command.configure_chef
304
305
  expect(knife_command.config[:opt_with_default]).to eq("default-value")
305
306
  end
306
307
 
307
308
  it "prefers a value in Chef::Config[:knife] to the default" do
308
309
  Chef::Config[:knife][:opt_with_default] = "from-knife-config"
309
- knife_command = KnifeSpecs::TestYourself.new([]) #empty argv
310
+ knife_command = KnifeSpecs::TestYourself.new([]) # empty argv
310
311
  knife_command.configure_chef
311
312
  expect(knife_command.config[:opt_with_default]).to eq("from-knife-config")
312
313
  end
@@ -329,8 +330,9 @@ describe Chef::Knife do
329
330
  before do
330
331
  knife.config[:verbosity] = 1
331
332
  knife.config[:config_file] = fake_config
332
- config_loader = double("Chef::WorkstationConfigLoader", :load => true, :no_config_found? => false, :chef_config_dir => "/etc/chef", :config_location => fake_config)
333
+ config_loader = double("Chef::WorkstationConfigLoader", load: true, no_config_found?: false, chef_config_dir: "/etc/chef", config_location: fake_config)
333
334
  allow(config_loader).to receive(:explicit_config_file=).with(fake_config).and_return(fake_config)
335
+ allow(config_loader).to receive(:profile=)
334
336
  allow(Chef::WorkstationConfigLoader).to receive(:new).and_return(config_loader)
335
337
  end
336
338
 
@@ -342,11 +344,14 @@ describe Chef::Knife do
342
344
  end
343
345
  end
344
346
 
345
- it "does not humanize the exception if Chef::Config[:verbosity] is two" do
346
- Chef::Config[:verbosity] = 2
347
- allow(knife).to receive(:run).and_raise(Exception)
348
- expect(knife).not_to receive(:humanize_exception)
349
- expect { knife.run_with_pretty_exceptions }.to raise_error(Exception)
347
+ # -VV (2) is debug, -VVV (3) is trace
348
+ [ 2, 3 ].each do |verbosity|
349
+ it "does not humanize the exception if Chef::Config[:verbosity] is #{verbosity}" do
350
+ Chef::Config[:verbosity] = verbosity
351
+ allow(knife).to receive(:run).and_raise(Exception)
352
+ expect(knife).not_to receive(:humanize_exception)
353
+ expect { knife.run_with_pretty_exceptions }.to raise_error(Exception)
354
+ end
350
355
  end
351
356
  end
352
357
 
@@ -421,8 +426,8 @@ describe Chef::Knife do
421
426
  it "formats 401s nicely" do
422
427
  response = Net::HTTPUnauthorized.new("1.1", "401", "Unauthorized")
423
428
  response.instance_variable_set(:@read, true) # I hate you, net/http.
424
- allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(:error => "y u no syncronize your clock?"))
425
- allow(knife).to receive(:run).and_raise(Net::HTTPServerException.new("401 Unauthorized", response))
429
+ allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(error: "y u no syncronize your clock?"))
430
+ allow(knife).to receive(:run).and_raise(Net::HTTPClientException.new("401 Unauthorized", response))
426
431
  knife.run_with_pretty_exceptions
427
432
  expect(stderr.string).to match(/ERROR: Failed to authenticate to/)
428
433
  expect(stderr.string).to match(/Response: y u no syncronize your clock\?/)
@@ -431,19 +436,41 @@ describe Chef::Knife do
431
436
  it "formats 403s nicely" do
432
437
  response = Net::HTTPForbidden.new("1.1", "403", "Forbidden")
433
438
  response.instance_variable_set(:@read, true) # I hate you, net/http.
434
- allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(:error => "y u no administrator"))
435
- allow(knife).to receive(:run).and_raise(Net::HTTPServerException.new("403 Forbidden", response))
439
+ allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(error: "y u no administrator"))
440
+ allow(knife).to receive(:run).and_raise(Net::HTTPClientException.new("403 Forbidden", response))
436
441
  allow(knife).to receive(:username).and_return("sadpanda")
437
442
  knife.run_with_pretty_exceptions
438
443
  expect(stderr.string).to match(%r{ERROR: You authenticated successfully to http.+ as sadpanda but you are not authorized for this action})
439
444
  expect(stderr.string).to match(%r{Response: y u no administrator})
440
445
  end
441
446
 
447
+ context "when proxy servers are set" do
448
+ before do
449
+ ENV["http_proxy"] = "xyz"
450
+ end
451
+
452
+ after do
453
+ ENV.delete("http_proxy")
454
+ end
455
+
456
+ it "formats proxy errors nicely" do
457
+ response = Net::HTTPForbidden.new("1.1", "403", "Forbidden")
458
+ response.instance_variable_set(:@read, true)
459
+ allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(error: "y u no administrator"))
460
+ allow(knife).to receive(:run).and_raise(Net::HTTPClientException.new("403 Forbidden", response))
461
+ allow(knife).to receive(:username).and_return("sadpanda")
462
+ knife.run_with_pretty_exceptions
463
+ expect(stderr.string).to match(%r{ERROR: You authenticated successfully to http.+ as sadpanda but you are not authorized for this action})
464
+ expect(stderr.string).to match(%r{ERROR: There are proxy servers configured, your Chef server may need to be added to NO_PROXY.})
465
+ expect(stderr.string).to match(%r{Response: y u no administrator})
466
+ end
467
+ end
468
+
442
469
  it "formats 400s nicely" do
443
470
  response = Net::HTTPBadRequest.new("1.1", "400", "Bad Request")
444
471
  response.instance_variable_set(:@read, true) # I hate you, net/http.
445
- allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(:error => "y u search wrong"))
446
- allow(knife).to receive(:run).and_raise(Net::HTTPServerException.new("400 Bad Request", response))
472
+ allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(error: "y u search wrong"))
473
+ allow(knife).to receive(:run).and_raise(Net::HTTPClientException.new("400 Bad Request", response))
447
474
  knife.run_with_pretty_exceptions
448
475
  expect(stderr.string).to match(%r{ERROR: The data in your request was invalid})
449
476
  expect(stderr.string).to match(%r{Response: y u search wrong})
@@ -452,8 +479,8 @@ describe Chef::Knife do
452
479
  it "formats 404s nicely" do
453
480
  response = Net::HTTPNotFound.new("1.1", "404", "Not Found")
454
481
  response.instance_variable_set(:@read, true) # I hate you, net/http.
455
- allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(:error => "nothing to see here"))
456
- allow(knife).to receive(:run).and_raise(Net::HTTPServerException.new("404 Not Found", response))
482
+ allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(error: "nothing to see here"))
483
+ allow(knife).to receive(:run).and_raise(Net::HTTPClientException.new("404 Not Found", response))
457
484
  knife.run_with_pretty_exceptions
458
485
  expect(stderr.string).to match(%r{ERROR: The object you are looking for could not be found})
459
486
  expect(stderr.string).to match(%r{Response: nothing to see here})
@@ -464,10 +491,10 @@ describe Chef::Knife do
464
491
  response.instance_variable_set(:@read, true) # I hate you, net/http.
465
492
 
466
493
  # set the header
467
- response["x-ops-server-api-version"] = Chef::JSONCompat.to_json(:min_version => "0", :max_version => "1", :request_version => "10000000")
494
+ response["x-ops-server-api-version"] = Chef::JSONCompat.to_json(min_version: "0", max_version: "1", request_version: "10000000")
468
495
 
469
- allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(:error => "sad trombone"))
470
- allow(knife).to receive(:run).and_raise(Net::HTTPServerException.new("406 Not Acceptable", response))
496
+ allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(error: "sad trombone"))
497
+ allow(knife).to receive(:run).and_raise(Net::HTTPClientException.new("406 Not Acceptable", response))
471
498
 
472
499
  knife.run_with_pretty_exceptions
473
500
  expect(stderr.string).to include("The request that Knife sent was using API version 10000000")
@@ -478,7 +505,7 @@ describe Chef::Knife do
478
505
  it "formats 500s nicely" do
479
506
  response = Net::HTTPInternalServerError.new("1.1", "500", "Internal Server Error")
480
507
  response.instance_variable_set(:@read, true) # I hate you, net/http.
481
- allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(:error => "sad trombone"))
508
+ allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(error: "sad trombone"))
482
509
  allow(knife).to receive(:run).and_raise(Net::HTTPFatalError.new("500 Internal Server Error", response))
483
510
  knife.run_with_pretty_exceptions
484
511
  expect(stderr.string).to match(%r{ERROR: internal server error})
@@ -488,7 +515,7 @@ describe Chef::Knife do
488
515
  it "formats 502s nicely" do
489
516
  response = Net::HTTPBadGateway.new("1.1", "502", "Bad Gateway")
490
517
  response.instance_variable_set(:@read, true) # I hate you, net/http.
491
- allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(:error => "sadder trombone"))
518
+ allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(error: "sadder trombone"))
492
519
  allow(knife).to receive(:run).and_raise(Net::HTTPFatalError.new("502 Bad Gateway", response))
493
520
  knife.run_with_pretty_exceptions
494
521
  expect(stderr.string).to match(%r{ERROR: bad gateway})
@@ -498,7 +525,7 @@ describe Chef::Knife do
498
525
  it "formats 503s nicely" do
499
526
  response = Net::HTTPServiceUnavailable.new("1.1", "503", "Service Unavailable")
500
527
  response.instance_variable_set(:@read, true) # I hate you, net/http.
501
- allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(:error => "saddest trombone"))
528
+ allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(error: "saddest trombone"))
502
529
  allow(knife).to receive(:run).and_raise(Net::HTTPFatalError.new("503 Service Unavailable", response))
503
530
  knife.run_with_pretty_exceptions
504
531
  expect(stderr.string).to match(%r{ERROR: Service temporarily unavailable})
@@ -508,8 +535,8 @@ describe Chef::Knife do
508
535
  it "formats other HTTP errors nicely" do
509
536
  response = Net::HTTPPaymentRequired.new("1.1", "402", "Payment Required")
510
537
  response.instance_variable_set(:@read, true) # I hate you, net/http.
511
- allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(:error => "nobugfixtillyoubuy"))
512
- allow(knife).to receive(:run).and_raise(Net::HTTPServerException.new("402 Payment Required", response))
538
+ allow(response).to receive(:body).and_return(Chef::JSONCompat.to_json(error: "nobugfixtillyoubuy"))
539
+ allow(knife).to receive(:run).and_raise(Net::HTTPClientException.new("402 Payment Required", response))
513
540
  knife.run_with_pretty_exceptions
514
541
  expect(stderr.string).to match(%r{ERROR: Payment Required})
515
542
  expect(stderr.string).to match(%r{Response: nobugfixtillyoubuy})
@@ -547,11 +574,11 @@ describe Chef::Knife do
547
574
 
548
575
  knife.run_with_pretty_exceptions
549
576
 
550
- expected_message = <<-MSG
551
- ERROR: Could not establish a secure connection to the server.
552
- Use `knife ssl check` to troubleshoot your SSL configuration.
553
- If your Chef Server uses a self-signed certificate, you can use
554
- `knife ssl fetch` to make knife trust the server's certificates.
577
+ expected_message = <<~MSG
578
+ ERROR: Could not establish a secure connection to the server.
579
+ Use `knife ssl check` to troubleshoot your SSL configuration.
580
+ If your Chef Server uses a self-signed certificate, you can use
581
+ `knife ssl fetch` to make knife trust the server's certificates.
555
582
  MSG
556
583
  expect(stderr.string).to include(expected_message)
557
584
  end
@@ -17,11 +17,9 @@
17
17
  #
18
18
 
19
19
  require "spec_helper"
20
- require "chef"
21
20
 
22
- describe "Chef::Log::Syslog", :unix_only => true do
21
+ describe "Chef::Log::Syslog", unix_only: true do
23
22
  let(:syslog) { Chef::Log::Syslog.new }
24
- let(:app) { Chef::Application.new }
25
23
 
26
24
  before do
27
25
  Chef::Log.init(MonoLogger.new(syslog))
@@ -37,13 +35,13 @@ describe "Chef::Log::Syslog", :unix_only => true do
37
35
  end
38
36
 
39
37
  it "should send message with severity info to syslog." do
40
- expect(syslog).to receive(:info).with("*** Chef 12.4.0.dev.0 ***")
38
+ expect(syslog).to receive(:add).with(1, "*** Chef 12.4.0.dev.0 ***", nil)
41
39
  Chef::Log.info("*** Chef 12.4.0.dev.0 ***")
42
40
  end
43
41
 
44
42
  it "should send message with severity warning to syslog." do
45
- expect(syslog).to receive(:warn).with("No config file found or specified on command line, using command line options.")
46
- Chef::Log.warn("No config file found or specified on command line, using command line options.")
43
+ expect(syslog).to receive(:add).with(2, "No config file found or specified on command line. Using command line options instead.", nil)
44
+ Chef::Log.warn("No config file found or specified on command line. Using command line options instead.")
47
45
  end
48
46
 
49
47
  it "should fallback into send message with severity info to syslog when wrong format." do
@@ -25,7 +25,6 @@ describe Chef::Log::WinEvt do
25
25
  let(:app) { Chef::Application.new }
26
26
 
27
27
  before do
28
-
29
28
  Chef::Log.init(MonoLogger.new(winevt))
30
29
  @old_log_level = Chef::Log.level
31
30
  Chef::Log.level = :info
@@ -39,13 +38,13 @@ describe Chef::Log::WinEvt do
39
38
  end
40
39
 
41
40
  it "should send message with severity info to Windows Event Log." do
42
- expect(winevt).to receive(:info).with("*** Chef 12.4.0.dev.0 ***")
41
+ expect(winevt).to receive(:add).with(1, "*** Chef 12.4.0.dev.0 ***", nil)
43
42
  Chef::Log.info("*** Chef 12.4.0.dev.0 ***")
44
43
  end
45
44
 
46
45
  it "should send message with severity warning to Windows Event Log." do
47
- expect(winevt).to receive(:warn).with("No config file found or specified on command line, using command line options.")
48
- Chef::Log.warn("No config file found or specified on command line, using command line options.")
46
+ expect(winevt).to receive(:add).with(2, "No config file found or specified on command line. Using command line options instead.", nil)
47
+ Chef::Log.warn("No config file found or specified on command line. Using command line options instead.")
49
48
  end
50
49
 
51
50
  it "should fallback into send message with severity info to Windows Event Log when wrong format." do
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Christopher Walters (<cw@chef.io>)
3
- # Copyright:: Copyright 2009-2016, Chef Software Inc.
3
+ # Copyright:: Copyright 2009-2018, Chef Software Inc.
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -41,14 +41,11 @@ describe "LWRP" do
41
41
  Chef::ResourceResolver.resolve(name)
42
42
  end
43
43
 
44
- def get_lwrp_provider(name)
45
- old_treat_deprecation_warnings_as_errors = Chef::Config[:treat_deprecation_warnings_as_errors]
46
- Chef::Config[:treat_deprecation_warnings_as_errors] = false
47
- begin
48
- Chef::Provider.const_get(convert_to_class_name(name.to_s))
49
- ensure
50
- Chef::Config[:treat_deprecation_warnings_as_errors] = old_treat_deprecation_warnings_as_errors
51
- end
44
+ def get_dynamic_lwrp_provider(name)
45
+ # need a node to do dynamic lookup, so also need a run_context and a resource instance
46
+ node = Chef::Node.new
47
+ run_context = Chef::RunContext.new(node, {}, nil)
48
+ Chef::Resource.new("name", run_context).lookup_provider_constant(name)
52
49
  end
53
50
 
54
51
  describe "when overriding an existing class" do
@@ -60,7 +57,7 @@ describe "LWRP" do
60
57
  Object.const_set("LwrpFoo", Class.new)
61
58
  file = File.expand_path( "lwrp/resources/foo.rb", CHEF_SPEC_DATA)
62
59
  expect(Chef::Log).not_to receive(:info).with(/Skipping/)
63
- expect(Chef::Log).not_to receive(:debug).with(/anymore/)
60
+ expect(Chef::Log).not_to receive(:trace).with(/anymore/)
64
61
  Chef::Resource::LWRPBase.build_from_file("lwrp", file, nil)
65
62
  Object.send(:remove_const, "LwrpFoo")
66
63
  end
@@ -69,7 +66,7 @@ describe "LWRP" do
69
66
  Object.const_set("LwrpBuckPasser", Class.new)
70
67
  file = File.expand_path( "lwrp/providers/buck_passer.rb", CHEF_SPEC_DATA)
71
68
  expect(Chef::Log).not_to receive(:info).with(/Skipping/)
72
- expect(Chef::Log).not_to receive(:debug).with(/anymore/)
69
+ expect(Chef::Log).not_to receive(:trace).with(/anymore/)
73
70
  Chef::Provider::LWRPBase.build_from_file("lwrp", file, nil)
74
71
  Object.send(:remove_const, "LwrpBuckPasser")
75
72
  end
@@ -84,7 +81,7 @@ describe "LWRP" do
84
81
  end
85
82
 
86
83
  Dir[File.expand_path( "lwrp/resources/*", CHEF_SPEC_DATA)].each do |file|
87
- expect(Chef::Log).to receive(:debug).with(/Skipping/)
84
+ expect(Chef::Log).to receive(:trace).with(/Skipping/)
88
85
  Chef::Resource::LWRPBase.build_from_file("lwrp", file, nil)
89
86
  end
90
87
  end
@@ -95,7 +92,7 @@ describe "LWRP" do
95
92
  end
96
93
 
97
94
  Dir[File.expand_path( "lwrp/providers/*", CHEF_SPEC_DATA)].each do |file|
98
- expect(Chef::Log).to receive(:debug).with(/Skipping/)
95
+ expect(Chef::Log).to receive(:trace).with(/Skipping/)
99
96
  Chef::Provider::LWRPBase.build_from_file("lwrp", file, nil)
100
97
  end
101
98
  end
@@ -246,8 +243,8 @@ describe "LWRP" do
246
243
  let(:klass) do
247
244
  Class.new(Chef::Resource::LWRPBase) do
248
245
  self.resource_name = :sample_resource
249
- attribute :food, :default => lazy { "BACON!" * 3 }
250
- attribute :drink, :default => lazy { |r| "Drink after #{r.food}!" }
246
+ attribute :food, default: lazy { "BACON!" * 3 }
247
+ attribute :drink, default: lazy { |r| "Drink after #{r.food}!" }
251
248
  end
252
249
  end
253
250
 
@@ -324,14 +321,7 @@ describe "LWRP" do
324
321
  end
325
322
  end
326
323
 
327
- def raise_if_deprecated!
328
- if Chef::VERSION.split(".").first.to_i > 12
329
- raise "This test should be removed and the associated code should be removed!"
330
- end
331
- end
332
-
333
324
  it "amends actions when they are already defined" do
334
- raise_if_deprecated!
335
325
  expect(child.actions).to eq([:nothing, :eat, :sleep, :drink])
336
326
  end
337
327
  end
@@ -393,7 +383,7 @@ describe "LWRP" do
393
383
 
394
384
  let(:runner) { Chef::Runner.new(run_context) }
395
385
 
396
- let(:lwrp_cookbok_name) { "lwrp" }
386
+ let(:lwrp_cookbook_name) { "lwrp" }
397
387
 
398
388
  before do
399
389
  Chef::Provider::LWRPBase.class_eval { @loaded_lwrps = {} }
@@ -401,18 +391,18 @@ describe "LWRP" do
401
391
 
402
392
  before(:each) do
403
393
  Dir[File.expand_path(File.expand_path("../../data/lwrp/resources/*", __FILE__))].each do |file|
404
- Chef::Resource::LWRPBase.build_from_file(lwrp_cookbok_name, file, run_context)
394
+ Chef::Resource::LWRPBase.build_from_file(lwrp_cookbook_name, file, run_context)
405
395
  end
406
396
 
407
397
  Dir[File.expand_path(File.expand_path("../../data/lwrp/providers/*", __FILE__))].each do |file|
408
- Chef::Provider::LWRPBase.build_from_file(lwrp_cookbok_name, file, run_context)
398
+ Chef::Provider::LWRPBase.build_from_file(lwrp_cookbook_name, file, run_context)
409
399
  end
410
400
  end
411
401
 
412
402
  it "should properly handle a new_resource reference" do
413
403
  resource = get_lwrp(:lwrp_foo).new("morpheus", run_context)
414
404
  resource.monkey("bob")
415
- resource.provider(get_lwrp_provider(:lwrp_monkey_name_printer))
405
+ resource.provider(get_dynamic_lwrp_provider(:lwrp_monkey_name_printer))
416
406
  provider = resource.provider_for_action(:twiddle_thumbs)
417
407
  provider.action_twiddle_thumbs
418
408
  end
@@ -427,14 +417,13 @@ describe "LWRP" do
427
417
  Chef::Config[:treat_deprecation_warnings_as_errors] = @old_treat_deprecation_warnings_as_errors
428
418
  end
429
419
 
430
- it "should load the provider into a properly-named class" do
431
- expect(Chef::Provider.const_get("LwrpBuckPasser")).to be_kind_of(Class)
432
- expect(Chef::Provider::LwrpBuckPasser <= Chef::Provider::LWRPBase).to be_truthy
420
+ it "should not load the provider into a const" do
421
+ expect(defined?(Chef::Provider::LwrpBuckPasser)).to be_nil
433
422
  end
434
423
 
435
424
  it "should create a method for each action" do
436
- expect(get_lwrp_provider(:lwrp_buck_passer).instance_methods).to include(:action_pass_buck)
437
- expect(get_lwrp_provider(:lwrp_thumb_twiddler).instance_methods).to include(:action_twiddle_thumbs)
425
+ expect(get_dynamic_lwrp_provider(:lwrp_buck_passer).instance_methods).to include(:action_pass_buck)
426
+ expect(get_dynamic_lwrp_provider(:lwrp_thumb_twiddler).instance_methods).to include(:action_twiddle_thumbs)
438
427
  end
439
428
 
440
429
  it "sets itself as a provider for a resource of the same name" do
@@ -442,30 +431,30 @@ describe "LWRP" do
442
431
  # we bypass the per-file loading to get the file to load each time,
443
432
  # which creates the LWRP class repeatedly. New things get prepended to
444
433
  # the list of providers.
445
- expect(found_providers.first).to eq(get_lwrp_provider(:lwrp_buck_passer))
434
+ expect(found_providers.first).to eq(get_dynamic_lwrp_provider(:lwrp_buck_passer))
446
435
  end
447
436
 
448
437
  context "with a cookbook with an underscore in the name" do
449
438
 
450
- let(:lwrp_cookbok_name) { "l_w_r_p" }
439
+ let(:lwrp_cookbook_name) { "l_w_r_p" }
451
440
 
452
441
  it "sets itself as a provider for a resource of the same name" do
453
442
  found_providers = Chef::Platform::ProviderHandlerMap.instance.list(node, :l_w_r_p_buck_passer)
454
443
  expect(found_providers.size).to eq(1)
455
- expect(found_providers.last).to eq(get_lwrp_provider(:l_w_r_p_buck_passer))
444
+ expect(found_providers.last).to eq(get_dynamic_lwrp_provider(:l_w_r_p_buck_passer))
456
445
  end
457
446
  end
458
447
 
459
448
  context "with a cookbook with a hypen in the name" do
460
449
 
461
- let(:lwrp_cookbok_name) { "l-w-r-p" }
450
+ let(:lwrp_cookbook_name) { "l-w-r-p" }
462
451
 
463
452
  it "sets itself as a provider for a resource of the same name" do
464
453
  incorrect_providers = Chef::Platform::ProviderHandlerMap.instance.list(node, :'l-w-r-p_buck_passer')
465
454
  expect(incorrect_providers).to eq([])
466
455
 
467
456
  found_providers = Chef::Platform::ProviderHandlerMap.instance.list(node, :l_w_r_p_buck_passer)
468
- expect(found_providers.first).to eq(get_lwrp_provider(:l_w_r_p_buck_passer))
457
+ expect(found_providers.first).to eq(get_dynamic_lwrp_provider(:l_w_r_p_buck_passer))
469
458
  end
470
459
  end
471
460
  end
@@ -473,7 +462,7 @@ describe "LWRP" do
473
462
  it "should insert resources embedded in the provider into the middle of the resource collection" do
474
463
  injector = get_lwrp(:lwrp_foo).new("morpheus", run_context)
475
464
  injector.action(:pass_buck)
476
- injector.provider(get_lwrp_provider(:lwrp_buck_passer))
465
+ injector.provider(get_dynamic_lwrp_provider(:lwrp_buck_passer))
477
466
  dummy = Chef::Resource::ZenMaster.new("keanu reeves", run_context)
478
467
  dummy.provider(Chef::Provider::Easy)
479
468
  run_context.resource_collection.insert(injector)
@@ -490,11 +479,11 @@ describe "LWRP" do
490
479
  it "should insert embedded resources from multiple providers, including from the last position, properly into the resource collection" do
491
480
  injector = get_lwrp(:lwrp_foo).new("morpheus", run_context)
492
481
  injector.action(:pass_buck)
493
- injector.provider(get_lwrp_provider(:lwrp_buck_passer))
482
+ injector.provider(get_dynamic_lwrp_provider(:lwrp_buck_passer))
494
483
 
495
484
  injector2 = get_lwrp(:lwrp_bar).new("tank", run_context)
496
485
  injector2.action(:pass_buck)
497
- injector2.provider(get_lwrp_provider(:lwrp_buck_passer_2))
486
+ injector2.provider(get_dynamic_lwrp_provider(:lwrp_buck_passer_2))
498
487
 
499
488
  dummy = Chef::Resource::ZenMaster.new("keanu reeves", run_context)
500
489
  dummy.provider(Chef::Provider::Easy)
@@ -517,7 +506,7 @@ describe "LWRP" do
517
506
  it "should properly handle a new_resource reference" do
518
507
  resource = get_lwrp(:lwrp_foo).new("morpheus", run_context)
519
508
  resource.monkey("bob")
520
- resource.provider(get_lwrp_provider(:lwrp_monkey_name_printer))
509
+ resource.provider(get_dynamic_lwrp_provider(:lwrp_monkey_name_printer))
521
510
 
522
511
  provider = resource.provider_for_action(:twiddle_thumbs)
523
512
  provider.action_twiddle_thumbs
@@ -528,10 +517,10 @@ describe "LWRP" do
528
517
  it "should properly handle an embedded Resource accessing the enclosing Provider's scope" do
529
518
  resource = get_lwrp(:lwrp_foo).new("morpheus", run_context)
530
519
  resource.monkey("bob")
531
- resource.provider(get_lwrp_provider(:lwrp_embedded_resource_accesses_providers_scope))
520
+ resource.provider(get_dynamic_lwrp_provider(:lwrp_embedded_resource_accesses_providers_scope))
532
521
 
533
522
  provider = resource.provider_for_action(:twiddle_thumbs)
534
- #provider = @runner.build_provider(resource)
523
+ # provider = @runner.build_provider(resource)
535
524
  provider.action_twiddle_thumbs
536
525
 
537
526
  expect(provider.enclosed_resource.monkey).to eq("bob, the monkey")
@@ -548,7 +537,7 @@ describe "LWRP" do
548
537
  @resource = get_lwrp(:lwrp_foo).new("morpheus", run_context)
549
538
  @resource.allowed_actions << :test
550
539
  @resource.action(:test)
551
- @resource.provider(get_lwrp_provider(:lwrp_inline_compiler))
540
+ @resource.provider(get_dynamic_lwrp_provider(:lwrp_inline_compiler))
552
541
  end
553
542
 
554
543
  it "does not add interior resources to the exterior resource collection" do
@@ -581,55 +570,30 @@ describe "LWRP" do
581
570
  end
582
571
 
583
572
  context "resource class created" do
584
- before(:context) do
585
- @tmpdir = Dir.mktmpdir("lwrp_test")
573
+ let(:test_lwrp_class) { @test_lwrp_class }
574
+ before(:each) do
575
+ @tmpparent = Dir.mktmpdir("lwrp_test")
576
+ @tmpdir = File.join(@tmpparent, "lwrp")
577
+ Dir.mkdir(@tmpdir)
586
578
  resource_path = File.join(@tmpdir, "once.rb")
587
579
  IO.write(resource_path, "default_action :create")
588
-
589
- @old_treat_deprecation_warnings_as_errors = Chef::Config[:treat_deprecation_warnings_as_errors]
590
- Chef::Config[:treat_deprecation_warnings_as_errors] = false
591
- Chef::Resource::LWRPBase.build_from_file("lwrp", resource_path, nil)
580
+ @test_lwrp_class = Chef::Resource::LWRPBase.build_from_file("lwrp", resource_path, nil)
592
581
  end
593
582
 
594
- after(:context) do
583
+ after(:each) do
595
584
  FileUtils.remove_entry @tmpdir
596
- Chef::Config[:treat_deprecation_warnings_as_errors] = @old_treat_deprecation_warnings_as_errors
597
585
  end
598
586
 
599
- it "should load the resource into a properly-named class" do
600
- expect(Chef::Resource::LwrpOnce).to be_kind_of(Class)
601
- expect(Chef::Resource::LwrpOnce <= Chef::Resource::LWRPBase).to be_truthy
587
+ it "should not load the resource into a const" do
588
+ expect(defined?(Chef::Resource::LwrpOnce)).to be_nil
602
589
  end
603
590
 
604
- it "get_lwrp(:lwrp_once).new is a Chef::Resource::LwrpOnce" do
591
+ it "get_lwrp(:lwrp_once).new is an instance of the LWRP class" do
605
592
  lwrp = get_lwrp(:lwrp_once).new("hi")
606
- expect(lwrp.kind_of?(Chef::Resource::LwrpOnce)).to be_truthy
607
- expect(lwrp.is_a?(Chef::Resource::LwrpOnce)).to be_truthy
593
+ expect(lwrp.kind_of?(test_lwrp_class)).to be_truthy
594
+ expect(lwrp.is_a?(test_lwrp_class)).to be_truthy
608
595
  expect(get_lwrp(:lwrp_once) === lwrp).to be_truthy
609
- expect(Chef::Resource::LwrpOnce === lwrp).to be_truthy
610
- end
611
-
612
- it "Chef::Resource::LwrpOnce.new is a get_lwrp(:lwrp_once)" do
613
- lwrp = Chef::Resource::LwrpOnce.new("hi")
614
- expect(lwrp.kind_of?(get_lwrp(:lwrp_once))).to be_truthy
615
- expect(lwrp.is_a?(get_lwrp(:lwrp_once))).to be_truthy
616
- expect(get_lwrp(:lwrp_once) === lwrp).to be_truthy
617
- expect(Chef::Resource::LwrpOnce === lwrp).to be_truthy
618
- end
619
-
620
- it "works even if LwrpOnce exists in the top level" do
621
- module ::LwrpOnce
622
- end
623
- expect(Chef::Resource::LwrpOnce).not_to eq(::LwrpOnce)
624
- end
625
-
626
- it "allows monkey patching of the lwrp through Chef::Resource" do
627
- monkey = Module.new do
628
- def issue_3607
629
- end
630
- end
631
- Chef::Resource::LwrpOnce.send(:include, monkey)
632
- expect { get_lwrp(:lwrp_once).new("blah").issue_3607 }.not_to raise_error
596
+ expect(test_lwrp_class === lwrp).to be_truthy
633
597
  end
634
598
 
635
599
  context "with a subclass of get_lwrp(:lwrp_once)" do
@@ -644,54 +608,12 @@ describe "LWRP" do
644
608
  expect(subclass === lwrp).to be_truthy
645
609
  expect(lwrp.class === subclass)
646
610
  end
647
- it "subclass.new is a Chef::Resource::LwrpOnce" do
648
- lwrp = subclass.new("hi")
649
- expect(lwrp.kind_of?(Chef::Resource::LwrpOnce)).to be_truthy
650
- expect(lwrp.is_a?(Chef::Resource::LwrpOnce)).to be_truthy
651
- expect(Chef::Resource::LwrpOnce === lwrp).to be_truthy
652
- expect(lwrp.class === Chef::Resource::LwrpOnce)
653
- end
654
- it "subclass.new is a get_lwrp(:lwrp_once)" do
655
- lwrp = subclass.new("hi")
656
- expect(lwrp.kind_of?(get_lwrp(:lwrp_once))).to be_truthy
657
- expect(lwrp.is_a?(get_lwrp(:lwrp_once))).to be_truthy
658
- expect(get_lwrp(:lwrp_once) === lwrp).to be_truthy
659
- expect(lwrp.class === get_lwrp(:lwrp_once))
660
- end
661
- it "Chef::Resource::LwrpOnce.new is *not* a subclass" do
662
- lwrp = Chef::Resource::LwrpOnce.new("hi")
663
- expect(lwrp.kind_of?(subclass)).to be_falsey
664
- expect(lwrp.is_a?(subclass)).to be_falsey
665
- expect(subclass === lwrp.class).to be_falsey
666
- expect(subclass === Chef::Resource::LwrpOnce).to be_falsey
667
- end
668
- it "get_lwrp(:lwrp_once).new is *not* a subclass" do
669
- lwrp = get_lwrp(:lwrp_once).new("hi")
670
- expect(lwrp.kind_of?(subclass)).to be_falsey
671
- expect(lwrp.is_a?(subclass)).to be_falsey
672
- expect(subclass === lwrp.class).to be_falsey
673
- expect(subclass === get_lwrp(:lwrp_once)).to be_falsey
674
- end
675
- end
676
-
677
- context "with a subclass of Chef::Resource::LwrpOnce" do
678
- let(:subclass) do
679
- Class.new(Chef::Resource::LwrpOnce)
680
- end
681
-
682
- it "subclass.new is a subclass" do
683
- lwrp = subclass.new("hi")
684
- expect(lwrp.kind_of?(subclass)).to be_truthy
685
- expect(lwrp.is_a?(subclass)).to be_truthy
686
- expect(subclass === lwrp).to be_truthy
687
- expect(lwrp.class === subclass)
688
- end
689
- it "subclass.new is a Chef::Resource::LwrpOnce" do
611
+ it "subclass.new is an instance of the LWRP class" do
690
612
  lwrp = subclass.new("hi")
691
- expect(lwrp.kind_of?(Chef::Resource::LwrpOnce)).to be_truthy
692
- expect(lwrp.is_a?(Chef::Resource::LwrpOnce)).to be_truthy
693
- expect(Chef::Resource::LwrpOnce === lwrp).to be_truthy
694
- expect(lwrp.class === Chef::Resource::LwrpOnce)
613
+ expect(lwrp.kind_of?(test_lwrp_class)).to be_truthy
614
+ expect(lwrp.is_a?(test_lwrp_class)).to be_truthy
615
+ expect(test_lwrp_class === lwrp).to be_truthy
616
+ expect(lwrp.class === test_lwrp_class)
695
617
  end
696
618
  it "subclass.new is a get_lwrp(:lwrp_once)" do
697
619
  lwrp = subclass.new("hi")
@@ -700,13 +622,6 @@ describe "LWRP" do
700
622
  expect(get_lwrp(:lwrp_once) === lwrp).to be_truthy
701
623
  expect(lwrp.class === get_lwrp(:lwrp_once))
702
624
  end
703
- it "Chef::Resource::LwrpOnce.new is *not* a subclass" do
704
- lwrp = Chef::Resource::LwrpOnce.new("hi")
705
- expect(lwrp.kind_of?(subclass)).to be_falsey
706
- expect(lwrp.is_a?(subclass)).to be_falsey
707
- expect(subclass === lwrp.class).to be_falsey
708
- expect(subclass === Chef::Resource::LwrpOnce).to be_falsey
709
- end
710
625
  it "get_lwrp(:lwrp_once).new is *not* a subclass" do
711
626
  lwrp = get_lwrp(:lwrp_once).new("hi")
712
627
  expect(lwrp.kind_of?(subclass)).to be_falsey
@@ -731,8 +646,6 @@ describe "LWRP" do
731
646
  end
732
647
 
733
648
  class MyAwesomeProvider < Chef::Provider::LWRPBase
734
- use_inline_resources
735
-
736
649
  provides :my_awesome_resource
737
650
 
738
651
  action :create do