chef 12.18.31 → 13.0.118

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (611) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +15 -11
  3. data/README.md +13 -13
  4. data/Rakefile +1 -19
  5. data/VERSION +1 -1
  6. data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +1 -1
  7. data/acceptance/Gemfile +8 -5
  8. data/acceptance/Gemfile.lock +90 -81
  9. data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +1 -1
  10. data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +1 -1
  11. data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +4 -0
  12. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +9 -8
  13. data/chef-universal-mingw32.gemspec +2 -3
  14. data/chef.gemspec +8 -7
  15. data/lib/chef/api_client.rb +8 -15
  16. data/lib/chef/api_client_v1.rb +9 -11
  17. data/lib/chef/application/apply.rb +8 -10
  18. data/lib/chef/application/client.rb +1 -1
  19. data/lib/chef/application/exit_code.rb +11 -82
  20. data/lib/chef/application/knife.rb +2 -2
  21. data/lib/chef/application/solo.rb +0 -1
  22. data/lib/chef/application/windows_service.rb +36 -37
  23. data/lib/chef/application/windows_service_manager.rb +1 -1
  24. data/lib/chef/application.rb +15 -25
  25. data/lib/chef/audit/audit_event_proxy.rb +2 -2
  26. data/lib/chef/audit/control_group_data.rb +1 -1
  27. data/lib/chef/blacklist.rb +81 -0
  28. data/lib/chef/chef_class.rb +1 -0
  29. data/lib/chef/chef_fs/chef_fs_data_store.rb +6 -8
  30. data/lib/chef/chef_fs/command_line.rb +15 -16
  31. data/lib/chef/chef_fs/data_handler/client_data_handler.rb +1 -1
  32. data/lib/chef/chef_fs/data_handler/container_data_handler.rb +1 -1
  33. data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +1 -1
  34. data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  35. data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +1 -1
  36. data/lib/chef/chef_fs/data_handler/group_data_handler.rb +1 -1
  37. data/lib/chef/chef_fs/data_handler/node_data_handler.rb +1 -1
  38. data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -1
  39. data/lib/chef/chef_fs/data_handler/role_data_handler.rb +1 -1
  40. data/lib/chef/chef_fs/data_handler/user_data_handler.rb +1 -1
  41. data/lib/chef/chef_fs/file_pattern.rb +2 -2
  42. data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +2 -2
  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 +18 -32
  45. data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +8 -10
  46. data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +5 -1
  47. data/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb +8 -10
  48. data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +10 -12
  49. data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +28 -30
  50. data/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb +1 -1
  51. data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +27 -29
  52. data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +29 -26
  53. data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +5 -1
  54. data/lib/chef/chef_fs/file_system/memory/memory_file.rb +1 -1
  55. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +10 -12
  56. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +13 -16
  57. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +9 -13
  58. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +2 -0
  59. data/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb +1 -1
  60. data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +3 -0
  61. data/lib/chef/chef_fs/file_system.rb +1 -1
  62. data/lib/chef/chef_fs/parallelizer.rb +9 -11
  63. data/lib/chef/client.rb +47 -11
  64. data/lib/chef/config_fetcher.rb +4 -4
  65. data/lib/chef/constants.rb +1 -1
  66. data/lib/chef/cookbook/cookbook_version_loader.rb +26 -115
  67. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  68. data/lib/chef/cookbook/gem_installer.rb +10 -6
  69. data/lib/chef/cookbook/manifest_v0.rb +68 -0
  70. data/lib/chef/cookbook/manifest_v2.rb +41 -0
  71. data/lib/chef/cookbook/metadata.rb +25 -134
  72. data/lib/chef/cookbook/remote_file_vendor.rb +3 -3
  73. data/lib/chef/cookbook/synchronizer.rb +24 -21
  74. data/lib/chef/cookbook/syntax_check.rb +1 -1
  75. data/lib/chef/cookbook_manifest.rb +91 -65
  76. data/lib/chef/cookbook_site_streaming_uploader.rb +7 -9
  77. data/lib/chef/cookbook_uploader.rb +1 -1
  78. data/lib/chef/cookbook_version.rb +69 -157
  79. data/lib/chef/data_bag.rb +1 -7
  80. data/lib/chef/data_bag_item.rb +5 -10
  81. data/lib/chef/data_collector/messages.rb +2 -0
  82. data/lib/chef/data_collector/resource_report.rb +32 -4
  83. data/lib/chef/data_collector.rb +3 -4
  84. data/lib/chef/decorator/unchain.rb +0 -16
  85. data/lib/chef/decorator.rb +1 -1
  86. data/lib/chef/deprecated.rb +53 -19
  87. data/lib/chef/dsl/audit.rb +2 -2
  88. data/lib/chef/dsl/declare_resource.rb +11 -17
  89. data/lib/chef/dsl/platform_introspection.rb +29 -31
  90. data/lib/chef/dsl/reboot_pending.rb +1 -1
  91. data/lib/chef/dsl/recipe.rb +1 -4
  92. data/lib/chef/dsl/resources.rb +4 -13
  93. data/lib/chef/encrypted_data_bag_item.rb +2 -2
  94. data/lib/chef/environment.rb +9 -16
  95. data/lib/chef/event_dispatch/base.rb +16 -0
  96. data/lib/chef/event_loggers/windows_eventlog.rb +1 -1
  97. data/lib/chef/exceptions.rb +6 -10
  98. data/lib/chef/file_access_control/unix.rb +14 -14
  99. data/lib/chef/file_access_control/windows.rb +1 -1
  100. data/lib/chef/formatters/error_description.rb +18 -1
  101. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +4 -5
  102. data/lib/chef/formatters/error_mapper.rb +6 -6
  103. data/lib/chef/guard_interpreter/default_guard_interpreter.rb +4 -2
  104. data/lib/chef/http/api_versions.rb +54 -0
  105. data/lib/chef/http/authenticator.rb +15 -6
  106. data/lib/chef/http/json_output.rb +4 -1
  107. data/lib/chef/http/socketless_chef_zero_client.rb +1 -0
  108. data/lib/chef/http/validate_content_length.rb +2 -2
  109. data/lib/chef/http.rb +39 -0
  110. data/lib/chef/json_compat.rb +7 -103
  111. data/lib/chef/key.rb +5 -10
  112. data/lib/chef/knife/bootstrap/templates/chef-full.erb +6 -6
  113. data/lib/chef/knife/bootstrap.rb +6 -0
  114. data/lib/chef/knife/configure.rb +1 -3
  115. data/lib/chef/knife/configure_client.rb +1 -3
  116. data/lib/chef/knife/cookbook_create.rb +1 -434
  117. data/lib/chef/knife/cookbook_download.rb +3 -4
  118. data/lib/chef/knife/cookbook_show.rb +7 -3
  119. data/lib/chef/knife/cookbook_site_install.rb +2 -2
  120. data/lib/chef/knife/core/bootstrap_context.rb +8 -7
  121. data/lib/chef/knife/core/cookbook_scm_repo.rb +2 -2
  122. data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
  123. data/lib/chef/knife/core/status_presenter.rb +1 -1
  124. data/lib/chef/knife/core/subcommand_loader.rb +2 -32
  125. data/lib/chef/knife/core/ui.rb +20 -27
  126. data/lib/chef/knife/data_bag_create.rb +6 -4
  127. data/lib/chef/knife/data_bag_secret_options.rb +1 -1
  128. data/lib/chef/knife/deps.rb +32 -34
  129. data/lib/chef/knife/edit.rb +1 -1
  130. data/lib/chef/knife/help.rb +1 -1
  131. data/lib/chef/knife/list.rb +1 -1
  132. data/lib/chef/knife/search.rb +9 -20
  133. data/lib/chef/knife/ssh.rb +62 -36
  134. data/lib/chef/knife/ssl_check.rb +1 -1
  135. data/lib/chef/knife/user_delete.rb +1 -1
  136. data/lib/chef/knife/xargs.rb +1 -1
  137. data/lib/chef/knife.rb +6 -7
  138. data/lib/chef/mash.rb +1 -1
  139. data/lib/chef/mixin/create_path.rb +3 -5
  140. data/lib/chef/mixin/from_file.rb +2 -2
  141. data/lib/chef/mixin/get_source_from_package.rb +2 -2
  142. data/lib/chef/mixin/notifying_block.rb +7 -9
  143. data/lib/chef/mixin/params_validate.rb +9 -8
  144. data/lib/chef/mixin/path_sanity.rb +17 -19
  145. data/lib/chef/mixin/securable.rb +1 -1
  146. data/lib/chef/mixin/shell_out.rb +33 -29
  147. data/lib/chef/mixin/unformatter.rb +2 -2
  148. data/lib/chef/mixin/uris.rb +4 -6
  149. data/lib/chef/mixin/versioned_api.rb +84 -0
  150. data/lib/chef/mixin/which.rb +25 -8
  151. data/lib/chef/mixin/windows_architecture_helper.rb +2 -2
  152. data/lib/chef/mixin/xml_escape.rb +3 -5
  153. data/lib/chef/mixins.rb +0 -1
  154. data/lib/chef/monkey_patches/webrick-utils.rb +1 -1
  155. data/lib/chef/node/attribute.rb +9 -32
  156. data/lib/chef/node/attribute_collections.rb +1 -19
  157. data/lib/chef/node/common_api.rb +5 -7
  158. data/lib/chef/node/immutable_collections.rb +42 -38
  159. data/lib/chef/node/mixin/immutablize_array.rb +1 -1
  160. data/lib/chef/node/mixin/immutablize_hash.rb +1 -1
  161. data/lib/chef/node.rb +21 -20
  162. data/lib/chef/node_map.rb +2 -5
  163. data/lib/chef/org.rb +10 -17
  164. data/lib/chef/platform/provider_mapping.rb +2 -169
  165. data/lib/chef/platform/query_helpers.rb +1 -1
  166. data/lib/chef/platform/rebooter.rb +1 -2
  167. data/lib/chef/policy_builder/expand_node_object.rb +3 -29
  168. data/lib/chef/policy_builder/policyfile.rb +8 -6
  169. data/lib/chef/property.rb +66 -80
  170. data/lib/chef/provider/apt_repository.rb +6 -10
  171. data/lib/chef/provider/apt_update.rb +1 -7
  172. data/lib/chef/provider/batch.rb +1 -1
  173. data/lib/chef/provider/breakpoint.rb +2 -2
  174. data/lib/chef/provider/cookbook_file.rb +3 -9
  175. data/lib/chef/provider/cron.rb +42 -60
  176. data/lib/chef/provider/deploy/revision.rb +3 -5
  177. data/lib/chef/provider/deploy.rb +82 -88
  178. data/lib/chef/provider/directory.rb +33 -37
  179. data/lib/chef/provider/dsc_resource.rb +23 -11
  180. data/lib/chef/provider/dsc_script.rb +1 -5
  181. data/lib/chef/provider/env/windows.rb +5 -1
  182. data/lib/chef/provider/env.rb +32 -30
  183. data/lib/chef/provider/erl_call.rb +15 -47
  184. data/lib/chef/provider/execute.rb +7 -8
  185. data/lib/chef/provider/file.rb +49 -61
  186. data/lib/chef/provider/git.rb +56 -60
  187. data/lib/chef/provider/group.rb +1 -7
  188. data/lib/chef/provider/http_request.rb +37 -41
  189. data/lib/chef/provider/ifconfig/redhat.rb +1 -1
  190. data/lib/chef/provider/ifconfig.rb +0 -6
  191. data/lib/chef/provider/launchd.rb +6 -2
  192. data/lib/chef/provider/link.rb +51 -55
  193. data/lib/chef/provider/log.rb +3 -7
  194. data/lib/chef/provider/lwrp_base.rb +0 -9
  195. data/lib/chef/provider/mdadm.rb +25 -33
  196. data/lib/chef/provider/mount/aix.rb +2 -2
  197. data/lib/chef/provider/mount/mount.rb +2 -2
  198. data/lib/chef/provider/mount.rb +1 -5
  199. data/lib/chef/provider/noop.rb +1 -1
  200. data/lib/chef/provider/ohai.rb +1 -7
  201. data/lib/chef/provider/osx_profile.rb +24 -29
  202. data/lib/chef/provider/package/aix.rb +55 -53
  203. data/lib/chef/provider/package/apt.rb +15 -13
  204. data/lib/chef/provider/package/cab.rb +48 -20
  205. data/lib/chef/provider/package/chocolatey.rb +9 -10
  206. data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
  207. data/lib/chef/provider/package/dnf/python_helper.rb +63 -26
  208. data/lib/chef/provider/package/dnf/version.rb +1 -1
  209. data/lib/chef/provider/package/dnf.rb +21 -19
  210. data/lib/chef/provider/package/dpkg.rb +8 -9
  211. data/lib/chef/provider/package/freebsd/base.rb +10 -10
  212. data/lib/chef/provider/package/freebsd/pkg.rb +15 -15
  213. data/lib/chef/provider/package/freebsd/pkgng.rb +13 -15
  214. data/lib/chef/provider/package/freebsd/port.rb +7 -7
  215. data/lib/chef/provider/package/homebrew.rb +11 -10
  216. data/lib/chef/provider/package/ips.rb +18 -24
  217. data/lib/chef/provider/package/macports.rb +23 -23
  218. data/lib/chef/provider/package/msu.rb +11 -12
  219. data/lib/chef/provider/package/openbsd.rb +25 -22
  220. data/lib/chef/provider/package/pacman.rb +16 -17
  221. data/lib/chef/provider/package/paludis.rb +26 -27
  222. data/lib/chef/provider/package/portage.rb +22 -23
  223. data/lib/chef/provider/package/powershell.rb +17 -17
  224. data/lib/chef/provider/package/rpm.rb +25 -26
  225. data/lib/chef/provider/package/rubygems.rb +64 -62
  226. data/lib/chef/provider/package/smartos.rb +16 -16
  227. data/lib/chef/provider/package/solaris.rb +44 -45
  228. data/lib/chef/provider/package/windows/exe.rb +6 -6
  229. data/lib/chef/provider/package/windows/msi.rb +7 -7
  230. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +9 -3
  231. data/lib/chef/provider/package/windows.rb +3 -3
  232. data/lib/chef/provider/package/yum/rpm_utils.rb +34 -34
  233. data/lib/chef/provider/package/yum/yum_cache.rb +12 -12
  234. data/lib/chef/provider/package/yum.rb +319 -269
  235. data/lib/chef/provider/package/zypper.rb +10 -20
  236. data/lib/chef/provider/package.rb +71 -63
  237. data/lib/chef/provider/powershell_script.rb +15 -7
  238. data/lib/chef/provider/reboot.rb +10 -14
  239. data/lib/chef/provider/registry_key.rb +39 -43
  240. data/lib/chef/provider/remote_directory.rb +3 -15
  241. data/lib/chef/provider/remote_file.rb +3 -9
  242. data/lib/chef/provider/route.rb +1 -7
  243. data/lib/chef/provider/ruby_block.rb +4 -8
  244. data/lib/chef/provider/script.rb +42 -6
  245. data/lib/chef/provider/service/aix.rb +1 -5
  246. data/lib/chef/provider/service/debian.rb +15 -21
  247. data/lib/chef/provider/service/freebsd.rb +0 -1
  248. data/lib/chef/provider/service/gentoo.rb +0 -1
  249. data/lib/chef/provider/service/init.rb +0 -1
  250. data/lib/chef/provider/service/insserv.rb +2 -2
  251. data/lib/chef/provider/service/openbsd.rb +0 -1
  252. data/lib/chef/provider/service/redhat.rb +2 -2
  253. data/lib/chef/provider/service/simple.rb +0 -5
  254. data/lib/chef/provider/service/solaris.rb +5 -4
  255. data/lib/chef/provider/service/systemd.rb +1 -1
  256. data/lib/chef/provider/service/upstart.rb +10 -12
  257. data/lib/chef/provider/service/windows.rb +1 -5
  258. data/lib/chef/provider/service.rb +51 -58
  259. data/lib/chef/provider/subversion.rb +40 -46
  260. data/lib/chef/provider/systemd_unit.rb +2 -0
  261. data/lib/chef/provider/template/content.rb +24 -1
  262. data/lib/chef/provider/template.rb +3 -9
  263. data/lib/chef/provider/user/dscl.rb +3 -3
  264. data/lib/chef/provider/user/linux.rb +6 -5
  265. data/lib/chef/provider/user/pw.rb +4 -10
  266. data/lib/chef/provider/user/solaris.rb +2 -2
  267. data/lib/chef/provider/user/useradd.rb +5 -5
  268. data/lib/chef/provider/user.rb +43 -59
  269. data/lib/chef/provider/whyrun_safe_ruby_block.rb +4 -4
  270. data/lib/chef/provider/windows_task.rb +418 -0
  271. data/lib/chef/provider/yum_repository.rb +3 -6
  272. data/lib/chef/provider.rb +63 -115
  273. data/lib/chef/provider_resolver.rb +8 -34
  274. data/lib/chef/providers.rb +1 -1
  275. data/lib/chef/recipe.rb +9 -1
  276. data/lib/chef/resource/action_class.rb +13 -17
  277. data/lib/chef/resource/apt_repository.rb +0 -1
  278. data/lib/chef/resource/apt_update.rb +3 -1
  279. data/lib/chef/resource/chef_gem.rb +4 -11
  280. data/lib/chef/resource/chocolatey_package.rb +4 -1
  281. data/lib/chef/resource/dnf_package.rb +6 -3
  282. data/lib/chef/resource/dsc_resource.rb +9 -1
  283. data/lib/chef/resource/execute.rb +66 -19
  284. data/lib/chef/resource/file/verification/systemd_unit.rb +67 -0
  285. data/lib/chef/resource/file/verification.rb +2 -7
  286. data/lib/chef/resource/freebsd_package.rb +1 -1
  287. data/lib/chef/resource/gem_package.rb +16 -2
  288. data/lib/chef/resource/launchd.rb +3 -3
  289. data/lib/chef/resource/lwrp_base.rb +0 -2
  290. data/lib/chef/resource/mount.rb +5 -12
  291. data/lib/chef/resource/package.rb +2 -2
  292. data/lib/chef/resource/powershell_script.rb +1 -1
  293. data/lib/chef/resource/registry_key.rb +1 -1
  294. data/lib/chef/resource/script.rb +8 -34
  295. data/lib/chef/resource/service.rb +15 -13
  296. data/lib/chef/resource/systemd_unit.rb +5 -0
  297. data/lib/chef/resource/user/aix_user.rb +1 -1
  298. data/lib/chef/resource/user/dscl_user.rb +1 -1
  299. data/lib/chef/resource/user/linux_user.rb +1 -10
  300. data/lib/chef/resource/user/pw_user.rb +1 -1
  301. data/lib/chef/resource/user/solaris_user.rb +1 -1
  302. data/lib/chef/resource/user/windows_user.rb +1 -1
  303. data/lib/chef/resource/user.rb +1 -19
  304. data/lib/chef/resource/windows_package.rb +4 -1
  305. data/lib/chef/resource/windows_task.rb +237 -0
  306. data/lib/chef/resource/yum_package.rb +13 -4
  307. data/lib/chef/resource/yum_repository.rb +0 -1
  308. data/lib/chef/resource/zypper_package.rb +2 -0
  309. data/lib/chef/resource.rb +90 -202
  310. data/lib/chef/resource_builder.rb +1 -65
  311. data/lib/chef/resource_collection/resource_collection_serialization.rb +11 -4
  312. data/lib/chef/resource_collection/resource_list.rb +6 -0
  313. data/lib/chef/resource_collection/resource_set.rb +44 -17
  314. data/lib/chef/resource_collection.rb +10 -0
  315. data/lib/chef/resource_reporter.rb +1 -1
  316. data/lib/chef/resource_resolver.rb +1 -25
  317. data/lib/chef/resources.rb +1 -1
  318. data/lib/chef/role.rb +0 -6
  319. data/lib/chef/run_context/cookbook_compiler.rb +49 -5
  320. data/lib/chef/run_context.rb +4 -25
  321. data/lib/chef/run_list/run_list_item.rb +1 -1
  322. data/lib/chef/run_list/versioned_recipe_list.rb +14 -12
  323. data/lib/chef/search/query.rb +26 -31
  324. data/lib/chef/server_api.rb +2 -0
  325. data/lib/chef/{resource/easy_install_package.rb → server_api_versions.rb} +18 -10
  326. data/lib/chef/shell/ext.rb +3 -3
  327. data/lib/chef/shell/shell_session.rb +14 -4
  328. data/lib/chef/shell.rb +32 -7
  329. data/lib/chef/user.rb +9 -16
  330. data/lib/chef/user_v1.rb +9 -16
  331. data/lib/chef/util/diff.rb +1 -1
  332. data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
  333. data/lib/chef/util/selinux.rb +1 -1
  334. data/lib/chef/util/windows/net_group.rb +18 -30
  335. data/lib/chef/util/windows/net_use.rb +7 -11
  336. data/lib/chef/util/windows/net_user.rb +12 -18
  337. data/lib/chef/util/windows/volume.rb +9 -15
  338. data/lib/chef/version.rb +1 -1
  339. data/lib/chef/version_class.rb +1 -1
  340. data/lib/chef/win32/api/file.rb +25 -31
  341. data/lib/chef/win32/api/installer.rb +2 -2
  342. data/lib/chef/win32/api.rb +4 -6
  343. data/lib/chef/win32/file.rb +4 -6
  344. data/lib/chef/win32/registry.rb +9 -9
  345. data/lib/chef/win32/security/acl.rb +2 -2
  346. data/lib/chef/win32/security/sid.rb +5 -0
  347. data/lib/chef/win32/security.rb +2 -2
  348. data/lib/chef/win32/unicode.rb +2 -2
  349. data/lib/chef/win32/version.rb +1 -1
  350. data/lib/chef.rb +1 -2
  351. data/spec/data/cookbooks/openldap/templates/default/openldap_nested_variable_stuff.erb +1 -0
  352. data/spec/data/lwrp/providers/buck_passer.rb +1 -1
  353. data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
  354. data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
  355. data/spec/data/lwrp/providers/inline_compiler.rb +0 -2
  356. data/spec/data/lwrp/resources/buck_passer.rb +5 -0
  357. data/spec/data/lwrp/resources/buck_passer_2.rb +3 -0
  358. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +3 -0
  359. data/spec/data/lwrp/resources/inline_compiler.rb +3 -0
  360. data/spec/data/lwrp/resources/monkey_name_printer.rb +5 -0
  361. data/spec/data/lwrp/resources/paint_drying_watcher.rb +3 -0
  362. data/spec/data/lwrp/resources/thumb_twiddler.rb +3 -0
  363. data/spec/data/prefer_metadata_json/metadata.json +51 -0
  364. data/spec/data/prefer_metadata_json/metadata.rb +6 -0
  365. data/spec/data/prefer_metadata_json/recipes/default.rb +0 -0
  366. data/spec/data/root_alias_cookbooks/dup_attr/attributes/default.rb +1 -0
  367. data/spec/data/root_alias_cookbooks/dup_attr/attributes.rb +1 -0
  368. data/spec/data/root_alias_cookbooks/dup_attr/metadata.rb +2 -0
  369. data/spec/data/root_alias_cookbooks/dup_attr/recipe.rb +3 -0
  370. data/spec/data/root_alias_cookbooks/dup_recipe/attributes.rb +1 -0
  371. data/spec/data/root_alias_cookbooks/dup_recipe/metadata.rb +2 -0
  372. data/spec/data/root_alias_cookbooks/dup_recipe/recipe.rb +3 -0
  373. data/spec/data/root_alias_cookbooks/dup_recipe/recipes/default.rb +3 -0
  374. data/spec/data/root_alias_cookbooks/simple/attributes.rb +1 -0
  375. data/spec/data/root_alias_cookbooks/simple/metadata.rb +2 -0
  376. data/spec/data/root_alias_cookbooks/simple/recipe.rb +3 -0
  377. data/spec/data/shef-config.rb +11 -10
  378. data/spec/functional/knife/ssh_spec.rb +34 -6
  379. data/spec/functional/rebooter_spec.rb +1 -0
  380. data/spec/functional/resource/bash_spec.rb +11 -45
  381. data/spec/functional/resource/batch_spec.rb +5 -1
  382. data/spec/functional/resource/cron_spec.rb +2 -2
  383. data/spec/functional/resource/dsc_script_spec.rb +2 -4
  384. data/spec/functional/resource/execute_spec.rb +17 -0
  385. data/spec/functional/resource/link_spec.rb +3 -3
  386. data/spec/functional/resource/template_spec.rb +33 -0
  387. data/spec/functional/resource/user/dscl_spec.rb +2 -4
  388. data/spec/functional/root_alias_spec.rb +78 -0
  389. data/spec/functional/shell_spec.rb +38 -40
  390. data/spec/integration/client/client_spec.rb +109 -16
  391. data/spec/integration/client/exit_code_spec.rb +1 -105
  392. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -97
  393. data/spec/integration/knife/cookbook_download_spec.rb +0 -24
  394. data/spec/integration/knife/cookbook_show_spec.rb +12 -23
  395. data/spec/integration/knife/deps_spec.rb +5 -9
  396. data/spec/integration/knife/search_node_spec.rb +39 -0
  397. data/spec/integration/knife/serve_spec.rb +58 -22
  398. data/spec/integration/knife/upload_spec.rb +3 -11
  399. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +7 -11
  400. data/spec/integration/recipes/notifies_spec.rb +60 -0
  401. data/spec/integration/recipes/recipe_dsl_spec.rb +76 -226
  402. data/spec/integration/recipes/resource_action_spec.rb +37 -30
  403. data/spec/spec_helper.rb +7 -0
  404. data/spec/support/chef_helpers.rb +5 -7
  405. data/spec/support/platform_helpers.rb +10 -3
  406. data/spec/support/platforms/prof/gc.rb +4 -6
  407. data/spec/support/shared/context/client.rb +9 -2
  408. data/spec/support/shared/functional/execute_resource.rb +150 -0
  409. data/spec/support/shared/functional/windows_script.rb +74 -4
  410. data/spec/support/shared/integration/knife_support.rb +1 -1
  411. data/spec/support/shared/unit/execute_resource.rb +37 -9
  412. data/spec/support/shared/unit/provider/file.rb +10 -0
  413. data/spec/support/shared/unit/script_resource.rb +1 -9
  414. data/spec/unit/application/exit_code_spec.rb +4 -89
  415. data/spec/unit/application_spec.rb +39 -29
  416. data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +1 -1
  417. data/spec/unit/client_spec.rb +72 -31
  418. data/spec/unit/config_fetcher_spec.rb +2 -2
  419. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +31 -19
  420. data/spec/unit/cookbook/file_vendor_spec.rb +20 -9
  421. data/spec/unit/cookbook/gem_installer_spec.rb +85 -0
  422. data/spec/unit/cookbook/manifest_v0_spec.rb +133 -0
  423. data/spec/unit/cookbook/manifest_v2_spec.rb +70 -0
  424. data/spec/unit/cookbook/metadata_spec.rb +29 -108
  425. data/spec/unit/cookbook/synchronizer_spec.rb +5 -6
  426. data/spec/unit/cookbook/syntax_check_spec.rb +9 -2
  427. data/spec/unit/cookbook_loader_spec.rb +17 -19
  428. data/spec/unit/cookbook_manifest_spec.rb +12 -44
  429. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -4
  430. data/spec/unit/cookbook_spec.rb +10 -14
  431. data/spec/unit/cookbook_uploader_spec.rb +1 -1
  432. data/spec/unit/cookbook_version_file_specificity_spec.rb +55 -28
  433. data/spec/unit/cookbook_version_spec.rb +19 -128
  434. data/spec/unit/data_bag_item_spec.rb +4 -0
  435. data/spec/unit/data_collector/messages_spec.rb +137 -0
  436. data/spec/unit/data_collector/resource_report_spec.rb +145 -0
  437. data/spec/unit/deprecation_spec.rb +0 -14
  438. data/spec/unit/encrypted_data_bag_item_spec.rb +6 -6
  439. data/spec/unit/formatters/error_description_spec.rb +52 -7
  440. data/spec/unit/http/api_versions_spec.rb +79 -0
  441. data/spec/unit/http/authenticator_spec.rb +20 -0
  442. data/spec/unit/http/socketless_chef_zero_client_spec.rb +2 -1
  443. data/spec/unit/json_compat_spec.rb +0 -32
  444. data/spec/unit/knife/bootstrap_spec.rb +34 -0
  445. data/spec/unit/knife/configure_client_spec.rb +0 -2
  446. data/spec/unit/knife/cookbook_create_spec.rb +1 -220
  447. data/spec/unit/knife/cookbook_download_spec.rb +46 -28
  448. data/spec/unit/knife/cookbook_show_spec.rb +42 -9
  449. data/spec/unit/knife/core/bootstrap_context_spec.rb +17 -0
  450. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +1 -1
  451. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -6
  452. data/spec/unit/knife/core/ui_spec.rb +21 -11
  453. data/spec/unit/knife/data_bag_create_spec.rb +65 -45
  454. data/spec/unit/knife/ssh_spec.rb +34 -36
  455. data/spec/unit/knife_spec.rb +2 -2
  456. data/spec/unit/lwrp_spec.rb +38 -127
  457. data/spec/unit/mixin/path_sanity_spec.rb +7 -7
  458. data/spec/unit/mixin/shell_out_spec.rb +18 -84
  459. data/spec/unit/mixin/versioned_api_spec.rb +128 -0
  460. data/spec/unit/mixin/which.rb +160 -0
  461. data/spec/unit/node/attribute_spec.rb +65 -33
  462. data/spec/unit/node/immutable_collections_spec.rb +104 -1
  463. data/spec/unit/node_map_spec.rb +1 -23
  464. data/spec/unit/node_spec.rb +81 -98
  465. data/spec/unit/policy_builder/expand_node_object_spec.rb +2 -27
  466. data/spec/unit/policy_builder/policyfile_spec.rb +12 -12
  467. data/spec/unit/property/validation_spec.rb +51 -69
  468. data/spec/unit/property_spec.rb +105 -125
  469. data/spec/unit/provider/apt_repository_spec.rb +33 -27
  470. data/spec/unit/provider/cron_spec.rb +15 -39
  471. data/spec/unit/provider/deploy_spec.rb +1 -1
  472. data/spec/unit/provider/directory_spec.rb +10 -0
  473. data/spec/unit/provider/dsc_resource_spec.rb +175 -0
  474. data/spec/unit/provider/erl_call_spec.rb +5 -13
  475. data/spec/unit/provider/execute_spec.rb +3 -14
  476. data/spec/unit/provider/launchd_spec.rb +2 -2
  477. data/spec/unit/provider/package/aix_spec.rb +22 -22
  478. data/spec/unit/provider/package/apt_spec.rb +37 -27
  479. data/spec/unit/provider/package/cab_spec.rb +59 -5
  480. data/{lib-backcompat/chef/chef_fs/file_system/repository/file_system_root_dir.rb → spec/unit/provider/package/dnf/python_helper_spec.rb} +10 -15
  481. data/spec/unit/provider/package/dpkg_spec.rb +16 -16
  482. data/spec/unit/provider/package/freebsd/pkg_spec.rb +15 -15
  483. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +9 -9
  484. data/spec/unit/provider/package/freebsd/port_spec.rb +9 -9
  485. data/spec/unit/provider/package/homebrew_spec.rb +9 -9
  486. data/spec/unit/provider/package/ips_spec.rb +37 -31
  487. data/spec/unit/provider/package/macports_spec.rb +10 -10
  488. data/spec/unit/provider/package/openbsd_spec.rb +10 -10
  489. data/spec/unit/provider/package/pacman_spec.rb +6 -6
  490. data/spec/unit/provider/package/paludis_spec.rb +7 -7
  491. data/spec/unit/provider/package/portage_spec.rb +6 -7
  492. data/spec/unit/provider/package/rpm_spec.rb +23 -23
  493. data/spec/unit/provider/package/rubygems_spec.rb +135 -46
  494. data/spec/unit/provider/package/solaris_spec.rb +15 -15
  495. data/spec/unit/provider/package/windows/msi_spec.rb +1 -1
  496. data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +25 -0
  497. data/spec/unit/provider/package/windows_spec.rb +2 -1
  498. data/spec/unit/provider/package/yum_spec.rb +58 -50
  499. data/spec/unit/provider/package/zypper_spec.rb +54 -97
  500. data/spec/unit/provider/package_spec.rb +8 -0
  501. data/spec/unit/provider/powershell_script_spec.rb +14 -4
  502. data/spec/unit/provider/remote_file/sftp_spec.rb +3 -3
  503. data/spec/unit/provider/route_spec.rb +7 -1
  504. data/spec/unit/provider/script_spec.rb +49 -6
  505. data/spec/unit/provider/service/debian_service_spec.rb +14 -20
  506. data/spec/unit/provider/service/solaris_smf_service_spec.rb +37 -1
  507. data/spec/unit/provider/service/upstart_service_spec.rb +12 -25
  508. data/spec/unit/provider/subversion_spec.rb +2 -2
  509. data/spec/unit/provider/user/linux_spec.rb +5 -43
  510. data/spec/unit/provider/user/pw_spec.rb +7 -27
  511. data/spec/unit/provider/windows_task_spec.rb +392 -0
  512. data/spec/unit/provider_resolver_spec.rb +0 -1
  513. data/spec/unit/provider_spec.rb +10 -3
  514. data/spec/unit/recipe_spec.rb +3 -172
  515. data/spec/unit/resource/chef_gem_spec.rb +16 -62
  516. data/spec/unit/resource/conditional_spec.rb +4 -4
  517. data/spec/unit/resource/cookbook_file_spec.rb +2 -2
  518. data/spec/unit/resource/cron_spec.rb +1 -1
  519. data/spec/unit/resource/deploy_spec.rb +4 -4
  520. data/spec/unit/resource/directory_spec.rb +2 -2
  521. data/spec/unit/resource/dsc_resource_spec.rb +6 -0
  522. data/spec/unit/resource/env_spec.rb +1 -1
  523. data/spec/unit/resource/execute_spec.rb +215 -1
  524. data/spec/unit/resource/file/verification/systemd_unit_spec.rb +103 -0
  525. data/spec/unit/resource/file/verification_spec.rb +8 -14
  526. data/spec/unit/resource/file_spec.rb +3 -3
  527. data/spec/unit/resource/freebsd_package_spec.rb +2 -2
  528. data/spec/unit/resource/group_spec.rb +2 -2
  529. data/spec/unit/resource/ifconfig_spec.rb +1 -1
  530. data/spec/unit/resource/link_spec.rb +2 -2
  531. data/spec/unit/resource/mdadm_spec.rb +1 -1
  532. data/spec/unit/resource/mount_spec.rb +3 -3
  533. data/spec/unit/resource/ohai_spec.rb +1 -1
  534. data/spec/unit/resource/package_spec.rb +14 -4
  535. data/spec/unit/resource/registry_key_spec.rb +2 -2
  536. data/spec/unit/resource/remote_directory_spec.rb +2 -2
  537. data/spec/unit/resource/remote_file_spec.rb +2 -2
  538. data/spec/unit/resource/route_spec.rb +1 -1
  539. data/spec/unit/resource/scm_spec.rb +2 -2
  540. data/spec/unit/resource/script_spec.rb +1 -1
  541. data/spec/unit/resource/service_spec.rb +25 -5
  542. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  543. data/spec/unit/resource/template_spec.rb +2 -2
  544. data/spec/unit/resource/user_spec.rb +6 -6
  545. data/spec/unit/resource/windows_task_spec.rb +213 -0
  546. data/spec/unit/resource/yum_package_spec.rb +42 -1
  547. data/spec/unit/resource_collection/resource_set_spec.rb +46 -1
  548. data/spec/unit/resource_collection_spec.rb +4 -3
  549. data/spec/unit/resource_reporter_spec.rb +6 -6
  550. data/spec/unit/resource_spec.rb +55 -71
  551. data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -3
  552. data/spec/unit/run_list/versioned_recipe_list_spec.rb +7 -4
  553. data/spec/unit/runner_spec.rb +10 -28
  554. data/spec/unit/search/query_spec.rb +32 -34
  555. data/spec/unit/server_api_versions_spec.rb +44 -0
  556. data/spec/unit/shell/shell_session_spec.rb +33 -2
  557. data/spec/unit/util/selinux_spec.rb +3 -14
  558. data/spec/unit/win32/error_spec.rb +67 -0
  559. data/spec/unit/win32/security_spec.rb +66 -0
  560. data/tasks/bundle.rb +36 -52
  561. data/tasks/changelog.rb +1 -1
  562. data/tasks/dependencies.rb +54 -52
  563. data/tasks/version.rb +41 -0
  564. metadata +91 -76
  565. data/lib/chef/deprecation/mixin/template.rb +0 -48
  566. data/lib/chef/deprecation/provider/cookbook_file.rb +0 -54
  567. data/lib/chef/deprecation/provider/file.rb +0 -198
  568. data/lib/chef/deprecation/provider/remote_directory.rb +0 -52
  569. data/lib/chef/deprecation/provider/remote_file.rb +0 -85
  570. data/lib/chef/deprecation/provider/template.rb +0 -63
  571. data/lib/chef/dsl/method_missing.rb +0 -75
  572. data/lib/chef/knife/cookbook_site_vendor.rb +0 -46
  573. data/lib/chef/knife/core/custom_manifest_loader.rb +0 -69
  574. data/lib/chef/mixin/command/unix.rb +0 -220
  575. data/lib/chef/mixin/command/windows.rb +0 -71
  576. data/lib/chef/mixin/command.rb +0 -194
  577. data/lib/chef/monkey_patches/net-ssh-multi.rb +0 -141
  578. data/lib/chef/provider/package/easy_install.rb +0 -135
  579. data/lib/chef/rest.rb +0 -210
  580. data/lib/chef/shell_out.rb +0 -13
  581. data/lib/chef/tasks/chef_repo.rake +0 -200
  582. data/lib-backcompat/chef/chef_fs/file_system/acl_entry.rb +0 -5
  583. data/lib-backcompat/chef/chef_fs/file_system/already_exists_error.rb +0 -20
  584. data/lib-backcompat/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +0 -5
  585. data/lib-backcompat/chef/chef_fs/file_system/chef_server_root_dir.rb +0 -5
  586. data/lib-backcompat/chef/chef_fs/file_system/cookbook_frozen_error.rb +0 -20
  587. data/lib-backcompat/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +0 -20
  588. data/lib-backcompat/chef/chef_fs/file_system/file_system_error.rb +0 -20
  589. data/lib-backcompat/chef/chef_fs/file_system/must_delete_recursively_error.rb +0 -20
  590. data/lib-backcompat/chef/chef_fs/file_system/not_found_error.rb +0 -20
  591. data/lib-backcompat/chef/chef_fs/file_system/operation_failed_error.rb +0 -20
  592. data/lib-backcompat/chef/chef_fs/file_system/operation_not_allowed_error.rb +0 -20
  593. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_acls_dir.rb +0 -5
  594. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_client_keys_dir.rb +0 -5
  595. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_entry.rb +0 -6
  596. data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_policies_dir.rb +0 -5
  597. data/spec/functional/rest_spec.rb +0 -95
  598. data/spec/unit/knife/core/custom_manifest_loader_spec.rb +0 -41
  599. data/spec/unit/lib_backcompat_spec.rb +0 -34
  600. data/spec/unit/mixin/command_spec.rb +0 -107
  601. data/spec/unit/platform_spec.rb +0 -242
  602. data/spec/unit/provider/package/easy_install_spec.rb +0 -114
  603. data/spec/unit/resource/easy_install_package_spec.rb +0 -39
  604. data/spec/unit/rest/auth_credentials_spec.rb +0 -292
  605. data/spec/unit/rest_spec.rb +0 -753
  606. data/spec/unit/shell_out_spec.rb +0 -18
  607. data/tasks/bin/bundle-platform +0 -20
  608. data/tasks/bin/bundle-platform.bat +0 -2
  609. data/tasks/bin/bundler_patch.rb +0 -27
  610. data/tasks/bin/gem-version-diff +0 -37
  611. data/tasks/bundle_util.rb +0 -110
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Adam Jacob (<adam@chef.io>)
3
- # Copyright:: Copyright 2008-2016, Chef Software Inc.
3
+ # Copyright:: Copyright 2008-2017, 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");
@@ -42,46 +42,42 @@ class Chef
42
42
 
43
43
  private :negative_complement
44
44
 
45
- def whyrun_supported?
46
- true
47
- end
48
-
49
45
  def load_current_resource
50
- @current_resource = Chef::Resource::Link.new(@new_resource.name)
51
- @current_resource.target_file(@new_resource.target_file)
52
- if file_class.symlink?(@current_resource.target_file)
53
- @current_resource.link_type(:symbolic)
54
- @current_resource.to(
55
- canonicalize(file_class.readlink(@current_resource.target_file))
46
+ @current_resource = Chef::Resource::Link.new(new_resource.name)
47
+ current_resource.target_file(new_resource.target_file)
48
+ if file_class.symlink?(current_resource.target_file)
49
+ current_resource.link_type(:symbolic)
50
+ current_resource.to(
51
+ canonicalize(file_class.readlink(current_resource.target_file))
56
52
  )
57
53
  else
58
- @current_resource.link_type(:hard)
59
- if ::File.exists?(@current_resource.target_file)
60
- if ::File.exists?(@new_resource.to) &&
61
- file_class.stat(@current_resource.target_file).ino ==
62
- file_class.stat(@new_resource.to).ino
63
- @current_resource.to(canonicalize(@new_resource.to))
54
+ current_resource.link_type(:hard)
55
+ if ::File.exists?(current_resource.target_file)
56
+ if ::File.exists?(new_resource.to) &&
57
+ file_class.stat(current_resource.target_file).ino ==
58
+ file_class.stat(new_resource.to).ino
59
+ current_resource.to(canonicalize(new_resource.to))
64
60
  else
65
- @current_resource.to("")
61
+ current_resource.to("")
66
62
  end
67
63
  end
68
64
  end
69
- ScanAccessControl.new(@new_resource, @current_resource).set_all!
70
- @current_resource
65
+ ScanAccessControl.new(new_resource, current_resource).set_all!
66
+ current_resource
71
67
  end
72
68
 
73
69
  def define_resource_requirements
74
70
  requirements.assert(:delete) do |a|
75
71
  a.assertion do
76
- if @current_resource.to
77
- @current_resource.link_type == @new_resource.link_type &&
78
- (@current_resource.link_type == :symbolic || @current_resource.to != "")
72
+ if current_resource.to
73
+ current_resource.link_type == new_resource.link_type &&
74
+ (current_resource.link_type == :symbolic || current_resource.to != "")
79
75
  else
80
76
  true
81
77
  end
82
78
  end
83
- a.failure_message Chef::Exceptions::Link, "Cannot delete #{@new_resource} at #{@new_resource.target_file}! Not a #{@new_resource.link_type} link."
84
- a.whyrun("Would assume the link at #{@new_resource.target_file} was previously created")
79
+ a.failure_message Chef::Exceptions::Link, "Cannot delete #{new_resource} at #{new_resource.target_file}! Not a #{new_resource.link_type} link."
80
+ a.whyrun("Would assume the link at #{new_resource.target_file} was previously created")
85
81
  end
86
82
  end
87
83
 
@@ -95,48 +91,48 @@ class Chef
95
91
  # to - the location to link to
96
92
  # target_file - the name of the link
97
93
 
98
- if @current_resource.to != canonicalize(@new_resource.to) ||
99
- @current_resource.link_type != @new_resource.link_type
94
+ if current_resource.to != canonicalize(new_resource.to) ||
95
+ current_resource.link_type != new_resource.link_type
100
96
  # Handle the case where the symlink already exists and is pointing at a valid to_file
101
- if @current_resource.to
97
+ if current_resource.to
102
98
  # On Windows, to fix a symlink already pointing at a directory we must first
103
99
  # ::Dir.unlink the symlink (not the directory), while if we have a symlink
104
100
  # pointing at file we must use ::File.unlink on the symlink.
105
101
  # However if the new symlink will point to a file and the current symlink is pointing at a
106
102
  # directory we want to throw an exception and calling ::File.unlink on the directory symlink
107
103
  # will throw the correct ones.
108
- if Chef::Platform.windows? && ::File.directory?(@new_resource.to) &&
109
- ::File.directory?(@current_resource.target_file)
110
- converge_by("unlink existing windows symlink to dir at #{@new_resource.target_file}") do
111
- ::Dir.unlink(@new_resource.target_file)
104
+ if Chef::Platform.windows? && ::File.directory?(new_resource.to) &&
105
+ ::File.directory?(current_resource.target_file)
106
+ converge_by("unlink existing windows symlink to dir at #{new_resource.target_file}") do
107
+ ::Dir.unlink(new_resource.target_file)
112
108
  end
113
109
  else
114
- converge_by("unlink existing symlink to file at #{@new_resource.target_file}") do
115
- ::File.unlink(@new_resource.target_file)
110
+ converge_by("unlink existing symlink to file at #{new_resource.target_file}") do
111
+ ::File.unlink(new_resource.target_file)
116
112
  end
117
113
  end
118
114
  end
119
- if @new_resource.link_type == :symbolic
120
- converge_by("create symlink at #{@new_resource.target_file} to #{@new_resource.to}") do
121
- file_class.symlink(canonicalize(@new_resource.to), @new_resource.target_file)
122
- Chef::Log.debug("#{@new_resource} created #{@new_resource.link_type} link from #{@new_resource.target_file} -> #{@new_resource.to}")
123
- Chef::Log.info("#{@new_resource} created")
115
+ if new_resource.link_type == :symbolic
116
+ converge_by("create symlink at #{new_resource.target_file} to #{new_resource.to}") do
117
+ file_class.symlink(canonicalize(new_resource.to), new_resource.target_file)
118
+ Chef::Log.debug("#{new_resource} created #{new_resource.link_type} link from #{new_resource.target_file} -> #{new_resource.to}")
119
+ Chef::Log.info("#{new_resource} created")
124
120
  # file_class.symlink will create the link with default access controls.
125
121
  # This means that the access controls of the file could be different
126
122
  # than those captured during the initial evaluation of current_resource.
127
123
  # We need to re-evaluate the current_resource to ensure that the desired
128
124
  # access controls are applied.
129
- ScanAccessControl.new(@new_resource, @current_resource).set_all!
125
+ ScanAccessControl.new(new_resource, current_resource).set_all!
130
126
  end
131
- elsif @new_resource.link_type == :hard
132
- converge_by("create hard link at #{@new_resource.target_file} to #{@new_resource.to}") do
133
- file_class.link(@new_resource.to, @new_resource.target_file)
134
- Chef::Log.debug("#{@new_resource} created #{@new_resource.link_type} link from #{@new_resource.target_file} -> #{@new_resource.to}")
135
- Chef::Log.info("#{@new_resource} created")
127
+ elsif new_resource.link_type == :hard
128
+ converge_by("create hard link at #{new_resource.target_file} to #{new_resource.to}") do
129
+ file_class.link(new_resource.to, new_resource.target_file)
130
+ Chef::Log.debug("#{new_resource} created #{new_resource.link_type} link from #{new_resource.target_file} -> #{new_resource.to}")
131
+ Chef::Log.info("#{new_resource} created")
136
132
  end
137
133
  end
138
134
  end
139
- if @new_resource.link_type == :symbolic
135
+ if new_resource.link_type == :symbolic
140
136
  if access_controls.requires_changes?
141
137
  converge_by(access_controls.describe_changes) do
142
138
  access_controls.set_all
@@ -146,16 +142,16 @@ class Chef
146
142
  end
147
143
 
148
144
  def action_delete
149
- if @current_resource.to # Exists
150
- if Chef::Platform.windows? && ::File.directory?(@current_resource.target_file)
151
- converge_by("delete link to dir at #{@new_resource.target_file}") do
152
- ::Dir.delete(@new_resource.target_file)
153
- Chef::Log.info("#{@new_resource} deleted")
145
+ if current_resource.to # Exists
146
+ if Chef::Platform.windows? && ::File.directory?(current_resource.target_file)
147
+ converge_by("delete link to dir at #{new_resource.target_file}") do
148
+ ::Dir.delete(new_resource.target_file)
149
+ Chef::Log.info("#{new_resource} deleted")
154
150
  end
155
151
  else
156
- converge_by("delete link to file at #{@new_resource.target_file}") do
157
- ::File.delete(@new_resource.target_file)
158
- Chef::Log.info("#{@new_resource} deleted")
152
+ converge_by("delete link to file at #{new_resource.target_file}") do
153
+ ::File.delete(new_resource.target_file)
154
+ Chef::Log.info("#{new_resource} deleted")
159
155
  end
160
156
  end
161
157
  end
@@ -165,7 +161,7 @@ class Chef
165
161
  # access control (e.g., use lchmod instead of chmod) if the resource is a
166
162
  # symlink.
167
163
  def manage_symlink_access?
168
- @new_resource.link_type == :symbolic
164
+ new_resource.link_type == :symbolic
169
165
  end
170
166
  end
171
167
  end
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Cary Penniman (<cary@rightscale.com>)
3
- # Copyright:: Copyright 2008-2016, Chef Software Inc.
3
+ # Copyright:: Copyright 2008-2017, 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");
@@ -27,10 +27,6 @@ class Chef
27
27
 
28
28
  provides :log
29
29
 
30
- def whyrun_supported?
31
- true
32
- end
33
-
34
30
  # No concept of a 'current' resource for logs, this is a no-op
35
31
  #
36
32
  # === Return
@@ -44,8 +40,8 @@ class Chef
44
40
  # === Return
45
41
  # true:: Always return true
46
42
  def action_write
47
- Chef::Log.send(@new_resource.level, @new_resource.message)
48
- @new_resource.updated_by_last_action(true) if Chef::Config[:count_log_resource_updates]
43
+ Chef::Log.send(new_resource.level, new_resource.message)
44
+ new_resource.updated_by_last_action(true) if Chef::Config[:count_log_resource_updates]
49
45
  end
50
46
 
51
47
  end
@@ -75,18 +75,9 @@ class Chef
75
75
 
76
76
  LWRPBase.loaded_lwrps[filename] = true
77
77
 
78
- Chef::Provider.register_deprecated_lwrp_class(provider_class, convert_to_class_name(resource_name))
79
-
80
78
  provider_class
81
79
  end
82
80
 
83
- # DSL for defining a provider's actions.
84
- def action(name, &block)
85
- define_method("action_#{name}") do
86
- instance_eval(&block)
87
- end
88
- end
89
-
90
81
  protected
91
82
 
92
83
  def loaded_lwrps
@@ -25,66 +25,58 @@ class Chef
25
25
 
26
26
  provides :mdadm
27
27
 
28
- def popen4
29
- raise Exception, "deprecated"
30
- end
31
-
32
- def whyrun_supported?
33
- true
34
- end
35
-
36
28
  def load_current_resource
37
- @current_resource = Chef::Resource::Mdadm.new(@new_resource.name)
38
- @current_resource.raid_device(@new_resource.raid_device)
39
- Chef::Log.debug("#{@new_resource} checking for software raid device #{@current_resource.raid_device}")
29
+ @current_resource = Chef::Resource::Mdadm.new(new_resource.name)
30
+ current_resource.raid_device(new_resource.raid_device)
31
+ Chef::Log.debug("#{new_resource} checking for software raid device #{current_resource.raid_device}")
40
32
 
41
33
  device_not_found = 4
42
- mdadm = shell_out!("mdadm --detail --test #{@new_resource.raid_device}", :returns => [0, device_not_found])
34
+ mdadm = shell_out!("mdadm --detail --test #{new_resource.raid_device}", :returns => [0, device_not_found])
43
35
  exists = (mdadm.status == 0)
44
- @current_resource.exists(exists)
36
+ current_resource.exists(exists)
45
37
  end
46
38
 
47
39
  def action_create
48
- unless @current_resource.exists
40
+ unless current_resource.exists
49
41
  converge_by("create RAID device #{new_resource.raid_device}") do
50
- command = "yes | mdadm --create #{@new_resource.raid_device} --level #{@new_resource.level}"
51
- command << " --chunk=#{@new_resource.chunk}" unless @new_resource.level == 1
52
- command << " --metadata=#{@new_resource.metadata}"
53
- command << " --bitmap=#{@new_resource.bitmap}" if @new_resource.bitmap
54
- command << " --layout=#{@new_resource.layout}" if @new_resource.layout
55
- command << " --raid-devices #{@new_resource.devices.length} #{@new_resource.devices.join(" ")}"
56
- Chef::Log.debug("#{@new_resource} mdadm command: #{command}")
42
+ command = "yes | mdadm --create #{new_resource.raid_device} --level #{new_resource.level}"
43
+ command << " --chunk=#{new_resource.chunk}" unless new_resource.level == 1
44
+ command << " --metadata=#{new_resource.metadata}"
45
+ command << " --bitmap=#{new_resource.bitmap}" if new_resource.bitmap
46
+ command << " --layout=#{new_resource.layout}" if new_resource.layout
47
+ command << " --raid-devices #{new_resource.devices.length} #{new_resource.devices.join(" ")}"
48
+ Chef::Log.debug("#{new_resource} mdadm command: #{command}")
57
49
  shell_out!(command)
58
- Chef::Log.info("#{@new_resource} created raid device (#{@new_resource.raid_device})")
50
+ Chef::Log.info("#{new_resource} created raid device (#{new_resource.raid_device})")
59
51
  end
60
52
  else
61
- Chef::Log.debug("#{@new_resource} raid device already exists, skipping create (#{@new_resource.raid_device})")
53
+ Chef::Log.debug("#{new_resource} raid device already exists, skipping create (#{new_resource.raid_device})")
62
54
  end
63
55
  end
64
56
 
65
57
  def action_assemble
66
- unless @current_resource.exists
58
+ unless current_resource.exists
67
59
  converge_by("assemble RAID device #{new_resource.raid_device}") do
68
- command = "yes | mdadm --assemble #{@new_resource.raid_device} #{@new_resource.devices.join(" ")}"
69
- Chef::Log.debug("#{@new_resource} mdadm command: #{command}")
60
+ command = "yes | mdadm --assemble #{new_resource.raid_device} #{new_resource.devices.join(" ")}"
61
+ Chef::Log.debug("#{new_resource} mdadm command: #{command}")
70
62
  shell_out!(command)
71
- Chef::Log.info("#{@new_resource} assembled raid device (#{@new_resource.raid_device})")
63
+ Chef::Log.info("#{new_resource} assembled raid device (#{new_resource.raid_device})")
72
64
  end
73
65
  else
74
- Chef::Log.debug("#{@new_resource} raid device already exists, skipping assemble (#{@new_resource.raid_device})")
66
+ Chef::Log.debug("#{new_resource} raid device already exists, skipping assemble (#{new_resource.raid_device})")
75
67
  end
76
68
  end
77
69
 
78
70
  def action_stop
79
- if @current_resource.exists
71
+ if current_resource.exists
80
72
  converge_by("stop RAID device #{new_resource.raid_device}") do
81
- command = "yes | mdadm --stop #{@new_resource.raid_device}"
82
- Chef::Log.debug("#{@new_resource} mdadm command: #{command}")
73
+ command = "yes | mdadm --stop #{new_resource.raid_device}"
74
+ Chef::Log.debug("#{new_resource} mdadm command: #{command}")
83
75
  shell_out!(command)
84
- Chef::Log.info("#{@new_resource} stopped raid device (#{@new_resource.raid_device})")
76
+ Chef::Log.info("#{new_resource} stopped raid device (#{new_resource.raid_device})")
85
77
  end
86
78
  else
87
- Chef::Log.debug("#{@new_resource} raid device doesn't exist (#{@new_resource.raid_device}) - not stopping")
79
+ Chef::Log.debug("#{new_resource} raid device doesn't exist (#{new_resource.raid_device}) - not stopping")
88
80
  end
89
81
  end
90
82
 
@@ -116,9 +116,9 @@ class Chef
116
116
 
117
117
  def remount_command
118
118
  if !(@new_resource.options.nil? || @new_resource.options.empty?)
119
- return "mount -o remount,#{@new_resource.options.join(',')} #{@new_resource.device} #{@new_resource.mount_point}"
119
+ "mount -o remount,#{@new_resource.options.join(',')} #{@new_resource.device} #{@new_resource.mount_point}"
120
120
  else
121
- return "mount -o remount #{@new_resource.device} #{@new_resource.mount_point}"
121
+ "mount -o remount #{@new_resource.device} #{@new_resource.mount_point}"
122
122
  end
123
123
  end
124
124
 
@@ -47,7 +47,7 @@ class Chef
47
47
  elsif @new_resource.mount_point != "none" && !::File.exists?(@new_resource.mount_point)
48
48
  raise Chef::Exceptions::Mount, "Mount point #{@new_resource.mount_point} does not exist"
49
49
  end
50
- return true
50
+ true
51
51
  end
52
52
 
53
53
  def enabled?
@@ -129,7 +129,7 @@ class Chef
129
129
  end
130
130
 
131
131
  def remount_command
132
- return "mount -o remount,#{@new_resource.options.join(',')} #{@new_resource.mount_point}"
132
+ "mount -o remount,#{@new_resource.options.join(',')} #{@new_resource.mount_point}"
133
133
  end
134
134
 
135
135
  def remount_fs
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: Joshua Timberman (<joshua@chef.io>)
3
3
  # Author:: Lamont Granquist (<lamont@chef.io>)
4
- # Copyright:: Copyright 2009-2016, Chef Software, Inc.
4
+ # Copyright:: Copyright 2009-2017, Chef Software Inc.
5
5
  # License:: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -28,10 +28,6 @@ class Chef
28
28
 
29
29
  attr_accessor :unmount_retries
30
30
 
31
- def whyrun_supported?
32
- true
33
- end
34
-
35
31
  def load_current_resource
36
32
  true
37
33
  end
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Thom May (<thom@chef.io>)
3
- # Copyright:: Copyright (c) 2016 Chef Software, Inc.
3
+ # Copyright:: Copyright (c) 2016-2017, 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");
@@ -21,14 +21,8 @@ require "ohai"
21
21
  class Chef
22
22
  class Provider
23
23
  class Ohai < Chef::Provider
24
- use_inline_resources
25
-
26
24
  provides :ohai
27
25
 
28
- def whyrun_supported?
29
- true
30
- end
31
-
32
26
  def load_current_resource
33
27
  true
34
28
  end
@@ -37,7 +31,7 @@ class Chef
37
31
  converge_by("re-run ohai and merge results into node attributes") do
38
32
  ohai = ::Ohai::System.new
39
33
 
40
- # If @new_resource.plugin is nil, ohai will reload all the plugins
34
+ # If new_resource.plugin is nil, ohai will reload all the plugins
41
35
  # Otherwise it will only reload the specified plugin
42
36
  # Note that any changes to plugins, or new plugins placed on
43
37
  # the path are picked up by ohai.
@@ -25,25 +25,20 @@ require "uuidtools"
25
25
  class Chef
26
26
  class Provider
27
27
  class OsxProfile < Chef::Provider
28
- include Chef::Mixin::Command
29
28
  provides :osx_profile, os: "darwin"
30
29
  provides :osx_config_profile, os: "darwin"
31
30
 
32
- def whyrun_supported?
33
- true
34
- end
35
-
36
31
  def load_current_resource
37
- @current_resource = Chef::Resource::OsxProfile.new(@new_resource.name)
38
- @current_resource.profile_name(@new_resource.profile_name)
32
+ @current_resource = Chef::Resource::OsxProfile.new(new_resource.name)
33
+ current_resource.profile_name(new_resource.profile_name)
39
34
 
40
35
  all_profiles = get_installed_profiles
41
- @new_resource.profile(
42
- @new_resource.profile ||
43
- @new_resource.profile_name
36
+ new_resource.profile(
37
+ new_resource.profile ||
38
+ new_resource.profile_name
44
39
  )
45
40
 
46
- @new_profile_hash = get_profile_hash(@new_resource.profile)
41
+ @new_profile_hash = get_profile_hash(new_resource.profile)
47
42
  if @new_profile_hash
48
43
  @new_profile_hash["PayloadUUID"] =
49
44
  config_uuid(@new_profile_hash)
@@ -52,17 +47,17 @@ class Chef
52
47
  if @new_profile_hash
53
48
  @new_profile_identifier = @new_profile_hash["PayloadIdentifier"]
54
49
  else
55
- @new_profile_identifier = @new_resource.identifier ||
56
- @new_resource.profile_name
50
+ @new_profile_identifier = new_resource.identifier ||
51
+ new_resource.profile_name
57
52
  end
58
53
 
59
54
  current_profile = nil
60
- if all_profiles && !all_profiles.empty?
55
+ if all_profiles && all_profiles.key?("_computerlevel")
61
56
  current_profile = all_profiles["_computerlevel"].find do |item|
62
57
  item["ProfileIdentifier"] == @new_profile_identifier
63
58
  end
64
59
  end
65
- @current_resource.profile(current_profile)
60
+ current_resource.profile(current_profile)
66
61
  end
67
62
 
68
63
  def define_resource_requirements
@@ -75,7 +70,7 @@ class Chef
75
70
  end
76
71
  a.failure_message RuntimeError, "when removing using the identifier attribute, it must match the profile identifier"
77
72
  else
78
- new_profile_name = @new_resource.profile_name
73
+ new_profile_name = new_resource.profile_name
79
74
  a.assertion do
80
75
  !new_profile_name.end_with?(".mobileconfig") &&
81
76
  /^\w+(?:(\.| )\w+)+$/.match(new_profile_name)
@@ -128,21 +123,21 @@ class Chef
128
123
  raise Chef::Exceptions::FileNotFound, error_string
129
124
  end
130
125
  cookbook_profile = cache_cookbook_profile(new_profile)
131
- return read_plist(cookbook_profile)
126
+ read_plist(cookbook_profile)
132
127
  else
133
- return nil
128
+ nil
134
129
  end
135
130
  end
136
131
 
137
132
  def cookbook_file_available?(cookbook_file)
138
133
  run_context.has_cookbook_file_in_cookbook?(
139
- @new_resource.cookbook_name, cookbook_file
134
+ new_resource.cookbook_name, cookbook_file
140
135
  )
141
136
  end
142
137
 
143
138
  def get_cache_dir
144
139
  cache_dir = Chef::FileCache.create_cache_path(
145
- "profiles/#{@new_resource.cookbook_name}"
140
+ "profiles/#{new_resource.cookbook_name}"
146
141
  )
147
142
  end
148
143
 
@@ -150,7 +145,7 @@ class Chef
150
145
  Chef::FileCache.create_cache_path(
151
146
  ::File.join(
152
147
  "profiles",
153
- @new_resource.cookbook_name,
148
+ new_resource.cookbook_name,
154
149
  ::File.dirname(cookbook_file)
155
150
  )
156
151
  )
@@ -161,7 +156,7 @@ class Chef
161
156
  ),
162
157
  run_context
163
158
  )
164
- remote_file.cookbook_name = @new_resource.cookbook_name
159
+ remote_file.cookbook_name = new_resource.cookbook_name
165
160
  remote_file.source(cookbook_file)
166
161
  remote_file.backup(false)
167
162
  remote_file.run_action(:create)
@@ -170,9 +165,9 @@ class Chef
170
165
 
171
166
  def get_profile_hash(new_profile)
172
167
  if new_profile.is_a?(Hash)
173
- return new_profile
168
+ new_profile
174
169
  elsif new_profile.is_a?(String)
175
- return load_profile_hash(new_profile)
170
+ load_profile_hash(new_profile)
176
171
  end
177
172
  end
178
173
 
@@ -185,8 +180,8 @@ class Chef
185
180
  end
186
181
 
187
182
  def write_profile_to_disk
188
- @new_resource.path(Chef::FileCache.create_cache_path("profiles"))
189
- tempfile = Chef::FileContentManagement::Tempfile.new(@new_resource).tempfile
183
+ new_resource.path(Chef::FileCache.create_cache_path("profiles"))
184
+ tempfile = Chef::FileContentManagement::Tempfile.new(new_resource).tempfile
190
185
  tempfile.write(@new_profile_hash.to_plist)
191
186
  tempfile.close
192
187
  tempfile.path
@@ -240,13 +235,13 @@ class Chef
240
235
 
241
236
  def profile_installed?
242
237
  # Profile Identifier and UUID must match a currently installed profile
243
- if @current_resource.profile.nil? || @current_resource.profile.empty?
238
+ if current_resource.profile.nil? || current_resource.profile.empty?
244
239
  false
245
240
  else
246
- if @new_resource.action.include?(:remove)
241
+ if new_resource.action.include?(:remove)
247
242
  true
248
243
  else
249
- @current_resource.profile["ProfileUUID"] ==
244
+ current_resource.profile["ProfileUUID"] ==
250
245
  @new_profile_hash["PayloadUUID"]
251
246
  end
252
247
  end