chef 14.2.0-universal-mingw32 → 14.3.37-universal-mingw32

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 (845) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +13 -12
  3. data/Gemfile +15 -0
  4. data/README.md +36 -40
  5. data/Rakefile +1 -1
  6. data/VERSION +1 -1
  7. data/bin/chef-apply +0 -1
  8. data/bin/chef-client +1 -2
  9. data/bin/chef-service-manager +7 -8
  10. data/bin/chef-shell +1 -6
  11. data/bin/chef-solo +1 -2
  12. data/bin/chef-windows-service +1 -2
  13. data/bin/knife +1 -2
  14. data/chef-universal-mingw32.gemspec +2 -2
  15. data/chef.gemspec +1 -1
  16. data/distro/ruby_bin_folder/Chef.PowerShell.Wrapper.dll +0 -0
  17. data/distro/ruby_bin_folder/Chef.PowerShell.dll +0 -0
  18. data/distro/{powershell/chef → ruby_bin_folder}/Newtonsoft.Json.dll +0 -0
  19. data/ext/win32-eventlog/Rakefile +14 -14
  20. data/lib/chef/api_client.rb +10 -10
  21. data/lib/chef/api_client/registration.rb +5 -5
  22. data/lib/chef/api_client_v1.rb +15 -15
  23. data/lib/chef/application.rb +1 -1
  24. data/lib/chef/application/apply.rb +56 -56
  25. data/lib/chef/application/client.rb +169 -170
  26. data/lib/chef/application/exit_code.rb +2 -2
  27. data/lib/chef/application/knife.rb +79 -78
  28. data/lib/chef/application/solo.rb +120 -120
  29. data/lib/chef/application/windows_service.rb +21 -21
  30. data/lib/chef/application/windows_service_manager.rb +39 -39
  31. data/lib/chef/audit/audit_event_proxy.rb +6 -6
  32. data/lib/chef/audit/audit_reporter.rb +2 -2
  33. data/lib/chef/audit/control_group_data.rb +15 -15
  34. data/lib/chef/audit/runner.rb +1 -1
  35. data/lib/chef/chef_class.rb +16 -8
  36. data/lib/chef/chef_fs/chef_fs_data_store.rb +8 -8
  37. data/lib/chef/chef_fs/config.rb +2 -2
  38. data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +1 -1
  39. data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
  40. data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +2 -2
  41. data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +1 -1
  42. data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +1 -1
  43. data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +1 -1
  44. data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +1 -1
  45. data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +1 -1
  46. data/lib/chef/chef_fs/file_system/repository/acls_dir.rb +1 -1
  47. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +1 -1
  48. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +3 -3
  49. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +2 -2
  50. data/lib/chef/chef_fs/file_system/repository/directory.rb +3 -3
  51. data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +3 -3
  52. data/lib/chef/chef_fs/knife.rb +6 -6
  53. data/lib/chef/chef_fs/parallelizer.rb +1 -1
  54. data/lib/chef/client.rb +3 -0
  55. data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
  56. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  57. data/lib/chef/cookbook/manifest_v0.rb +1 -1
  58. data/lib/chef/cookbook/metadata.rb +61 -61
  59. data/lib/chef/cookbook/remote_file_vendor.rb +1 -1
  60. data/lib/chef/cookbook/synchronizer.rb +2 -2
  61. data/lib/chef/cookbook_loader.rb +3 -3
  62. data/lib/chef/cookbook_manifest.rb +5 -5
  63. data/lib/chef/cookbook_site_streaming_uploader.rb +5 -5
  64. data/lib/chef/cookbook_uploader.rb +2 -2
  65. data/lib/chef/cookbook_version.rb +2 -2
  66. data/lib/chef/data_bag.rb +3 -3
  67. data/lib/chef/data_bag_item.rb +2 -2
  68. data/lib/chef/deprecated.rb +110 -176
  69. data/lib/chef/dsl/audit.rb +1 -1
  70. data/lib/chef/dsl/definitions.rb +1 -1
  71. data/lib/chef/dsl/platform_introspection.rb +5 -0
  72. data/lib/chef/dsl/reboot_pending.rb +1 -1
  73. data/lib/chef/encrypted_data_bag_item.rb +2 -2
  74. data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +1 -1
  75. data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
  76. data/lib/chef/environment.rb +10 -10
  77. data/lib/chef/event_loggers/windows_eventlog.rb +21 -21
  78. data/lib/chef/exceptions.rb +3 -3
  79. data/lib/chef/file_cache.rb +18 -16
  80. data/lib/chef/formatters/base.rb +9 -10
  81. data/lib/chef/formatters/doc.rb +12 -16
  82. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +51 -51
  83. data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +10 -10
  84. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +13 -13
  85. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +39 -39
  86. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +1 -1
  87. data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +16 -16
  88. data/lib/chef/formatters/indentable_output_stream.rb +4 -4
  89. data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +3 -3
  90. data/lib/chef/handler/json_file.rb +1 -1
  91. data/lib/chef/http/auth_credentials.rb +2 -2
  92. data/lib/chef/http/authenticator.rb +6 -6
  93. data/lib/chef/http/cookie_manager.rb +1 -1
  94. data/lib/chef/http/http_request.rb +3 -3
  95. data/lib/chef/http/json_input.rb +1 -1
  96. data/lib/chef/http/json_to_model_output.rb +1 -1
  97. data/lib/chef/http/socketless_chef_zero_client.rb +1 -1
  98. data/lib/chef/json_compat.rb +1 -1
  99. data/lib/chef/key.rb +9 -9
  100. data/lib/chef/knife.rb +5 -5
  101. data/lib/chef/knife/bootstrap.rb +116 -116
  102. data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
  103. data/lib/chef/knife/client_bulk_delete.rb +3 -3
  104. data/lib/chef/knife/client_create.rb +17 -17
  105. data/lib/chef/knife/client_delete.rb +3 -3
  106. data/lib/chef/knife/client_list.rb +3 -3
  107. data/lib/chef/knife/client_reregister.rb +3 -3
  108. data/lib/chef/knife/config_get.rb +126 -0
  109. data/lib/chef/knife/configure.rb +25 -25
  110. data/lib/chef/knife/cookbook_bulk_delete.rb +1 -1
  111. data/lib/chef/knife/cookbook_delete.rb +2 -2
  112. data/lib/chef/knife/cookbook_download.rb +11 -11
  113. data/lib/chef/knife/cookbook_list.rb +6 -6
  114. data/lib/chef/knife/cookbook_metadata.rb +7 -8
  115. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -1
  116. data/lib/chef/knife/cookbook_show.rb +16 -16
  117. data/lib/chef/knife/cookbook_site_download.rb +11 -10
  118. data/lib/chef/knife/cookbook_site_install.rb +24 -24
  119. data/lib/chef/knife/cookbook_site_list.rb +8 -8
  120. data/lib/chef/knife/cookbook_site_search.rb +6 -5
  121. data/lib/chef/knife/cookbook_site_share.rb +20 -19
  122. data/lib/chef/knife/cookbook_site_show.rb +6 -5
  123. data/lib/chef/knife/cookbook_site_unshare.rb +5 -5
  124. data/lib/chef/knife/cookbook_test.rb +8 -8
  125. data/lib/chef/knife/cookbook_upload.rb +32 -32
  126. data/lib/chef/knife/core/bootstrap_context.rb +7 -7
  127. data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
  128. data/lib/chef/knife/core/generic_presenter.rb +7 -7
  129. data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
  130. data/lib/chef/knife/core/node_presenter.rb +37 -37
  131. data/lib/chef/knife/core/status_presenter.rb +11 -11
  132. data/lib/chef/knife/data_bag_from_file.rb +4 -4
  133. data/lib/chef/knife/data_bag_list.rb +3 -3
  134. data/lib/chef/knife/data_bag_secret_options.rb +13 -13
  135. data/lib/chef/knife/delete.rb +29 -13
  136. data/lib/chef/knife/deps.rb +25 -9
  137. data/lib/chef/knife/diff.rb +30 -14
  138. data/lib/chef/knife/download.rb +39 -23
  139. data/lib/chef/knife/edit.rb +19 -3
  140. data/lib/chef/knife/environment_compare.rb +8 -8
  141. data/lib/chef/knife/environment_create.rb +3 -3
  142. data/lib/chef/knife/environment_from_file.rb +5 -3
  143. data/lib/chef/knife/environment_list.rb +3 -3
  144. data/lib/chef/knife/exec.rb +7 -7
  145. data/lib/chef/knife/key_create.rb +4 -4
  146. data/lib/chef/knife/key_create_base.rb +12 -12
  147. data/lib/chef/knife/key_edit.rb +5 -5
  148. data/lib/chef/knife/key_edit_base.rb +15 -15
  149. data/lib/chef/knife/key_list.rb +3 -3
  150. data/lib/chef/knife/key_list_base.rb +9 -9
  151. data/lib/chef/knife/list.rb +35 -19
  152. data/lib/chef/knife/node_edit.rb +4 -4
  153. data/lib/chef/knife/node_list.rb +3 -3
  154. data/lib/chef/knife/node_run_list_add.rb +6 -6
  155. data/lib/chef/knife/node_show.rb +6 -6
  156. data/lib/chef/knife/osc_user_create.rb +13 -13
  157. data/lib/chef/knife/osc_user_list.rb +3 -3
  158. data/lib/chef/knife/osc_user_reregister.rb +3 -3
  159. data/lib/chef/knife/raw.rb +32 -16
  160. data/lib/chef/knife/role_create.rb +3 -3
  161. data/lib/chef/knife/role_env_run_list_add.rb +4 -3
  162. data/lib/chef/knife/role_env_run_list_remove.rb +2 -2
  163. data/lib/chef/knife/role_env_run_list_replace.rb +1 -0
  164. data/lib/chef/knife/role_list.rb +3 -3
  165. data/lib/chef/knife/role_run_list_add.rb +4 -3
  166. data/lib/chef/knife/role_run_list_remove.rb +2 -2
  167. data/lib/chef/knife/role_run_list_replace.rb +1 -0
  168. data/lib/chef/knife/search.rb +23 -23
  169. data/lib/chef/knife/serve.rb +22 -6
  170. data/lib/chef/knife/show.rb +19 -3
  171. data/lib/chef/knife/ssh.rb +68 -68
  172. data/lib/chef/knife/ssl_check.rb +31 -31
  173. data/lib/chef/knife/ssl_fetch.rb +5 -5
  174. data/lib/chef/knife/status.rb +11 -11
  175. data/lib/chef/knife/upload.rb +41 -25
  176. data/lib/chef/knife/user_create.rb +28 -28
  177. data/lib/chef/knife/user_delete.rb +9 -9
  178. data/lib/chef/knife/user_edit.rb +9 -9
  179. data/lib/chef/knife/user_list.rb +3 -3
  180. data/lib/chef/knife/user_reregister.rb +12 -12
  181. data/lib/chef/knife/user_show.rb +9 -9
  182. data/lib/chef/knife/xargs.rb +52 -36
  183. data/lib/chef/log.rb +10 -8
  184. data/lib/chef/log/winevt.rb +21 -21
  185. data/lib/chef/mixin/api_version_request_handling.rb +6 -6
  186. data/lib/chef/mixin/deep_merge.rb +1 -1
  187. data/lib/chef/mixin/deprecation.rb +2 -2
  188. data/lib/chef/mixin/params_validate.rb +9 -9
  189. data/lib/chef/mixin/properties.rb +2 -2
  190. data/lib/chef/mixin/securable.rb +11 -11
  191. data/lib/chef/mixin/shell_out.rb +138 -82
  192. data/lib/chef/mixin/wide_string.rb +5 -23
  193. data/lib/chef/mixin/windows_env_helper.rb +1 -1
  194. data/lib/chef/mixin/xml_escape.rb +3 -3
  195. data/lib/chef/node.rb +15 -15
  196. data/lib/chef/node/attribute.rb +6 -6
  197. data/lib/chef/node/attribute_collections.rb +2 -2
  198. data/lib/chef/node/mixin/deep_merge_cache.rb +1 -1
  199. data/lib/chef/node/mixin/immutablize_array.rb +2 -2
  200. data/lib/chef/node/mixin/immutablize_hash.rb +2 -2
  201. data/lib/chef/node_map.rb +77 -3
  202. data/lib/chef/org.rb +8 -8
  203. data/lib/chef/policy_builder/expand_node_object.rb +1 -1
  204. data/lib/chef/powershell.rb +9 -7
  205. data/lib/chef/property.rb +14 -14
  206. data/lib/chef/provider/apt_update.rb +2 -2
  207. data/lib/chef/provider/cron.rb +3 -3
  208. data/lib/chef/provider/cron/unix.rb +2 -2
  209. data/lib/chef/provider/dsc_resource.rb +1 -1
  210. data/lib/chef/provider/dsc_script.rb +8 -8
  211. data/lib/chef/provider/execute.rb +1 -1
  212. data/lib/chef/provider/group/aix.rb +6 -6
  213. data/lib/chef/provider/group/dscl.rb +1 -1
  214. data/lib/chef/provider/group/gpasswd.rb +4 -4
  215. data/lib/chef/provider/group/groupadd.rb +3 -3
  216. data/lib/chef/provider/group/groupmod.rb +6 -6
  217. data/lib/chef/provider/group/pw.rb +4 -4
  218. data/lib/chef/provider/group/suse.rb +2 -2
  219. data/lib/chef/provider/group/usermod.rb +1 -1
  220. data/lib/chef/provider/http_request.rb +6 -6
  221. data/lib/chef/provider/ifconfig.rb +4 -4
  222. data/lib/chef/provider/ifconfig/aix.rb +1 -1
  223. data/lib/chef/provider/mdadm.rb +1 -1
  224. data/lib/chef/provider/mount/mount.rb +1 -1
  225. data/lib/chef/provider/mount/windows.rb +7 -7
  226. data/lib/chef/provider/package.rb +3 -18
  227. data/lib/chef/provider/package/apt.rb +4 -4
  228. data/lib/chef/provider/package/bff.rb +9 -9
  229. data/lib/chef/provider/package/chocolatey.rb +7 -7
  230. data/lib/chef/provider/package/dnf.rb +2 -2
  231. data/lib/chef/provider/package/dpkg.rb +6 -6
  232. data/lib/chef/provider/package/freebsd/base.rb +2 -2
  233. data/lib/chef/provider/package/freebsd/pkg.rb +6 -6
  234. data/lib/chef/provider/package/freebsd/pkgng.rb +5 -5
  235. data/lib/chef/provider/package/freebsd/port.rb +4 -4
  236. data/lib/chef/provider/package/homebrew.rb +1 -1
  237. data/lib/chef/provider/package/ips.rb +6 -6
  238. data/lib/chef/provider/package/macports.rb +6 -6
  239. data/lib/chef/provider/package/msu.rb +1 -1
  240. data/lib/chef/provider/package/openbsd.rb +5 -5
  241. data/lib/chef/provider/package/pacman.rb +4 -4
  242. data/lib/chef/provider/package/paludis.rb +3 -3
  243. data/lib/chef/provider/package/portage.rb +5 -5
  244. data/lib/chef/provider/package/powershell.rb +6 -2
  245. data/lib/chef/provider/package/rpm.rb +10 -10
  246. data/lib/chef/provider/package/rubygems.rb +4 -4
  247. data/lib/chef/provider/package/smartos.rb +4 -4
  248. data/lib/chef/provider/package/solaris.rb +9 -9
  249. data/lib/chef/provider/package/windows.rb +4 -3
  250. data/lib/chef/provider/package/yum.rb +2 -2
  251. data/lib/chef/provider/package/zypper.rb +4 -4
  252. data/lib/chef/provider/powershell_script.rb +73 -73
  253. data/lib/chef/provider/reboot.rb +4 -4
  254. data/lib/chef/provider/registry_key.rb +4 -4
  255. data/lib/chef/provider/remote_file/cache_control_data.rb +2 -2
  256. data/lib/chef/provider/remote_file/sftp.rb +1 -1
  257. data/lib/chef/provider/resource_update.rb +1 -1
  258. data/lib/chef/provider/route.rb +2 -2
  259. data/lib/chef/provider/service/openbsd.rb +3 -3
  260. data/lib/chef/provider/service/redhat.rb +1 -1
  261. data/lib/chef/provider/service/simple.rb +1 -0
  262. data/lib/chef/provider/service/solaris.rb +1 -1
  263. data/lib/chef/provider/service/systemd.rb +2 -2
  264. data/lib/chef/provider/service/windows.rb +17 -17
  265. data/lib/chef/provider/subversion.rb +3 -3
  266. data/lib/chef/provider/systemd_unit.rb +2 -2
  267. data/lib/chef/provider/template/content.rb +1 -1
  268. data/lib/chef/provider/user/aix.rb +6 -6
  269. data/lib/chef/provider/user/dscl.rb +6 -6
  270. data/lib/chef/provider/user/linux.rb +6 -6
  271. data/lib/chef/provider/user/pw.rb +5 -5
  272. data/lib/chef/provider/user/solaris.rb +6 -6
  273. data/lib/chef/provider/user/useradd.rb +7 -7
  274. data/lib/chef/provider/windows_env.rb +6 -6
  275. data/lib/chef/provider/windows_task.rb +22 -24
  276. data/lib/chef/resource.rb +26 -4
  277. data/lib/chef/resource/chef_handler.rb +2 -0
  278. data/lib/chef/resource/chocolatey_config.rb +83 -0
  279. data/lib/chef/resource/chocolatey_source.rb +95 -0
  280. data/lib/chef/resource/cron.rb +5 -5
  281. data/lib/chef/resource/dsc_script.rb +12 -11
  282. data/lib/chef/resource/execute.rb +1 -1
  283. data/lib/chef/resource/file/verification.rb +1 -1
  284. data/lib/chef/resource/freebsd_package.rb +3 -1
  285. data/lib/chef/resource/group.rb +2 -2
  286. data/lib/chef/resource/homebrew_package.rb +2 -1
  287. data/lib/chef/resource/homebrew_tap.rb +1 -1
  288. data/lib/chef/resource/hostname.rb +23 -7
  289. data/lib/chef/resource/http_request.rb +6 -3
  290. data/lib/chef/resource/ifconfig.rb +57 -17
  291. data/lib/chef/resource/ips_package.rb +3 -1
  292. data/lib/chef/resource/kernel_module.rb +129 -0
  293. data/lib/chef/resource/launchd.rb +205 -98
  294. data/lib/chef/resource/log.rb +7 -2
  295. data/lib/chef/resource/mdadm.rb +29 -8
  296. data/lib/chef/resource/ohai.rb +2 -0
  297. data/lib/chef/resource/ohai_hint.rb +5 -3
  298. data/lib/chef/resource/openssl_dhparam.rb +1 -1
  299. data/lib/chef/resource/openssl_rsa_private_key.rb +2 -0
  300. data/lib/chef/resource/paludis_package.rb +1 -1
  301. data/lib/chef/resource/portage_package.rb +2 -0
  302. data/lib/chef/resource/powershell_package.rb +2 -0
  303. data/lib/chef/resource/powershell_package_source.rb +165 -0
  304. data/lib/chef/resource/powershell_script.rb +2 -2
  305. data/lib/chef/resource/registry_key.rb +1 -1
  306. data/lib/chef/resource/remote_directory.rb +3 -3
  307. data/lib/chef/resource/remote_file.rb +2 -2
  308. data/lib/chef/resource/resource_notification.rb +16 -16
  309. data/lib/chef/resource/rhsm_errata.rb +1 -1
  310. data/lib/chef/resource/rhsm_errata_level.rb +1 -1
  311. data/lib/chef/resource/rhsm_register.rb +4 -4
  312. data/lib/chef/resource/rhsm_repo.rb +2 -2
  313. data/lib/chef/resource/rhsm_subscription.rb +2 -2
  314. data/lib/chef/resource/script.rb +1 -1
  315. data/lib/chef/resource/service.rb +18 -18
  316. data/lib/chef/resource/ssh_known_hosts_entry.rb +146 -0
  317. data/lib/chef/resource/sudo.rb +4 -4
  318. data/lib/chef/resource/support/ssh_known_hosts.erb +3 -0
  319. data/lib/chef/resource/sysctl.rb +9 -5
  320. data/lib/chef/resource/template.rb +1 -1
  321. data/lib/chef/resource/user.rb +15 -15
  322. data/lib/chef/resource/windows_feature_dism.rb +10 -9
  323. data/lib/chef/resource/windows_feature_powershell.rb +24 -13
  324. data/lib/chef/resource/windows_script.rb +1 -1
  325. data/lib/chef/resource/windows_service.rb +2 -2
  326. data/lib/chef/resource/windows_task.rb +3 -3
  327. data/lib/chef/resource_definition.rb +1 -1
  328. data/lib/chef/resource_inspector.rb +1 -0
  329. data/lib/chef/resource_reporter.rb +4 -4
  330. data/lib/chef/resources.rb +5 -0
  331. data/lib/chef/role.rb +8 -8
  332. data/lib/chef/run_context.rb +8 -8
  333. data/lib/chef/run_list/run_list_expansion.rb +6 -6
  334. data/lib/chef/run_list/run_list_item.rb +1 -1
  335. data/lib/chef/run_list/versioned_recipe_list.rb +3 -3
  336. data/lib/chef/run_status.rb +10 -10
  337. data/lib/chef/shell.rb +60 -60
  338. data/lib/chef/shell/ext.rb +151 -151
  339. data/lib/chef/shell/shell_session.rb +2 -2
  340. data/lib/chef/user.rb +11 -11
  341. data/lib/chef/user_v1.rb +26 -26
  342. data/lib/chef/util/backup.rb +2 -2
  343. data/lib/chef/util/diff.rb +1 -1
  344. data/lib/chef/util/dsc/configuration_generator.rb +11 -11
  345. data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
  346. data/lib/chef/util/file_edit.rb +14 -14
  347. data/lib/chef/util/powershell/cmdlet.rb +4 -4
  348. data/lib/chef/util/selinux.rb +2 -2
  349. data/lib/chef/util/windows/net_group.rb +1 -1
  350. data/lib/chef/util/windows/net_use.rb +3 -3
  351. data/lib/chef/util/windows/net_user.rb +12 -12
  352. data/lib/chef/util/windows/volume.rb +2 -2
  353. data/lib/chef/version.rb +3 -3
  354. data/lib/chef/version_constraint.rb +3 -3
  355. data/lib/chef/win32/api.rb +6 -6
  356. data/lib/chef/win32/api/error.rb +2 -2
  357. data/lib/chef/win32/api/file.rb +12 -12
  358. data/lib/chef/win32/api/net.rb +58 -58
  359. data/lib/chef/win32/registry.rb +8 -8
  360. data/lib/chef/win32/security.rb +6 -6
  361. data/lib/chef/win32/security/securable_object.rb +10 -10
  362. data/lib/chef/win32/unicode.rb +6 -0
  363. data/lib/chef/win32/version.rb +16 -16
  364. data/spec/functional/audit/rspec_formatter_spec.rb +1 -1
  365. data/spec/functional/audit/runner_spec.rb +1 -1
  366. data/spec/functional/dsl/reboot_pending_spec.rb +3 -3
  367. data/spec/functional/dsl/registry_helper_spec.rb +3 -3
  368. data/spec/functional/http/simple_spec.rb +1 -1
  369. data/spec/functional/knife/exec_spec.rb +1 -1
  370. data/spec/functional/knife/ssh_spec.rb +2 -2
  371. data/spec/functional/mixin/shell_out_spec.rb +8 -4
  372. data/spec/functional/rebooter_spec.rb +6 -6
  373. data/spec/functional/resource/aixinit_service_spec.rb +2 -2
  374. data/spec/functional/resource/apt_package_spec.rb +17 -17
  375. data/spec/functional/resource/bash_spec.rb +1 -1
  376. data/spec/functional/resource/bff_spec.rb +1 -1
  377. data/spec/functional/resource/cron_spec.rb +1 -1
  378. data/spec/functional/resource/dnf_package_spec.rb +7 -7
  379. data/spec/functional/resource/dsc_script_spec.rb +94 -94
  380. data/spec/functional/resource/execute_spec.rb +4 -4
  381. data/spec/functional/resource/file_spec.rb +1 -1
  382. data/spec/functional/resource/git_spec.rb +19 -19
  383. data/spec/functional/resource/ifconfig_spec.rb +5 -5
  384. data/spec/functional/resource/link_spec.rb +1 -1
  385. data/spec/functional/resource/mount_spec.rb +2 -2
  386. data/spec/functional/resource/powershell_script_spec.rb +13 -13
  387. data/spec/functional/resource/reboot_spec.rb +3 -3
  388. data/spec/functional/resource/registry_spec.rb +82 -82
  389. data/spec/functional/resource/remote_file_spec.rb +2 -2
  390. data/spec/functional/resource/rpm_spec.rb +1 -1
  391. data/spec/functional/resource/template_spec.rb +5 -5
  392. data/spec/functional/resource/user/dscl_spec.rb +3 -3
  393. data/spec/functional/resource/windows_env_spec.rb +1 -1
  394. data/spec/functional/resource/windows_service_spec.rb +1 -1
  395. data/spec/functional/resource/windows_task_spec.rb +92 -38
  396. data/spec/functional/resource/yum_package_spec.rb +8 -8
  397. data/spec/functional/run_lock_spec.rb +4 -4
  398. data/spec/functional/shell_spec.rb +1 -1
  399. data/spec/functional/util/powershell/cmdlet_spec.rb +7 -7
  400. data/spec/functional/version_spec.rb +1 -1
  401. data/spec/functional/win32/crypto_spec.rb +9 -9
  402. data/spec/functional/win32/registry_spec.rb +66 -66
  403. data/spec/integration/client/client_spec.rb +219 -219
  404. data/spec/integration/client/exit_code_spec.rb +19 -19
  405. data/spec/integration/client/ipv6_spec.rb +36 -36
  406. data/spec/integration/knife/chef_fs_data_store_spec.rb +130 -130
  407. data/spec/integration/knife/chef_repo_path_spec.rb +418 -418
  408. data/spec/integration/knife/chef_repository_file_system_spec.rb +35 -35
  409. data/spec/integration/knife/chefignore_spec.rb +88 -88
  410. data/spec/integration/knife/client_bulk_delete_spec.rb +49 -49
  411. data/spec/integration/knife/client_create_spec.rb +5 -5
  412. data/spec/integration/knife/client_delete_spec.rb +13 -13
  413. data/spec/integration/knife/client_key_delete_spec.rb +2 -2
  414. data/spec/integration/knife/client_key_list_spec.rb +4 -4
  415. data/spec/integration/knife/client_list_spec.rb +8 -8
  416. data/spec/integration/knife/common_options_spec.rb +31 -31
  417. data/spec/integration/knife/config_get_spec.rb +183 -0
  418. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +38 -38
  419. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +14 -14
  420. data/spec/integration/knife/cookbook_download_spec.rb +12 -12
  421. data/spec/integration/knife/cookbook_list_spec.rb +8 -8
  422. data/spec/integration/knife/cookbook_show_spec.rb +81 -81
  423. data/spec/integration/knife/cookbook_upload_spec.rb +24 -24
  424. data/spec/integration/knife/data_bag_delete_spec.rb +8 -8
  425. data/spec/integration/knife/data_bag_from_file_spec.rb +47 -47
  426. data/spec/integration/knife/data_bag_list_spec.rb +4 -4
  427. data/spec/integration/knife/data_bag_show_spec.rb +7 -7
  428. data/spec/integration/knife/delete_spec.rb +593 -593
  429. data/spec/integration/knife/deps_spec.rb +185 -185
  430. data/spec/integration/knife/diff_spec.rb +116 -116
  431. data/spec/integration/knife/download_spec.rb +510 -510
  432. data/spec/integration/knife/environment_compare_spec.rb +15 -15
  433. data/spec/integration/knife/environment_from_file_spec.rb +59 -59
  434. data/spec/integration/knife/environment_list_spec.rb +4 -4
  435. data/spec/integration/knife/environment_show_spec.rb +25 -25
  436. data/spec/integration/knife/list_spec.rb +731 -731
  437. data/spec/integration/knife/node_bulk_delete_spec.rb +8 -8
  438. data/spec/integration/knife/node_delete_spec.rb +6 -6
  439. data/spec/integration/knife/node_environment_set_spec.rb +3 -3
  440. data/spec/integration/knife/node_from_file_spec.rb +16 -16
  441. data/spec/integration/knife/node_list_spec.rb +5 -5
  442. data/spec/integration/knife/raw_spec.rb +117 -117
  443. data/spec/integration/knife/role_bulk_delete_spec.rb +8 -8
  444. data/spec/integration/knife/role_delete_spec.rb +6 -6
  445. data/spec/integration/knife/role_from_file_spec.rb +42 -42
  446. data/spec/integration/knife/role_list_spec.rb +5 -5
  447. data/spec/integration/knife/role_show_spec.rb +9 -9
  448. data/spec/integration/knife/show_spec.rb +57 -57
  449. data/spec/integration/knife/upload_spec.rb +396 -396
  450. data/spec/integration/recipes/accumulator_spec.rb +2 -2
  451. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +8 -8
  452. data/spec/integration/recipes/lwrp_spec.rb +12 -12
  453. data/spec/integration/recipes/notifies_spec.rb +167 -167
  454. data/spec/integration/recipes/notifying_block_spec.rb +2 -2
  455. data/spec/integration/recipes/remote_directory.rb +1 -1
  456. data/spec/integration/recipes/resource_converge_if_changed_spec.rb +99 -99
  457. data/spec/integration/recipes/resource_load_spec.rb +8 -8
  458. data/spec/integration/solo/solo_spec.rb +40 -40
  459. data/spec/scripts/ssl-serve.rb +12 -12
  460. data/spec/spec_helper.rb +73 -73
  461. data/spec/stress/win32/file_spec.rb +2 -2
  462. data/spec/stress/win32/security_spec.rb +2 -2
  463. data/spec/support/platform_helpers.rb +1 -1
  464. data/spec/support/shared/context/client.rb +25 -25
  465. data/spec/support/shared/functional/securable_resource.rb +13 -13
  466. data/spec/support/shared/functional/securable_resource_with_reporting.rb +6 -6
  467. data/spec/support/shared/functional/win32_service.rb +5 -5
  468. data/spec/support/shared/functional/windows_script.rb +3 -3
  469. data/spec/support/shared/integration/app_server_support.rb +3 -3
  470. data/spec/support/shared/integration/integration_helper.rb +2 -2
  471. data/spec/support/shared/integration/knife_support.rb +9 -3
  472. data/spec/support/shared/unit/api_error_inspector.rb +6 -6
  473. data/spec/support/shared/unit/api_versioning.rb +2 -2
  474. data/spec/support/shared/unit/execute_resource.rb +2 -2
  475. data/spec/support/shared/unit/provider/file.rb +12 -12
  476. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +34 -34
  477. data/spec/support/shared/unit/user_and_client_shared.rb +3 -3
  478. data/spec/tiny_server.rb +8 -8
  479. data/spec/unit/api_client/registration_spec.rb +30 -30
  480. data/spec/unit/api_client_spec.rb +6 -6
  481. data/spec/unit/api_client_v1_spec.rb +6 -6
  482. data/spec/unit/application/apply_spec.rb +4 -4
  483. data/spec/unit/application/client_spec.rb +11 -11
  484. data/spec/unit/application/knife_spec.rb +3 -3
  485. data/spec/unit/application/solo_spec.rb +5 -5
  486. data/spec/unit/application_spec.rb +11 -11
  487. data/spec/unit/audit/audit_event_proxy_spec.rb +48 -48
  488. data/spec/unit/audit/audit_reporter_spec.rb +51 -55
  489. data/spec/unit/audit/control_group_data_spec.rb +20 -20
  490. data/spec/unit/audit/runner_spec.rb +2 -2
  491. data/spec/unit/chef_class_spec.rb +120 -0
  492. data/spec/unit/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  493. data/spec/unit/chef_fs/data_handler/data_handler_base_spec.rb +3 -3
  494. data/spec/unit/chef_fs/diff_spec.rb +45 -45
  495. data/spec/unit/chef_fs/file_pattern_spec.rb +2 -2
  496. data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +2 -2
  497. data/spec/unit/chef_fs/file_system_spec.rb +8 -8
  498. data/spec/unit/chef_fs/parallelizer.rb +12 -12
  499. data/spec/unit/client_spec.rb +15 -15
  500. data/spec/unit/config_fetcher_spec.rb +23 -23
  501. data/spec/unit/config_spec.rb +2 -2
  502. data/spec/unit/cookbook/metadata_spec.rb +81 -81
  503. data/spec/unit/cookbook/synchronizer_spec.rb +171 -171
  504. data/spec/unit/cookbook_loader_spec.rb +10 -5
  505. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +6 -6
  506. data/spec/unit/cookbook_uploader_spec.rb +8 -8
  507. data/spec/unit/cookbook_version_file_specificity_spec.rb +135 -135
  508. data/spec/unit/daemon_spec.rb +4 -4
  509. data/spec/unit/data_bag_item_spec.rb +3 -3
  510. data/spec/unit/data_bag_spec.rb +1 -1
  511. data/spec/unit/data_collector/resource_report_spec.rb +1 -1
  512. data/spec/unit/data_collector_spec.rb +4 -3
  513. data/spec/unit/deprecated_spec.rb +18 -12
  514. data/spec/unit/dsl/audit_spec.rb +1 -1
  515. data/spec/unit/dsl/platform_introspection_spec.rb +16 -16
  516. data/spec/unit/dsl/reboot_pending_spec.rb +1 -1
  517. data/spec/unit/environment_spec.rb +16 -16
  518. data/spec/unit/file_access_control_spec.rb +8 -8
  519. data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +3 -3
  520. data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +26 -26
  521. data/spec/unit/formatters/error_description_spec.rb +39 -39
  522. data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +16 -16
  523. data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +1 -1
  524. data/spec/unit/formatters/error_inspectors/node_load_error_inspector_spec.rb +1 -1
  525. data/spec/unit/formatters/error_inspectors/registration_error_inspector_spec.rb +1 -1
  526. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +1 -1
  527. data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +5 -5
  528. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +4 -4
  529. data/spec/unit/handler/json_file_spec.rb +1 -1
  530. data/spec/unit/http/api_versions_spec.rb +1 -1
  531. data/spec/unit/http/authenticator_spec.rb +17 -17
  532. data/spec/unit/http/ssl_policies_spec.rb +1 -1
  533. data/spec/unit/http/validate_content_length_spec.rb +2 -2
  534. data/spec/unit/key_spec.rb +12 -12
  535. data/spec/unit/knife/bootstrap/client_builder_spec.rb +3 -3
  536. data/spec/unit/knife/client_bulk_delete_spec.rb +1 -1
  537. data/spec/unit/knife/client_delete_spec.rb +1 -1
  538. data/spec/unit/knife/client_reregister_spec.rb +1 -1
  539. data/spec/unit/knife/configure_client_spec.rb +4 -4
  540. data/spec/unit/knife/configure_spec.rb +1 -1
  541. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +1 -1
  542. data/spec/unit/knife/cookbook_delete_spec.rb +4 -4
  543. data/spec/unit/knife/cookbook_download_spec.rb +21 -21
  544. data/spec/unit/knife/cookbook_list_spec.rb +7 -7
  545. data/spec/unit/knife/cookbook_show_spec.rb +24 -24
  546. data/spec/unit/knife/cookbook_site_download_spec.rb +23 -23
  547. data/spec/unit/knife/cookbook_site_install_spec.rb +4 -4
  548. data/spec/unit/knife/cookbook_site_share_spec.rb +10 -10
  549. data/spec/unit/knife/cookbook_site_unshare_spec.rb +2 -2
  550. data/spec/unit/knife/cookbook_upload_spec.rb +19 -19
  551. data/spec/unit/knife/core/bootstrap_context_spec.rb +37 -37
  552. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +20 -20
  553. data/spec/unit/knife/core/object_loader_spec.rb +1 -1
  554. data/spec/unit/knife/core/ui_spec.rb +55 -55
  555. data/spec/unit/knife/data_bag_create_spec.rb +2 -2
  556. data/spec/unit/knife/data_bag_edit_spec.rb +1 -1
  557. data/spec/unit/knife/data_bag_secret_options_spec.rb +5 -5
  558. data/spec/unit/knife/environment_from_file_spec.rb +1 -1
  559. data/spec/unit/knife/key_create_spec.rb +4 -4
  560. data/spec/unit/knife/key_delete_spec.rb +3 -3
  561. data/spec/unit/knife/key_edit_spec.rb +3 -3
  562. data/spec/unit/knife/key_list_spec.rb +3 -3
  563. data/spec/unit/knife/key_show_spec.rb +3 -3
  564. data/spec/unit/knife/node_delete_spec.rb +1 -1
  565. data/spec/unit/knife/node_edit_spec.rb +7 -7
  566. data/spec/unit/knife/node_from_file_spec.rb +1 -1
  567. data/spec/unit/knife/node_run_list_add_spec.rb +1 -1
  568. data/spec/unit/knife/osc_user_edit_spec.rb +1 -1
  569. data/spec/unit/knife/osc_user_reregister_spec.rb +1 -1
  570. data/spec/unit/knife/role_bulk_delete_spec.rb +1 -1
  571. data/spec/unit/knife/role_create_spec.rb +1 -1
  572. data/spec/unit/knife/role_delete_spec.rb +1 -1
  573. data/spec/unit/knife/role_env_run_list_add_spec.rb +4 -4
  574. data/spec/unit/knife/role_env_run_list_clear_spec.rb +1 -1
  575. data/spec/unit/knife/role_env_run_list_remove_spec.rb +1 -1
  576. data/spec/unit/knife/role_env_run_list_replace_spec.rb +1 -1
  577. data/spec/unit/knife/role_env_run_list_set_spec.rb +1 -1
  578. data/spec/unit/knife/role_from_file_spec.rb +1 -1
  579. data/spec/unit/knife/role_run_list_add_spec.rb +4 -4
  580. data/spec/unit/knife/role_run_list_clear_spec.rb +1 -1
  581. data/spec/unit/knife/role_run_list_remove_spec.rb +1 -1
  582. data/spec/unit/knife/role_run_list_replace_spec.rb +1 -1
  583. data/spec/unit/knife/role_run_list_set_spec.rb +1 -1
  584. data/spec/unit/knife/ssh_spec.rb +25 -25
  585. data/spec/unit/knife/ssl_check_spec.rb +23 -23
  586. data/spec/unit/knife/ssl_fetch_spec.rb +11 -11
  587. data/spec/unit/knife/user_delete_spec.rb +1 -1
  588. data/spec/unit/knife/user_reregister_spec.rb +1 -1
  589. data/spec/unit/knife_spec.rb +26 -26
  590. data/spec/unit/log/syslog_spec.rb +1 -1
  591. data/spec/unit/lwrp_spec.rb +4 -4
  592. data/spec/unit/mash_spec.rb +3 -3
  593. data/spec/unit/mixin/api_version_request_handling_spec.rb +16 -16
  594. data/spec/unit/mixin/checksum_spec.rb +1 -1
  595. data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +8 -8
  596. data/spec/unit/mixin/homebrew_user_spec.rb +1 -1
  597. data/spec/unit/mixin/params_validate_spec.rb +96 -96
  598. data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
  599. data/spec/unit/mixin/powershell_type_coercions_spec.rb +1 -1
  600. data/spec/unit/mixin/securable_spec.rb +27 -27
  601. data/spec/unit/mixin/shell_out_spec.rb +286 -132
  602. data/spec/unit/mixin/user_context_spec.rb +1 -1
  603. data/spec/unit/mixin/xml_escape_spec.rb +1 -1
  604. data/spec/unit/node/attribute_spec.rb +10 -10
  605. data/spec/unit/node/vivid_mash_spec.rb +3 -3
  606. data/spec/unit/node_map_spec.rb +71 -3
  607. data/spec/unit/node_spec.rb +15 -15
  608. data/spec/unit/org_spec.rb +2 -2
  609. data/spec/unit/platform/query_helpers_spec.rb +26 -26
  610. data/spec/unit/policy_builder/expand_node_object_spec.rb +4 -4
  611. data/spec/unit/policy_builder/policyfile_spec.rb +29 -29
  612. data/spec/unit/property_spec.rb +5 -5
  613. data/spec/unit/provider/apt_repository_spec.rb +19 -19
  614. data/spec/unit/provider/cookbook_file/content_spec.rb +1 -1
  615. data/spec/unit/provider/cookbook_file_spec.rb +1 -1
  616. data/spec/unit/provider/cron/unix_spec.rb +12 -12
  617. data/spec/unit/provider/cron_spec.rb +279 -279
  618. data/spec/unit/provider/dsc_resource_spec.rb +6 -6
  619. data/spec/unit/provider/execute_spec.rb +2 -2
  620. data/spec/unit/provider/file/content_spec.rb +1 -1
  621. data/spec/unit/provider/file_spec.rb +1 -1
  622. data/spec/unit/provider/git_spec.rb +123 -123
  623. data/spec/unit/provider/group/dscl_spec.rb +18 -18
  624. data/spec/unit/provider/group/gpasswd_spec.rb +7 -7
  625. data/spec/unit/provider/group/groupadd_spec.rb +7 -7
  626. data/spec/unit/provider/group/groupmod_spec.rb +13 -13
  627. data/spec/unit/provider/group/pw_spec.rb +4 -4
  628. data/spec/unit/provider/group/suse_spec.rb +2 -2
  629. data/spec/unit/provider/group/usermod_spec.rb +4 -4
  630. data/spec/unit/provider/group_spec.rb +3 -3
  631. data/spec/unit/provider/ifconfig/aix_spec.rb +17 -17
  632. data/spec/unit/provider/ifconfig/debian_spec.rb +16 -16
  633. data/spec/unit/provider/ifconfig_spec.rb +16 -16
  634. data/spec/unit/provider/launchd_spec.rb +52 -52
  635. data/spec/unit/provider/link_spec.rb +7 -7
  636. data/spec/unit/provider/mdadm_spec.rb +3 -3
  637. data/spec/unit/provider/mount/aix_spec.rb +39 -39
  638. data/spec/unit/provider/mount/mount_spec.rb +26 -26
  639. data/spec/unit/provider/mount/solaris_spec.rb +2 -2
  640. data/spec/unit/provider/mount/windows_spec.rb +6 -6
  641. data/spec/unit/provider/ohai_spec.rb +9 -9
  642. data/spec/unit/provider/osx_profile_spec.rb +1 -1
  643. data/spec/unit/provider/package/apt_spec.rb +186 -186
  644. data/spec/unit/provider/package/bff_spec.rb +36 -36
  645. data/spec/unit/provider/package/cab_spec.rb +58 -58
  646. data/spec/unit/provider/package/chocolatey_spec.rb +34 -34
  647. data/spec/unit/provider/package/dpkg_spec.rb +33 -33
  648. data/spec/unit/provider/package/freebsd/pkg_spec.rb +35 -35
  649. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +22 -22
  650. data/spec/unit/provider/package/freebsd/port_spec.rb +21 -21
  651. data/spec/unit/provider/package/homebrew_spec.rb +4 -4
  652. data/spec/unit/provider/package/ips_spec.rb +94 -94
  653. data/spec/unit/provider/package/macports_spec.rb +23 -23
  654. data/spec/unit/provider/package/msu_spec.rb +44 -44
  655. data/spec/unit/provider/package/openbsd_spec.rb +19 -19
  656. data/spec/unit/provider/package/pacman_spec.rb +50 -50
  657. data/spec/unit/provider/package/paludis_spec.rb +33 -33
  658. data/spec/unit/provider/package/portage_spec.rb +25 -25
  659. data/spec/unit/provider/package/powershell_spec.rb +98 -85
  660. data/spec/unit/provider/package/rpm_spec.rb +21 -21
  661. data/spec/unit/provider/package/rubygems_spec.rb +71 -71
  662. data/spec/unit/provider/package/smartos_spec.rb +21 -21
  663. data/spec/unit/provider/package/solaris_spec.rb +38 -38
  664. data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
  665. data/spec/unit/provider/package/windows/msi_spec.rb +1 -1
  666. data/spec/unit/provider/package/windows_spec.rb +11 -4
  667. data/spec/unit/provider/package/zypper_spec.rb +42 -46
  668. data/spec/unit/provider/package_spec.rb +2 -2
  669. data/spec/unit/provider/powershell_script_spec.rb +1 -1
  670. data/spec/unit/provider/registry_key_spec.rb +22 -22
  671. data/spec/unit/provider/remote_file/cache_control_data_spec.rb +7 -7
  672. data/spec/unit/provider/remote_file/content_spec.rb +4 -4
  673. data/spec/unit/provider/remote_file/fetcher_spec.rb +5 -5
  674. data/spec/unit/provider/remote_file/ftp_spec.rb +1 -1
  675. data/spec/unit/provider/remote_file/http_spec.rb +1 -1
  676. data/spec/unit/provider/remote_file/local_file_spec.rb +2 -2
  677. data/spec/unit/provider/remote_file/network_file_spec.rb +3 -3
  678. data/spec/unit/provider/remote_file/sftp_spec.rb +2 -2
  679. data/spec/unit/provider/remote_file_spec.rb +1 -1
  680. data/spec/unit/provider/script_spec.rb +1 -1
  681. data/spec/unit/provider/service/aix_service_spec.rb +8 -8
  682. data/spec/unit/provider/service/aixinit_service_spec.rb +3 -3
  683. data/spec/unit/provider/service/arch_service_spec.rb +21 -21
  684. data/spec/unit/provider/service/debian_service_spec.rb +2 -2
  685. data/spec/unit/provider/service/freebsd_service_spec.rb +30 -30
  686. data/spec/unit/provider/service/gentoo_service_spec.rb +1 -1
  687. data/spec/unit/provider/service/init_service_spec.rb +14 -14
  688. data/spec/unit/provider/service/insserv_service_spec.rb +2 -2
  689. data/spec/unit/provider/service/invokercd_service_spec.rb +17 -17
  690. data/spec/unit/provider/service/macosx_spec.rb +59 -59
  691. data/spec/unit/provider/service/openbsd_service_spec.rb +6 -6
  692. data/spec/unit/provider/service/redhat_spec.rb +27 -27
  693. data/spec/unit/provider/service/simple_service_spec.rb +14 -14
  694. data/spec/unit/provider/service/solaris_smf_service_spec.rb +19 -19
  695. data/spec/unit/provider/service/systemd_service_spec.rb +13 -13
  696. data/spec/unit/provider/service/upstart_service_spec.rb +5 -5
  697. data/spec/unit/provider/service/windows_spec.rb +38 -38
  698. data/spec/unit/provider/service_spec.rb +3 -3
  699. data/spec/unit/provider/subversion_spec.rb +13 -13
  700. data/spec/unit/provider/systemd_unit_spec.rb +10 -10
  701. data/spec/unit/provider/template/content_spec.rb +44 -44
  702. data/spec/unit/provider/template_spec.rb +2 -2
  703. data/spec/unit/provider/user/aix_spec.rb +5 -5
  704. data/spec/unit/provider/user/dscl_spec.rb +12 -12
  705. data/spec/unit/provider/user/pw_spec.rb +12 -12
  706. data/spec/unit/provider/user/solaris_spec.rb +6 -6
  707. data/spec/unit/provider/windows_env_spec.rb +2 -2
  708. data/spec/unit/provider/windows_task_spec.rb +16 -16
  709. data/spec/unit/provider/zypper_repository_spec.rb +7 -7
  710. data/spec/unit/provider_resolver_spec.rb +3 -3
  711. data/spec/unit/recipe_spec.rb +13 -13
  712. data/spec/unit/resource/chocolatey_config_spec.rb +98 -0
  713. data/spec/unit/resource/chocolatey_source_spec.rb +102 -0
  714. data/spec/unit/resource/conditional_spec.rb +1 -1
  715. data/spec/unit/resource/cookbook_file_spec.rb +3 -3
  716. data/spec/unit/resource/dnf_package_spec.rb +3 -3
  717. data/spec/unit/resource/dsc_script_spec.rb +10 -10
  718. data/spec/unit/resource/execute_spec.rb +2 -2
  719. data/spec/unit/resource/file/verification/systemd_unit_spec.rb +1 -1
  720. data/spec/unit/resource/file/verification_spec.rb +1 -1
  721. data/spec/unit/resource/file_spec.rb +3 -3
  722. data/spec/unit/resource/freebsd_package_spec.rb +5 -4
  723. data/spec/unit/resource/group_spec.rb +4 -4
  724. data/spec/unit/resource/kernel_module_spec.rb +48 -0
  725. data/spec/unit/resource/mount_spec.rb +13 -3
  726. data/spec/unit/resource/package_spec.rb +2 -2
  727. data/spec/unit/resource/powershell_package_source_spec.rb +219 -0
  728. data/spec/unit/resource/powershell_package_spec.rb +10 -1
  729. data/spec/unit/resource/powershell_script_spec.rb +8 -8
  730. data/spec/unit/resource/registry_key_spec.rb +19 -19
  731. data/spec/unit/resource/remote_file_spec.rb +2 -2
  732. data/spec/unit/resource/resource_notification_spec.rb +8 -8
  733. data/spec/unit/resource/service_spec.rb +3 -3
  734. data/spec/unit/resource/ssh_known_hosts_entry_spec.rb +55 -0
  735. data/spec/unit/resource/template_spec.rb +2 -2
  736. data/spec/unit/resource/user_spec.rb +2 -2
  737. data/spec/unit/resource/windows_feature_dism.rb +5 -5
  738. data/spec/unit/resource/windows_feature_powershell.rb +27 -6
  739. data/spec/unit/resource/yum_package_spec.rb +3 -3
  740. data/spec/unit/resource_collection/resource_set_spec.rb +6 -6
  741. data/spec/unit/resource_collection_spec.rb +5 -5
  742. data/spec/unit/resource_definition_spec.rb +2 -2
  743. data/spec/unit/resource_inspector_spec.rb +3 -3
  744. data/spec/unit/resource_reporter_spec.rb +24 -24
  745. data/spec/unit/resource_spec.rb +65 -31
  746. data/spec/unit/role_spec.rb +22 -22
  747. data/spec/unit/run_context_spec.rb +1 -1
  748. data/spec/unit/run_list/run_list_item_spec.rb +3 -3
  749. data/spec/unit/run_list/versioned_recipe_list_spec.rb +12 -12
  750. data/spec/unit/run_list_spec.rb +6 -6
  751. data/spec/unit/runner_spec.rb +4 -4
  752. data/spec/unit/scan_access_control_spec.rb +3 -3
  753. data/spec/unit/shell/model_wrapper_spec.rb +4 -4
  754. data/spec/unit/shell/shell_ext_spec.rb +4 -4
  755. data/spec/unit/shell/shell_session_spec.rb +28 -28
  756. data/spec/unit/user_spec.rb +2 -2
  757. data/spec/unit/user_v1_spec.rb +25 -25
  758. data/spec/unit/util/diff_spec.rb +1 -1
  759. data/spec/unit/util/dsc/configuration_generator_spec.rb +4 -4
  760. data/spec/unit/util/dsc/lcm_output_parser_spec.rb +105 -105
  761. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +16 -16
  762. data/spec/unit/util/file_edit_spec.rb +38 -38
  763. data/spec/unit/util/powershell/cmdlet_spec.rb +1 -1
  764. data/spec/unit/util/selinux_spec.rb +10 -10
  765. data/spec/unit/win32/registry_spec.rb +3 -3
  766. data/spec/unit/windows_service_spec.rb +2 -2
  767. data/tasks/cbgb.rb +3 -3
  768. data/tasks/dependencies.rb +6 -8
  769. data/tasks/maintainers.rb +7 -7
  770. data/tasks/rspec.rb +2 -2
  771. metadata +24 -83
  772. data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +0 -33
  773. data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +0 -272
  774. data/acceptance/.shared/kitchen_acceptance/.kitchen.vagrant.yml +0 -57
  775. data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +0 -68
  776. data/acceptance/.shared/kitchen_acceptance/metadata.rb +0 -1
  777. data/acceptance/Gemfile +0 -19
  778. data/acceptance/Gemfile.lock +0 -266
  779. data/acceptance/README.md +0 -137
  780. data/acceptance/basics/.acceptance/acceptance-cookbook/.gitignore +0 -2
  781. data/acceptance/basics/.acceptance/acceptance-cookbook/metadata.rb +0 -3
  782. data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  783. data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  784. data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  785. data/acceptance/basics/.kitchen.yml +0 -4
  786. data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +0 -19
  787. data/acceptance/basics/test/integration/chef-current-install/serverspec/spec_helper.rb +0 -6
  788. data/acceptance/basics/test/integration/helpers/serverspec/Gemfile +0 -8
  789. data/acceptance/data-collector/.acceptance/acceptance-cookbook/.gitignore +0 -2
  790. data/acceptance/data-collector/.acceptance/acceptance-cookbook/metadata.rb +0 -3
  791. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -2
  792. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -2
  793. data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -2
  794. data/acceptance/data-collector/.acceptance/data-collector-test/.gitignore +0 -16
  795. data/acceptance/data-collector/.acceptance/data-collector-test/Berksfile +0 -3
  796. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/api.rb +0 -101
  797. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/apigemfile +0 -3
  798. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-both-mode.rb +0 -4
  799. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-client-mode.rb +0 -4
  800. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-no-endpoint.rb +0 -2
  801. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-solo-mode.rb +0 -4
  802. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/config.ru +0 -2
  803. data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +0 -7
  804. data/acceptance/data-collector/.acceptance/data-collector-test/recipes/default.rb +0 -44
  805. data/acceptance/data-collector/.kitchen.yml +0 -9
  806. data/acceptance/data-collector/Berksfile +0 -3
  807. data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +0 -208
  808. data/acceptance/data-collector/test/integration/helpers/serverspec/Gemfile +0 -8
  809. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/.gitignore +0 -2
  810. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/metadata.rb +0 -1
  811. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  812. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  813. data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -61
  814. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/.gitignore +0 -2
  815. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/cookbook_kitchen.rb +0 -43
  816. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +0 -41
  817. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/metadata.rb +0 -3
  818. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  819. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  820. data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  821. data/acceptance/top-cookbooks/.gitignore +0 -1
  822. data/acceptance/top-cookbooks/.kitchen.chocolatey.yml +0 -6
  823. data/acceptance/top-cookbooks/.kitchen.iis.yml +0 -4
  824. data/acceptance/top-cookbooks/.kitchen.learn-the-basics-rhel.yml +0 -7
  825. data/acceptance/top-cookbooks/.kitchen.learn-the-basics-ubuntu.yml +0 -7
  826. data/acceptance/top-cookbooks/.kitchen.learn-the-basics-windows.yml +0 -7
  827. data/acceptance/top-cookbooks/.kitchen.powershell.yml +0 -4
  828. data/acceptance/top-cookbooks/.kitchen.sql_server.yml +0 -5
  829. data/acceptance/top-cookbooks/.kitchen.winbox.yml +0 -8
  830. data/acceptance/top-cookbooks/.kitchen.windows.yml +0 -38
  831. data/acceptance/trivial/.acceptance/acceptance-cookbook/.gitignore +0 -2
  832. data/acceptance/trivial/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  833. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  834. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  835. data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  836. data/acceptance/trivial/.kitchen.yml +0 -7
  837. data/acceptance/trivial/test/integration/chef-current-install/inspec/chef_client_spec.rb +0 -5
  838. data/acceptance/windows-service/.acceptance/acceptance-cookbook/.gitignore +0 -2
  839. data/acceptance/windows-service/.acceptance/acceptance-cookbook/metadata.rb +0 -2
  840. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
  841. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
  842. data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
  843. data/acceptance/windows-service/.kitchen.yml +0 -7
  844. data/acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb +0 -58
  845. data/distro/powershell/chef/Chef.PowerShell.dll +0 -0
@@ -53,7 +53,7 @@ class Chef
53
53
  set_or_return(
54
54
  :source,
55
55
  file,
56
- :kind_of => [ String, Array ]
56
+ kind_of: [ String, Array ]
57
57
  )
58
58
  end
59
59
 
@@ -51,7 +51,7 @@ class Chef
51
51
  set_or_return(
52
52
  :username,
53
53
  arg,
54
- :kind_of => [ String ]
54
+ kind_of: [ String ]
55
55
  )
56
56
  end
57
57
 
@@ -59,7 +59,7 @@ class Chef
59
59
  set_or_return(
60
60
  :comment,
61
61
  arg,
62
- :kind_of => [ String ]
62
+ kind_of: [ String ]
63
63
  )
64
64
  end
65
65
 
@@ -67,8 +67,8 @@ class Chef
67
67
  set_or_return(
68
68
  :uid,
69
69
  arg,
70
- :kind_of => [ String, Integer, NilClass ],
71
- :coerce => proc { |x| x || nil }
70
+ kind_of: [ String, Integer, NilClass ],
71
+ coerce: proc { |x| x || nil }
72
72
  )
73
73
  end
74
74
 
@@ -76,8 +76,8 @@ class Chef
76
76
  set_or_return(
77
77
  :gid,
78
78
  arg,
79
- :kind_of => [ String, Integer, NilClass ],
80
- :coerce => proc { |x| x || nil }
79
+ kind_of: [ String, Integer, NilClass ],
80
+ coerce: proc { |x| x || nil }
81
81
  )
82
82
  end
83
83
 
@@ -87,7 +87,7 @@ class Chef
87
87
  set_or_return(
88
88
  :home,
89
89
  arg,
90
- :kind_of => [ String ]
90
+ kind_of: [ String ]
91
91
  )
92
92
  end
93
93
 
@@ -95,7 +95,7 @@ class Chef
95
95
  set_or_return(
96
96
  :shell,
97
97
  arg,
98
- :kind_of => [ String ]
98
+ kind_of: [ String ]
99
99
  )
100
100
  end
101
101
 
@@ -103,7 +103,7 @@ class Chef
103
103
  set_or_return(
104
104
  :password,
105
105
  arg,
106
- :kind_of => [ String ]
106
+ kind_of: [ String ]
107
107
  )
108
108
  end
109
109
 
@@ -111,7 +111,7 @@ class Chef
111
111
  set_or_return(
112
112
  :salt,
113
113
  arg,
114
- :kind_of => [ String ]
114
+ kind_of: [ String ]
115
115
  )
116
116
  end
117
117
 
@@ -119,7 +119,7 @@ class Chef
119
119
  set_or_return(
120
120
  :iterations,
121
121
  arg,
122
- :kind_of => [ Integer ]
122
+ kind_of: [ Integer ]
123
123
  )
124
124
  end
125
125
 
@@ -127,7 +127,7 @@ class Chef
127
127
  set_or_return(
128
128
  :system,
129
129
  arg,
130
- :kind_of => [ TrueClass, FalseClass ]
130
+ kind_of: [ TrueClass, FalseClass ]
131
131
  )
132
132
  end
133
133
 
@@ -135,7 +135,7 @@ class Chef
135
135
  set_or_return(
136
136
  :manage_home,
137
137
  arg,
138
- :kind_of => [ TrueClass, FalseClass ]
138
+ kind_of: [ TrueClass, FalseClass ]
139
139
  )
140
140
  end
141
141
 
@@ -143,7 +143,7 @@ class Chef
143
143
  set_or_return(
144
144
  :force,
145
145
  arg,
146
- :kind_of => [ TrueClass, FalseClass ]
146
+ kind_of: [ TrueClass, FalseClass ]
147
147
  )
148
148
  end
149
149
 
@@ -151,7 +151,7 @@ class Chef
151
151
  set_or_return(
152
152
  :non_unique,
153
153
  arg,
154
- :kind_of => [ TrueClass, FalseClass ]
154
+ kind_of: [ TrueClass, FalseClass ]
155
155
  )
156
156
  end
157
157
  end
@@ -17,6 +17,7 @@
17
17
  #
18
18
 
19
19
  require "chef/resource"
20
+ require "chef/platform/query_helpers"
20
21
 
21
22
  class Chef
22
23
  class Resource
@@ -30,7 +31,7 @@ class Chef
30
31
 
31
32
  property :feature_name, [Array, String],
32
33
  description: "The name of the feature/role(s) to install if it differs from the resource name.",
33
- coerce: proc { |x| to_lowercase_array(x) },
34
+ coerce: proc { |x| to_formatted_array(x) },
34
35
  name_property: true
35
36
 
36
37
  property :source, String,
@@ -44,12 +45,12 @@ class Chef
44
45
  description: "Specifies a timeout (in seconds) for feature install.",
45
46
  default: 600
46
47
 
47
- def to_lowercase_array(x)
48
+ # @return [Array] lowercase the array unless we're on < Windows 2012
49
+ def to_formatted_array(x)
48
50
  x = x.split(/\s*,\s*/) if x.is_a?(String) # split multiple forms of a comma separated list
49
51
 
50
- # dism on windows < 2012 is case sensitive so only downcase when on 2012+
51
- # @todo when we're really ready to remove support for Windows 2008 R2 this check can go away
52
- node["platform_version"].to_f < 6.2 ? x : x.map(&:downcase)
52
+ # feature installs on windows < 2012 are case sensitive so only downcase when on 2012+
53
+ older_than_win_2012_or_8? ? x : x.map(&:downcase)
53
54
  end
54
55
 
55
56
  action :install do
@@ -116,7 +117,7 @@ class Chef
116
117
  def features_to_install
117
118
  @install ||= begin
118
119
  # disabled features are always available to install
119
- available_for_install = node["dism_features_cache"]["disabled"]
120
+ available_for_install = node["dism_features_cache"]["disabled"].dup
120
121
 
121
122
  # if the user passes a source then removed features are also available for installation
122
123
  available_for_install.concat(node["dism_features_cache"]["removed"]) if new_resource.source
@@ -200,7 +201,7 @@ class Chef
200
201
  # dism on windows 2012+ isn't case sensitive so it's best to compare
201
202
  # lowercase lists so the user input doesn't need to be case sensitive
202
203
  # @todo when we're ready to remove windows 2008R2 the gating here can go away
203
- feature_details.downcase! unless node["platform_version"].to_f < 6.2
204
+ feature_details.downcase! unless older_than_win_2012_or_8?
204
205
  node.override["dism_features_cache"][feature_type] << feature_details
205
206
  end
206
207
 
@@ -208,7 +209,7 @@ class Chef
208
209
  # @return [void]
209
210
  def fail_if_removed
210
211
  return if new_resource.source # if someone provides a source then all is well
211
- if node["platform_version"].to_f > 6.2
212
+ if node["platform_version"].to_f > 6.2 # 2012R2 or later
212
213
  return if registry_key_exists?('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing') && registry_value_exists?('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing', name: "LocalSourcePath") # if source is defined in the registry, still fine
213
214
  end
214
215
  removed = new_resource.feature_name & node["dism_features_cache"]["removed"]
@@ -218,7 +219,7 @@ class Chef
218
219
  # Fail unless we're on windows 8+ / 2012+ where deleting a feature is supported
219
220
  # @return [void]
220
221
  def raise_if_delete_unsupported
221
- raise Chef::Exceptions::UnsupportedAction, "#{self} :delete action not support on Windows releases before Windows 8/2012. Cannot continue!" unless node["platform_version"].to_f >= 6.2
222
+ raise Chef::Exceptions::UnsupportedAction, "#{self} :delete action not supported on Windows releases before Windows 8/2012. Cannot continue!" if older_than_win_2012_or_8?
222
223
  end
223
224
  end
224
225
  end
@@ -19,6 +19,7 @@
19
19
  require "chef/mixin/powershell_out"
20
20
  require "chef/json_compat"
21
21
  require "chef/resource"
22
+ require "chef/platform/query_helpers"
22
23
 
23
24
  class Chef
24
25
  class Resource
@@ -35,7 +36,7 @@ class Chef
35
36
 
36
37
  property :feature_name, [Array, String],
37
38
  description: "The name of the feature/role(s) to install if it differs from the resource name.",
38
- coerce: proc { |x| to_lowercase_array(x) },
39
+ coerce: proc { |x| to_formatted_array(x) },
39
40
  name_property: true
40
41
 
41
42
  property :source, String,
@@ -54,9 +55,13 @@ class Chef
54
55
  description: "",
55
56
  default: false
56
57
 
57
- def to_lowercase_array(x)
58
+ # Converts strings of features into an Array. Array objects are lowercased unless we're on < 8/2k12+.
59
+ # @return [Array] array of features
60
+ def to_formatted_array(x)
58
61
  x = x.split(/\s*,\s*/) if x.is_a?(String) # split multiple forms of a comma separated list
59
- x.map(&:downcase)
62
+
63
+ # feature installs on windows < 8/2012 are case sensitive so only downcase when on 2012+
64
+ older_than_win_2012_or_8? ? x : x.map(&:downcase)
60
65
  end
61
66
 
62
67
  include Chef::Mixin::PowershellOut
@@ -73,8 +78,8 @@ class Chef
73
78
  converge_by("install Windows feature#{'s' if features_to_install.count > 1} #{features_to_install.join(',')}") do
74
79
  install_command = "#{install_feature_cmdlet} #{features_to_install.join(',')}"
75
80
  install_command << " -IncludeAllSubFeature" if new_resource.all
76
- if node["platform_version"].to_f < 6.2 && (new_resource.source || new_resource.management_tools)
77
- Chef::Log.warn("The 'source' and 'management_tools' properties are not available on Windows 2012R2 or great. Skipping these properties!")
81
+ if older_than_win_2012_or_8? && (new_resource.source || new_resource.management_tools)
82
+ Chef::Log.warn("The 'source' and 'management_tools' properties are only available on Windows 8/2012 or greater. Skipping these properties!")
78
83
  else
79
84
  install_command << " -Source \"#{new_resource.source}\"" if new_resource.source
80
85
  install_command << " -IncludeManagementTools" if new_resource.management_tools
@@ -144,16 +149,20 @@ class Chef
144
149
  # @raise [RuntimeError] Raise if powershell is < 3.0
145
150
  def raise_on_old_powershell
146
151
  # be super defensive about the powershell lang plugin not being there
147
- return if node["languages"] && node["languages"]["powershell"] && node["languages"]["powershell"]["version"].to_i > 3
152
+ return if node["languages"] && node["languages"]["powershell"] && node["languages"]["powershell"]["version"].to_i >= 3
148
153
  raise "The windows_feature_powershell resource requires PowerShell 3.0 or later. Please install PowerShell 3.0+ before running this resource." if powershell_version < 3
149
154
  end
150
155
 
156
+ # The appropriate cmdlet to install a windows feature based on windows release
157
+ # @return [String]
151
158
  def install_feature_cmdlet
152
- node["platform_version"].to_f < 6.2 ? "Import-Module ServerManager; Add-WindowsFeature" : "Install-WindowsFeature"
159
+ older_than_win_2012_or_8? ? "Add-WindowsFeature" : "Install-WindowsFeature"
153
160
  end
154
161
 
162
+ # The appropriate cmdlet to remove a windows feature based on windows release
163
+ # @return [String]
155
164
  def remove_feature_cmdlet
156
- node["platform_version"].to_f < 6.2 ? "Import-Module ServerManager; Remove-WindowsFeature" : "Uninstall-WindowsFeature"
165
+ older_than_win_2012_or_8? ? "Remove-WindowsFeature" : "Uninstall-WindowsFeature"
157
166
  end
158
167
 
159
168
  # @return [Array] features the user has requested to install which need installation
@@ -220,8 +229,9 @@ class Chef
220
229
  # fetch the list of available feature names and state in JSON and parse the JSON
221
230
  def parsed_feature_list
222
231
  # Grab raw feature information from dism command line
223
- raw_list_of_features = if node["platform_version"].to_f < 6.2
224
- powershell_out!("Import-Module ServerManager; Get-WindowsFeature | Select-Object -Property Name,InstallState | ConvertTo-Json -Compress", timeout: new_resource.timeout).stdout
232
+ # Windows < 2012 doesn't present a state value so we have to check if the feature is installed or not
233
+ raw_list_of_features = if older_than_win_2012_or_8? # make the older format look like the new format, warts and all
234
+ powershell_out!('Get-WindowsFeature | Select-Object -Property Name, @{Name=\"InstallState\"; Expression = {If ($_.Installed) { 1 } Else { 0 }}} | ConvertTo-Json -Compress', timeout: new_resource.timeout).stdout
225
235
  else
226
236
  powershell_out!("Get-WindowsFeature | Select-Object -Property Name,InstallState | ConvertTo-Json -Compress", timeout: new_resource.timeout).stdout
227
237
  end
@@ -232,14 +242,15 @@ class Chef
232
242
  # add the features values to the appropriate array
233
243
  # @return [void]
234
244
  def add_to_feature_mash(feature_type, feature_details)
235
- node.override["powershell_features_cache"][feature_type] << feature_details.downcase # lowercase so we can compare properly
245
+ # add the lowercase feature name to the mash unless we're on < 2012 where they're case sensitive
246
+ node.override["powershell_features_cache"][feature_type] << (older_than_win_2012_or_8? ? feature_details : feature_details.downcase)
236
247
  end
237
248
 
238
249
  # Fail if any of the packages are in a removed state
239
250
  # @return [void]
240
251
  def fail_if_removed
241
252
  return if new_resource.source # if someone provides a source then all is well
242
- if node["platform_version"].to_f > 6.2
253
+ if node["platform_version"].to_f > 6.2 # 2012R2 or later
243
254
  return if registry_key_exists?('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing') && registry_value_exists?('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing', name: "LocalSourcePath") # if source is defined in the registry, still fine
244
255
  end
245
256
  removed = new_resource.feature_name & node["powershell_features_cache"]["removed"]
@@ -248,7 +259,7 @@ class Chef
248
259
 
249
260
  # Fail unless we're on windows 8+ / 2012+ where deleting a feature is supported
250
261
  def raise_if_delete_unsupported
251
- raise Chef::Exceptions::UnsupportedAction, "#{self} :delete action not support on Windows releases before Windows 8/2012. Cannot continue!" unless node["platform_version"].to_f >= 6.2
262
+ raise Chef::Exceptions::UnsupportedAction, "#{self} :delete action not supported on Windows releases before Windows 8/2012. Cannot continue!" if older_than_win_2012_or_8?
252
263
  end
253
264
  end
254
265
  end
@@ -45,7 +45,7 @@ class Chef
45
45
  result = set_or_return(
46
46
  :architecture,
47
47
  arg,
48
- :kind_of => Symbol
48
+ kind_of: Symbol
49
49
  )
50
50
  end
51
51
 
@@ -28,10 +28,10 @@ class Chef
28
28
  automatic: SERVICE_AUTO_START,
29
29
  manual: SERVICE_DEMAND_START,
30
30
  disabled: SERVICE_DISABLED,
31
- }
31
+ }.freeze
32
32
 
33
33
  # Until #1773 is resolved, you need to manually specify the windows_service resource
34
- # to use action :configure_startup and attribute startup_type
34
+ # to use action :configure_startup and properties startup_type
35
35
 
36
36
  provides(:windows_service) { true }
37
37
  provides :service, os: "windows"
@@ -63,10 +63,10 @@ class Chef
63
63
  attr_accessor :exists, :task, :command_arguments
64
64
 
65
65
  SYSTEM_USERS = ['NT AUTHORITY\SYSTEM', "SYSTEM", 'NT AUTHORITY\LOCALSERVICE', 'NT AUTHORITY\NETWORKSERVICE', 'BUILTIN\USERS', "USERS"].freeze
66
- VALID_WEEK_DAYS = %w{ mon tue wed thu fri sat sun * }
66
+ VALID_WEEK_DAYS = %w{ mon tue wed thu fri sat sun * }.freeze
67
67
  VALID_DAYS_OF_MONTH = ("1".."31").to_a << "last" << "lastday"
68
- VALID_MONTHS = %w{JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC *}
69
- VALID_WEEKS = %w{FIRST SECOND THIRD FOURTH LAST LASTDAY}
68
+ VALID_MONTHS = %w{JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC *}.freeze
69
+ VALID_WEEKS = %w{FIRST SECOND THIRD FOURTH LAST LASTDAY}.freeze
70
70
 
71
71
  def after_created
72
72
  if random_delay
@@ -62,7 +62,7 @@ class Chef
62
62
  end
63
63
 
64
64
  def to_s
65
- "#{name}"
65
+ (name).to_s
66
66
  end
67
67
  end
68
68
  end
@@ -43,6 +43,7 @@ module ResourceInspector
43
43
  data[:actions] = resource.allowed_actions
44
44
  data[:examples] = resource.examples
45
45
  data[:introduced] = resource.introduced
46
+ data[:preview] = resource.preview_resource
46
47
 
47
48
  properties = unless complete
48
49
  resource.properties.reject { |_, k| k.options[:declared_in] == Chef::Resource }
@@ -72,7 +72,7 @@ class Chef
72
72
  as_hash["result"] = action.to_s
73
73
  if success?
74
74
  else
75
- #as_hash["result"] = "failed"
75
+ # as_hash["result"] = "failed"
76
76
  end
77
77
  if new_resource.cookbook_name
78
78
  as_hash["cookbook_name"] = new_resource.cookbook_name
@@ -96,7 +96,7 @@ class Chef
96
96
  attr_reader :exception
97
97
  attr_reader :error_descriptions
98
98
 
99
- PROTOCOL_VERSION = "0.1.0"
99
+ PROTOCOL_VERSION = "0.1.0".freeze
100
100
 
101
101
  def initialize(rest_client)
102
102
  if Chef::Config[:enable_reporting] && !Chef::Config[:why_run]
@@ -120,8 +120,8 @@ class Chef
120
120
  if reporting_enabled?
121
121
  begin
122
122
  resource_history_url = "reports/nodes/#{node_name}/runs"
123
- server_response = @rest_client.post(resource_history_url, { :action => :start, :run_id => run_id,
124
- :start_time => start_time.to_s }, headers)
123
+ server_response = @rest_client.post(resource_history_url, { action: :start, run_id: run_id,
124
+ start_time: start_time.to_s }, headers)
125
125
  rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => e
126
126
  handle_error_starting_run(e, resource_history_url)
127
127
  end
@@ -27,7 +27,9 @@ require "chef/resource/build_essential"
27
27
  require "chef/resource/cookbook_file"
28
28
  require "chef/resource/chef_gem"
29
29
  require "chef/resource/chef_handler"
30
+ require "chef/resource/chocolatey_config"
30
31
  require "chef/resource/chocolatey_package"
32
+ require "chef/resource/chocolatey_source"
31
33
  require "chef/resource/cron"
32
34
  require "chef/resource/csh"
33
35
  require "chef/resource/directory"
@@ -49,6 +51,7 @@ require "chef/resource/homebrew_cask"
49
51
  require "chef/resource/homebrew_package"
50
52
  require "chef/resource/homebrew_tap"
51
53
  require "chef/resource/ifconfig"
54
+ require "chef/resource/kernel_module"
52
55
  require "chef/resource/ksh"
53
56
  require "chef/resource/launchd"
54
57
  require "chef/resource/link"
@@ -68,6 +71,7 @@ require "chef/resource/pacman_package"
68
71
  require "chef/resource/paludis_package"
69
72
  require "chef/resource/perl"
70
73
  require "chef/resource/portage_package"
74
+ require "chef/resource/powershell_package_source"
71
75
  require "chef/resource/powershell_script"
72
76
  require "chef/resource/osx_profile"
73
77
  require "chef/resource/python"
@@ -92,6 +96,7 @@ require "chef/resource/sudo"
92
96
  require "chef/resource/sysctl"
93
97
  require "chef/resource/swap_file"
94
98
  require "chef/resource/systemd_unit"
99
+ require "chef/resource/ssh_known_hosts_entry"
95
100
  require "chef/resource/windows_service"
96
101
  require "chef/resource/subversion"
97
102
  require "chef/resource/smartos_package"
data/lib/chef/role.rb CHANGED
@@ -55,7 +55,7 @@ class Chef
55
55
  set_or_return(
56
56
  :name,
57
57
  arg,
58
- :regex => /^[\-[:alnum:]_]+$/
58
+ regex: /^[\-[:alnum:]_]+$/
59
59
  )
60
60
  end
61
61
 
@@ -63,7 +63,7 @@ class Chef
63
63
  set_or_return(
64
64
  :description,
65
65
  arg,
66
- :kind_of => String
66
+ kind_of: String
67
67
  )
68
68
  end
69
69
 
@@ -86,7 +86,7 @@ class Chef
86
86
  end
87
87
 
88
88
  def active_run_list_for(environment)
89
- @env_run_lists.has_key?(environment) ? environment : "_default"
89
+ @env_run_lists.key?(environment) ? environment : "_default"
90
90
  end
91
91
 
92
92
  # Per environment run lists
@@ -118,7 +118,7 @@ class Chef
118
118
  set_or_return(
119
119
  :default_attributes,
120
120
  arg,
121
- :kind_of => Hash
121
+ kind_of: Hash
122
122
  )
123
123
  end
124
124
 
@@ -126,7 +126,7 @@ class Chef
126
126
  set_or_return(
127
127
  :override_attributes,
128
128
  arg,
129
- :kind_of => Hash
129
+ kind_of: Hash
130
130
  )
131
131
  end
132
132
 
@@ -141,8 +141,8 @@ class Chef
141
141
  "override_attributes" => @override_attributes,
142
142
  "chef_type" => "role",
143
143
 
144
- #Render to_json correctly for run_list items (both run_list and evn_run_lists)
145
- #so malformed json does not result
144
+ # Render to_json correctly for run_list items (both run_list and evn_run_lists)
145
+ # so malformed json does not result
146
146
  "run_list" => run_list.run_list.map { |item| item.to_s },
147
147
  "env_run_lists" => env_run_lists_without_default.inject({}) do |accumulator, (k, v)|
148
148
  accumulator[k] = v.map { |x| x.to_s }
@@ -175,7 +175,7 @@ class Chef
175
175
 
176
176
  # _default run_list is in 'run_list' for newer clients, and
177
177
  # 'recipes' for older clients.
178
- env_run_list_hash = { "_default" => (o.has_key?("run_list") ? o["run_list"] : o["recipes"]) }
178
+ env_run_list_hash = { "_default" => (o.key?("run_list") ? o["run_list"] : o["recipes"]) }
179
179
 
180
180
  # Clients before 0.10 do not include env_run_lists, so only
181
181
  # merge if it's there.