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
@@ -127,7 +127,7 @@ module Shell
127
127
 
128
128
  def shorten_node_inspect
129
129
  def @node.inspect # rubocop:disable Lint/NestedMethodDefinition
130
- "<Chef::Node:0x#{self.object_id.to_s(16)} @name=\"#{self.name}\">"
130
+ "<Chef::Node:0x#{object_id.to_s(16)} @name=\"#{name}\">"
131
131
  end
132
132
  end
133
133
 
@@ -159,9 +159,9 @@ module Shell
159
159
 
160
160
  end
161
161
 
162
- class SoloSession < ShellSession
162
+ class SoloLegacySession < ShellSession
163
163
 
164
- session_type :solo
164
+ session_type :solo_legacy_mode
165
165
 
166
166
  def definitions
167
167
  @run_context.definitions
@@ -191,10 +191,14 @@ module Shell
191
191
 
192
192
  end
193
193
 
194
- class ClientSession < SoloSession
194
+ class ClientSession < ShellSession
195
195
 
196
196
  session_type :client
197
197
 
198
+ def definitions
199
+ @run_context.definitions
200
+ end
201
+
198
202
  def save_node
199
203
  @client.save_node
200
204
  end
@@ -223,6 +227,12 @@ module Shell
223
227
 
224
228
  end
225
229
 
230
+ class SoloSession < ClientSession
231
+
232
+ session_type :solo
233
+
234
+ end
235
+
226
236
  class DoppelGangerClient < Chef::Client
227
237
 
228
238
  attr_reader :node_name
data/lib/chef/shell.rb CHANGED
@@ -27,6 +27,7 @@ require "chef/config"
27
27
  require "chef/config_fetcher"
28
28
 
29
29
  require "chef/shell/shell_session"
30
+ require "chef/workstation_config_loader"
30
31
  require "chef/shell/ext"
31
32
  require "chef/json_compat"
32
33
  require "chef/util/path_helper"
@@ -62,6 +63,12 @@ module Shell
62
63
 
63
64
  irb = IRB::Irb.new
64
65
 
66
+ if solo_mode?
67
+ # Setup the mocked ChefServer
68
+ Chef::Config.local_mode = true
69
+ Chef::LocalMode.setup_server_connectivity
70
+ end
71
+
65
72
  init(irb.context.main)
66
73
 
67
74
  irb_conf[:IRB_RC].call(irb.context) if irb_conf[:IRB_RC]
@@ -74,6 +81,13 @@ module Shell
74
81
  catch(:IRB_EXIT) do
75
82
  irb.eval_input
76
83
  end
84
+ ensure
85
+ # We destroy the mocked ChefServer
86
+ Chef::LocalMode.destroy_server_connectivity if solo_mode?
87
+ end
88
+
89
+ def self.solo_mode?
90
+ Chef::Config[:solo]
77
91
  end
78
92
 
79
93
  def self.setup_logger
@@ -167,8 +181,9 @@ module Shell
167
181
 
168
182
  def self.client_type
169
183
  type = Shell::StandAloneSession
170
- type = Shell::SoloSession if Chef::Config[:shell_solo]
171
- type = Shell::ClientSession if Chef::Config[:client]
184
+ type = Shell::SoloSession if solo_mode?
185
+ type = Shell::SoloLegacySession if Chef::Config[:solo_legacy_shell]
186
+ type = Shell::ClientSession if Chef::Config[:client]
172
187
  type = Shell::DoppelGangerSession if Chef::Config[:doppelganger]
173
188
  type
174
189
  end
@@ -196,8 +211,10 @@ module Shell
196
211
  When no CONFIG is specified, chef-shell attempts to load a default configuration file:
197
212
  * If a NAMED_CONF is given, chef-shell will load ~/.chef/NAMED_CONF/chef_shell.rb
198
213
  * If no NAMED_CONF is given chef-shell will load ~/.chef/chef_shell.rb if it exists
199
- * chef-shell falls back to loading /etc/chef/client.rb or /etc/chef/solo.rb if -z or
200
- -s options are given and no chef_shell.rb can be found.
214
+ * If no chef_shell.rb can be found, chef-shell falls back to load:
215
+ /etc/chef/client.rb if -z option is given.
216
+ /etc/chef/solo.rb if --solo-legacy-mode option is given.
217
+ .chef/knife.rb if -s option is given.
201
218
  FOOTER
202
219
 
203
220
  option :config_file,
@@ -226,7 +243,7 @@ FOOTER
226
243
  :default => true,
227
244
  :boolean => true
228
245
 
229
- option :shell_solo,
246
+ option :solo_shell,
230
247
  :short => "-s",
231
248
  :long => "--solo",
232
249
  :description => "chef-solo session",
@@ -239,6 +256,12 @@ FOOTER
239
256
  :description => "chef-client session",
240
257
  :boolean => true
241
258
 
259
+ option :solo_legacy_shell,
260
+ :long => "--solo-legacy-mode",
261
+ :description => "chef-solo legacy session",
262
+ :boolean => true,
263
+ :proc => proc { Chef::Config[:solo_legacy_mode] = true }
264
+
242
265
  option :json_attribs,
243
266
  :short => "-j JSON_ATTRIBS",
244
267
  :long => "--json-attributes JSON_ATTRIBS",
@@ -281,7 +304,7 @@ FOOTER
281
304
  end
282
305
 
283
306
  def self.setup!
284
- self.new.parse_opts
307
+ new.parse_opts
285
308
  end
286
309
 
287
310
  def parse_opts
@@ -313,10 +336,12 @@ FOOTER
313
336
  config_file_to_try
314
337
  elsif dot_chef_dir && ::File.exist?(File.join(dot_chef_dir, "chef_shell.rb"))
315
338
  File.join(dot_chef_dir, "chef_shell.rb")
316
- elsif config[:solo]
339
+ elsif config[:solo_legacy_shell]
317
340
  Chef::Config.platform_specific_path("/etc/chef/solo.rb")
318
341
  elsif config[:client]
319
342
  Chef::Config.platform_specific_path("/etc/chef/client.rb")
343
+ elsif config[:solo_shell]
344
+ Chef::WorkstationConfigLoader.new(nil, Chef::Log).config_location
320
345
  else
321
346
  nil
322
347
  end
data/lib/chef/user.rb CHANGED
@@ -97,10 +97,10 @@ class Chef
97
97
  end
98
98
 
99
99
  def create
100
- payload = { :name => self.name, :admin => self.admin, :password => self.password }
100
+ payload = { :name => name, :admin => admin, :password => password }
101
101
  payload[:public_key] = public_key if public_key
102
102
  new_user = chef_rest_v0.post("users", payload)
103
- Chef::User.from_hash(self.to_hash.merge(new_user))
103
+ Chef::User.from_hash(to_hash.merge(new_user))
104
104
  end
105
105
 
106
106
  def update(new_key = false)
@@ -108,18 +108,16 @@ class Chef
108
108
  payload[:private_key] = new_key if new_key
109
109
  payload[:password] = password if password
110
110
  updated_user = chef_rest_v0.put("users/#{name}", payload)
111
- Chef::User.from_hash(self.to_hash.merge(updated_user))
111
+ Chef::User.from_hash(to_hash.merge(updated_user))
112
112
  end
113
113
 
114
114
  def save(new_key = false)
115
- begin
116
- create
117
- rescue Net::HTTPServerException => e
118
- if e.response.code == "409"
119
- update(new_key)
120
- else
121
- raise e
122
- end
115
+ create
116
+ rescue Net::HTTPServerException => e
117
+ if e.response.code == "409"
118
+ update(new_key)
119
+ else
120
+ raise e
123
121
  end
124
122
  end
125
123
 
@@ -154,11 +152,6 @@ class Chef
154
152
  Chef::User.from_hash(Chef::JSONCompat.from_json(json))
155
153
  end
156
154
 
157
- def self.json_create(json)
158
- Chef.deprecated(:json_auto_inflate, "Auto inflation of JSON data is deprecated. Please use Chef::User#from_json or Chef::User#load.")
159
- Chef::User.from_json(json)
160
- end
161
-
162
155
  def self.list(inflate = false)
163
156
  response = Chef::ServerAPI.new(Chef::Config[:chef_server_url], { :api_version => "0" }).get("users")
164
157
  users = if response.is_a?(Array)
data/lib/chef/user_v1.rb CHANGED
@@ -180,7 +180,7 @@ class Chef
180
180
  new_user = chef_root_rest_v0.post("users", payload)
181
181
  end
182
182
 
183
- Chef::UserV1.from_hash(self.to_hash.merge(new_user))
183
+ Chef::UserV1.from_hash(to_hash.merge(new_user))
184
184
  end
185
185
 
186
186
  def update(new_key = false)
@@ -213,25 +213,23 @@ class Chef
213
213
  end
214
214
  updated_user = chef_root_rest_v0.put("users/#{username}", payload)
215
215
  end
216
- Chef::UserV1.from_hash(self.to_hash.merge(updated_user))
216
+ Chef::UserV1.from_hash(to_hash.merge(updated_user))
217
217
  end
218
218
 
219
219
  def save(new_key = false)
220
- begin
221
- create
222
- rescue Net::HTTPServerException => e
223
- if e.response.code == "409"
224
- update(new_key)
225
- else
226
- raise e
227
- end
220
+ create
221
+ rescue Net::HTTPServerException => e
222
+ if e.response.code == "409"
223
+ update(new_key)
224
+ else
225
+ raise e
228
226
  end
229
227
  end
230
228
 
231
229
  # Note: remove after API v0 no longer supported by client (and knife command).
232
230
  def reregister
233
231
  begin
234
- payload = self.to_hash.merge({ "private_key" => true })
232
+ payload = to_hash.merge({ "private_key" => true })
235
233
  reregistered_self = chef_root_rest_v0.put("users/#{username}", payload)
236
234
  private_key(reregistered_self["private_key"])
237
235
  # only V0 supported for reregister
@@ -276,11 +274,6 @@ class Chef
276
274
  Chef::UserV1.from_hash(Chef::JSONCompat.from_json(json))
277
275
  end
278
276
 
279
- def self.json_create(json)
280
- Chef.deprecated(:json_auto_inflate, "Auto inflation of JSON data is deprecated. Please use Chef::UserV1#from_json or Chef::UserV1#load.")
281
- Chef::UserV1.from_json(json)
282
- end
283
-
284
277
  def self.list(inflate = false)
285
278
  response = Chef::ServerAPI.new(Chef::Config[:chef_server_url]).get("users")
286
279
  users = if response.is_a?(Array)
@@ -117,7 +117,7 @@ class Chef
117
117
  end
118
118
  end
119
119
  diff_str << old_hunk.diff(:unified) << "\n"
120
- return diff_str
120
+ diff_str
121
121
  end
122
122
 
123
123
  private
@@ -119,7 +119,7 @@ class Chef
119
119
  end
120
120
  end
121
121
  info.strip! # Because this was formatted for humans
122
- return [op_action, op_type, info]
122
+ [op_action, op_type, info]
123
123
  end
124
124
  private_class_method :parse_line
125
125
 
@@ -83,7 +83,7 @@ class Chef
83
83
  else
84
84
  # We assume selinux is not enabled if selinux utils are not
85
85
  # installed.
86
- return false
86
+ false
87
87
  end
88
88
  end
89
89
 
@@ -35,50 +35,38 @@ class Chef::Util::Windows::NetGroup
35
35
  end
36
36
 
37
37
  def local_get_members
38
- begin
39
- Chef::ReservedNames::Win32::NetUser.net_local_group_get_members(nil, groupname)
40
- rescue Chef::Exceptions::Win32APIError => e
41
- raise ArgumentError, e
42
- end
38
+ Chef::ReservedNames::Win32::NetUser.net_local_group_get_members(nil, groupname)
39
+ rescue Chef::Exceptions::Win32APIError => e
40
+ raise ArgumentError, e
43
41
  end
44
42
 
45
43
  def local_add
46
- begin
47
- Chef::ReservedNames::Win32::NetUser.net_local_group_add(nil, groupname)
48
- rescue Chef::Exceptions::Win32APIError => e
49
- raise ArgumentError, e
50
- end
44
+ Chef::ReservedNames::Win32::NetUser.net_local_group_add(nil, groupname)
45
+ rescue Chef::Exceptions::Win32APIError => e
46
+ raise ArgumentError, e
51
47
  end
52
48
 
53
49
  def local_set_members(members)
54
- begin
55
- Chef::ReservedNames::Win32::NetUser.net_local_group_set_members(nil, groupname, members)
56
- rescue Chef::Exceptions::Win32APIError => e
57
- raise ArgumentError, e
58
- end
50
+ Chef::ReservedNames::Win32::NetUser.net_local_group_set_members(nil, groupname, members)
51
+ rescue Chef::Exceptions::Win32APIError => e
52
+ raise ArgumentError, e
59
53
  end
60
54
 
61
55
  def local_add_members(members)
62
- begin
63
- Chef::ReservedNames::Win32::NetUser.net_local_group_add_members(nil, groupname, members)
64
- rescue Chef::Exceptions::Win32APIError => e
65
- raise ArgumentError, e
66
- end
56
+ Chef::ReservedNames::Win32::NetUser.net_local_group_add_members(nil, groupname, members)
57
+ rescue Chef::Exceptions::Win32APIError => e
58
+ raise ArgumentError, e
67
59
  end
68
60
 
69
61
  def local_delete_members(members)
70
- begin
71
- Chef::ReservedNames::Win32::NetUser.net_local_group_del_members(nil, groupname, members)
72
- rescue Chef::Exceptions::Win32APIError => e
73
- raise ArgumentError, e
74
- end
62
+ Chef::ReservedNames::Win32::NetUser.net_local_group_del_members(nil, groupname, members)
63
+ rescue Chef::Exceptions::Win32APIError => e
64
+ raise ArgumentError, e
75
65
  end
76
66
 
77
67
  def local_delete
78
- begin
79
- Chef::ReservedNames::Win32::NetUser.net_local_group_del(nil, groupname)
80
- rescue Chef::Exceptions::Win32APIError => e
81
- raise ArgumentError, e
82
- end
68
+ Chef::ReservedNames::Win32::NetUser.net_local_group_del(nil, groupname)
69
+ rescue Chef::Exceptions::Win32APIError => e
70
+ raise ArgumentError, e
83
71
  end
84
72
  end
@@ -59,12 +59,10 @@ class Chef::Util::Windows::NetUse < Chef::Util::Windows
59
59
  end
60
60
 
61
61
  def get_info
62
- begin
63
- ui2 = Chef::ReservedNames::Win32::Net.net_use_get_info_l2(nil, use_name)
64
- from_use_info_struct(ui2)
65
- rescue Chef::Exceptions::Win32APIError => e
66
- raise ArgumentError, e
67
- end
62
+ ui2 = Chef::ReservedNames::Win32::Net.net_use_get_info_l2(nil, use_name)
63
+ from_use_info_struct(ui2)
64
+ rescue Chef::Exceptions::Win32APIError => e
65
+ raise ArgumentError, e
68
66
  end
69
67
 
70
68
  def device
@@ -72,11 +70,9 @@ class Chef::Util::Windows::NetUse < Chef::Util::Windows
72
70
  end
73
71
 
74
72
  def delete
75
- begin
76
- Chef::ReservedNames::Win32::Net.net_use_del(nil, use_name, :use_noforce)
77
- rescue Chef::Exceptions::Win32APIError => e
78
- raise ArgumentError, e
79
- end
73
+ Chef::ReservedNames::Win32::Net.net_use_del(nil, use_name, :use_noforce)
74
+ rescue Chef::Exceptions::Win32APIError => e
75
+ raise ArgumentError, e
80
76
  end
81
77
 
82
78
  def use_name
@@ -78,11 +78,9 @@ class Chef::Util::Windows::NetUser < Chef::Util::Windows
78
78
  end
79
79
 
80
80
  def set_info(args)
81
- begin
82
- rc = NetUser.net_user_set_info_l3(nil, @username, transform_usri3(args))
83
- rescue Chef::Exceptions::Win32APIError => e
84
- raise ArgumentError, e
85
- end
81
+ rc = NetUser.net_user_set_info_l3(nil, @username, transform_usri3(args))
82
+ rescue Chef::Exceptions::Win32APIError => e
83
+ raise ArgumentError, e
86
84
  end
87
85
 
88
86
  public
@@ -95,13 +93,11 @@ class Chef::Util::Windows::NetUser < Chef::Util::Windows
95
93
  LOGON32_LOGON_NETWORK = Security::LOGON32_LOGON_NETWORK
96
94
  #XXX for an extra painful alternative, see: http://support.microsoft.com/kb/180548
97
95
  def validate_credentials(passwd)
98
- begin
99
- token = Security.logon_user(@username, nil, passwd,
100
- LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT)
101
- return true
102
- rescue Chef::Exceptions::Win32APIError
103
- return false
104
- end
96
+ token = Security.logon_user(@username, nil, passwd,
97
+ LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT)
98
+ return true
99
+ rescue Chef::Exceptions::Win32APIError
100
+ return false
105
101
  end
106
102
 
107
103
  def get_info
@@ -116,7 +112,7 @@ class Chef::Util::Windows::NetUser < Chef::Util::Windows
116
112
  def add(args)
117
113
  transformed_args = transform_usri3(args)
118
114
  NetUser.net_user_add_l3(nil, transformed_args)
119
- NetUser.net_local_group_add_member(nil, "Users", args[:name])
115
+ NetUser.net_local_group_add_member(nil, Chef::ReservedNames::Win32::Security::SID.BuiltinUsers.account_simple_name, args[:name])
120
116
  end
121
117
 
122
118
  # FIXME: yard with @yield
@@ -137,11 +133,9 @@ class Chef::Util::Windows::NetUser < Chef::Util::Windows
137
133
  end
138
134
 
139
135
  def delete
140
- begin
141
- NetUser.net_user_del(nil, @username)
142
- rescue Chef::Exceptions::Win32APIError => e
143
- raise ArgumentError, e
144
- end
136
+ NetUser.net_user_del(nil, @username)
137
+ rescue Chef::Exceptions::Win32APIError => e
138
+ raise ArgumentError, e
145
139
  end
146
140
 
147
141
  def disable_account
@@ -30,27 +30,21 @@ class Chef::Util::Windows::Volume < Chef::Util::Windows
30
30
  end
31
31
 
32
32
  def device
33
- begin
34
- Chef::ReservedNames::Win32::File.get_volume_name_for_volume_mount_point(mount_point)
35
- rescue Chef::Exceptions::Win32APIError => e
36
- raise ArgumentError, e
37
- end
33
+ Chef::ReservedNames::Win32::File.get_volume_name_for_volume_mount_point(mount_point)
34
+ rescue Chef::Exceptions::Win32APIError => e
35
+ raise ArgumentError, e
38
36
  end
39
37
 
40
38
  def delete
41
- begin
42
- Chef::ReservedNames::Win32::File.delete_volume_mount_point(mount_point)
43
- rescue Chef::Exceptions::Win32APIError => e
44
- raise ArgumentError, e
45
- end
39
+ Chef::ReservedNames::Win32::File.delete_volume_mount_point(mount_point)
40
+ rescue Chef::Exceptions::Win32APIError => e
41
+ raise ArgumentError, e
46
42
  end
47
43
 
48
44
  def add(args)
49
- begin
50
- Chef::ReservedNames::Win32::File.set_volume_mount_point(mount_point, args[:remote])
51
- rescue Chef::Exceptions::Win32APIError => e
52
- raise ArgumentError, e
53
- end
45
+ Chef::ReservedNames::Win32::File.set_volume_mount_point(mount_point, args[:remote])
46
+ rescue Chef::Exceptions::Win32APIError => e
47
+ raise ArgumentError, e
54
48
  end
55
49
 
56
50
  def mount_point
data/lib/chef/version.rb CHANGED
@@ -21,7 +21,7 @@
21
21
 
22
22
  class Chef
23
23
  CHEF_ROOT = File.expand_path("../..", __FILE__)
24
- VERSION = "12.18.31"
24
+ VERSION = "13.0.118"
25
25
  end
26
26
 
27
27
  #
@@ -34,7 +34,7 @@ class Chef
34
34
 
35
35
  def <=>(other)
36
36
  [:major, :minor, :patch].each do |method|
37
- version = self.send(method)
37
+ version = send(method)
38
38
  begin
39
39
  ans = (version <=> other.send(method))
40
40
  rescue NoMethodError # if the other thing isn't a version object, return nil
@@ -537,24 +537,22 @@ BOOL WINAPI VerQueryValue(
537
537
  # ensures the handle is closed on exit of the block
538
538
  # FIXME: yard with @yield
539
539
  def file_search_handle(path)
540
- begin
541
540
  # Workaround for CHEF-4419:
542
541
  # Make sure paths starting with "/" has a drive letter
543
542
  # assigned from the current working diretory.
544
543
  # Note: With CHEF-4427 this issue will be fixed with a
545
544
  # broader fix to map all the paths starting with "/" to
546
545
  # SYSTEM_DRIVE on windows.
547
- path = ::File.expand_path(path) if path.start_with? "/"
548
- path = canonical_encode_path(path)
549
- find_data = WIN32_FIND_DATA.new
550
- handle = FindFirstFileW(path, find_data)
551
- if handle == INVALID_HANDLE_VALUE
552
- Chef::ReservedNames::Win32::Error.raise!
553
- end
554
- yield(handle, find_data)
555
- ensure
556
- FindClose(handle) if handle && handle != INVALID_HANDLE_VALUE
546
+ path = ::File.expand_path(path) if path.start_with? "/"
547
+ path = canonical_encode_path(path)
548
+ find_data = WIN32_FIND_DATA.new
549
+ handle = FindFirstFileW(path, find_data)
550
+ if handle == INVALID_HANDLE_VALUE
551
+ Chef::ReservedNames::Win32::Error.raise!
557
552
  end
553
+ yield(handle, find_data)
554
+ ensure
555
+ FindClose(handle) if handle && handle != INVALID_HANDLE_VALUE
558
556
  end
559
557
 
560
558
  # retrieves a file handle and passes it
@@ -562,34 +560,30 @@ BOOL WINAPI VerQueryValue(
562
560
  # ensures the handle is closed on exit of the block
563
561
  # FIXME: yard with @yield
564
562
  def file_handle(path)
565
- begin
566
- path = canonical_encode_path(path)
567
- handle = CreateFileW(path, GENERIC_READ, FILE_SHARE_READ,
568
- nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_BACKUP_SEMANTICS, nil)
563
+ path = canonical_encode_path(path)
564
+ handle = CreateFileW(path, GENERIC_READ, FILE_SHARE_READ,
565
+ nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_BACKUP_SEMANTICS, nil)
569
566
 
570
- if handle == INVALID_HANDLE_VALUE
571
- Chef::ReservedNames::Win32::Error.raise!
572
- end
573
- yield(handle)
574
- ensure
575
- CloseHandle(handle) if handle && handle != INVALID_HANDLE_VALUE
567
+ if handle == INVALID_HANDLE_VALUE
568
+ Chef::ReservedNames::Win32::Error.raise!
576
569
  end
570
+ yield(handle)
571
+ ensure
572
+ CloseHandle(handle) if handle && handle != INVALID_HANDLE_VALUE
577
573
  end
578
574
 
579
575
  # FIXME: yard with @yield
580
576
  def symlink_file_handle(path)
581
- begin
582
- path = encode_path(path)
583
- handle = CreateFileW(path, FILE_READ_EA, FILE_SHARE_READ,
584
- nil, OPEN_EXISTING, FILE_FLAG_OPEN_REPARSE_POINT | FILE_FLAG_BACKUP_SEMANTICS, nil)
577
+ path = encode_path(path)
578
+ handle = CreateFileW(path, FILE_READ_EA, FILE_SHARE_READ,
579
+ nil, OPEN_EXISTING, FILE_FLAG_OPEN_REPARSE_POINT | FILE_FLAG_BACKUP_SEMANTICS, nil)
585
580
 
586
- if handle == INVALID_HANDLE_VALUE
587
- Chef::ReservedNames::Win32::Error.raise!
588
- end
589
- yield(handle)
590
- ensure
591
- CloseHandle(handle) if handle && handle != INVALID_HANDLE_VALUE
581
+ if handle == INVALID_HANDLE_VALUE
582
+ Chef::ReservedNames::Win32::Error.raise!
592
583
  end
584
+ yield(handle)
585
+ ensure
586
+ CloseHandle(handle) if handle && handle != INVALID_HANDLE_VALUE
593
587
  end
594
588
 
595
589
  def retrieve_file_info(file_name)
@@ -107,7 +107,7 @@ UINT MsiCloseHandle(
107
107
  end
108
108
 
109
109
  msi_close_handle(pkg_ptr.read_pointer)
110
- return buffer.chomp(0.chr)
110
+ buffer.chomp(0.chr)
111
111
  end
112
112
 
113
113
  # Opens a Microsoft Installer (MSI) file from an absolute path and returns a pointer to a handle
@@ -124,7 +124,7 @@ UINT MsiCloseHandle(
124
124
  else
125
125
  raise Chef::Exceptions::Package, "msi_open_package: unexpected status #{status}: #{Chef::ReservedNames::Win32::Error.format_message(status)}"
126
126
  end
127
- return pkg_ptr
127
+ pkg_ptr
128
128
  end
129
129
 
130
130
  # All installed product_codes should have a VersionString
@@ -29,12 +29,10 @@ class Chef
29
29
  # function into the calling module. If this fails a dummy method is
30
30
  # defined which when called, raises a helpful exception to the end-user.
31
31
  def safe_attach_function(win32_func, *args)
32
- begin
33
- attach_function(win32_func.to_sym, *args)
34
- rescue FFI::NotFoundError
35
- define_method(win32_func.to_sym) do |*margs|
36
- raise Chef::Exceptions::Win32APIFunctionNotImplemented, "This version of Windows does not implement the Win32 function [#{win32_func}]."
37
- end
32
+ attach_function(win32_func.to_sym, *args)
33
+ rescue FFI::NotFoundError
34
+ define_method(win32_func.to_sym) do |*margs|
35
+ raise Chef::Exceptions::Win32APIFunctionNotImplemented, "This version of Windows does not implement the Win32 function [#{win32_func}]."
38
36
  end
39
37
  end
40
38
 
@@ -155,13 +155,11 @@ class Chef
155
155
  end
156
156
 
157
157
  def self.verify_links_supported!
158
- begin
159
- CreateSymbolicLinkW(nil)
160
- rescue Chef::Exceptions::Win32APIFunctionNotImplemented => e
161
- raise e
162
- rescue Exception
158
+ CreateSymbolicLinkW(nil)
159
+ rescue Chef::Exceptions::Win32APIFunctionNotImplemented => e
160
+ raise e
161
+ rescue Exception
163
162
  # things are ok.
164
- end
165
163
  end
166
164
 
167
165
  def self.file_access_check(path, desired_access)