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
@@ -14,15 +14,12 @@
14
14
  # See the License for the specific language governing permissions and
15
15
  # limitations under the License.
16
16
  #
17
+ autoload :OpenSSL, "openssl"
17
18
 
18
19
  class Chef
19
20
  module Mixin
20
21
  # various helpers for use with openssl. Currently used by the openssl_* resources
21
22
  module OpenSSLHelper
22
- def self.included(_base)
23
- require "openssl" unless defined?(::OpenSSL)
24
- end
25
-
26
23
  # determine the key filename from the cert filename
27
24
  # @param [String] cert_filename the path to the certfile
28
25
  # @return [String] the path to the keyfile
@@ -412,7 +409,7 @@ class Chef
412
409
  # @param [string] cert_file path of the cert file or cert content
413
410
  # @param [integer] renew_before_expiry number of days before expiration
414
411
  # @return [true, false]
415
- def cert_need_renewall?(cert_file, renew_before_expiry)
412
+ def cert_need_renewal?(cert_file, renew_before_expiry)
416
413
  resp = true
417
414
  cert_content = ::File.exist?(cert_file) ? File.read(cert_file) : cert_file
418
415
  begin
@@ -428,6 +425,8 @@ class Chef
428
425
  resp
429
426
  end
430
427
 
428
+ alias_method :cert_need_renewall?, :cert_need_renewal?
429
+
431
430
  private
432
431
 
433
432
  def __openssl_config
@@ -16,7 +16,7 @@
16
16
  # limitations under the License.
17
17
 
18
18
  require "mixlib/shellout/helper" unless defined?(Mixlib::ShellOut::Helper)
19
- require "chef/mixin/chef_utils_wiring" unless defined?(Chef::Mixin::ChefUtilsWiring)
19
+ require_relative "chef_utils_wiring" unless defined?(Chef::Mixin::ChefUtilsWiring)
20
20
 
21
21
  class Chef
22
22
  module Mixin
@@ -16,8 +16,8 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- require "tempfile" unless defined?(Tempfile)
20
- require "erubis" unless defined?(Erubis)
19
+ autoload :Tempfile, "tempfile"
20
+ autoload :Erubis, "erubis"
21
21
 
22
22
  class Chef
23
23
  module Mixin
@@ -16,8 +16,8 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- require "uri" unless defined?(URI)
20
- require "addressable/uri" unless defined?(Addressable::URI)
19
+ autoload :URI, "uri"
20
+ autoload :Addressable, "addressable/uri"
21
21
 
22
22
  class Chef
23
23
  module Mixin
@@ -50,8 +50,7 @@ class Chef
50
50
  # in which case we'll just start with the highest version and see what happens
51
51
  ServerAPIVersions.instance.min_server_version.nil? || (version >= ServerAPIVersions.instance.min_server_version && version <= ServerAPIVersions.instance.send(type))
52
52
  end
53
- .sort { |a, b| a.send(:minimum_api_version) <=> b.send(:minimum_api_version) }
54
- .last
53
+ .max_by { |a| a.send(:minimum_api_version) }
55
54
  end
56
55
 
57
56
  def def_versioned_delegator(method)
@@ -17,7 +17,7 @@
17
17
 
18
18
  require "chef-utils/dsl/which" unless defined?(ChefUtils::DSL::Which)
19
19
  require "chef-utils/dsl/default_paths" unless defined?(ChefUtils::DSL::DefaultPaths)
20
- require "chef/mixin/chef_utils_wiring" unless defined?(Chef::Mixin::ChefUtilsWiring)
20
+ require_relative "chef_utils_wiring" unless defined?(Chef::Mixin::ChefUtilsWiring)
21
21
 
22
22
  class Chef
23
23
  module Mixin
@@ -7,16 +7,16 @@ end
7
7
 
8
8
  require "net/http" unless defined?(Net::HTTP)
9
9
  module Net
10
- class HTTPError
10
+ class HTTPError < Net::ProtocolError
11
11
  include ChefNetHTTPExceptionExtensions
12
12
  end
13
- class HTTPRetriableError
13
+ class HTTPRetriableError < Net::ProtoRetriableError
14
14
  include ChefNetHTTPExceptionExtensions
15
15
  end
16
- class HTTPClientException
16
+ class HTTPClientException < Net::ProtoServerError
17
17
  include ChefNetHTTPExceptionExtensions
18
18
  end
19
- class HTTPFatalError
19
+ class HTTPFatalError < Net::ProtoFatalError
20
20
  include ChefNetHTTPExceptionExtensions
21
21
  end
22
22
  end
@@ -33,16 +33,16 @@ module WEBrick
33
33
  last_error = nil
34
34
  sockets = []
35
35
  res.each do |ai|
36
- begin
37
- logger.debug("TCPServer.new(#{ai[3]}, #{port})") if logger
38
- sock = TCPServer.new(ai[3], port)
39
- port = sock.addr[1] if port == 0
40
- Utils.set_close_on_exec(sock)
41
- sockets << sock
42
- rescue => ex
43
- logger.warn("TCPServer Error: #{ex}") if logger
44
- last_error = ex
45
- end
36
+
37
+ logger.debug("TCPServer.new(#{ai[3]}, #{port})") if logger
38
+ sock = TCPServer.new(ai[3], port)
39
+ port = sock.addr[1] if port == 0
40
+ Utils.set_close_on_exec(sock)
41
+ sockets << sock
42
+ rescue => ex
43
+ logger.warn("TCPServer Error: #{ex}") if logger
44
+ last_error = ex
45
+
46
46
  end
47
47
  raise last_error if sockets.empty?
48
48
 
@@ -563,11 +563,10 @@ class Chef
563
563
  # @param path [Array] Array of args to method chain to descend into the node object
564
564
  # @return [attr] Deep Merged values (may be VividMash, Hash, Array, etc) from the node object
565
565
  def merge_defaults(path)
566
- ret = DEFAULT_COMPONENTS.inject(NIL) do |merged, component_ivar|
566
+ DEFAULT_COMPONENTS.inject(NIL) do |merged, component_ivar|
567
567
  component_value = apply_path(instance_variable_get(component_ivar), path)
568
568
  deep_merge!(merged, component_value)
569
569
  end
570
- ret
571
570
  end
572
571
 
573
572
  # Deep merge the override attribute levels with array merging.
@@ -577,11 +576,10 @@ class Chef
577
576
  # @param path [Array] Array of args to method chain to descend into the node object
578
577
  # @return [attr] Deep Merged values (may be VividMash, Hash, Array, etc) from the node object
579
578
  def merge_overrides(path)
580
- ret = OVERRIDE_COMPONENTS.inject(NIL) do |merged, component_ivar|
579
+ OVERRIDE_COMPONENTS.inject(NIL) do |merged, component_ivar|
581
580
  component_value = apply_path(instance_variable_get(component_ivar), path)
582
581
  deep_merge!(merged, component_value)
583
582
  end
584
- ret
585
583
  end
586
584
 
587
585
  # needed for __path__
@@ -36,7 +36,7 @@
36
36
  # XXX: confusingly, in the *_priority_map the :klass may be an array of Strings of class names
37
37
  #
38
38
 
39
- require_relative "dist"
39
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
40
40
 
41
41
  class Chef
42
42
  class NodeMap
@@ -86,7 +86,7 @@ class Chef
86
86
  else
87
87
  klass.superclass.to_s
88
88
  end
89
- Chef::Log.warn( COLLISION_WARNING % { type: type_of_thing, key: key, type_caps: type_of_thing.capitalize, client_name: Chef::Dist::PRODUCT } )
89
+ Chef::Log.warn( COLLISION_WARNING % { type: type_of_thing, key: key, type_caps: type_of_thing.capitalize, client_name: ChefUtils::Dist::Infra::PRODUCT } )
90
90
  end
91
91
 
92
92
  # The map is sorted in order of preference already; we just need to find
@@ -18,7 +18,7 @@
18
18
 
19
19
  require_relative "../chef_class"
20
20
  require "chef-utils" unless defined?(ChefUtils::CANARY)
21
- require "chef/mixin/chef_utils_wiring" unless defined?(Chef::Mixin::ChefUtilsWiring)
21
+ require_relative "../mixin/chef_utils_wiring" unless defined?(Chef::Mixin::ChefUtilsWiring)
22
22
 
23
23
  class Chef
24
24
  class Platform
@@ -24,7 +24,7 @@ require_relative "../run_context"
24
24
  require_relative "../config"
25
25
  require_relative "../node"
26
26
  require_relative "../server_api"
27
- require_relative "../dist"
27
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
28
28
 
29
29
  class Chef
30
30
  module PolicyBuilder
@@ -91,7 +91,7 @@ class Chef
91
91
  @node = nil
92
92
 
93
93
  if Chef::Config[:solo_legacy_mode]
94
- raise UnsupportedFeature, "Policyfile does not support chef-solo. Use #{Chef::Dist::CLIENT} local mode instead."
94
+ raise UnsupportedFeature, "Policyfile does not support chef-solo. Use #{ChefUtils::Dist::Infra::CLIENT} local mode instead."
95
95
  end
96
96
 
97
97
  if override_runlist
@@ -706,7 +706,7 @@ class Chef
706
706
  # As of this writing, `name` is the only Chef::Resource property created with the
707
707
  # `property` definition, but this will allow for future properties to be extended
708
708
  # as needed.
709
- !Chef::Resource.properties.keys.include?(name)
709
+ !Chef::Resource.properties.key?(name)
710
710
  end
711
711
 
712
712
  def exec_in_resource(resource, proc, *args)
@@ -30,9 +30,6 @@ require "forwardable" unless defined?(Forwardable)
30
30
 
31
31
  class Chef
32
32
  class Provider
33
- require_relative "mixin/why_run"
34
- require_relative "mixin/provides"
35
-
36
33
  attr_accessor :new_resource
37
34
  attr_accessor :current_resource
38
35
  attr_accessor :after_resource
@@ -455,6 +452,5 @@ end
455
452
 
456
453
  # Requiring things at the bottom breaks cycles
457
454
  require_relative "chef_class"
458
- require_relative "mixin/why_run"
459
455
  require_relative "resource_collection"
460
456
  require_relative "runner"
@@ -26,8 +26,6 @@ class Chef
26
26
  class Provider
27
27
  class Cron
28
28
  class Unix < Chef::Provider::Cron
29
- include Chef::Mixin::ShellOut
30
-
31
29
  provides :cron, os: "solaris2"
32
30
 
33
31
  private
@@ -31,7 +31,7 @@ require_relative "../util/backup"
31
31
  require_relative "../util/diff"
32
32
  require_relative "../util/selinux"
33
33
  require_relative "../file_content_management/deploy"
34
- require_relative "../dist"
34
+ require "chef-utils" unless defined?(ChefUtils)
35
35
 
36
36
  # The Tao of File Providers:
37
37
  # - the content provider must always return a tempfile that we can delete/mv
@@ -394,7 +394,7 @@ class Chef
394
394
  return if tempfile.nil?
395
395
  # but a tempfile that has no path or doesn't exist should not happen
396
396
  if tempfile.path.nil? || !::File.exists?(tempfile.path)
397
- raise "#{Chef::Dist::CLIENT} is confused, trying to deploy a file that has no path or does not exist..."
397
+ raise "#{ChefUtils::Dist::Infra::CLIENT} is confused, trying to deploy a file that has no path or does not exist..."
398
398
  end
399
399
 
400
400
  # the file? on the next line suppresses the case in why-run when we have a not-file here that would have otherwise been removed
@@ -44,11 +44,11 @@ class Chef
44
44
  unless new_resource.user.nil?
45
45
  requirements.assert(:all_actions) do |a|
46
46
  a.assertion do
47
- begin
48
- get_homedir(new_resource.user)
49
- rescue ArgumentError
50
- false
51
- end
47
+
48
+ get_homedir(new_resource.user)
49
+ rescue ArgumentError
50
+ false
51
+
52
52
  end
53
53
  a.whyrun("User #{new_resource.user} does not exist, this run will fail unless it has been previously created. Assuming it would have been created.")
54
54
  a.failure_message(Chef::Exceptions::User, "#{new_resource.user} required by resource #{new_resource.name} does not exist")
@@ -17,13 +17,11 @@
17
17
  #
18
18
 
19
19
  require_relative "../provider"
20
- require_relative "../mixin/shell_out"
21
20
  require "etc" unless defined?(Etc)
22
21
 
23
22
  class Chef
24
23
  class Provider
25
24
  class Group < Chef::Provider
26
- include Chef::Mixin::ShellOut
27
25
  attr_accessor :group_exists
28
26
  attr_accessor :change_desc
29
27
 
@@ -39,11 +39,11 @@ class Chef
39
39
 
40
40
  requirements.assert(:create, :manage, :modify) do |a|
41
41
  a.assertion do
42
- begin
43
- to_add(new_resource.members).all? { |member| Etc.getpwnam(member) }
44
- rescue
45
- false
46
- end
42
+
43
+ to_add(new_resource.members).all? { |member| Etc.getpwnam(member) }
44
+ rescue
45
+ false
46
+
47
47
  end
48
48
  a.failure_message Chef::Exceptions::Group, "Could not add users #{to_add(new_resource.members).join(", ")} to #{new_resource.group_name}: one of these users does not exist"
49
49
  a.whyrun "Could not find one of these users: #{to_add(new_resource.members).join(", ")}. Assuming it will be created by a prior step"
@@ -17,11 +17,10 @@
17
17
  #
18
18
 
19
19
  require_relative "../log"
20
- require_relative "../mixin/shell_out"
21
20
  require_relative "../provider"
22
21
  require_relative "../resource/file"
23
22
  require_relative "../exceptions"
24
- require "erb"
23
+ autoload :ERB, "erb"
25
24
 
26
25
  class Chef
27
26
  class Provider
@@ -34,8 +33,6 @@ class Chef
34
33
  class Ifconfig < Chef::Provider
35
34
  provides :ifconfig
36
35
 
37
- include Chef::Mixin::ShellOut
38
-
39
36
  attr_accessor :config_template
40
37
  attr_accessor :config_path
41
38
 
@@ -20,7 +20,7 @@ require_relative "../provider"
20
20
  require_relative "../resource/file"
21
21
  require_relative "../resource/cookbook_file"
22
22
  require_relative "../resource/macosx_service"
23
- require "plist"
23
+ autoload :Plist, "plist"
24
24
  require "forwardable" unless defined?(Forwardable)
25
25
 
26
26
  class Chef
@@ -209,7 +209,7 @@ class Chef
209
209
 
210
210
  # @api private
211
211
  def path
212
- @path ||= new_resource.path ? new_resource.path : gen_path_from_type
212
+ @path ||= new_resource.path || gen_path_from_type
213
213
  end
214
214
  end
215
215
  end
@@ -18,13 +18,11 @@
18
18
  #
19
19
 
20
20
  require_relative "../log"
21
- require_relative "../mixin/shell_out"
22
21
  require_relative "../provider"
23
22
 
24
23
  class Chef
25
24
  class Provider
26
25
  class Mount < Chef::Provider
27
- include Chef::Mixin::ShellOut
28
26
 
29
27
  attr_accessor :unmount_retries
30
28
 
@@ -0,0 +1,63 @@
1
+ #
2
+ # Author:: Antima Gupta (<agupta@chef.io>)
3
+ # Copyright:: Copyright (c) Chef Software Inc.
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ require_relative "../mount"
20
+
21
+ class Chef
22
+ class Provider
23
+ class Mount
24
+ class Linux < Chef::Provider::Mount::Mount
25
+
26
+ provides :mount, os: "linux"
27
+
28
+ # Check to see if the volume is mounted.
29
+ # "findmnt" outputs the mount points with volume.
30
+ # Convert the mount_point of the resource to a real path in case it
31
+ # contains symlinks in its parents dirs.
32
+
33
+ def mounted?
34
+ mounted = false
35
+
36
+ real_mount_point = if ::File.exists? @new_resource.mount_point
37
+ ::File.realpath(@new_resource.mount_point)
38
+ else
39
+ @new_resource.mount_point
40
+ end
41
+
42
+ shell_out!("findmnt -rn").stdout.each_line do |line|
43
+ case line
44
+ # Permalink for device already mounted to mount point for : https://rubular.com/r/L0RNnD4gf2DJGl
45
+ when /\A#{Regexp.escape(real_mount_point)}\s+#{device_mount_regex}\s/
46
+ mounted = true
47
+ logger.trace("Special device #{device_logstring} mounted as #{real_mount_point}")
48
+ # Permalink for multiple devices mounted to the same mount point(i.e. '/proc') https://rubular.com/r/a356yzspU7N9TY
49
+ when %r{\A#{Regexp.escape(real_mount_point)}\s+([/\w])+\s}
50
+ mounted = false
51
+ logger.trace("Special device #{$~[1]} mounted as #{real_mount_point}")
52
+ # Permalink for bind device mounted to an existing mount point: https://rubular.com/r/QAE0ilL3sm3Ldz
53
+ when %r{\A#{Regexp.escape(real_mount_point)}\s+([/\w])+\[#{device_mount_regex}\]\s}
54
+ mounted = true
55
+ logger.trace("Bind device #{device_logstring} mounted as #{real_mount_point}")
56
+ end
57
+ end
58
+ @current_resource.mounted(mounted)
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -16,7 +16,6 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- require_relative "../mixin/shell_out"
20
19
  require_relative "../mixin/subclass_directive"
21
20
  require_relative "../log"
22
21
  require_relative "../file_cache"
@@ -27,7 +26,6 @@ require "shellwords" unless defined?(Shellwords)
27
26
  class Chef
28
27
  class Provider
29
28
  class Package < Chef::Provider
30
- include Chef::Mixin::ShellOut
31
29
  extend Chef::Mixin::SubclassDirective
32
30
 
33
31
  # subclasses declare this if they want all their arguments as arrays of packages and names