chef 16.4.35 → 16.6.14

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 (320) 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.gemspec +2 -1
  6. data/lib/chef/api_client/registration.rb +6 -6
  7. data/lib/chef/application.rb +19 -22
  8. data/lib/chef/application/apply.rb +12 -7
  9. data/lib/chef/application/base.rb +26 -25
  10. data/lib/chef/application/client.rb +16 -8
  11. data/lib/chef/application/exit_code.rb +13 -4
  12. data/lib/chef/application/knife.rb +22 -11
  13. data/lib/chef/application/solo.rb +2 -1
  14. data/lib/chef/application/windows_service.rb +14 -14
  15. data/lib/chef/application/windows_service_manager.rb +6 -6
  16. data/lib/chef/chef_fs/chef_fs_data_store.rb +1 -1
  17. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
  18. data/lib/chef/chef_fs/knife.rb +2 -2
  19. data/lib/chef/chef_fs/parallelizer.rb +0 -1
  20. data/lib/chef/client.rb +12 -42
  21. data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
  22. data/lib/chef/cookbook/gem_installer.rb +1 -1
  23. data/lib/chef/cookbook/synchronizer.rb +2 -2
  24. data/lib/chef/cookbook_site_streaming_uploader.rb +13 -11
  25. data/lib/chef/cookbook_uploader.rb +1 -1
  26. data/lib/chef/data_collector.rb +7 -6
  27. data/lib/chef/data_collector/config_validation.rb +22 -13
  28. data/lib/chef/data_collector/run_end_message.rb +2 -2
  29. data/lib/chef/data_collector/run_start_message.rb +1 -1
  30. data/lib/chef/deprecated.rb +1 -1
  31. data/lib/chef/deprecation/warnings.rb +2 -2
  32. data/lib/chef/digester.rb +2 -2
  33. data/lib/chef/dsl/chef_vault.rb +1 -1
  34. data/lib/chef/dsl/data_query.rb +2 -2
  35. data/lib/chef/dsl/platform_introspection.rb +1 -1
  36. data/lib/chef/encrypted_data_bag_item.rb +3 -4
  37. data/lib/chef/encrypted_data_bag_item/decryptor.rb +3 -3
  38. data/lib/chef/encrypted_data_bag_item/encryptor.rb +3 -3
  39. data/lib/chef/environment.rb +2 -2
  40. data/lib/chef/event_loggers/windows_eventlog.rb +2 -2
  41. data/lib/chef/exceptions.rb +4 -4
  42. data/lib/chef/file_access_control/windows.rb +5 -1
  43. data/lib/chef/file_content_management/tempfile.rb +1 -1
  44. data/lib/chef/formatters/doc.rb +7 -6
  45. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +6 -5
  46. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +3 -3
  47. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +9 -9
  48. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +2 -2
  49. data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +3 -3
  50. data/lib/chef/formatters/indentable_output_stream.rb +2 -2
  51. data/lib/chef/formatters/minimal.rb +5 -4
  52. data/lib/chef/http.rb +6 -4
  53. data/lib/chef/http/auth_credentials.rb +5 -1
  54. data/lib/chef/http/authenticator.rb +1 -1
  55. data/lib/chef/http/basic_client.rb +4 -2
  56. data/lib/chef/http/decompressor.rb +1 -1
  57. data/lib/chef/http/http_request.rb +7 -5
  58. data/lib/chef/http/socketless_chef_zero_client.rb +5 -2
  59. data/lib/chef/http/ssl_policies.rb +1 -1
  60. data/lib/chef/json_compat.rb +1 -1
  61. data/lib/chef/knife.rb +4 -4
  62. data/lib/chef/knife/bootstrap.rb +16 -14
  63. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  64. data/lib/chef/knife/bootstrap/templates/chef-full.erb +3 -3
  65. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +7 -7
  66. data/lib/chef/knife/client_create.rb +3 -3
  67. data/lib/chef/knife/config_get.rb +8 -97
  68. data/lib/chef/knife/config_get_profile.rb +9 -9
  69. data/lib/chef/knife/config_list.rb +139 -0
  70. data/lib/chef/knife/config_list_profiles.rb +8 -98
  71. data/lib/chef/knife/config_show.rb +127 -0
  72. data/lib/chef/knife/config_use.rb +61 -0
  73. data/lib/chef/knife/config_use_profile.rb +9 -24
  74. data/lib/chef/knife/configure.rb +4 -2
  75. data/lib/chef/knife/core/bootstrap_context.rb +2 -2
  76. data/lib/chef/knife/core/object_loader.rb +1 -1
  77. data/lib/chef/knife/core/ui.rb +1 -1
  78. data/lib/chef/knife/core/windows_bootstrap_context.rb +11 -11
  79. data/lib/chef/knife/exec.rb +2 -2
  80. data/lib/chef/knife/node_policy_set.rb +2 -2
  81. data/lib/chef/knife/node_run_list_add.rb +1 -1
  82. data/lib/chef/knife/node_run_list_remove.rb +1 -1
  83. data/lib/chef/knife/node_run_list_set.rb +1 -1
  84. data/lib/chef/knife/node_show.rb +2 -2
  85. data/lib/chef/knife/role_env_run_list_add.rb +1 -1
  86. data/lib/chef/knife/role_env_run_list_set.rb +1 -1
  87. data/lib/chef/knife/role_run_list_add.rb +1 -1
  88. data/lib/chef/knife/role_run_list_set.rb +1 -1
  89. data/lib/chef/knife/search.rb +0 -1
  90. data/lib/chef/knife/serve.rb +3 -3
  91. data/lib/chef/knife/ssh.rb +18 -3
  92. data/lib/chef/knife/ssl_check.rb +3 -3
  93. data/lib/chef/knife/status.rb +2 -2
  94. data/lib/chef/knife/tag_create.rb +1 -1
  95. data/lib/chef/knife/tag_delete.rb +1 -1
  96. data/lib/chef/knife/user_create.rb +2 -2
  97. data/lib/chef/knife/yaml_convert.rb +1 -1
  98. data/lib/chef/local_mode.rb +2 -2
  99. data/lib/chef/log/syslog.rb +2 -2
  100. data/lib/chef/log/winevt.rb +2 -2
  101. data/lib/chef/mixin/deep_merge.rb +0 -12
  102. data/lib/chef/mixin/openssl_helper.rb +1 -4
  103. data/lib/chef/mixin/powershell_exec.rb +22 -10
  104. data/lib/chef/mixin/powershell_out.rb +12 -5
  105. data/lib/chef/mixin/template.rb +3 -3
  106. data/lib/chef/mixin/uris.rb +4 -2
  107. data/lib/chef/mixin/versioned_api.rb +1 -2
  108. data/lib/chef/monkey_patches/net_http.rb +4 -4
  109. data/lib/chef/node/mixin/immutablize_hash.rb +2 -0
  110. data/lib/chef/node_map.rb +4 -4
  111. data/lib/chef/policy_builder/dynamic.rb +2 -0
  112. data/lib/chef/policy_builder/policyfile.rb +2 -2
  113. data/lib/chef/powershell.rb +3 -2
  114. data/lib/chef/provider.rb +1 -5
  115. data/lib/chef/provider/file.rb +2 -2
  116. data/lib/chef/provider/ifconfig.rb +2 -2
  117. data/lib/chef/provider/ifconfig/debian.rb +33 -15
  118. data/lib/chef/provider/ifconfig/redhat.rb +51 -17
  119. data/lib/chef/provider/launchd.rb +2 -2
  120. data/lib/chef/provider/link.rb +0 -9
  121. data/lib/chef/provider/mount/linux.rb +63 -0
  122. data/lib/chef/provider/package/dpkg.rb +3 -12
  123. data/lib/chef/provider/package/homebrew.rb +1 -1
  124. data/lib/chef/provider/package/rubygems.rb +21 -18
  125. data/lib/chef/provider/package/snap.rb +0 -1
  126. data/lib/chef/provider/package/windows.rb +2 -2
  127. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +3 -1
  128. data/lib/chef/provider/package/zypper.rb +1 -1
  129. data/lib/chef/provider/powershell_script.rb +12 -1
  130. data/lib/chef/provider/remote_file/content.rb +3 -0
  131. data/lib/chef/provider/remote_file/ftp.rb +6 -4
  132. data/lib/chef/provider/remote_file/sftp.rb +6 -4
  133. data/lib/chef/provider/route.rb +2 -6
  134. data/lib/chef/provider/service/macosx.rb +2 -2
  135. data/lib/chef/provider/service/redhat.rb +1 -1
  136. data/lib/chef/provider/template_finder.rb +2 -10
  137. data/lib/chef/provider/user/dscl.rb +5 -5
  138. data/lib/chef/provider/user/mac.rb +3 -3
  139. data/lib/chef/provider/windows_task.rb +1 -2
  140. data/lib/chef/provider/zypper_repository.rb +2 -2
  141. data/lib/chef/provider_resolver.rb +1 -1
  142. data/lib/chef/providers.rb +1 -0
  143. data/lib/chef/pwsh.rb +64 -0
  144. data/lib/chef/recipe.rb +2 -2
  145. data/lib/chef/resource.rb +2 -2
  146. data/lib/chef/resource/apt_repository.rb +6 -5
  147. data/lib/chef/resource/bff_package.rb +22 -0
  148. data/lib/chef/resource/breakpoint.rb +57 -2
  149. data/lib/chef/resource/build_essential.rb +1 -1
  150. data/lib/chef/resource/cab_package.rb +29 -0
  151. data/lib/chef/resource/chef_client_config.rb +313 -0
  152. data/lib/chef/resource/chef_client_cron.rb +35 -28
  153. data/lib/chef/resource/chef_client_launchd.rb +194 -0
  154. data/lib/chef/resource/chef_client_scheduled_task.rb +24 -21
  155. data/lib/chef/resource/chef_client_systemd_timer.rb +27 -20
  156. data/lib/chef/resource/chef_client_trusted_certificate.rb +101 -0
  157. data/lib/chef/resource/chef_gem.rb +10 -10
  158. data/lib/chef/resource/chef_handler.rb +149 -4
  159. data/lib/chef/resource/chef_sleep.rb +3 -3
  160. data/lib/chef/resource/chef_vault_secret.rb +1 -1
  161. data/lib/chef/resource/cookbook_file.rb +2 -2
  162. data/lib/chef/resource/cron/_cron_shared.rb +1 -0
  163. data/lib/chef/resource/cron/cron_d.rb +2 -3
  164. data/lib/chef/resource/dnf_package.rb +2 -2
  165. data/lib/chef/resource/dsc_resource.rb +0 -1
  166. data/lib/chef/resource/dsc_script.rb +2 -2
  167. data/lib/chef/resource/execute.rb +6 -6
  168. data/lib/chef/resource/file.rb +4 -4
  169. data/lib/chef/resource/gem_package.rb +5 -5
  170. data/lib/chef/resource/homebrew_package.rb +3 -3
  171. data/lib/chef/resource/homebrew_update.rb +5 -5
  172. data/lib/chef/resource/hostname.rb +2 -2
  173. data/lib/chef/resource/kernel_module.rb +1 -1
  174. data/lib/chef/resource/launchd.rb +17 -16
  175. data/lib/chef/resource/locale.rb +2 -2
  176. data/lib/chef/resource/macos_userdefaults.rb +3 -3
  177. data/lib/chef/resource/mount.rb +1 -1
  178. data/lib/chef/resource/notify_group.rb +0 -1
  179. data/lib/chef/resource/ohai.rb +46 -3
  180. data/lib/chef/resource/ohai_hint.rb +33 -0
  181. data/lib/chef/resource/openssl_dhparam.rb +27 -5
  182. data/lib/chef/resource/openssl_ec_private_key.rb +6 -3
  183. data/lib/chef/resource/openssl_ec_public_key.rb +2 -2
  184. data/lib/chef/resource/openssl_rsa_private_key.rb +6 -3
  185. data/lib/chef/resource/openssl_x509_certificate.rb +14 -14
  186. data/lib/chef/resource/openssl_x509_crl.rb +19 -10
  187. data/lib/chef/resource/openssl_x509_request.rb +14 -16
  188. data/lib/chef/resource/osx_profile.rb +77 -13
  189. data/lib/chef/resource/plist.rb +1 -1
  190. data/lib/chef/resource/powershell_package_source.rb +5 -5
  191. data/lib/chef/resource/powershell_script.rb +7 -1
  192. data/lib/chef/resource/reboot.rb +2 -2
  193. data/lib/chef/resource/remote_file.rb +3 -3
  194. data/lib/chef/resource/rhsm_register.rb +22 -10
  195. data/lib/chef/resource/ruby_block.rb +2 -2
  196. data/lib/chef/resource/scm/subversion.rb +2 -2
  197. data/lib/chef/resource/service.rb +3 -3
  198. data/lib/chef/resource/ssh_known_hosts_entry.rb +2 -2
  199. data/lib/chef/resource/support/client.erb +65 -0
  200. data/lib/chef/resource/support/cron.d.erb +1 -1
  201. data/lib/chef/resource/support/cron_access.erb +1 -1
  202. data/lib/chef/resource/support/sudoer.erb +1 -1
  203. data/lib/chef/resource/support/ulimit.erb +1 -1
  204. data/lib/chef/resource/sysctl.rb +1 -5
  205. data/lib/chef/resource/systemd_unit.rb +2 -2
  206. data/lib/chef/resource/template.rb +2 -2
  207. data/lib/chef/resource/timezone.rb +112 -73
  208. data/lib/chef/resource/windows_ad_join.rb +10 -3
  209. data/lib/chef/resource/windows_audit_policy.rb +26 -24
  210. data/lib/chef/resource/windows_certificate.rb +6 -4
  211. data/lib/chef/resource/windows_firewall_profile.rb +22 -20
  212. data/lib/chef/resource/windows_package.rb +28 -5
  213. data/lib/chef/resource/windows_printer.rb +5 -3
  214. data/lib/chef/resource/windows_printer_port.rb +6 -4
  215. data/lib/chef/resource/windows_user_privilege.rb +53 -54
  216. data/lib/chef/resource/windows_workgroup.rb +3 -3
  217. data/lib/chef/resource/yum_package.rb +2 -2
  218. data/lib/chef/resource_reporter.rb +0 -2
  219. data/lib/chef/resources.rb +4 -1
  220. data/lib/chef/run_context.rb +2 -2
  221. data/lib/chef/run_context/cookbook_compiler.rb +1 -1
  222. data/lib/chef/run_lock.rb +2 -2
  223. data/lib/chef/search/query.rb +6 -5
  224. data/lib/chef/shell.rb +31 -26
  225. data/lib/chef/shell/ext.rb +11 -11
  226. data/lib/chef/shell/shell_session.rb +2 -2
  227. data/lib/chef/train_transport.rb +5 -104
  228. data/lib/chef/util/backup.rb +1 -1
  229. data/lib/chef/util/diff.rb +3 -3
  230. data/lib/chef/util/powershell/cmdlet.rb +3 -1
  231. data/lib/chef/util/powershell/ps_credential.rb +18 -14
  232. data/lib/chef/util/threaded_job_queue.rb +0 -2
  233. data/lib/chef/version.rb +1 -1
  234. data/lib/chef/win32/crypto.rb +1 -1
  235. data/lib/chef/win32/file.rb +1 -1
  236. data/lib/chef/win32/registry.rb +1 -2
  237. data/lib/chef/win32/unicode.rb +1 -1
  238. data/spec/data/shef-config.rb +1 -1
  239. data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -5
  240. data/spec/functional/mixin/powershell_out_spec.rb +9 -1
  241. data/spec/functional/resource/aix_service_spec.rb +2 -2
  242. data/spec/functional/resource/aixinit_service_spec.rb +1 -1
  243. data/spec/functional/resource/insserv_spec.rb +1 -1
  244. data/spec/functional/resource/powershell_script_spec.rb +57 -14
  245. data/spec/functional/resource/user/dscl_spec.rb +1 -1
  246. data/spec/functional/resource/user/mac_user_spec.rb +1 -1
  247. data/spec/functional/resource/windows_task_spec.rb +13 -13
  248. data/spec/functional/version_spec.rb +3 -3
  249. data/spec/integration/client/client_spec.rb +4 -4
  250. data/spec/integration/client/exit_code_spec.rb +3 -2
  251. data/spec/integration/client/ipv6_spec.rb +1 -1
  252. data/spec/integration/knife/{config_list_profiles_spec.rb → config_list_spec.rb} +30 -29
  253. data/spec/integration/knife/{config_get_spec.rb → config_show_spec.rb} +3 -3
  254. data/spec/integration/knife/{config_use_profile_spec.rb → config_use_spec.rb} +53 -10
  255. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
  256. data/spec/integration/ohai/ohai_spec.rb +61 -0
  257. data/spec/integration/recipes/remote_directory.rb +1 -1
  258. data/spec/integration/solo/solo_spec.rb +5 -5
  259. data/spec/spec_helper.rb +8 -6
  260. data/spec/stress/win32/file_spec.rb +1 -1
  261. data/spec/support/chef_helpers.rb +2 -2
  262. data/spec/support/matchers/leak.rb +2 -2
  263. data/spec/support/platform_helpers.rb +22 -35
  264. data/spec/support/shared/functional/securable_resource.rb +108 -27
  265. data/spec/support/shared/functional/win32_service.rb +1 -1
  266. data/spec/support/shared/unit/application_dot_d.rb +5 -3
  267. data/spec/tiny_server.rb +0 -1
  268. data/spec/unit/application/client_spec.rb +2 -2
  269. data/spec/unit/application/exit_code_spec.rb +10 -0
  270. data/spec/unit/application_spec.rb +4 -6
  271. data/spec/unit/chef_fs/config_spec.rb +1 -1
  272. data/spec/unit/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  273. data/spec/unit/chef_fs/parallelizer_spec.rb +5 -1
  274. data/spec/unit/chef_fs/path_util_spec.rb +1 -1
  275. data/spec/unit/cookbook/synchronizer_spec.rb +2 -2
  276. data/spec/unit/cookbook_spec.rb +2 -2
  277. data/spec/unit/data_collector/config_validation_spec.rb +208 -0
  278. data/spec/unit/data_collector_spec.rb +6 -117
  279. data/spec/unit/dsl/declare_resource_spec.rb +1 -1
  280. data/spec/unit/file_access_control_spec.rb +1 -1
  281. data/spec/unit/knife/bootstrap_spec.rb +6 -6
  282. data/spec/unit/knife/core/ui_spec.rb +1 -0
  283. data/spec/unit/knife/ssh_spec.rb +2 -2
  284. data/spec/unit/lwrp_spec.rb +3 -3
  285. data/spec/unit/mixin/deep_merge_spec.rb +15 -0
  286. data/spec/unit/mixin/openssl_helper_spec.rb +1 -1
  287. data/spec/unit/mixin/powershell_exec_spec.rb +39 -2
  288. data/spec/unit/mixin/powershell_out_spec.rb +14 -0
  289. data/spec/unit/mixin/securable_spec.rb +2 -2
  290. data/spec/unit/node/immutable_collections_spec.rb +2 -2
  291. data/spec/unit/provider/mount/linux_spec.rb +97 -0
  292. data/spec/unit/provider/package/chocolatey_spec.rb +1 -1
  293. data/spec/unit/provider/package/powershell_spec.rb +1 -1
  294. data/spec/unit/provider/package/rubygems_spec.rb +4 -1
  295. data/spec/unit/provider/powershell_script_spec.rb +11 -0
  296. data/spec/unit/provider/route_spec.rb +0 -2
  297. data/spec/unit/recipe_spec.rb +1 -1
  298. data/spec/unit/resource/chef_client_config_spec.rb +137 -0
  299. data/spec/unit/resource/chef_client_cron_spec.rb +35 -14
  300. data/spec/unit/resource/chef_client_launchd_spec.rb +127 -0
  301. data/spec/unit/resource/chef_client_systemd_timer_spec.rb +36 -1
  302. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +54 -0
  303. data/spec/unit/resource/launchd_spec.rb +8 -0
  304. data/spec/unit/resource/osx_profile_spec.rb +67 -1
  305. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  306. data/spec/unit/resource/rhsm_register_spec.rb +56 -18
  307. data/spec/unit/resource/timezone_spec.rb +63 -0
  308. data/spec/unit/resource/windows_uac_spec.rb +1 -1
  309. data/spec/unit/resource/windows_user_privilege_spec.rb +55 -0
  310. data/spec/unit/run_lock_spec.rb +5 -1
  311. data/spec/unit/runner_spec.rb +1 -2
  312. data/spec/unit/shell/shell_ext_spec.rb +46 -3
  313. data/spec/unit/shell/shell_session_spec.rb +35 -64
  314. data/spec/unit/shell_spec.rb +16 -19
  315. data/spec/unit/train_transport_spec.rb +14 -13
  316. data/spec/unit/util/selinux_spec.rb +2 -0
  317. data/tasks/rspec.rb +0 -2
  318. metadata +46 -18
  319. data/lib/chef/dist.rb +0 -68
  320. data/spec/integration/knife/config_get_profile_spec.rb +0 -114
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5cd173a8bc2e595b0c39776bd219be73951547e20a8ea7ca42e10ab9f4caf301
4
- data.tar.gz: 8868bce6fe0f624417e2b431bdd0bd160b7747f1801ce93a2ab73b9225c210dc
3
+ metadata.gz: 9601a0e75782478aa0b49ba679d1636eefd626471cf89fdc1f3bc03ece08d0d9
4
+ data.tar.gz: 55a6507691792de235cecee29b666c915f8dfaa67d54c7928b5bf6b6843aee1b
5
5
  SHA512:
6
- metadata.gz: 2880171bce3ce18571abc3142417189f5a31f768adfa4654a1d7b3bf7acdee3483032bd0b5da61e895cb3c1613cccbf95edd76788a44bc2290fe0e4c6823534b
7
- data.tar.gz: c1d9c41879c5db64c0d104cc41ceb8c3c97a7188d6d2f11333ef33b06ec4574833e586a507c5f1dbbf3c0da43f6df97e462c1c54983cccabdba98075437425f5
6
+ metadata.gz: 7123ac0cd41df9a3a5dd64f766e468f1e1ec3cfacd4a85bca99d2a2361154fa0db1cebdc6a09fc19594bcea77ea9bba8994a34e98be870fd7b8e0b9b527c04c4
7
+ data.tar.gz: 5474902d65ae70b1c4bf3698452c6ce6599fe741c49133e073f0bbc4eaefa51a73a3f1da64ab8a77cf0cff26567c2869ef9000a7617d383ef89f0bceb660d7f9
data/Gemfile CHANGED
@@ -87,7 +87,7 @@ eval_gemfile("./Gemfile.local") if File.exist?("./Gemfile.local")
87
87
  if RUBY_PLATFORM.match?(/mswin|mingw|windows/)
88
88
  instance_eval do
89
89
  ruby_exe_dir = RbConfig::CONFIG["bindir"]
90
- assemblies = Dir.glob(File.expand_path("distro/ruby_bin_folder", Dir.pwd) + "/*.dll")
90
+ assemblies = Dir.glob(File.expand_path("distro/ruby_bin_folder/#{ENV["PROCESSOR_ARCHITECTURE"]}", __dir__) + "**/*")
91
91
  FileUtils.cp_r assemblies, ruby_exe_dir, verbose: false unless ENV["_BUNDLER_WINDOWS_DLLS_COPIED"]
92
92
  ENV["_BUNDLER_WINDOWS_DLLS_COPIED"] = "1"
93
93
  end
data/Rakefile CHANGED
@@ -26,7 +26,7 @@ begin
26
26
  require_relative "tasks/announce"
27
27
  require_relative "tasks/docs"
28
28
  require_relative "tasks/spellcheck"
29
- require_relative "lib/chef/dist"
29
+ require_relative "chef-utils/lib/chef-utils/dist" unless defined?(ChefUtils::Dist)
30
30
  rescue LoadError => e
31
31
  puts "Skipping missing rake dep: #{e}"
32
32
  end
@@ -108,4 +108,4 @@ begin
108
108
  end
109
109
  rescue LoadError
110
110
  puts "yard is not available. bundle install first to make sure all dependencies are installed."
111
- end
111
+ end
data/bin/knife CHANGED
@@ -18,7 +18,7 @@
18
18
  # See the License for the specific language governing permissions and
19
19
  # limitations under the License.
20
20
 
21
- $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")))
21
+ $:.unshift(File.expand_path(File.join(__dir__, "..", "lib")))
22
22
  require "chef/application/knife"
23
23
 
24
24
  Chef::Application::Knife.new.run
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.add_dependency "train-core", "~> 3.2", ">= 3.2.28" # 3.2.28 fixes sudo prompts. See https://github.com/chef/chef/pull/9635
21
21
  s.add_dependency "train-winrm", ">= 0.2.5"
22
22
 
23
- s.add_dependency "license-acceptance", "~> 1.0", ">= 1.0.5"
23
+ s.add_dependency "license-acceptance", ">= 1.0.5", "< 3"
24
24
  s.add_dependency "mixlib-cli", ">= 2.1.1", "< 3.0"
25
25
  s.add_dependency "mixlib-log", ">= 2.0.3", "< 4.0"
26
26
  s.add_dependency "mixlib-authentication", ">= 2.1", "< 4"
@@ -38,6 +38,7 @@ Gem::Specification.new do |s|
38
38
  s.add_dependency "highline", ">= 1.6.9", "< 3"
39
39
  s.add_dependency "tty-prompt", "~> 0.21" # knife ui.ask prompt
40
40
  s.add_dependency "tty-screen", "~> 0.6" # knife list
41
+ s.add_dependency "tty-table", "~> 0.11" # knife render table output.
41
42
  s.add_dependency "pastel" # knife ui.color
42
43
  s.add_dependency "erubis", "~> 2.7"
43
44
  s.add_dependency "diff-lcs", ">= 1.2.4", "< 1.4.0" # 1.4 breaks output
@@ -157,12 +157,12 @@ class Chef
157
157
  end
158
158
 
159
159
  def http_api
160
- options = {}
161
- options[:api_version] = "0"
162
- options[:client_name] = Chef::Config[:validation_client_name]
163
- options[:raw_key] = Chef::Config[:validation_key_contents]
164
- options[:signing_key_filename] = Chef::Config[:validation_key] unless options[:raw_key]
165
- @http_api ||= Chef::ServerAPI.new(Chef::Config[:chef_server_url], options)
160
+ @http_api ||= Chef::ServerAPI.new(Chef::Config[:chef_server_url],
161
+ {
162
+ api_version: "0",
163
+ client_name: Chef::Config[:validation_client_name],
164
+ signing_key_filename: Chef::Config[:validation_key],
165
+ })
166
166
  end
167
167
 
168
168
  # Whether or not to generate keys locally and post the public key to the
@@ -19,7 +19,6 @@
19
19
  require "pp" unless defined?(PP)
20
20
  require "socket" unless defined?(Socket)
21
21
  require_relative "config"
22
- require "chef-config/mixin/chef_cloud"
23
22
  require_relative "exceptions"
24
23
  require_relative "local_mode"
25
24
  require_relative "log"
@@ -28,8 +27,10 @@ require "mixlib/cli" unless defined?(Mixlib::CLI)
28
27
  require "tmpdir" unless defined?(Dir.mktmpdir)
29
28
  require "rbconfig" unless defined?(RbConfig)
30
29
  require_relative "application/exit_code"
31
- require_relative "dist"
32
- require "license_acceptance/acceptor"
30
+ require "chef-utils" unless defined?(ChefUtils::CANARY)
31
+ module LicenseAcceptance
32
+ autoload :Acceptor, "license_acceptance/acceptor"
33
+ end
33
34
 
34
35
  class Chef
35
36
  class Application
@@ -40,9 +41,6 @@ class Chef
40
41
 
41
42
  @chef_client = nil
42
43
  @chef_client_json = nil
43
-
44
- # Always switch to a readable directory. Keeps subsequent Dir.chdir() {}
45
- # from failing due to permissions when launched as a less privileged user.
46
44
  end
47
45
 
48
46
  # Configure mixlib-cli to always separate defaults from user-supplied CLI options
@@ -97,7 +95,11 @@ class Chef
97
95
  # Parse configuration (options and config file)
98
96
  def configure_chef
99
97
  parse_options
100
- load_config_file
98
+ begin
99
+ load_config_file
100
+ rescue Exception => e
101
+ Chef::Application.fatal!(e.message, Chef::Exceptions::ConfigurationError.new)
102
+ end
101
103
  chef_config.export_proxies
102
104
  chef_config.init_openssl
103
105
  File.umask chef_config[:umask]
@@ -137,10 +139,6 @@ class Chef
137
139
 
138
140
  if config[:config_file].nil?
139
141
  logger.warn("No config file found or specified on command line. Using command line options instead.")
140
- elsif ChefConfig::Mixin::ChefCloud.cloud_config?
141
- logger.warn("*****************************************")
142
- logger.warn("Found Chef Cloud configuration. Overriding local values from cloud.")
143
- logger.warn("*****************************************")
144
142
  elsif config_fetcher.config_missing?
145
143
  logger.warn("*****************************************")
146
144
  logger.warn("Did not find config file: #{config[:config_file]}. Using command line options instead.")
@@ -156,8 +154,6 @@ class Chef
156
154
 
157
155
  def apply_extra_config_options(extra_config_options)
158
156
  chef_config.apply_extra_config_options(extra_config_options)
159
- rescue ChefConfig::UnparsableConfigOption => e
160
- Chef::Application.fatal!(e.message)
161
157
  end
162
158
 
163
159
  # Set the specific recipes to Chef::Config if the recipes are valid
@@ -176,7 +172,7 @@ class Chef
176
172
  def configure_logging
177
173
  configure_log_location
178
174
  logger.init(MonoLogger.new(chef_config[:log_location][0]))
179
- chef_config[:log_location][1..-1].each do |log_location|
175
+ chef_config[:log_location][1..].each do |log_location|
180
176
  logger.loggers << MonoLogger.new(log_location)
181
177
  end
182
178
  logger.level = resolve_log_level
@@ -311,7 +307,7 @@ class Chef
311
307
  end
312
308
 
313
309
  def fork_chef_client
314
- logger.info "Forking #{Chef::Dist::PRODUCT} instance to converge..."
310
+ logger.info "Forking #{ChefUtils::Dist::Infra::PRODUCT} instance to converge..."
315
311
  pid = fork do
316
312
  # Want to allow forked processes to finish converging when
317
313
  # TERM singal is received (exit gracefully)
@@ -320,7 +316,7 @@ class Chef
320
316
  " finishing converge to exit normally (send SIGINT to terminate immediately)")
321
317
  end
322
318
 
323
- client_solo = chef_config[:solo] ? "#{Chef::Dist::SOLOEXEC}" : "#{Chef::Dist::CLIENT}"
319
+ client_solo = chef_config[:solo] ? ChefUtils::Dist::Solo::EXEC : ChefUtils::Dist::Infra::CLIENT
324
320
  $0 = "#{client_solo} worker: ppid=#{Process.ppid};start=#{Time.new.strftime("%R:%S")};"
325
321
  begin
326
322
  logger.trace "Forked instance now converging"
@@ -332,7 +328,7 @@ class Chef
332
328
  exit 0
333
329
  end
334
330
  end
335
- logger.trace "Fork successful. Waiting for new #{Chef::Dist::CLIENT} pid: #{pid}"
331
+ logger.trace "Fork successful. Waiting for new #{ChefUtils::Dist::Infra::CLIENT} pid: #{pid}"
336
332
  result = Process.waitpid2(pid)
337
333
  handle_child_exit(result)
338
334
  logger.trace "Forked instance successfully reaped (pid: #{pid})"
@@ -344,9 +340,9 @@ class Chef
344
340
  return true if status.success?
345
341
 
346
342
  message = if status.signaled?
347
- "#{Chef::Dist::PRODUCT} run process terminated by signal #{status.termsig} (#{Signal.list.invert[status.termsig]})"
343
+ "#{ChefUtils::Dist::Infra::PRODUCT} run process terminated by signal #{status.termsig} (#{Signal.list.invert[status.termsig]})"
348
344
  else
349
- "#{Chef::Dist::PRODUCT} run process exited unsuccessfully (exit code #{status.exitstatus})"
345
+ "#{ChefUtils::Dist::Infra::PRODUCT} run process exited unsuccessfully (exit code #{status.exitstatus})"
350
346
  end
351
347
  raise Exceptions::ChildConvergeError, message
352
348
  end
@@ -357,7 +353,8 @@ class Chef
357
353
  logger.fatal("Configuration error #{error.class}: #{error.message}")
358
354
  filtered_trace = error.backtrace.grep(/#{Regexp.escape(config_file_path)}/)
359
355
  filtered_trace.each { |line| logger.fatal(" " + line ) }
360
- Chef::Application.fatal!("Aborting due to error in '#{config_file_path}'", error)
356
+ raise Chef::Exceptions::ConfigurationError.new("Aborting due to error in '#{config_file_path}': #{error}")
357
+ # Chef::Application.fatal!("Aborting due to error in '#{config_file_path}'", Chef::Exceptions::ConfigurationError.new(error))
361
358
  end
362
359
 
363
360
  # This is a hook for testing
@@ -378,8 +375,8 @@ class Chef
378
375
  chef_stacktrace_out = "Generated at #{Time.now}\n"
379
376
  chef_stacktrace_out += message
380
377
 
381
- Chef::FileCache.store("#{Chef::Dist::SHORT}-stacktrace.out", chef_stacktrace_out)
382
- logger.fatal("Stacktrace dumped to #{Chef::FileCache.load("#{Chef::Dist::SHORT}-stacktrace.out", false)}")
378
+ Chef::FileCache.store("#{ChefUtils::Dist::Infra::SHORT}-stacktrace.out", chef_stacktrace_out)
379
+ logger.fatal("Stacktrace dumped to #{Chef::FileCache.load("#{ChefUtils::Dist::Infra::SHORT}-stacktrace.out", false)}")
383
380
  logger.fatal("Please provide the contents of the stacktrace.out file if you file a bug report")
384
381
  if Chef::Config[:always_dump_stacktrace]
385
382
  logger.fatal(message)
@@ -27,13 +27,13 @@ require "fileutils" unless defined?(FileUtils)
27
27
  require "tempfile" unless defined?(Tempfile)
28
28
  require_relative "../providers"
29
29
  require_relative "../resources"
30
- require_relative "../dist"
30
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
31
31
  require "license_acceptance/cli_flags/mixlib_cli"
32
32
 
33
33
  class Chef::Application::Apply < Chef::Application
34
34
  include LicenseAcceptance::CLIFlags::MixlibCLI
35
35
 
36
- banner "Usage: #{Chef::Dist::APPLY} [RECIPE_FILE | -e RECIPE_TEXT | -s] [OPTIONS]"
36
+ banner "Usage: #{ChefUtils::Dist::Apply::EXEC} [RECIPE_FILE | -e RECIPE_TEXT | -s] [OPTIONS]"
37
37
 
38
38
  option :execute,
39
39
  short: "-e RECIPE_TEXT",
@@ -77,6 +77,11 @@ class Chef::Application::Apply < Chef::Application
77
77
  description: "Set the log level (trace, debug, info, warn, error, fatal).",
78
78
  proc: lambda { |l| l.to_sym }
79
79
 
80
+ option :log_location_cli,
81
+ short: "-L LOGLOCATION",
82
+ long: "--logfile LOGLOCATION",
83
+ description: "Set the log file location, defaults to STDOUT - recommended for daemonizing."
84
+
80
85
  option :always_dump_stacktrace,
81
86
  long: "--[no-]always-dump-stacktrace",
82
87
  boolean: true,
@@ -95,9 +100,9 @@ class Chef::Application::Apply < Chef::Application
95
100
  option :version,
96
101
  short: "-v",
97
102
  long: "--version",
98
- description: "Show #{Chef::Dist::PRODUCT} version.",
103
+ description: "Show #{ChefUtils::Dist::Infra::PRODUCT} version.",
99
104
  boolean: true,
100
- proc: lambda { |v| puts "#{Chef::Dist::PRODUCT}: #{::Chef::VERSION}" },
105
+ proc: lambda { |v| puts "#{ChefUtils::Dist::Infra::PRODUCT}: #{::Chef::VERSION}" },
101
106
  exit: 0
102
107
 
103
108
  option :why_run,
@@ -114,7 +119,7 @@ class Chef::Application::Apply < Chef::Application
114
119
 
115
120
  option :profile_ruby,
116
121
  long: "--[no-]profile-ruby",
117
- description: "Dump complete Ruby call graph stack of entire #{Chef::Dist::PRODUCT} run (expert only).",
122
+ description: "Dump complete Ruby call graph stack of entire #{ChefUtils::Dist::Infra::PRODUCT} run (expert only).",
118
123
  boolean: true,
119
124
  default: false
120
125
 
@@ -126,7 +131,7 @@ class Chef::Application::Apply < Chef::Application
126
131
 
127
132
  option :minimal_ohai,
128
133
  long: "--minimal-ohai",
129
- description: "Only run the bare minimum Ohai plugins #{Chef::Dist::PRODUCT} needs to function.",
134
+ description: "Only run the bare minimum Ohai plugins #{ChefUtils::Dist::Infra::PRODUCT} needs to function.",
130
135
  boolean: true
131
136
 
132
137
  attr_reader :json_attribs
@@ -176,7 +181,7 @@ class Chef::Application::Apply < Chef::Application
176
181
  else
177
182
  Chef::RunContext.new(@chef_client.node, {}, @chef_client.events)
178
183
  end
179
- recipe = Chef::Recipe.new("(#{Chef::Dist::APPLY} cookbook)", "(#{Chef::Dist::APPLY} recipe)", run_context)
184
+ recipe = Chef::Recipe.new("(#{ChefUtils::Dist::Apply::EXEC} cookbook)", "(#{ChefUtils::Dist::Apply::EXEC} recipe)", run_context)
180
185
  [recipe, run_context]
181
186
  end
182
187
 
@@ -20,12 +20,13 @@ require_relative "../log"
20
20
  require_relative "../config"
21
21
  require_relative "../mixin/shell_out"
22
22
  require_relative "../config_fetcher"
23
- require_relative "../dist"
23
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
24
24
  require_relative "../daemon"
25
- require "chef-config/mixin/chef_cloud"
26
25
  require "chef-config/mixin/dot_d"
27
26
  require "license_acceptance/cli_flags/mixlib_cli"
28
- require "mixlib/archive" unless defined?(Mixlib::Archive)
27
+ module Mixlib
28
+ autoload :Archive, "mixlib/archive"
29
+ end
29
30
 
30
31
  # This is a temporary class being used as a part of an effort to reduce duplication
31
32
  # between Chef::Application::Client and Chef::Application::Solo.
@@ -40,7 +41,6 @@ require "mixlib/archive" unless defined?(Mixlib::Archive)
40
41
  #
41
42
  class Chef::Application::Base < Chef::Application
42
43
  include Chef::Mixin::ShellOut
43
- include ChefConfig::Mixin::ChefCloud
44
44
  include ChefConfig::Mixin::DotD
45
45
  include LicenseAcceptance::CLIFlags::MixlibCLI
46
46
 
@@ -57,7 +57,7 @@ class Chef::Application::Base < Chef::Application
57
57
 
58
58
  option :once,
59
59
  long: "--once",
60
- description: "Cancel any interval or splay options, run #{Chef::Dist::PRODUCT} once and exit.",
60
+ description: "Cancel any interval or splay options, run #{ChefUtils::Dist::Infra::PRODUCT} once and exit.",
61
61
  boolean: true
62
62
 
63
63
  option :formatter,
@@ -80,7 +80,7 @@ class Chef::Application::Base < Chef::Application
80
80
 
81
81
  option :profile_ruby,
82
82
  long: "--[no-]profile-ruby",
83
- description: "Dump complete Ruby call graph stack of entire #{Chef::Dist::PRODUCT} run (expert only).",
83
+ description: "Dump complete Ruby call graph stack of entire #{ChefUtils::Dist::Infra::PRODUCT} run (expert only).",
84
84
  boolean: true,
85
85
  default: false
86
86
 
@@ -136,7 +136,7 @@ class Chef::Application::Base < Chef::Application
136
136
  option :interval,
137
137
  short: "-i SECONDS",
138
138
  long: "--interval SECONDS",
139
- description: "Run #{Chef::Dist::PRODUCT} periodically, in seconds.",
139
+ description: "Run #{ChefUtils::Dist::Infra::PRODUCT} periodically, in seconds.",
140
140
  proc: lambda { |s| s.to_i }
141
141
 
142
142
  option :json_attribs,
@@ -160,12 +160,12 @@ class Chef::Application::Base < Chef::Application
160
160
  option :environment,
161
161
  short: "-E ENVIRONMENT",
162
162
  long: "--environment ENVIRONMENT",
163
- description: "Set the #{Chef::Dist::PRODUCT} environment on the node."
163
+ description: "Set the #{ChefUtils::Dist::Infra::PRODUCT} environment on the node."
164
164
 
165
165
  option :client_fork,
166
166
  short: "-f",
167
167
  long: "--[no-]fork",
168
- description: "Fork #{Chef::Dist::PRODUCT} process."
168
+ description: "Fork #{ChefUtils::Dist::Infra::PRODUCT} process."
169
169
 
170
170
  option :why_run,
171
171
  short: "-W",
@@ -192,14 +192,14 @@ class Chef::Application::Base < Chef::Application
192
192
  option :version,
193
193
  short: "-v",
194
194
  long: "--version",
195
- description: "Show #{Chef::Dist::PRODUCT} version.",
195
+ description: "Show #{ChefUtils::Dist::Infra::PRODUCT} version.",
196
196
  boolean: true,
197
- proc: lambda { |v| puts "#{Chef::Dist::PRODUCT}: #{::Chef::VERSION}" },
197
+ proc: lambda { |v| puts "#{ChefUtils::Dist::Infra::PRODUCT}: #{::Chef::VERSION}" },
198
198
  exit: 0
199
199
 
200
200
  option :minimal_ohai,
201
201
  long: "--minimal-ohai",
202
- description: "Only run the bare minimum Ohai plugins #{Chef::Dist::PRODUCT} needs to function.",
202
+ description: "Only run the bare minimum Ohai plugins #{ChefUtils::Dist::Infra::PRODUCT} needs to function.",
203
203
  boolean: true
204
204
 
205
205
  option :delete_entire_chef_repo,
@@ -215,7 +215,7 @@ class Chef::Application::Base < Chef::Application
215
215
  option :target,
216
216
  short: "-t TARGET",
217
217
  long: "--target TARGET",
218
- description: "Target #{Chef::Dist::PRODUCT} against a remote system or device",
218
+ description: "Target #{ChefUtils::Dist::Infra::PRODUCT} against a remote system or device",
219
219
  proc: lambda { |target|
220
220
  Chef::Log.warn "-- EXPERIMENTAL -- Target mode activated, resources and dsl may change without warning -- EXPERIMENTAL --"
221
221
  target
@@ -230,7 +230,7 @@ class Chef::Application::Base < Chef::Application
230
230
  option :fatal_windows_admin_check,
231
231
  short: "-A",
232
232
  long: "--fatal-windows-admin-check",
233
- description: "Fail the run when #{Chef::Dist::CLIENT} doesn't have administrator privileges on Windows.",
233
+ description: "Fail the run when #{ChefUtils::Dist::Infra::CLIENT} doesn't have administrator privileges on Windows.",
234
234
  boolean: true
235
235
  end
236
236
 
@@ -247,7 +247,7 @@ class Chef::Application::Base < Chef::Application
247
247
  option :chef_server_url,
248
248
  short: "-S CHEFSERVERURL",
249
249
  long: "--server CHEFSERVERURL",
250
- description: "The #{Chef::Dist::SERVER_PRODUCT} URL.",
250
+ description: "The #{ChefUtils::Dist::Server::PRODUCT} URL.",
251
251
  proc: nil
252
252
 
253
253
  option :validation_key,
@@ -265,7 +265,7 @@ class Chef::Application::Base < Chef::Application
265
265
  option :enable_reporting,
266
266
  short: "-R",
267
267
  long: "--enable-reporting",
268
- description: "(#{Chef::Dist::CLIENT} only) reporting data collection for runs.",
268
+ description: "(#{ChefUtils::Dist::Infra::CLIENT} only) reporting data collection for runs.",
269
269
  boolean: true
270
270
 
271
271
  option :local_mode,
@@ -276,11 +276,11 @@ class Chef::Application::Base < Chef::Application
276
276
 
277
277
  option :chef_zero_host,
278
278
  long: "--chef-zero-host HOST",
279
- description: "Host to start #{Chef::Dist::ZERO} on."
279
+ description: "Host to start #{ChefUtils::Dist::Zero::PRODUCT} on."
280
280
 
281
281
  option :chef_zero_port,
282
282
  long: "--chef-zero-port PORT",
283
- description: "Port (or port range) to start #{Chef::Dist::ZERO} on. Port ranges like 1000,1010 or 8889-9999 will try all given ports until one works."
283
+ description: "Port (or port range) to start #{ChefUtils::Dist::Zero::PRODUCT} on. Port ranges like 1000,1010 or 8889-9999 will try all given ports until one works."
284
284
 
285
285
  option :listen,
286
286
  long: "--[no-]listen",
@@ -289,7 +289,7 @@ class Chef::Application::Base < Chef::Application
289
289
 
290
290
  option :skip_cookbook_sync,
291
291
  long: "--[no-]skip-cookbook-sync",
292
- description: "(#{Chef::Dist::CLIENT} only) Use cached cookbooks without overwriting local differences from the #{Chef::Dist::SERVER_PRODUCT}.",
292
+ description: "(#{ChefUtils::Dist::Infra::CLIENT} only) Use cached cookbooks without overwriting local differences from the #{ChefUtils::Dist::Server::PRODUCT}.",
293
293
  boolean: false
294
294
 
295
295
  option :named_run_list,
@@ -328,7 +328,7 @@ class Chef::Application::Base < Chef::Application
328
328
  # Run the chef client, optionally daemonizing or looping at intervals.
329
329
  def run_application
330
330
  if Chef::Config[:version]
331
- puts "#{Chef::Dist::PRODUCT} version: #{::Chef::VERSION}"
331
+ puts "#{ChefUtils::Dist::Infra::PRODUCT} version: #{::Chef::VERSION}"
332
332
  end
333
333
 
334
334
  if !Chef::Config[:client_fork] || Chef::Config[:once]
@@ -348,20 +348,21 @@ class Chef::Application::Base < Chef::Application
348
348
  private
349
349
 
350
350
  def windows_interval_error_message
351
- "Windows #{Chef::Dist::PRODUCT} interval runs are not supported in #{Chef::Dist::PRODUCT} 15 and later." +
351
+ "Windows #{ChefUtils::Dist::Infra::PRODUCT} interval runs are not supported in #{ChefUtils::Dist::Infra::PRODUCT} 15 and later." +
352
352
  "\nConfiguration settings:" +
353
353
  ("\n interval = #{Chef::Config[:interval]} seconds" if Chef::Config[:interval]).to_s +
354
- "\nPlease manage #{Chef::Dist::PRODUCT} as a scheduled task instead."
354
+ "\nPlease manage #{ChefUtils::Dist::Infra::PRODUCT} as a scheduled task instead."
355
355
  end
356
356
 
357
357
  def unforked_interval_error_message
358
- "Unforked #{Chef::Dist::PRODUCT} interval runs are disabled by default." +
358
+ "Unforked #{ChefUtils::Dist::Infra::PRODUCT} interval runs are disabled by default." +
359
359
  "\nConfiguration settings:" +
360
360
  ("\n interval = #{Chef::Config[:interval]} seconds" if Chef::Config[:interval]).to_s +
361
- "\nEnable #{Chef::Dist::PRODUCT} interval runs by setting `:client_fork = true` in your config file or adding `--fork` to your command line options."
361
+ "\nEnable #{ChefUtils::Dist::Infra::PRODUCT} interval runs by setting `:client_fork = true` in your config file or adding `--fork` to your command line options."
362
362
  end
363
363
 
364
364
  def fetch_recipe_tarball(url, path)
365
+ require "open-uri" unless defined?(OpenURI)
365
366
  Chef::Log.trace("Download recipes tarball from #{url} to #{path}")
366
367
  if File.exist?(url)
367
368
  FileUtils.cp(url, path)
@@ -379,7 +380,7 @@ class Chef::Application::Base < Chef::Application
379
380
 
380
381
  def interval_run_chef_client
381
382
  if Chef::Config[:daemonize]
382
- Chef::Daemon.daemonize(Chef::Dist::PRODUCT)
383
+ Chef::Daemon.daemonize(ChefUtils::Dist::Infra::PRODUCT)
383
384
 
384
385
  # Start first daemonized run after configured number of seconds
385
386
  if Chef::Config[:daemonize].is_a?(Integer)