chef 14.14.29 → 14.15.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (367) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/README.md +18 -7
  4. data/Rakefile +7 -4
  5. data/chef.gemspec +1 -1
  6. data/lib/chef/knife/ssh.rb +6 -0
  7. data/lib/chef/provider/ifconfig.rb +14 -5
  8. data/lib/chef/provider/windows_task.rb +9 -5
  9. data/lib/chef/resource/kernel_module.rb +61 -0
  10. data/lib/chef/resource/windows_task.rb +4 -0
  11. data/lib/chef/version.rb +1 -1
  12. data/lib/chef/win32/system.rb +0 -0
  13. data/spec/data/cookbooks/openldap/metadata.rb +2 -2
  14. data/spec/data/metadata/quick_start/metadata.rb +2 -7
  15. data/spec/functional/audit/runner_spec.rb +1 -1
  16. data/spec/functional/dsl/reboot_pending_spec.rb +7 -25
  17. data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -4
  18. data/spec/functional/file_content_management/deploy_strategies_spec.rb +21 -21
  19. data/spec/functional/knife/exec_spec.rb +1 -1
  20. data/spec/functional/knife/ssh_spec.rb +3 -3
  21. data/spec/functional/mixin/user_context_spec.rb +3 -1
  22. data/spec/functional/rebooter_spec.rb +1 -1
  23. data/spec/functional/resource/aix_service_spec.rb +1 -1
  24. data/spec/functional/resource/aixinit_service_spec.rb +1 -1
  25. data/spec/functional/resource/apt_package_spec.rb +1 -1
  26. data/spec/functional/resource/chocolatey_package_spec.rb +2 -2
  27. data/spec/functional/resource/cookbook_file_spec.rb +1 -3
  28. data/spec/functional/resource/cron_spec.rb +4 -3
  29. data/spec/functional/resource/dpkg_package_spec.rb +4 -4
  30. data/spec/functional/resource/dsc_resource_spec.rb +2 -1
  31. data/spec/functional/resource/dsc_script_spec.rb +16 -20
  32. data/spec/functional/resource/execute_spec.rb +2 -2
  33. data/spec/functional/resource/git_spec.rb +6 -6
  34. data/spec/functional/resource/group_spec.rb +8 -6
  35. data/spec/functional/resource/ifconfig_spec.rb +3 -5
  36. data/spec/functional/resource/link_spec.rb +2 -2
  37. data/spec/functional/resource/mount_spec.rb +3 -7
  38. data/spec/functional/resource/powershell_script_spec.rb +9 -8
  39. data/spec/functional/resource/reboot_spec.rb +1 -1
  40. data/spec/functional/resource/remote_file_spec.rb +2 -2
  41. data/spec/functional/resource/template_spec.rb +1 -1
  42. data/spec/functional/resource/user/windows_spec.rb +2 -2
  43. data/spec/functional/resource/windows_certificate_spec.rb +3 -3
  44. data/spec/functional/resource/windows_service_spec.rb +3 -3
  45. data/spec/functional/resource/windows_task_spec.rb +51 -0
  46. data/spec/functional/run_lock_spec.rb +10 -3
  47. data/spec/functional/shell_spec.rb +1 -1
  48. data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
  49. data/spec/functional/version_spec.rb +1 -1
  50. data/spec/functional/win32/security_spec.rb +12 -7
  51. data/spec/functional/win32/service_manager_spec.rb +1 -1
  52. data/spec/functional/win32/version_info_spec.rb +4 -4
  53. data/spec/integration/client/client_spec.rb +114 -132
  54. data/spec/integration/client/exit_code_spec.rb +8 -8
  55. data/spec/integration/client/ipv6_spec.rb +5 -5
  56. data/spec/integration/knife/chef_fs_data_store_spec.rb +38 -38
  57. data/spec/integration/knife/chef_repo_path_spec.rb +42 -42
  58. data/spec/integration/knife/chef_repository_file_system_spec.rb +9 -9
  59. data/spec/integration/knife/chefignore_spec.rb +13 -13
  60. data/spec/integration/knife/client_bulk_delete_spec.rb +8 -8
  61. data/spec/integration/knife/client_create_spec.rb +1 -1
  62. data/spec/integration/knife/client_delete_spec.rb +4 -4
  63. data/spec/integration/knife/client_key_delete_spec.rb +1 -1
  64. data/spec/integration/knife/client_key_list_spec.rb +1 -1
  65. data/spec/integration/knife/client_list_spec.rb +1 -1
  66. data/spec/integration/knife/common_options_spec.rb +1 -1
  67. data/spec/integration/knife/config_get_spec.rb +1 -1
  68. data/spec/integration/knife/config_list_profiles_spec.rb +2 -1
  69. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +3 -3
  70. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +3 -3
  71. data/spec/integration/knife/cookbook_download_spec.rb +4 -4
  72. data/spec/integration/knife/cookbook_list_spec.rb +2 -2
  73. data/spec/integration/knife/cookbook_show_spec.rb +3 -3
  74. data/spec/integration/knife/cookbook_upload_spec.rb +6 -6
  75. data/spec/integration/knife/data_bag_delete_spec.rb +4 -4
  76. data/spec/integration/knife/data_bag_from_file_spec.rb +7 -7
  77. data/spec/integration/knife/data_bag_list_spec.rb +1 -1
  78. data/spec/integration/knife/delete_spec.rb +37 -37
  79. data/spec/integration/knife/deps_spec.rb +23 -23
  80. data/spec/integration/knife/diff_spec.rb +23 -23
  81. data/spec/integration/knife/download_spec.rb +79 -79
  82. data/spec/integration/knife/environment_compare_spec.rb +3 -3
  83. data/spec/integration/knife/environment_from_file_spec.rb +6 -6
  84. data/spec/integration/knife/environment_list_spec.rb +1 -1
  85. data/spec/integration/knife/environment_show_spec.rb +4 -4
  86. data/spec/integration/knife/list_spec.rb +25 -25
  87. data/spec/integration/knife/node_bulk_delete_spec.rb +2 -2
  88. data/spec/integration/knife/node_delete_spec.rb +2 -2
  89. data/spec/integration/knife/node_environment_set_spec.rb +1 -1
  90. data/spec/integration/knife/node_from_file_spec.rb +2 -2
  91. data/spec/integration/knife/node_list_spec.rb +1 -1
  92. data/spec/integration/knife/raw_spec.rb +12 -12
  93. data/spec/integration/knife/redirection_spec.rb +1 -1
  94. data/spec/integration/knife/role_bulk_delete_spec.rb +2 -2
  95. data/spec/integration/knife/role_delete_spec.rb +2 -2
  96. data/spec/integration/knife/role_from_file_spec.rb +5 -5
  97. data/spec/integration/knife/role_list_spec.rb +1 -1
  98. data/spec/integration/knife/role_show_spec.rb +1 -1
  99. data/spec/integration/knife/show_spec.rb +10 -10
  100. data/spec/integration/knife/upload_spec.rb +85 -85
  101. data/spec/integration/recipes/accumulator_spec.rb +4 -4
  102. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +6 -6
  103. data/spec/integration/recipes/lwrp_spec.rb +6 -6
  104. data/spec/integration/recipes/notifies_spec.rb +45 -45
  105. data/spec/integration/recipes/notifying_block_spec.rb +4 -4
  106. data/spec/integration/recipes/provider_choice.rb +1 -2
  107. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  108. data/spec/integration/recipes/remote_directory.rb +2 -2
  109. data/spec/integration/recipes/resource_action_spec.rb +1 -1
  110. data/spec/integration/recipes/resource_converge_if_changed_spec.rb +19 -19
  111. data/spec/integration/solo/solo_spec.rb +29 -29
  112. data/spec/scripts/ssl-serve.rb +1 -1
  113. data/spec/spec_helper.rb +11 -14
  114. data/spec/stress/win32/security_spec.rb +1 -1
  115. data/spec/support/lib/chef/resource/zen_follower.rb +1 -1
  116. data/spec/support/lib/chef/resource/zen_master.rb +1 -1
  117. data/spec/support/mock/platform.rb +2 -2
  118. data/spec/support/platform_helpers.rb +12 -3
  119. data/spec/support/platforms/win32/spec_service.rb +6 -10
  120. data/spec/support/shared/context/client.rb +2 -1
  121. data/spec/support/shared/functional/execute_resource.rb +4 -4
  122. data/spec/support/shared/functional/file_resource.rb +1 -3
  123. data/spec/support/shared/functional/http.rb +20 -44
  124. data/spec/support/shared/functional/securable_resource.rb +4 -8
  125. data/spec/support/shared/functional/win32_service.rb +1 -1
  126. data/spec/support/shared/functional/windows_script.rb +2 -1
  127. data/spec/support/shared/integration/app_server_support.rb +3 -4
  128. data/spec/support/shared/integration/integration_helper.rb +1 -0
  129. data/spec/support/shared/integration/knife_support.rb +5 -5
  130. data/spec/support/shared/unit/application_dot_d.rb +10 -4
  131. data/spec/support/shared/unit/file_system_support.rb +3 -2
  132. data/spec/support/shared/unit/platform_introspector.rb +12 -12
  133. data/spec/support/shared/unit/provider/file.rb +1 -1
  134. data/spec/support/shared/unit/script_resource.rb +1 -1
  135. data/spec/support/shared/unit/windows_script_resource.rb +1 -1
  136. data/spec/tiny_server.rb +1 -1
  137. data/spec/unit/api_client/registration_spec.rb +1 -1
  138. data/spec/unit/api_client_spec.rb +5 -5
  139. data/spec/unit/api_client_v1_spec.rb +6 -6
  140. data/spec/unit/application/client_spec.rb +8 -8
  141. data/spec/unit/application/exit_code_spec.rb +3 -2
  142. data/spec/unit/application/knife_spec.rb +1 -2
  143. data/spec/unit/audit/audit_event_proxy_spec.rb +14 -7
  144. data/spec/unit/audit/audit_reporter_spec.rb +20 -11
  145. data/spec/unit/audit/control_group_data_spec.rb +17 -12
  146. data/spec/unit/chef_fs/config_spec.rb +3 -3
  147. data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +1 -1
  148. data/spec/unit/chef_fs/parallelizer.rb +1 -1
  149. data/spec/unit/client_spec.rb +3 -3
  150. data/spec/unit/config_fetcher_spec.rb +1 -1
  151. data/spec/unit/cookbook/metadata_spec.rb +13 -13
  152. data/spec/unit/cookbook/synchronizer_spec.rb +6 -6
  153. data/spec/unit/cookbook_loader_spec.rb +17 -17
  154. data/spec/unit/cookbook_manifest_spec.rb +9 -9
  155. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +1 -2
  156. data/spec/unit/cookbook_uploader_spec.rb +2 -2
  157. data/spec/unit/cookbook_version_file_specificity_spec.rb +9 -9
  158. data/spec/unit/cookbook_version_spec.rb +2 -2
  159. data/spec/unit/data_bag_item_spec.rb +7 -7
  160. data/spec/unit/data_bag_spec.rb +1 -1
  161. data/spec/unit/data_collector_spec.rb +23 -23
  162. data/spec/unit/decorator_spec.rb +2 -2
  163. data/spec/unit/deprecated_spec.rb +2 -2
  164. data/spec/unit/dsl/data_query_spec.rb +3 -2
  165. data/spec/unit/dsl/declare_resource_spec.rb +1 -1
  166. data/spec/unit/dsl/platform_introspection_spec.rb +2 -2
  167. data/spec/unit/encrypted_data_bag_item/check_encrypted_spec.rb +2 -1
  168. data/spec/unit/encrypted_data_bag_item_spec.rb +2 -1
  169. data/spec/unit/environment_spec.rb +13 -13
  170. data/spec/unit/event_dispatch/dsl_spec.rb +1 -1
  171. data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +3 -3
  172. data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +2 -2
  173. data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +3 -3
  174. data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +1 -1
  175. data/spec/unit/http/authenticator_spec.rb +4 -3
  176. data/spec/unit/http/json_input_spec.rb +1 -1
  177. data/spec/unit/http/socketless_chef_zero_client_spec.rb +15 -15
  178. data/spec/unit/key_spec.rb +8 -8
  179. data/spec/unit/knife/bootstrap_spec.rb +14 -10
  180. data/spec/unit/knife/client_bulk_delete_spec.rb +4 -4
  181. data/spec/unit/knife/configure_client_spec.rb +1 -1
  182. data/spec/unit/knife/configure_spec.rb +1 -1
  183. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +1 -1
  184. data/spec/unit/knife/cookbook_delete_spec.rb +2 -2
  185. data/spec/unit/knife/cookbook_download_spec.rb +2 -2
  186. data/spec/unit/knife/cookbook_metadata_spec.rb +4 -4
  187. data/spec/unit/knife/cookbook_upload_spec.rb +7 -5
  188. data/spec/unit/knife/core/bootstrap_context_spec.rb +1 -1
  189. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +2 -2
  190. data/spec/unit/knife/core/gem_glob_loader_spec.rb +4 -4
  191. data/spec/unit/knife/core/hashed_command_loader_spec.rb +4 -2
  192. data/spec/unit/knife/core/node_editor_spec.rb +12 -12
  193. data/spec/unit/knife/core/ui_spec.rb +11 -11
  194. data/spec/unit/knife/data_bag_from_file_spec.rb +2 -1
  195. data/spec/unit/knife/data_bag_show_spec.rb +2 -1
  196. data/spec/unit/knife/key_create_spec.rb +1 -1
  197. data/spec/unit/knife/key_delete_spec.rb +3 -3
  198. data/spec/unit/knife/key_edit_spec.rb +4 -4
  199. data/spec/unit/knife/key_list_spec.rb +1 -1
  200. data/spec/unit/knife/key_show_spec.rb +3 -3
  201. data/spec/unit/knife/node_bulk_delete_spec.rb +3 -3
  202. data/spec/unit/knife/node_delete_spec.rb +2 -2
  203. data/spec/unit/knife/node_edit_spec.rb +1 -1
  204. data/spec/unit/knife/node_environment_set_spec.rb +1 -1
  205. data/spec/unit/knife/node_from_file_spec.rb +1 -1
  206. data/spec/unit/knife/node_policy_set_spec.rb +1 -1
  207. data/spec/unit/knife/node_run_list_add_spec.rb +1 -1
  208. data/spec/unit/knife/node_run_list_remove_spec.rb +1 -1
  209. data/spec/unit/knife/node_run_list_set_spec.rb +1 -1
  210. data/spec/unit/knife/node_show_spec.rb +1 -1
  211. data/spec/unit/knife/raw_spec.rb +2 -2
  212. data/spec/unit/knife/role_bulk_delete_spec.rb +2 -2
  213. data/spec/unit/knife/role_create_spec.rb +1 -1
  214. data/spec/unit/knife/role_delete_spec.rb +1 -1
  215. data/spec/unit/knife/role_edit_spec.rb +1 -1
  216. data/spec/unit/knife/role_env_run_list_add_spec.rb +1 -1
  217. data/spec/unit/knife/role_env_run_list_clear_spec.rb +1 -1
  218. data/spec/unit/knife/role_env_run_list_remove_spec.rb +1 -1
  219. data/spec/unit/knife/role_env_run_list_replace_spec.rb +1 -1
  220. data/spec/unit/knife/role_env_run_list_set_spec.rb +1 -1
  221. data/spec/unit/knife/role_from_file_spec.rb +1 -1
  222. data/spec/unit/knife/role_run_list_add_spec.rb +1 -1
  223. data/spec/unit/knife/role_run_list_clear_spec.rb +1 -1
  224. data/spec/unit/knife/role_run_list_remove_spec.rb +1 -1
  225. data/spec/unit/knife/role_run_list_replace_spec.rb +1 -1
  226. data/spec/unit/knife/role_run_list_set_spec.rb +1 -1
  227. data/spec/unit/knife/ssh_spec.rb +27 -17
  228. data/spec/unit/knife/ssl_check_spec.rb +4 -4
  229. data/spec/unit/knife/ssl_fetch_spec.rb +5 -5
  230. data/spec/unit/knife/status_spec.rb +3 -2
  231. data/spec/unit/knife/supermarket_download_spec.rb +4 -4
  232. data/spec/unit/knife/supermarket_install_spec.rb +5 -4
  233. data/spec/unit/knife/supermarket_share_spec.rb +1 -1
  234. data/spec/unit/knife_spec.rb +34 -33
  235. data/spec/unit/lwrp_spec.rb +19 -19
  236. data/spec/unit/mixin/homebrew_user_spec.rb +1 -1
  237. data/spec/unit/mixin/params_validate_spec.rb +10 -10
  238. data/spec/unit/mixin/properties_spec.rb +4 -4
  239. data/spec/unit/mixin/shell_out_spec.rb +27 -27
  240. data/spec/unit/mixin/template_spec.rb +4 -8
  241. data/spec/unit/mixin/unformatter_spec.rb +1 -2
  242. data/spec/unit/mixin/user_context_spec.rb +1 -2
  243. data/spec/unit/mixin/which.rb +2 -0
  244. data/spec/unit/mixin/windows_architecture_helper_spec.rb +3 -3
  245. data/spec/unit/node/attribute_spec.rb +79 -79
  246. data/spec/unit/node/immutable_collections_spec.rb +50 -50
  247. data/spec/unit/node_spec.rb +16 -16
  248. data/spec/unit/org_spec.rb +3 -3
  249. data/spec/unit/policy_builder/policyfile_spec.rb +2 -2
  250. data/spec/unit/property/state_spec.rb +26 -25
  251. data/spec/unit/property/validation_spec.rb +14 -13
  252. data/spec/unit/property_spec.rb +10 -9
  253. data/spec/unit/provider/apt_update_spec.rb +6 -6
  254. data/spec/unit/provider/cron_spec.rb +15 -15
  255. data/spec/unit/provider/dsc_resource_spec.rb +6 -3
  256. data/spec/unit/provider/dsc_script_spec.rb +1 -1
  257. data/spec/unit/provider/execute_spec.rb +5 -5
  258. data/spec/unit/provider/git_spec.rb +39 -39
  259. data/spec/unit/provider/group/dscl_spec.rb +3 -3
  260. data/spec/unit/provider/group/groupadd_spec.rb +1 -1
  261. data/spec/unit/provider/group_spec.rb +2 -3
  262. data/spec/unit/provider/ifconfig/aix_spec.rb +1 -1
  263. data/spec/unit/provider/ifconfig/debian_spec.rb +2 -2
  264. data/spec/unit/provider/ifconfig_spec.rb +45 -16
  265. data/spec/unit/provider/launchd_spec.rb +23 -15
  266. data/spec/unit/provider/link_spec.rb +22 -11
  267. data/spec/unit/provider/mount/aix_spec.rb +6 -6
  268. data/spec/unit/provider/mount/mount_spec.rb +31 -31
  269. data/spec/unit/provider/mount/solaris_spec.rb +11 -11
  270. data/spec/unit/provider/ohai_spec.rb +1 -1
  271. data/spec/unit/provider/osx_profile_spec.rb +5 -7
  272. data/spec/unit/provider/package/apt_spec.rb +5 -5
  273. data/spec/unit/provider/package/bff_spec.rb +1 -1
  274. data/spec/unit/provider/package/cab_spec.rb +1 -1
  275. data/spec/unit/provider/package/chocolatey_spec.rb +8 -8
  276. data/spec/unit/provider/package/freebsd/pkg_spec.rb +1 -1
  277. data/spec/unit/provider/package/ips_spec.rb +6 -6
  278. data/spec/unit/provider/package/macports_spec.rb +1 -1
  279. data/spec/unit/provider/package/msu_spec.rb +1 -1
  280. data/spec/unit/provider/package/openbsd_spec.rb +15 -11
  281. data/spec/unit/provider/package/pacman_spec.rb +3 -3
  282. data/spec/unit/provider/package/paludis_spec.rb +4 -4
  283. data/spec/unit/provider/package/portage_spec.rb +1 -1
  284. data/spec/unit/provider/package/powershell_spec.rb +1 -1
  285. data/spec/unit/provider/package/smartos_spec.rb +3 -3
  286. data/spec/unit/provider/package/solaris_spec.rb +1 -1
  287. data/spec/unit/provider/package/windows/exe_spec.rb +9 -9
  288. data/spec/unit/provider/package/windows/msi_spec.rb +7 -7
  289. data/spec/unit/provider/package/windows_spec.rb +2 -1
  290. data/spec/unit/provider/package/yum/yum_cache_spec.rb +1 -1
  291. data/spec/unit/provider/package/zypper_spec.rb +4 -4
  292. data/spec/unit/provider/package_spec.rb +1 -1
  293. data/spec/unit/provider/powershell_script_spec.rb +7 -7
  294. data/spec/unit/provider/registry_key_spec.rb +1 -1
  295. data/spec/unit/provider/remote_directory_spec.rb +6 -6
  296. data/spec/unit/provider/route_spec.rb +11 -11
  297. data/spec/unit/provider/service/arch_service_spec.rb +13 -13
  298. data/spec/unit/provider/service/debian_service_spec.rb +2 -1
  299. data/spec/unit/provider/service/freebsd_service_spec.rb +28 -24
  300. data/spec/unit/provider/service/gentoo_service_spec.rb +2 -2
  301. data/spec/unit/provider/service/init_service_spec.rb +11 -11
  302. data/spec/unit/provider/service/invokercd_service_spec.rb +11 -11
  303. data/spec/unit/provider/service/macosx_spec.rb +5 -5
  304. data/spec/unit/provider/service/openbsd_service_spec.rb +15 -11
  305. data/spec/unit/provider/service/simple_service_spec.rb +7 -7
  306. data/spec/unit/provider/service/upstart_service_spec.rb +14 -14
  307. data/spec/unit/provider/service/windows_spec.rb +53 -35
  308. data/spec/unit/provider/subversion_spec.rb +8 -4
  309. data/spec/unit/provider/systemd_unit_spec.rb +142 -142
  310. data/spec/unit/provider/template/content_spec.rb +29 -29
  311. data/spec/unit/provider/windows_task_spec.rb +1 -1
  312. data/spec/unit/provider_resolver_spec.rb +75 -75
  313. data/spec/unit/provider_spec.rb +2 -4
  314. data/spec/unit/recipe_spec.rb +4 -4
  315. data/spec/unit/resource/batch_spec.rb +1 -1
  316. data/spec/unit/resource/chef_gem_spec.rb +1 -1
  317. data/spec/unit/resource/chocolatey_config_spec.rb +1 -1
  318. data/spec/unit/resource/chocolatey_source_spec.rb +1 -1
  319. data/spec/unit/resource/directory_spec.rb +1 -1
  320. data/spec/unit/resource/dnf_package_spec.rb +1 -1
  321. data/spec/unit/resource/dsc_resource_spec.rb +1 -1
  322. data/spec/unit/resource/file/verification_spec.rb +1 -2
  323. data/spec/unit/resource/file_spec.rb +1 -1
  324. data/spec/unit/resource/group_spec.rb +1 -1
  325. data/spec/unit/resource/link_spec.rb +1 -1
  326. data/spec/unit/resource/osx_profile_spec.rb +2 -1
  327. data/spec/unit/resource/powershell_script_spec.rb +12 -7
  328. data/spec/unit/resource/registry_key_spec.rb +3 -3
  329. data/spec/unit/resource/rhsm_subscription_spec.rb +1 -1
  330. data/spec/unit/resource/service_spec.rb +1 -1
  331. data/spec/unit/resource/template_spec.rb +2 -2
  332. data/spec/unit/resource/windows_env_spec.rb +1 -1
  333. data/spec/unit/resource/windows_service_spec.rb +5 -5
  334. data/spec/unit/resource/windows_task_spec.rb +6 -2
  335. data/spec/unit/resource/yum_package_spec.rb +1 -1
  336. data/spec/unit/resource_collection/resource_list_spec.rb +1 -1
  337. data/spec/unit/resource_collection/resource_set_spec.rb +7 -7
  338. data/spec/unit/resource_collection/stepable_iterator_spec.rb +2 -2
  339. data/spec/unit/resource_collection_spec.rb +4 -4
  340. data/spec/unit/resource_definition_spec.rb +2 -2
  341. data/spec/unit/resource_inspector_spec.rb +1 -1
  342. data/spec/unit/resource_reporter_spec.rb +4 -4
  343. data/spec/unit/resource_spec.rb +22 -22
  344. data/spec/unit/role_spec.rb +3 -3
  345. data/spec/unit/run_context/cookbook_compiler_spec.rb +23 -23
  346. data/spec/unit/run_list/run_list_expansion_spec.rb +9 -6
  347. data/spec/unit/run_list_spec.rb +1 -1
  348. data/spec/unit/runner_spec.rb +3 -3
  349. data/spec/unit/search/query_spec.rb +3 -2
  350. data/spec/unit/shell/model_wrapper_spec.rb +1 -1
  351. data/spec/unit/shell/shell_session_spec.rb +8 -11
  352. data/spec/unit/shell_spec.rb +1 -2
  353. data/spec/unit/user_spec.rb +4 -4
  354. data/spec/unit/user_v1_spec.rb +3 -3
  355. data/spec/unit/util/backup_spec.rb +1 -1
  356. data/spec/unit/util/dsc/lcm_output_parser_spec.rb +13 -13
  357. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +3 -3
  358. data/spec/unit/util/editor_spec.rb +1 -1
  359. data/spec/unit/util/powershell/ps_credential_spec.rb +3 -2
  360. data/spec/unit/util/threaded_job_queue_spec.rb +2 -2
  361. data/spec/unit/version_class_spec.rb +4 -4
  362. data/spec/unit/win32/registry_spec.rb +5 -5
  363. data/spec/unit/win32/security_spec.rb +2 -1
  364. data/tasks/announce.rb +4 -11
  365. metadata +10 -6
  366. data/tasks/maintainers.rb +0 -211
  367. data/tasks/templates/prerelease.md.erb +0 -35
@@ -175,20 +175,20 @@ end
175
175
  describe Chef::FileContentManagement::Deploy::Cp do
176
176
 
177
177
  let(:unix_invariants) do
178
- [
179
- :uid,
180
- :gid,
181
- :mode,
182
- :ino,
183
- ]
178
+ %i{
179
+ uid
180
+ gid
181
+ mode
182
+ ino
183
+ }
184
184
  end
185
185
 
186
186
  let(:security_descriptor_invariants) do
187
- [
188
- :owner,
189
- :group,
190
- :dacl,
191
- ]
187
+ %i{
188
+ owner
189
+ group
190
+ dacl
191
+ }
192
192
  end
193
193
 
194
194
  it_should_behave_like "a content deploy strategy"
@@ -198,11 +198,11 @@ end
198
198
  describe Chef::FileContentManagement::Deploy::MvUnix, :unix_only do
199
199
 
200
200
  let(:unix_invariants) do
201
- [
202
- :uid,
203
- :gid,
204
- :mode,
205
- ]
201
+ %i{
202
+ uid
203
+ gid
204
+ mode
205
+ }
206
206
  end
207
207
 
208
208
  it_should_behave_like "a content deploy strategy"
@@ -216,11 +216,11 @@ describe Chef::FileContentManagement::Deploy::MvWindows, :windows_only do
216
216
  context "when a file has no sacl" do
217
217
 
218
218
  let(:security_descriptor_invariants) do
219
- [
220
- :owner,
221
- :group,
222
- :dacl,
223
- ]
219
+ %i{
220
+ owner
221
+ group
222
+ dacl
223
+ }
224
224
  end
225
225
 
226
226
  it_should_behave_like "a content deploy strategy"
@@ -49,7 +49,7 @@ describe Chef::Knife::Exec do
49
49
  code = "$output.puts nodes.all"
50
50
  @knife.config[:exec] = code
51
51
  @knife.run
52
- expect($output.string).to match(%r{node\[ohai-world\]})
52
+ expect($output.string).to match(/node\[ohai-world\]/)
53
53
  end
54
54
 
55
55
  end
@@ -31,7 +31,7 @@ describe Chef::Knife::Ssh do
31
31
  @server.stop
32
32
  end
33
33
 
34
- let(:ssh_config) { Hash.new }
34
+ let(:ssh_config) { {} }
35
35
  before do
36
36
  allow(Net::SSH).to receive(:configuration_for).and_return(ssh_config)
37
37
  end
@@ -301,7 +301,7 @@ describe Chef::Knife::Ssh do
301
301
  end
302
302
 
303
303
  it "uses the ssh_gateway_identity file" do
304
- expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { keys: File.expand_path("#{ENV['HOME']}/.ssh/aws-gateway.rsa").squeeze("/"), keys_only: true })
304
+ expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { keys: File.expand_path("#{ENV["HOME"]}/.ssh/aws-gateway.rsa").squeeze("/"), keys_only: true })
305
305
  @knife.run
306
306
  expect(@knife.config[:ssh_gateway_identity]).to eq("~/.ssh/aws-gateway.rsa")
307
307
  end
@@ -315,7 +315,7 @@ describe Chef::Knife::Ssh do
315
315
  end
316
316
 
317
317
  it "uses the ssh_gateway_identity file" do
318
- expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { keys: File.expand_path("#{ENV['HOME']}/.ssh/aws-gateway.rsa").squeeze("/"), keys_only: true })
318
+ expect(@knife.session).to receive(:via).with("ec2.public_hostname", "user", { keys: File.expand_path("#{ENV["HOME"]}/.ssh/aws-gateway.rsa").squeeze("/"), keys_only: true })
319
319
  @knife.run
320
320
  expect(@knife.config[:ssh_gateway_identity]).to eq("~/.ssh/aws-gateway.rsa")
321
321
  end
@@ -26,7 +26,7 @@ describe Chef::Mixin::UserContext, windows_only: true do
26
26
 
27
27
  let(:get_user_name_a) do
28
28
  FFI.ffi_lib "advapi32.dll"
29
- FFI.attach_function :GetUserNameA, [ :pointer, :pointer ], :bool
29
+ FFI.attach_function :GetUserNameA, %i{pointer pointer}, :bool
30
30
  end
31
31
 
32
32
  let(:process_username) do
@@ -36,12 +36,14 @@ describe Chef::Mixin::UserContext, windows_only: true do
36
36
  if succeeded || last_error != Chef::ReservedNames::Win32::API::Error::ERROR_INSUFFICIENT_BUFFER
37
37
  raise Chef::Exceptions::Win32APIError, "Expected ERROR_INSUFFICIENT_BUFFER from GetUserNameA but it returned the following error: #{last_error}"
38
38
  end
39
+
39
40
  user_name = FFI::MemoryPointer.new :char, (name_size.read_long)
40
41
  succeeded = get_user_name_a.call(user_name, name_size)
41
42
  last_error = FFI::LastError.error
42
43
  if succeeded == 0 || last_error != 0
43
44
  raise Chef::Exceptions::Win32APIError, "GetUserNameA failed with #{lasterror}"
44
45
  end
46
+
45
47
  user_name.read_string
46
48
  end
47
49
 
@@ -44,7 +44,7 @@ describe Chef::Platform::Rebooter do
44
44
 
45
45
  let(:expected) do
46
46
  {
47
- windows: "#{ENV['SYSTEMROOT']}/System32/shutdown.exe /r /t 300 /c \"rebooter spec test\"",
47
+ windows: "#{ENV["SYSTEMROOT"]}/System32/shutdown.exe /r /t 300 /c \"rebooter spec test\"",
48
48
  linux: 'shutdown -r +5 "rebooter spec test" &',
49
49
  solaris: 'shutdown -i6 -g5 -y "rebooter spec test" &',
50
50
  }
@@ -77,7 +77,7 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
77
77
  include Chef::Mixin::ShellOut
78
78
 
79
79
  def get_user_id
80
- shell_out("id -u #{ENV['USER']}").stdout.chomp
80
+ shell_out("id -u #{ENV["USER"]}").stdout.chomp
81
81
  end
82
82
 
83
83
  describe "When service is a subsystem" do
@@ -40,7 +40,7 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
40
40
  directory = []
41
41
  if priority.is_a? Hash
42
42
  priority.each do |level, o|
43
- directory << "/etc/rc.d/rc#{level}.d/#{(o[0] == :start ? 'S' : 'K')}#{o[1]}#{new_resource.service_name}"
43
+ directory << "/etc/rc.d/rc#{level}.d/#{(o[0] == :start ? "S" : "K")}#{o[1]}#{new_resource.service_name}"
44
44
  end
45
45
  directory
46
46
  else
@@ -89,7 +89,7 @@ end
89
89
  metadata = { unix_only: true,
90
90
  requires_root: true,
91
91
  provider: { package: Chef::Provider::Package::Apt },
92
- arch: "x86_64" # test packages are 64bit
92
+ arch: "x86_64", # test packages are 64bit
93
93
  }
94
94
 
95
95
  describe Chef::Resource::AptPackage, metadata do
@@ -22,7 +22,7 @@ describe Chef::Resource::ChocolateyPackage, :windows_only, :choco_installed do
22
22
  include Chef::Mixin::PowershellOut
23
23
 
24
24
  let(:package_name) { "test-A" }
25
- let(:package_list) { proc { powershell_out!("choco list -lo -r #{Array(package_name).join(' ')}").stdout.chomp } }
25
+ let(:package_list) { proc { powershell_out!("choco list -lo -r #{Array(package_name).join(" ")}").stdout.chomp } }
26
26
  let(:package_source) { File.join(CHEF_SPEC_ASSETS, "chocolatey_feed") }
27
27
 
28
28
  subject do
@@ -63,7 +63,7 @@ describe Chef::Resource::ChocolateyPackage, :windows_only, :choco_installed do
63
63
  end
64
64
 
65
65
  context "installing multiple packages" do
66
- let(:package_name) { [ "test-A", "test-B" ] }
66
+ let(:package_name) { %w{test-A test-B} }
67
67
 
68
68
  it "installs both packages" do
69
69
  subject.run_action(:install)
@@ -25,9 +25,7 @@ describe Chef::Resource::CookbookFile do
25
25
  let(:source) { "java.response" }
26
26
  let(:cookbook_name) { "java" }
27
27
  let(:expected_content) do
28
- content = File.open(File.join(CHEF_SPEC_DATA, "cookbooks", "java", "files", "default", "java.response"), "rb") do |f|
29
- f.read
30
- end
28
+ content = File.open(File.join(CHEF_SPEC_DATA, "cookbooks", "java", "files", "default", "java.response"), "rb", &:read)
31
29
  content.force_encoding(Encoding::BINARY) if content.respond_to?(:force_encoding)
32
30
  content
33
31
  end
@@ -28,7 +28,7 @@ describe Chef::Resource::Cron, :requires_root, :unix_only do
28
28
  # Platform specific validation routines.
29
29
  def cron_should_exists(cron_name, command)
30
30
  case ohai[:platform]
31
- when "aix", "solaris", "opensolaris", "solaris2", "omnios"
31
+ when "aix", "opensolaris", "solaris2", "omnios"
32
32
  expect(shell_out("crontab -l #{new_resource.user} | grep \"#{cron_name}\"").exitstatus).to eq(0)
33
33
  expect(shell_out("crontab -l #{new_resource.user} | grep \"#{cron_name}\"").stdout.lines.to_a.size).to eq(1)
34
34
  expect(shell_out("crontab -l #{new_resource.user} | grep \"#{command}\"").exitstatus).to eq(0)
@@ -43,7 +43,7 @@ describe Chef::Resource::Cron, :requires_root, :unix_only do
43
43
 
44
44
  def cron_should_not_exists(cron_name)
45
45
  case ohai[:platform]
46
- when "aix", "solaris", "opensolaris", "solaris2", "omnios"
46
+ when "aix", "opensolaris", "solaris2", "omnios"
47
47
  expect(shell_out("crontab -l #{new_resource.user} | grep \"#{cron_name}\"").exitstatus).to eq(1)
48
48
  expect(shell_out("crontab -l #{new_resource.user} | grep \"#{new_resource.command}\"").stdout.lines.to_a.size).to eq(0)
49
49
  else
@@ -57,7 +57,7 @@ describe Chef::Resource::Cron, :requires_root, :unix_only do
57
57
  new_resource = Chef::Resource::Cron.new("Chef functional test cron", run_context)
58
58
  new_resource.user "root"
59
59
  # @hourly is not supported on solaris, aix
60
- if ohai[:platform] == "solaris" || ohai[:platform] == "solaris2" || ohai[:platform] == "aix"
60
+ if ohai[:platform] == "solaris2" || ohai[:platform] == "aix"
61
61
  new_resource.minute "0 * * * *"
62
62
  else
63
63
  new_resource.minute "@hourly"
@@ -118,6 +118,7 @@ describe Chef::Resource::Cron, :requires_root, :unix_only do
118
118
 
119
119
  def cron_attribute_should_exists(cron_name, attribute, value)
120
120
  return if %w{aix solaris}.include?(ohai[:platform])
121
+
121
122
  # Test if the attribute exists on newly created cron
122
123
  cron_should_exists(cron_name, "")
123
124
  expect(shell_out("crontab -l -u #{new_resource.user} | grep '#{attribute.upcase}=\"#{value}\"'").exitstatus).to eq(0)
@@ -273,7 +273,7 @@ describe Chef::Resource::DpkgPackage, :requires_root, :debian_family_only, arch:
273
273
 
274
274
  it "should remove both packages when called with two" do
275
275
  shell_out!("dpkg -i #{test1_0} #{test2_0}")
276
- set_dpkg_package_name [ "chef-integration-test", "chef-integration-test2" ]
276
+ set_dpkg_package_name %w{chef-integration-test chef-integration-test2}
277
277
  dpkg_package.run_action(action)
278
278
  expect(dpkg_package).to be_updated_by_last_action
279
279
  should_be_purged_or_removed("chef-integration-test")
@@ -282,7 +282,7 @@ describe Chef::Resource::DpkgPackage, :requires_root, :debian_family_only, arch:
282
282
 
283
283
  it "should remove a package when only the first one is installed" do
284
284
  shell_out!("dpkg -i #{test1_0}")
285
- set_dpkg_package_name [ "chef-integration-test", "chef-integration-test2" ]
285
+ set_dpkg_package_name %w{chef-integration-test chef-integration-test2}
286
286
  dpkg_package.run_action(action)
287
287
  expect(dpkg_package).to be_updated_by_last_action
288
288
  should_be_purged_or_removed("chef-integration-test")
@@ -291,7 +291,7 @@ describe Chef::Resource::DpkgPackage, :requires_root, :debian_family_only, arch:
291
291
 
292
292
  it "should remove a package when only the second one is installed" do
293
293
  shell_out!("dpkg -i #{test2_0}")
294
- set_dpkg_package_name [ "chef-integration-test", "chef-integration-test2" ]
294
+ set_dpkg_package_name %w{chef-integration-test chef-integration-test2}
295
295
  dpkg_package.run_action(action)
296
296
  expect(dpkg_package).to be_updated_by_last_action
297
297
  should_be_purged_or_removed("chef-integration-test")
@@ -299,7 +299,7 @@ describe Chef::Resource::DpkgPackage, :requires_root, :debian_family_only, arch:
299
299
  end
300
300
 
301
301
  it "should do nothing when both packages are not installed" do
302
- set_dpkg_package_name [ "chef-integration-test", "chef-integration-test2" ]
302
+ set_dpkg_package_name %w{chef-integration-test chef-integration-test2}
303
303
  dpkg_package.run_action(action)
304
304
  expect(dpkg_package).not_to be_updated_by_last_action
305
305
  should_be_purged_or_removed("chef-integration-test")
@@ -46,7 +46,8 @@ describe Chef::Resource::DscResource, :windows_powershell_dsc_only do
46
46
  it "raises an exception if the resource is not found" do
47
47
  new_resource.resource "thisdoesnotexist"
48
48
  expect { new_resource.run_action(:run) }.to raise_error(
49
- Chef::Exceptions::ResourceNotFound)
49
+ Chef::Exceptions::ResourceNotFound
50
+ )
50
51
  end
51
52
  end
52
53
 
@@ -103,7 +103,7 @@ describe Chef::Resource::DscScript, :windows_powershell_dsc_only do
103
103
  ValueData = '#{test_registry_data}'
104
104
  Ensure = 'Present'
105
105
  }
106
- EOH
106
+ EOH
107
107
  end
108
108
 
109
109
  let(:dsc_code) { dsc_reg_code }
@@ -111,7 +111,7 @@ EOH
111
111
  <<-EOH
112
112
  param($testregkeyname, $testregvaluename)
113
113
  #{dsc_reg_code}
114
- EOH
114
+ EOH
115
115
  end
116
116
 
117
117
  let(:dsc_user_prefix) { "dsc" }
@@ -138,7 +138,7 @@ EOH
138
138
  $#{dsc_user_prefix_param_name},
139
139
  $#{dsc_user_suffix_param_name}
140
140
  )
141
- EOH
141
+ EOH
142
142
  end
143
143
 
144
144
  let(:config_param_section) { "" }
@@ -166,7 +166,7 @@ EOH
166
166
  PasswordChangeRequired = $false
167
167
  }
168
168
  }
169
- EOH
169
+ EOH
170
170
  end
171
171
 
172
172
  let(:dsc_user_config_data) do
@@ -180,12 +180,12 @@ EOH
180
180
  )
181
181
  }
182
182
 
183
- EOH
183
+ EOH
184
184
  end
185
185
 
186
186
  let(:dsc_environment_env_var_name) { "dsc_test_cwd" }
187
- let(:dsc_environment_no_fail_not_etc_directory) { "#{ENV['systemroot']}\\system32" }
188
- let(:dsc_environment_fail_etc_directory) { "#{ENV['systemroot']}\\system32\\drivers\\etc" }
187
+ let(:dsc_environment_no_fail_not_etc_directory) { "#{ENV["systemroot"]}\\system32" }
188
+ let(:dsc_environment_fail_etc_directory) { "#{ENV["systemroot"]}\\system32\\drivers\\etc" }
189
189
  let(:exception_message_signature) { "LL927-LL928" }
190
190
  let(:dsc_environment_config) do
191
191
  <<~EOH
@@ -199,7 +199,7 @@ EOH
199
199
  Value = $pwd.path
200
200
  Ensure = 'Present'
201
201
  }
202
- EOH
202
+ EOH
203
203
  end
204
204
 
205
205
  let(:dsc_config_name) do
@@ -249,7 +249,7 @@ EOH
249
249
  Name = '#{dsc_environment_env_var_name}'
250
250
  Ensure = 'Absent'
251
251
  }
252
- EOH
252
+ EOH
253
253
  removal_resource.run_action(:run)
254
254
  end
255
255
 
@@ -310,7 +310,7 @@ EOH
310
310
 
311
311
  it "should set a registry key according to parameters passed to the configuration" do
312
312
  dsc_test_resource.configuration_name(config_name_value)
313
- dsc_test_resource.flags({ :"#{reg_key_name_param_name}" => test_registry_key, :"#{reg_key_value_param_name}" => test_registry_value })
313
+ dsc_test_resource.flags({ "#{reg_key_name_param_name}": test_registry_key, "#{reg_key_value_param_name}": test_registry_value })
314
314
  expect(dsc_test_resource.registry_key_exists?(test_registry_key)).to eq(false)
315
315
  dsc_test_resource.run_action(:run)
316
316
  expect(dsc_test_resource.registry_key_exists?(test_registry_key)).to eq(true)
@@ -347,11 +347,9 @@ EOH
347
347
  shared_examples_for "a dsc_script with configuration data that takes parameters" do
348
348
  let(:dsc_user_code) { dsc_user_param_code }
349
349
  let(:config_param_section) { config_params }
350
- let(:config_flags) { { :"#{dsc_user_prefix_param_name}" => (dsc_user_prefix).to_s, :"#{dsc_user_suffix_param_name}" => (dsc_user_suffix).to_s } }
350
+ let(:config_flags) { { "#{dsc_user_prefix_param_name}": (dsc_user_prefix).to_s, "#{dsc_user_suffix_param_name}": (dsc_user_suffix).to_s } }
351
351
  it "does not directly contain the user name" do
352
- configuration_script_content = ::File.open(dsc_test_resource.command) do |file|
353
- file.read
354
- end
352
+ configuration_script_content = ::File.open(dsc_test_resource.command, &:read)
355
353
  expect(configuration_script_content.include?(dsc_user)).to be(false)
356
354
  end
357
355
  it_behaves_like "a dsc_script with configuration data"
@@ -361,9 +359,7 @@ EOH
361
359
  let(:dsc_user_code) { dsc_user_env_code }
362
360
 
363
361
  it "does not directly contain the user name" do
364
- configuration_script_content = ::File.open(dsc_test_resource.command) do |file|
365
- file.read
366
- end
362
+ configuration_script_content = ::File.open(dsc_test_resource.command, &:read)
367
363
  expect(configuration_script_content.include?(dsc_user)).to be(false)
368
364
  end
369
365
  it_behaves_like "a dsc_script with configuration data"
@@ -448,7 +444,7 @@ EOH
448
444
  }
449
445
  "@
450
446
  $ConfigurationData | out-file '#{configuration_data_path}' -force
451
- MYCODE
447
+ MYCODE
452
448
  end
453
449
 
454
450
  let(:powershell_script_resource) do
@@ -464,10 +460,10 @@ EOH
464
460
  User dsctestusercreate
465
461
  {
466
462
  UserName = '#{dsc_user}'
467
- Password = #{r.ps_credential('jf9a8m49jrajf4#')}
463
+ Password = #{r.ps_credential("jf9a8m49jrajf4#")}
468
464
  Ensure = "Present"
469
465
  }
470
- EOF
466
+ EOF
471
467
  r.configuration_data_script(configuration_data_path)
472
468
  end
473
469
  end
@@ -87,8 +87,8 @@ describe Chef::Resource::Execute do
87
87
  describe "when parent resource sets :environment" do
88
88
  before do
89
89
  resource.environment({
90
- "SAWS_SECRET" => "supersecret",
91
- "SAWS_KEY" => "qwerty",
90
+ "SAWS_SECRET" => "supersecret",
91
+ "SAWS_KEY" => "qwerty",
92
92
  })
93
93
  end
94
94
 
@@ -69,7 +69,7 @@ describe Chef::Resource::Git, requires_git: true do
69
69
  [user]
70
70
  name = frodoTbaggins
71
71
  email = frodo@shire.org
72
- E
72
+ E
73
73
  end
74
74
 
75
75
  before(:each) do
@@ -220,7 +220,7 @@ E
220
220
  context "when dealing with a repo with a degenerate tag named 'HEAD'" do
221
221
  before do
222
222
  shell_out!("git tag -m\"degenerate tag\" HEAD ed181b3419b6f489bedab282348162a110d6d3a1",
223
- cwd: origin_repo)
223
+ cwd: origin_repo)
224
224
  end
225
225
 
226
226
  let(:basic_git_resource) do
@@ -240,16 +240,16 @@ E
240
240
  it "checks out the (master) HEAD revision and ignores the tag" do
241
241
  basic_git_resource.run_action(:sync)
242
242
  head_rev = shell_out!("git rev-parse HEAD",
243
- cwd: deploy_directory,
244
- returns: [0]).stdout.strip
243
+ cwd: deploy_directory,
244
+ returns: [0]).stdout.strip
245
245
  expect(head_rev).to eq(rev_head)
246
246
  end
247
247
 
248
248
  it "checks out the (master) HEAD revision when no revision is specified (ignores tag)" do
249
249
  git_resource_default_rev.run_action(:sync)
250
250
  head_rev = shell_out!("git rev-parse HEAD",
251
- cwd: deploy_directory,
252
- returns: [0]).stdout.strip
251
+ cwd: deploy_directory,
252
+ returns: [0]).stdout.strip
253
253
  expect(head_rev).to eq(rev_head)
254
254
  end
255
255