chef 16.3.38-universal-mingw32 → 16.5.64-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 (405) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Rakefile +2 -2
  4. data/bin/knife +1 -1
  5. data/chef-universal-mingw32.gemspec +0 -1
  6. data/chef.gemspec +2 -1
  7. data/distro/templates/powershell/chef/chef.psm1.erb +18 -18
  8. data/ext/win32-eventlog/Rakefile +2 -2
  9. data/ext/win32-eventlog/chef-log.man.erb +4 -4
  10. data/lib/chef/action_collection.rb +4 -0
  11. data/lib/chef/api_client/registration.rb +2 -2
  12. data/lib/chef/application.rb +19 -17
  13. data/lib/chef/application/apply.rb +17 -12
  14. data/lib/chef/application/base.rb +26 -23
  15. data/lib/chef/application/client.rb +10 -4
  16. data/lib/chef/application/exit_code.rb +13 -4
  17. data/lib/chef/application/knife.rb +22 -11
  18. data/lib/chef/application/solo.rb +2 -1
  19. data/lib/chef/application/windows_service.rb +39 -39
  20. data/lib/chef/application/windows_service_manager.rb +6 -6
  21. data/lib/chef/chef_class.rb +0 -1
  22. data/lib/chef/chef_fs/chef_fs_data_store.rb +54 -54
  23. data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +10 -10
  24. data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +8 -8
  25. data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +8 -8
  26. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
  27. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
  28. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +18 -18
  29. data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
  30. data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
  31. data/lib/chef/chef_fs/knife.rb +2 -2
  32. data/lib/chef/chef_fs/parallelizer.rb +0 -1
  33. data/lib/chef/client.rb +21 -22
  34. data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
  35. data/lib/chef/cookbook/synchronizer.rb +2 -2
  36. data/lib/chef/cookbook_site_streaming_uploader.rb +13 -11
  37. data/lib/chef/cookbook_uploader.rb +1 -1
  38. data/lib/chef/data_collector.rb +6 -5
  39. data/lib/chef/data_collector/config_validation.rb +22 -13
  40. data/lib/chef/data_collector/run_end_message.rb +13 -3
  41. data/lib/chef/data_collector/run_start_message.rb +1 -1
  42. data/lib/chef/deprecated.rb +1 -1
  43. data/lib/chef/deprecation/warnings.rb +2 -2
  44. data/lib/chef/digester.rb +2 -2
  45. data/lib/chef/dsl/chef_vault.rb +1 -1
  46. data/lib/chef/dsl/data_query.rb +2 -2
  47. data/lib/chef/dsl/platform_introspection.rb +9 -9
  48. data/lib/chef/encrypted_data_bag_item.rb +3 -4
  49. data/lib/chef/encrypted_data_bag_item/decryptor.rb +3 -3
  50. data/lib/chef/encrypted_data_bag_item/encryptor.rb +3 -3
  51. data/lib/chef/environment.rb +4 -4
  52. data/lib/chef/event_loggers/windows_eventlog.rb +2 -2
  53. data/lib/chef/exceptions.rb +5 -5
  54. data/lib/chef/file_access_control/windows.rb +5 -1
  55. data/lib/chef/file_content_management/tempfile.rb +9 -9
  56. data/lib/chef/formatters/doc.rb +7 -6
  57. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +6 -5
  58. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +3 -3
  59. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +9 -9
  60. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +2 -2
  61. data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +3 -3
  62. data/lib/chef/formatters/minimal.rb +5 -4
  63. data/lib/chef/handler.rb +2 -0
  64. data/lib/chef/http.rb +15 -13
  65. data/lib/chef/http/auth_credentials.rb +5 -1
  66. data/lib/chef/http/authenticator.rb +3 -1
  67. data/lib/chef/http/basic_client.rb +4 -2
  68. data/lib/chef/http/decompressor.rb +1 -1
  69. data/lib/chef/http/http_request.rb +7 -5
  70. data/lib/chef/http/socketless_chef_zero_client.rb +5 -2
  71. data/lib/chef/http/ssl_policies.rb +1 -1
  72. data/lib/chef/json_compat.rb +2 -2
  73. data/lib/chef/knife.rb +4 -4
  74. data/lib/chef/knife/bootstrap.rb +18 -16
  75. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  76. data/lib/chef/knife/bootstrap/templates/chef-full.erb +3 -3
  77. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +7 -7
  78. data/lib/chef/knife/client_create.rb +3 -3
  79. data/lib/chef/knife/config_get.rb +8 -97
  80. data/lib/chef/knife/config_get_profile.rb +9 -9
  81. data/lib/chef/knife/config_list.rb +139 -0
  82. data/lib/chef/knife/config_list_profiles.rb +8 -98
  83. data/lib/chef/knife/config_show.rb +127 -0
  84. data/lib/chef/knife/config_use.rb +61 -0
  85. data/lib/chef/knife/config_use_profile.rb +9 -24
  86. data/lib/chef/knife/configure.rb +4 -2
  87. data/lib/chef/knife/cookbook_download.rb +1 -1
  88. data/lib/chef/knife/cookbook_metadata.rb +1 -1
  89. data/lib/chef/knife/cookbook_upload.rb +23 -23
  90. data/lib/chef/knife/core/bootstrap_context.rb +2 -2
  91. data/lib/chef/knife/core/generic_presenter.rb +1 -1
  92. data/lib/chef/knife/core/hashed_command_loader.rb +2 -2
  93. data/lib/chef/knife/core/object_loader.rb +1 -1
  94. data/lib/chef/knife/core/windows_bootstrap_context.rb +42 -34
  95. data/lib/chef/knife/delete.rb +15 -15
  96. data/lib/chef/knife/exec.rb +4 -4
  97. data/lib/chef/knife/node_show.rb +2 -2
  98. data/lib/chef/knife/serve.rb +3 -3
  99. data/lib/chef/knife/ssh.rb +22 -7
  100. data/lib/chef/knife/ssl_check.rb +3 -3
  101. data/lib/chef/knife/status.rb +2 -2
  102. data/lib/chef/knife/user_create.rb +2 -2
  103. data/lib/chef/knife/xargs.rb +19 -19
  104. data/lib/chef/knife/yaml_convert.rb +1 -1
  105. data/lib/chef/local_mode.rb +2 -2
  106. data/lib/chef/log/syslog.rb +2 -2
  107. data/lib/chef/log/winevt.rb +2 -2
  108. data/lib/chef/mixin/checksum.rb +0 -1
  109. data/lib/chef/mixin/deep_merge.rb +35 -18
  110. data/lib/chef/mixin/openssl_helper.rb +4 -5
  111. data/lib/chef/mixin/shell_out.rb +1 -1
  112. data/lib/chef/mixin/template.rb +2 -2
  113. data/lib/chef/mixin/uris.rb +2 -2
  114. data/lib/chef/mixin/versioned_api.rb +1 -2
  115. data/lib/chef/mixin/which.rb +1 -1
  116. data/lib/chef/monkey_patches/net_http.rb +4 -4
  117. data/lib/chef/monkey_patches/webrick-utils.rb +10 -10
  118. data/lib/chef/node/attribute.rb +2 -4
  119. data/lib/chef/node_map.rb +2 -2
  120. data/lib/chef/platform/service_helpers.rb +1 -1
  121. data/lib/chef/policy_builder/policyfile.rb +2 -2
  122. data/lib/chef/property.rb +1 -1
  123. data/lib/chef/provider.rb +0 -4
  124. data/lib/chef/provider/cron/unix.rb +0 -2
  125. data/lib/chef/provider/file.rb +2 -2
  126. data/lib/chef/provider/git.rb +5 -5
  127. data/lib/chef/provider/group.rb +0 -2
  128. data/lib/chef/provider/group/suse.rb +5 -5
  129. data/lib/chef/provider/ifconfig.rb +1 -4
  130. data/lib/chef/provider/launchd.rb +2 -2
  131. data/lib/chef/provider/mount.rb +0 -2
  132. data/lib/chef/provider/mount/linux.rb +63 -0
  133. data/lib/chef/provider/package.rb +0 -2
  134. data/lib/chef/provider/package/rubygems.rb +22 -19
  135. data/lib/chef/provider/package/snap.rb +1 -2
  136. data/lib/chef/provider/package/windows.rb +2 -2
  137. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +12 -10
  138. data/lib/chef/provider/package/zypper.rb +1 -1
  139. data/lib/chef/provider/powershell_script.rb +21 -5
  140. data/lib/chef/provider/remote_file/content.rb +3 -0
  141. data/lib/chef/provider/remote_file/ftp.rb +6 -4
  142. data/lib/chef/provider/remote_file/sftp.rb +6 -4
  143. data/lib/chef/provider/route.rb +2 -6
  144. data/lib/chef/provider/service/arch.rb +1 -1
  145. data/lib/chef/provider/service/debian.rb +1 -1
  146. data/lib/chef/provider/service/gentoo.rb +2 -2
  147. data/lib/chef/provider/service/macosx.rb +4 -4
  148. data/lib/chef/provider/service/openbsd.rb +1 -4
  149. data/lib/chef/provider/service/redhat.rb +2 -2
  150. data/lib/chef/provider/service/upstart.rb +1 -1
  151. data/lib/chef/provider/service/windows.rb +10 -10
  152. data/lib/chef/provider/systemd_unit.rb +0 -2
  153. data/lib/chef/provider/template/content.rb +1 -0
  154. data/lib/chef/provider/template_finder.rb +2 -10
  155. data/lib/chef/provider/user/dscl.rb +5 -5
  156. data/lib/chef/provider/user/mac.rb +10 -10
  157. data/lib/chef/provider/windows_task.rb +1 -5
  158. data/lib/chef/provider/zypper_repository.rb +2 -3
  159. data/lib/chef/provider_resolver.rb +1 -1
  160. data/lib/chef/providers.rb +1 -1
  161. data/lib/chef/recipe.rb +2 -2
  162. data/lib/chef/resource.rb +7 -11
  163. data/lib/chef/resource/apt_repository.rb +2 -11
  164. data/lib/chef/resource/bff_package.rb +22 -0
  165. data/lib/chef/resource/breakpoint.rb +57 -2
  166. data/lib/chef/resource/build_essential.rb +1 -1
  167. data/lib/chef/resource/cab_package.rb +29 -0
  168. data/lib/chef/resource/chef_client_cron.rb +32 -25
  169. data/lib/chef/resource/chef_client_launchd.rb +194 -0
  170. data/lib/chef/resource/chef_client_scheduled_task.rb +21 -18
  171. data/lib/chef/resource/chef_client_systemd_timer.rb +26 -19
  172. data/lib/chef/resource/chef_client_trusted_certificate.rb +101 -0
  173. data/lib/chef/resource/chef_gem.rb +10 -10
  174. data/lib/chef/resource/chef_handler.rb +148 -4
  175. data/lib/chef/resource/chef_sleep.rb +2 -2
  176. data/lib/chef/resource/chef_vault_secret.rb +14 -14
  177. data/lib/chef/resource/cookbook_file.rb +2 -2
  178. data/lib/chef/resource/cron/cron_d.rb +0 -1
  179. data/lib/chef/resource/dnf_package.rb +2 -2
  180. data/lib/chef/resource/dsc_resource.rb +0 -1
  181. data/lib/chef/resource/dsc_script.rb +2 -2
  182. data/lib/chef/resource/execute.rb +8 -9
  183. data/lib/chef/resource/file.rb +4 -4
  184. data/lib/chef/resource/gem_package.rb +5 -5
  185. data/lib/chef/resource/homebrew_package.rb +3 -3
  186. data/lib/chef/resource/homebrew_update.rb +7 -7
  187. data/lib/chef/resource/hostname.rb +19 -19
  188. data/lib/chef/resource/launchd.rb +2 -1
  189. data/lib/chef/resource/locale.rb +2 -2
  190. data/lib/chef/resource/macos_userdefaults.rb +3 -3
  191. data/lib/chef/resource/notify_group.rb +0 -1
  192. data/lib/chef/resource/ohai.rb +46 -3
  193. data/lib/chef/resource/ohai_hint.rb +33 -0
  194. data/lib/chef/resource/openssl_dhparam.rb +29 -5
  195. data/lib/chef/resource/openssl_ec_private_key.rb +8 -3
  196. data/lib/chef/resource/openssl_ec_public_key.rb +4 -2
  197. data/lib/chef/resource/openssl_rsa_private_key.rb +8 -3
  198. data/lib/chef/resource/openssl_rsa_public_key.rb +2 -0
  199. data/lib/chef/resource/openssl_x509_certificate.rb +38 -35
  200. data/lib/chef/resource/openssl_x509_crl.rb +21 -10
  201. data/lib/chef/resource/openssl_x509_request.rb +37 -36
  202. data/lib/chef/resource/osx_profile.rb +292 -6
  203. data/lib/chef/resource/plist.rb +1 -1
  204. data/lib/chef/resource/powershell_package_source.rb +6 -6
  205. data/lib/chef/resource/powershell_script.rb +24 -30
  206. data/lib/chef/resource/reboot.rb +2 -2
  207. data/lib/chef/resource/remote_file.rb +3 -3
  208. data/lib/chef/resource/rhsm_register.rb +22 -10
  209. data/lib/chef/resource/ruby_block.rb +2 -2
  210. data/lib/chef/resource/scm/subversion.rb +2 -2
  211. data/lib/chef/resource/service.rb +3 -3
  212. data/lib/chef/resource/ssh_known_hosts_entry.rb +2 -2
  213. data/lib/chef/resource/sudo.rb +1 -1
  214. data/lib/chef/resource/support/cron.d.erb +1 -1
  215. data/lib/chef/resource/support/cron_access.erb +1 -1
  216. data/lib/chef/resource/support/sudoer.erb +1 -1
  217. data/lib/chef/resource/support/ulimit.erb +1 -1
  218. data/lib/chef/resource/sysctl.rb +6 -10
  219. data/lib/chef/resource/systemd_unit.rb +2 -2
  220. data/lib/chef/resource/template.rb +2 -2
  221. data/lib/chef/resource/timezone.rb +112 -73
  222. data/lib/chef/resource/windows_ad_join.rb +12 -3
  223. data/lib/chef/resource/windows_audit_policy.rb +3 -0
  224. data/lib/chef/resource/windows_auto_run.rb +2 -0
  225. data/lib/chef/resource/windows_certificate.rb +8 -4
  226. data/lib/chef/resource/windows_dfs_folder.rb +2 -0
  227. data/lib/chef/resource/windows_dfs_namespace.rb +2 -0
  228. data/lib/chef/resource/windows_dfs_server.rb +2 -0
  229. data/lib/chef/resource/windows_dns_record.rb +10 -7
  230. data/lib/chef/resource/windows_dns_zone.rb +12 -7
  231. data/lib/chef/resource/windows_feature.rb +2 -0
  232. data/lib/chef/resource/windows_feature_dism.rb +10 -0
  233. data/lib/chef/resource/windows_feature_powershell.rb +14 -2
  234. data/lib/chef/resource/windows_firewall_profile.rb +24 -20
  235. data/lib/chef/resource/windows_firewall_rule.rb +5 -3
  236. data/lib/chef/resource/windows_font.rb +3 -1
  237. data/lib/chef/resource/windows_package.rb +28 -5
  238. data/lib/chef/resource/windows_pagefile.rb +4 -0
  239. data/lib/chef/resource/windows_printer.rb +22 -21
  240. data/lib/chef/resource/windows_printer_port.rb +20 -17
  241. data/lib/chef/resource/windows_security_policy.rb +2 -0
  242. data/lib/chef/resource/windows_share.rb +5 -3
  243. data/lib/chef/resource/windows_shortcut.rb +2 -0
  244. data/lib/chef/resource/windows_uac.rb +2 -0
  245. data/lib/chef/resource/windows_user_privilege.rb +54 -53
  246. data/lib/chef/resource/windows_workgroup.rb +5 -6
  247. data/lib/chef/resource/yum_package.rb +2 -2
  248. data/lib/chef/resource_collection/stepable_iterator.rb +1 -2
  249. data/lib/chef/resources.rb +3 -1
  250. data/lib/chef/role.rb +2 -2
  251. data/lib/chef/run_context.rb +2 -2
  252. data/lib/chef/run_context/cookbook_compiler.rb +21 -21
  253. data/lib/chef/run_lock.rb +2 -2
  254. data/lib/chef/run_status.rb +2 -6
  255. data/lib/chef/search/query.rb +4 -5
  256. data/lib/chef/server_api_versions.rb +4 -0
  257. data/lib/chef/shell.rb +32 -27
  258. data/lib/chef/shell/ext.rb +11 -11
  259. data/lib/chef/shell/shell_session.rb +2 -2
  260. data/lib/chef/train_transport.rb +5 -104
  261. data/lib/chef/util/backup.rb +1 -1
  262. data/lib/chef/util/diff.rb +14 -14
  263. data/lib/chef/util/powershell/cmdlet.rb +4 -2
  264. data/lib/chef/util/powershell/ps_credential.rb +18 -14
  265. data/lib/chef/util/threaded_job_queue.rb +0 -2
  266. data/lib/chef/version.rb +1 -1
  267. data/lib/chef/win32/crypto.rb +1 -1
  268. data/lib/chef/win32/file.rb +2 -2
  269. data/lib/chef/win32/file/version_info.rb +5 -5
  270. data/lib/chef/win32/registry.rb +1 -2
  271. data/spec/data/shef-config.rb +1 -1
  272. data/spec/data/ssl/chef-rspec.cert +15 -15
  273. data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -5
  274. data/spec/functional/resource/aix_service_spec.rb +2 -2
  275. data/spec/functional/resource/aixinit_service_spec.rb +8 -8
  276. data/spec/functional/resource/bff_spec.rb +2 -2
  277. data/spec/functional/resource/cookbook_file_spec.rb +1 -1
  278. data/spec/functional/resource/dsc_resource_spec.rb +1 -1
  279. data/spec/functional/resource/dsc_script_spec.rb +0 -1
  280. data/spec/functional/resource/group_spec.rb +6 -6
  281. data/spec/functional/resource/insserv_spec.rb +5 -5
  282. data/spec/functional/resource/link_spec.rb +20 -20
  283. data/spec/functional/resource/powershell_script_spec.rb +4 -4
  284. data/spec/functional/resource/rpm_spec.rb +2 -2
  285. data/spec/functional/resource/user/dscl_spec.rb +1 -1
  286. data/spec/functional/resource/user/mac_user_spec.rb +1 -1
  287. data/spec/functional/resource/windows_certificate_spec.rb +3 -3
  288. data/spec/functional/resource/windows_font_spec.rb +49 -0
  289. data/spec/functional/resource/windows_security_policy_spec.rb +0 -3
  290. data/spec/functional/resource/windows_task_spec.rb +13 -13
  291. data/spec/functional/run_lock_spec.rb +24 -24
  292. data/spec/functional/version_spec.rb +3 -3
  293. data/spec/functional/win32/registry_spec.rb +8 -8
  294. data/spec/functional/win32/service_manager_spec.rb +1 -1
  295. data/spec/integration/client/client_spec.rb +4 -4
  296. data/spec/integration/client/exit_code_spec.rb +3 -2
  297. data/spec/integration/client/ipv6_spec.rb +1 -1
  298. data/spec/integration/knife/common_options_spec.rb +12 -12
  299. data/spec/integration/knife/config_list_spec.rb +220 -0
  300. data/spec/integration/knife/config_show_spec.rb +192 -0
  301. data/spec/integration/knife/config_use_spec.rb +198 -0
  302. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
  303. data/spec/integration/knife/diff_spec.rb +3 -1
  304. data/spec/integration/knife/download_spec.rb +3 -1
  305. data/spec/integration/knife/serve_spec.rb +5 -5
  306. data/spec/integration/knife/upload_spec.rb +3 -1
  307. data/spec/integration/ohai/ohai_spec.rb +61 -0
  308. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
  309. data/spec/integration/recipes/remote_directory.rb +1 -1
  310. data/spec/integration/solo/solo_spec.rb +5 -5
  311. data/spec/spec_helper.rb +12 -9
  312. data/spec/stress/win32/file_spec.rb +1 -1
  313. data/spec/support/chef_helpers.rb +2 -2
  314. data/spec/support/matchers/leak.rb +2 -2
  315. data/spec/support/platform_helpers.rb +17 -35
  316. data/spec/support/platforms/win32/spec_service.rb +1 -1
  317. data/spec/support/shared/functional/directory_resource.rb +1 -1
  318. data/spec/support/shared/functional/execute_resource.rb +1 -1
  319. data/spec/support/shared/functional/file_resource.rb +20 -20
  320. data/spec/support/shared/functional/securable_resource.rb +108 -27
  321. data/spec/support/shared/functional/win32_service.rb +2 -2
  322. data/spec/support/shared/functional/windows_script.rb +3 -3
  323. data/spec/support/shared/integration/integration_helper.rb +22 -52
  324. data/spec/support/shared/unit/application_dot_d.rb +5 -3
  325. data/spec/support/shared/unit/script_resource.rb +6 -20
  326. data/spec/support/shared/unit/windows_script_resource.rb +15 -28
  327. data/spec/tiny_server.rb +0 -1
  328. data/spec/unit/application/client_spec.rb +2 -2
  329. data/spec/unit/application/exit_code_spec.rb +10 -0
  330. data/spec/unit/application_spec.rb +4 -6
  331. data/spec/unit/chef_fs/parallelizer_spec.rb +5 -1
  332. data/spec/unit/chef_fs/path_util_spec.rb +1 -1
  333. data/spec/unit/cookbook/synchronizer_spec.rb +2 -2
  334. data/spec/unit/cookbook_spec.rb +2 -2
  335. data/spec/unit/data_collector/config_validation_spec.rb +208 -0
  336. data/spec/unit/data_collector_spec.rb +28 -113
  337. data/spec/unit/dsl/declare_resource_spec.rb +1 -1
  338. data/spec/unit/environment_spec.rb +7 -7
  339. data/spec/unit/file_access_control_spec.rb +1 -1
  340. data/spec/unit/http/api_versions_spec.rb +19 -1
  341. data/spec/unit/knife/bootstrap_spec.rb +20 -20
  342. data/spec/unit/knife/cookbook_download_spec.rb +4 -4
  343. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
  344. data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
  345. data/spec/unit/knife/core/ui_spec.rb +1 -0
  346. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +21 -12
  347. data/spec/unit/knife/ssh_spec.rb +2 -2
  348. data/spec/unit/knife/supermarket_share_spec.rb +1 -1
  349. data/spec/unit/lwrp_spec.rb +3 -3
  350. data/spec/unit/mixin/deep_merge_spec.rb +15 -0
  351. data/spec/unit/mixin/openssl_helper_spec.rb +1 -1
  352. data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
  353. data/spec/unit/mixin/securable_spec.rb +2 -2
  354. data/spec/unit/mixin/template_spec.rb +30 -30
  355. data/spec/unit/mixin/windows_architecture_helper_spec.rb +4 -4
  356. data/spec/unit/node/immutable_collections_spec.rb +8 -4
  357. data/spec/unit/node_spec.rb +5 -5
  358. data/spec/unit/provider/mount/linux_spec.rb +97 -0
  359. data/spec/unit/provider/package/chocolatey_spec.rb +1 -1
  360. data/spec/unit/provider/package/powershell_spec.rb +1 -1
  361. data/spec/unit/provider/package/rubygems_spec.rb +4 -1
  362. data/spec/unit/provider/powershell_script_spec.rb +11 -4
  363. data/spec/unit/provider/remote_directory_spec.rb +9 -9
  364. data/spec/unit/provider/route_spec.rb +0 -2
  365. data/spec/unit/provider/service/arch_service_spec.rb +3 -2
  366. data/spec/unit/provider/service/debian_service_spec.rb +1 -1
  367. data/spec/unit/provider/service/gentoo_service_spec.rb +7 -7
  368. data/spec/unit/provider/service/macosx_spec.rb +3 -3
  369. data/spec/unit/provider/service/redhat_spec.rb +2 -2
  370. data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
  371. data/spec/unit/provider_resolver_spec.rb +6 -6
  372. data/spec/unit/recipe_spec.rb +1 -1
  373. data/spec/unit/resource/batch_spec.rb +6 -6
  374. data/spec/unit/resource/chef_client_cron_spec.rb +35 -14
  375. data/spec/unit/resource/chef_client_launchd_spec.rb +127 -0
  376. data/spec/unit/resource/chef_client_systemd_timer_spec.rb +36 -1
  377. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +54 -0
  378. data/spec/unit/resource/execute_spec.rb +113 -118
  379. data/spec/unit/resource/launchd_spec.rb +8 -0
  380. data/spec/unit/resource/osx_profile_spec.rb +299 -0
  381. data/spec/unit/resource/powershell_script_spec.rb +11 -29
  382. data/spec/unit/resource/rhsm_register_spec.rb +56 -18
  383. data/spec/unit/resource/script_spec.rb +6 -1
  384. data/spec/unit/resource/timezone_spec.rb +63 -0
  385. data/spec/unit/resource/windows_feature_powershell_spec.rb +30 -4
  386. data/spec/unit/resource/windows_uac_spec.rb +1 -1
  387. data/spec/unit/resource/windows_user_privilege_spec.rb +55 -0
  388. data/spec/unit/role_spec.rb +11 -11
  389. data/spec/unit/run_lock_spec.rb +5 -1
  390. data/spec/unit/runner_spec.rb +1 -2
  391. data/spec/unit/server_api_spec.rb +43 -16
  392. data/spec/unit/shell/shell_ext_spec.rb +46 -3
  393. data/spec/unit/shell/shell_session_spec.rb +35 -64
  394. data/spec/unit/shell_spec.rb +16 -19
  395. data/spec/unit/train_transport_spec.rb +14 -13
  396. data/spec/unit/util/selinux_spec.rb +2 -0
  397. data/tasks/rspec.rb +1 -3
  398. metadata +42 -33
  399. data/lib/chef/dist.rb +0 -68
  400. data/lib/chef/provider/osx_profile.rb +0 -255
  401. data/spec/integration/knife/config_get_profile_spec.rb +0 -113
  402. data/spec/integration/knife/config_get_spec.rb +0 -191
  403. data/spec/integration/knife/config_list_profiles_spec.rb +0 -218
  404. data/spec/integration/knife/config_use_profile_spec.rb +0 -154
  405. data/spec/unit/provider/osx_profile_spec.rb +0 -255
@@ -3,7 +3,6 @@ require "chef/mixin/shell_out"
3
3
  require "ohai/mixin/http_helper"
4
4
  require "ohai/mixin/gce_metadata"
5
5
  require "chef/mixin/powershell_out"
6
- require "chef/version_class"
7
6
 
8
7
  class ShellHelpers
9
8
  extend Chef::Mixin::ShellOut
@@ -27,11 +26,11 @@ class DependencyProc < Proc
27
26
  end
28
27
 
29
28
  def ruby_64bit?
30
- !!(RbConfig::CONFIG["host_cpu"] =~ /x86_64/)
29
+ RbConfig::CONFIG["host_cpu"].include?("x86_64")
31
30
  end
32
31
 
33
32
  def ruby_32bit?
34
- !!(RbConfig::CONFIG["host_cpu"] =~ /i686/)
33
+ RbConfig::CONFIG["host_cpu"].include?("i686")
35
34
  end
36
35
 
37
36
  def windows?
@@ -58,17 +57,17 @@ end
58
57
  def windows_2012r2?
59
58
  return false unless windows?
60
59
 
61
- (host_version && host_version.start_with?("6.3"))
60
+ (win32_os_version && win32_os_version.start_with?("6.3"))
62
61
  end
63
62
 
64
63
  def windows_gte_10?
65
64
  return false unless windows?
66
65
 
67
- Gem::Requirement.new(">= 10").satisfied_by?(Gem::Version.new(host_version))
66
+ Gem::Requirement.new(">= 10").satisfied_by?(Gem::Version.new(win32_os_version))
68
67
  end
69
68
 
70
- def host_version
71
- @host_version ||= begin
69
+ def win32_os_version
70
+ @win32_os_version ||= begin
72
71
  wmi = WmiLite::Wmi.new
73
72
  host = wmi.first_of("Win32_OperatingSystem")
74
73
  host["version"]
@@ -95,26 +94,12 @@ def windows_user_right?(right)
95
94
  Chef::ReservedNames::Win32::Security.get_account_right(ENV["USERNAME"]).include?(right)
96
95
  end
97
96
 
98
- def mac_osx_1014?
99
- if mac_osx?
100
- ver = Chef::Version.new(ohai[:platform_version])
101
- return ver.major == 10 && ver.minor == 14
102
- end
103
-
104
- false
97
+ def macos_1013?
98
+ macos? && Gem::Requirement.new("~> 10.13.0").satisfied_by?(Gem::Version.new(ohai[:platform_version]))
105
99
  end
106
100
 
107
- def mac_osx?
108
- if File.exists? "/usr/bin/sw_vers"
109
- result = ShellHelpers.shell_out("/usr/bin/sw_vers")
110
- result.stdout.each_line do |line|
111
- if /^ProductName:\sMac OS X.*$/.match?(line)
112
- return true
113
- end
114
- end
115
- end
116
-
117
- false
101
+ def macos_gte_1014?
102
+ macos? && Gem::Requirement.new(">= 10.14").satisfied_by?(Gem::Version.new(ohai[:platform_version]))
118
103
  end
119
104
 
120
105
  # detects if the hardware is 64-bit (evaluates to true in "WOW64" mode in a 32-bit app on a 64-bit system)
@@ -127,26 +112,24 @@ def windows32?
127
112
  windows? && !windows64?
128
113
  end
129
114
 
130
- # def jruby?
131
-
132
115
  def unix?
133
116
  !windows?
134
117
  end
135
118
 
136
119
  def linux?
137
- !!(RUBY_PLATFORM =~ /linux/)
120
+ RUBY_PLATFORM.include?("linux")
138
121
  end
139
122
 
140
- def os_x?
141
- !!(RUBY_PLATFORM =~ /darwin/)
123
+ def macos?
124
+ RUBY_PLATFORM.include?("darwin")
142
125
  end
143
126
 
144
127
  def solaris?
145
- !!(RUBY_PLATFORM =~ /solaris/)
128
+ RUBY_PLATFORM.include?("solaris")
146
129
  end
147
130
 
148
131
  def freebsd?
149
- !!(RUBY_PLATFORM =~ /freebsd/)
132
+ RUBY_PLATFORM.include?("freebsd")
150
133
  end
151
134
 
152
135
  def intel_64bit?
@@ -182,7 +165,7 @@ def debian_family?
182
165
  end
183
166
 
184
167
  def aix?
185
- !!(RUBY_PLATFORM =~ /aix/)
168
+ RUBY_PLATFORM.include?("aix")
186
169
  end
187
170
 
188
171
  def wpar?
@@ -216,8 +199,7 @@ def selinux_enabled?
216
199
  end
217
200
 
218
201
  def suse?
219
- ::File.exists?("/etc/SuSE-release") ||
220
- ( ::File.exists?("/etc/os-release") && /sles|suse/.match?(File.read("/etc/os-release")) )
202
+ !!(ohai[:platform_family] == "suse")
221
203
  end
222
204
 
223
205
  def root?
@@ -26,7 +26,7 @@ if RUBY_PLATFORM.match?(/mswin|mingw|windows/)
26
26
 
27
27
  def service_main(*startup_parameters)
28
28
  while running?
29
- unless File.exists?(@test_service_file)
29
+ unless File.exist?(@test_service_file)
30
30
  File.open(@test_service_file, "wb") do |f|
31
31
  f.write("This file is created by SpecService")
32
32
  end
@@ -173,6 +173,6 @@ shared_context Chef::Resource::Directory do
173
173
  end
174
174
 
175
175
  after(:each) do
176
- FileUtils.rm_r(path) if File.exists?(path)
176
+ FileUtils.rm_r(path) if File.exist?(path)
177
177
  end
178
178
  end
@@ -62,7 +62,7 @@ shared_context "a command that can be executed as an alternate user" do
62
62
  end
63
63
 
64
64
  after do
65
- File.delete(script_output_path) if File.exists?(script_output_path)
65
+ File.delete(script_output_path) if File.exist?(script_output_path)
66
66
  Dir.rmdir(script_output_dir) if Dir.exist?(script_output_dir)
67
67
  end
68
68
  end
@@ -476,12 +476,12 @@ shared_examples_for "a configured file resource" do
476
476
  end
477
477
 
478
478
  it "issues a warning/assumption in whyrun mode" do
479
- begin
480
- Chef::Config[:why_run] = true
481
- resource.run_action(:create) # should not raise
482
- ensure
483
- Chef::Config[:why_run] = false
484
- end
479
+
480
+ Chef::Config[:why_run] = true
481
+ resource.run_action(:create) # should not raise
482
+ ensure
483
+ Chef::Config[:why_run] = false
484
+
485
485
  end
486
486
  end
487
487
 
@@ -504,12 +504,12 @@ shared_examples_for "a configured file resource" do
504
504
  end
505
505
 
506
506
  it "issues a warning/assumption in whyrun mode" do
507
- begin
508
- Chef::Config[:why_run] = true
509
- resource.run_action(:create) # should not raise
510
- ensure
511
- Chef::Config[:why_run] = false
512
- end
507
+
508
+ Chef::Config[:why_run] = true
509
+ resource.run_action(:create) # should not raise
510
+ ensure
511
+ Chef::Config[:why_run] = false
512
+
513
513
  end
514
514
  end
515
515
 
@@ -535,12 +535,12 @@ shared_examples_for "a configured file resource" do
535
535
  end
536
536
 
537
537
  it "issues a warning/assumption in whyrun mode" do
538
- begin
539
- Chef::Config[:why_run] = true
540
- resource.run_action(:create) # should not raise
541
- ensure
542
- Chef::Config[:why_run] = false
543
- end
538
+
539
+ Chef::Config[:why_run] = true
540
+ resource.run_action(:create) # should not raise
541
+ ensure
542
+ Chef::Config[:why_run] = false
543
+
544
544
  end
545
545
  end
546
546
 
@@ -1037,8 +1037,8 @@ shared_context Chef::Resource::File do
1037
1037
  end
1038
1038
 
1039
1039
  after(:each) do
1040
- FileUtils.rm_r(path) if File.exists?(path)
1041
- FileUtils.rm_r(CHEF_SPEC_BACKUP_PATH) if File.exists?(CHEF_SPEC_BACKUP_PATH)
1040
+ FileUtils.rm_r(path) if File.exist?(path)
1041
+ FileUtils.rm_r(CHEF_SPEC_BACKUP_PATH) if File.exist?(CHEF_SPEC_BACKUP_PATH)
1042
1042
  end
1043
1043
 
1044
1044
  after do
@@ -242,48 +242,100 @@ shared_examples_for "a securable resource with existing target" do
242
242
  include_context "use Windows permissions"
243
243
 
244
244
  describe "when setting owner" do
245
- before do
246
- resource.owner(SID.admin_account_name)
247
- resource.run_action(:create)
248
- end
245
+ context "with user name" do
246
+ before do
247
+ resource.owner(SID.admin_account_name)
248
+ resource.run_action(:create)
249
+ end
249
250
 
250
- it "should set the owner" do
251
- expect(descriptor.owner).to eq(SID.Administrator)
251
+ it "should set the owner" do
252
+ expect(descriptor.owner).to eq(SID.Administrator)
253
+ end
254
+
255
+ it "is marked as updated only if changes are made" do
256
+ expect(resource.updated_by_last_action?).to eq(expect_updated?)
257
+ end
252
258
  end
253
259
 
254
- it "is marked as updated only if changes are made" do
255
- expect(resource.updated_by_last_action?).to eq(expect_updated?)
260
+ context "with SID" do
261
+ before do
262
+ resource.owner(SID.Administrator.to_s)
263
+ resource.run_action(:create)
264
+ end
265
+
266
+ it "should set the owner" do
267
+ expect(descriptor.owner).to eq(SID.Administrator)
268
+ end
269
+
270
+ it "is marked as updated only if changes are made" do
271
+ expect(resource.updated_by_last_action?).to eq(expect_updated?)
272
+ end
256
273
  end
257
274
  end
258
275
 
259
276
  describe "when setting group" do
260
- before do
261
- resource.group("Administrators")
262
- resource.run_action(:create)
263
- end
277
+ context "with group name" do
278
+ before do
279
+ resource.group("Administrators")
280
+ resource.run_action(:create)
281
+ end
282
+
283
+ it "should set the group" do
284
+ expect(descriptor.group).to eq(SID.Administrators)
285
+ end
264
286
 
265
- it "should set the group" do
266
- expect(descriptor.group).to eq(SID.Administrators)
287
+ it "is marked as updated only if changes are made" do
288
+ expect(resource.updated_by_last_action?).to eq(expect_updated?)
289
+ end
267
290
  end
268
291
 
269
- it "is marked as updated only if changes are made" do
270
- expect(resource.updated_by_last_action?).to eq(expect_updated?)
292
+ context "with group SID" do
293
+ before do
294
+ resource.group(SID.Administrators.to_s)
295
+ resource.run_action(:create)
296
+ end
297
+
298
+ it "should set the group" do
299
+ expect(descriptor.group).to eq(SID.Administrators)
300
+ end
301
+
302
+ it "is marked as updated only if changes are made" do
303
+ expect(resource.updated_by_last_action?).to eq(expect_updated?)
304
+ end
271
305
  end
272
306
  end
273
307
 
274
308
  describe "when setting rights and deny_rights" do
275
- before do
276
- resource.deny_rights(:modify, "Guest")
277
- resource.rights(:read, "Guest")
278
- resource.run_action(:create)
279
- end
309
+ context "with user name" do
310
+ before do
311
+ resource.deny_rights(:modify, "Guest")
312
+ resource.rights(:read, "Guest")
313
+ resource.run_action(:create)
314
+ end
280
315
 
281
- it "should set the rights and deny_rights" do
282
- expect(explicit_aces).to eq(denied_acl(SID.Guest, expected_modify_perms) + allowed_acl(SID.Guest, expected_read_perms))
316
+ it "should set the rights and deny_rights" do
317
+ expect(explicit_aces).to eq(denied_acl(SID.Guest, expected_modify_perms) + allowed_acl(SID.Guest, expected_read_perms))
318
+ end
319
+
320
+ it "is marked as updated only if changes are made" do
321
+ expect(resource.updated_by_last_action?).to eq(expect_updated?)
322
+ end
283
323
  end
284
324
 
285
- it "is marked as updated only if changes are made" do
286
- expect(resource.updated_by_last_action?).to eq(expect_updated?)
325
+ context "with SID" do
326
+ before do
327
+ resource.deny_rights(:modify, SID.Guest.to_s)
328
+ resource.rights(:read, SID.Guest.to_s)
329
+ resource.run_action(:create)
330
+ end
331
+
332
+ it "should set the rights and deny_rights" do
333
+ expect(explicit_aces).to eq(denied_acl(SID.Guest, expected_modify_perms) + allowed_acl(SID.Guest, expected_read_perms))
334
+ end
335
+
336
+ it "is marked as updated only if changes are made" do
337
+ expect(resource.updated_by_last_action?).to eq(expect_updated?)
338
+ end
287
339
  end
288
340
  end
289
341
  end
@@ -302,12 +354,18 @@ shared_examples_for "a securable resource without existing target" do
302
354
  expect(descriptor.owner).to eq(SID.default_security_object_owner)
303
355
  end
304
356
 
305
- it "sets owner when owner is specified" do
357
+ it "sets owner when owner is specified by name" do
306
358
  resource.owner "Guest"
307
359
  resource.run_action(:create)
308
360
  expect(descriptor.owner).to eq(SID.Guest)
309
361
  end
310
362
 
363
+ it "sets owner when owner is specified by SID" do
364
+ resource.owner SID.Guest.to_s
365
+ resource.run_action(:create)
366
+ expect(descriptor.owner).to eq(SID.Guest)
367
+ end
368
+
311
369
  it "fails to set owner when owner has invalid characters" do
312
370
  expect { resource.owner 'Lance "The Nose" Glindenberry III' }.to raise_error(Chef::Exceptions::ValidationFailed)
313
371
  end
@@ -339,12 +397,18 @@ shared_examples_for "a securable resource without existing target" do
339
397
  expect(descriptor.group).to eq(SID.default_security_object_group)
340
398
  end
341
399
 
342
- it "sets group when group is specified" do
400
+ it "sets group when group is specified by name" do
343
401
  resource.group "Everyone"
344
402
  resource.run_action(:create)
345
403
  expect(descriptor.group).to eq(SID.Everyone)
346
404
  end
347
405
 
406
+ it "sets group when group is specified by SID" do
407
+ resource.group SID.Everyone.to_s
408
+ resource.run_action(:create)
409
+ expect(descriptor.group).to eq(SID.Everyone)
410
+ end
411
+
348
412
  it "fails to set group when group has invalid characters" do
349
413
  expect { resource.group 'Lance "The Nose" Glindenberry III' }.to raise_error(Chef::Exceptions::ValidationFailed)
350
414
  end
@@ -406,6 +470,17 @@ shared_examples_for "a securable resource without existing target" do
406
470
  allowed_acl(SID.Guest, expected_modify_perms)
407
471
  )
408
472
  end
473
+
474
+ it "multiple rights with SID" do
475
+ resource.rights(:read, SID.Everyone.to_s)
476
+ resource.rights(:modify, SID.Guest.to_s)
477
+ resource.run_action(:create)
478
+
479
+ expect(explicit_aces).to eq(
480
+ allowed_acl(SID.Everyone, expected_read_perms) +
481
+ allowed_acl(SID.Guest, expected_modify_perms)
482
+ )
483
+ end
409
484
  end
410
485
  end
411
486
 
@@ -443,6 +518,12 @@ shared_examples_for "a securable resource without existing target" do
443
518
  expect(explicit_aces).to eq(denied_acl(SID.Guest, expected_full_control_perms))
444
519
  end
445
520
 
521
+ it "using SID" do
522
+ resource.deny_rights(:full_control, SID.Guest.to_s)
523
+ resource.run_action(:create)
524
+ expect(explicit_aces).to eq(denied_acl(SID.Guest, expected_full_control_perms))
525
+ end
526
+
446
527
  it "deny_rights ahead of rights" do
447
528
  resource.rights(:read, "Everyone")
448
529
  resource.deny_rights(:modify, "Guest")
@@ -30,7 +30,7 @@ shared_context "using Win32::Service" do
30
30
  end
31
31
 
32
32
  # Delete the test_service_file if it exists
33
- if File.exists?(test_service_file)
33
+ if File.exist?(test_service_file)
34
34
  File.delete(test_service_file)
35
35
  end
36
36
  end
@@ -42,7 +42,7 @@ shared_context "using Win32::Service" do
42
42
  service_name: "spec-service",
43
43
  service_display_name: "Spec Test Service",
44
44
  service_description: "Service for testing Chef::Application::WindowsServiceManager.",
45
- service_file_path: File.expand_path(File.join(File.dirname(__FILE__), "../../platforms/win32/spec_service.rb")),
45
+ service_file_path: File.expand_path(File.join(__dir__, "../../platforms/win32/spec_service.rb")),
46
46
  delayed_start: true,
47
47
  }
48
48
  end
@@ -39,11 +39,11 @@ shared_context Chef::Resource::WindowsScript do
39
39
  end
40
40
 
41
41
  before(:each) do
42
- File.delete(script_output_path) if File.exists?(script_output_path)
42
+ File.delete(script_output_path) if File.exist?(script_output_path)
43
43
  end
44
44
 
45
45
  after(:each) do
46
- File.delete(script_output_path) if File.exists?(script_output_path)
46
+ File.delete(script_output_path) if File.exist?(script_output_path)
47
47
  end
48
48
 
49
49
  shared_examples_for "a script resource with architecture attribute" do
@@ -138,7 +138,7 @@ shared_context Chef::Resource::WindowsScript do
138
138
 
139
139
  after do
140
140
  script_file.close! if script_file
141
- ::File.delete(script_file.to_path) if script_file && ::File.exists?(script_file.to_path)
141
+ ::File.delete(script_file.to_path) if script_file && ::File.exist?(script_file.to_path)
142
142
  end
143
143
 
144
144
  include_context "alternate user identity"