chef 16.3.45-universal-mingw32 → 16.5.77-universal-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (424) 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 +20 -18
  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 +55 -55
  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 +2 -2
  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/gem_installer.rb +1 -1
  36. data/lib/chef/cookbook/synchronizer.rb +2 -2
  37. data/lib/chef/cookbook_site_streaming_uploader.rb +13 -11
  38. data/lib/chef/cookbook_uploader.rb +1 -1
  39. data/lib/chef/data_collector.rb +6 -5
  40. data/lib/chef/data_collector/config_validation.rb +22 -13
  41. data/lib/chef/data_collector/run_end_message.rb +13 -3
  42. data/lib/chef/data_collector/run_start_message.rb +1 -1
  43. data/lib/chef/deprecated.rb +1 -1
  44. data/lib/chef/deprecation/warnings.rb +2 -2
  45. data/lib/chef/digester.rb +2 -2
  46. data/lib/chef/dsl/chef_vault.rb +1 -1
  47. data/lib/chef/dsl/data_query.rb +2 -2
  48. data/lib/chef/dsl/platform_introspection.rb +9 -9
  49. data/lib/chef/encrypted_data_bag_item.rb +3 -4
  50. data/lib/chef/encrypted_data_bag_item/decryptor.rb +3 -3
  51. data/lib/chef/encrypted_data_bag_item/encryptor.rb +3 -3
  52. data/lib/chef/environment.rb +4 -4
  53. data/lib/chef/event_loggers/windows_eventlog.rb +2 -2
  54. data/lib/chef/exceptions.rb +5 -5
  55. data/lib/chef/file_access_control/windows.rb +5 -1
  56. data/lib/chef/file_content_management/tempfile.rb +10 -10
  57. data/lib/chef/formatters/doc.rb +7 -6
  58. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +6 -5
  59. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +3 -3
  60. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +9 -9
  61. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +2 -2
  62. data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +3 -3
  63. data/lib/chef/formatters/indentable_output_stream.rb +2 -2
  64. data/lib/chef/formatters/minimal.rb +5 -4
  65. data/lib/chef/http.rb +6 -3
  66. data/lib/chef/http/auth_credentials.rb +5 -1
  67. data/lib/chef/http/authenticator.rb +1 -1
  68. data/lib/chef/http/basic_client.rb +4 -2
  69. data/lib/chef/http/decompressor.rb +1 -1
  70. data/lib/chef/http/http_request.rb +7 -5
  71. data/lib/chef/http/socketless_chef_zero_client.rb +5 -2
  72. data/lib/chef/http/ssl_policies.rb +1 -1
  73. data/lib/chef/json_compat.rb +2 -2
  74. data/lib/chef/knife.rb +4 -4
  75. data/lib/chef/knife/bootstrap.rb +18 -16
  76. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  77. data/lib/chef/knife/bootstrap/templates/chef-full.erb +3 -3
  78. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +7 -7
  79. data/lib/chef/knife/client_create.rb +3 -3
  80. data/lib/chef/knife/config_get.rb +8 -97
  81. data/lib/chef/knife/config_get_profile.rb +9 -9
  82. data/lib/chef/knife/config_list.rb +139 -0
  83. data/lib/chef/knife/config_list_profiles.rb +8 -98
  84. data/lib/chef/knife/config_show.rb +127 -0
  85. data/lib/chef/knife/config_use.rb +61 -0
  86. data/lib/chef/knife/config_use_profile.rb +9 -24
  87. data/lib/chef/knife/configure.rb +4 -2
  88. data/lib/chef/knife/cookbook_download.rb +1 -1
  89. data/lib/chef/knife/cookbook_metadata.rb +1 -1
  90. data/lib/chef/knife/cookbook_upload.rb +23 -23
  91. data/lib/chef/knife/core/bootstrap_context.rb +2 -2
  92. data/lib/chef/knife/core/generic_presenter.rb +1 -1
  93. data/lib/chef/knife/core/hashed_command_loader.rb +2 -2
  94. data/lib/chef/knife/core/object_loader.rb +1 -1
  95. data/lib/chef/knife/core/ui.rb +1 -1
  96. data/lib/chef/knife/core/windows_bootstrap_context.rb +42 -34
  97. data/lib/chef/knife/delete.rb +15 -15
  98. data/lib/chef/knife/exec.rb +4 -4
  99. data/lib/chef/knife/node_policy_set.rb +2 -2
  100. data/lib/chef/knife/node_run_list_add.rb +1 -1
  101. data/lib/chef/knife/node_run_list_remove.rb +1 -1
  102. data/lib/chef/knife/node_run_list_set.rb +1 -1
  103. data/lib/chef/knife/node_show.rb +2 -2
  104. data/lib/chef/knife/role_env_run_list_add.rb +1 -1
  105. data/lib/chef/knife/role_env_run_list_set.rb +1 -1
  106. data/lib/chef/knife/role_run_list_add.rb +1 -1
  107. data/lib/chef/knife/role_run_list_set.rb +1 -1
  108. data/lib/chef/knife/search.rb +0 -1
  109. data/lib/chef/knife/serve.rb +3 -3
  110. data/lib/chef/knife/ssh.rb +24 -9
  111. data/lib/chef/knife/ssl_check.rb +3 -3
  112. data/lib/chef/knife/status.rb +2 -2
  113. data/lib/chef/knife/tag_create.rb +1 -1
  114. data/lib/chef/knife/tag_delete.rb +1 -1
  115. data/lib/chef/knife/user_create.rb +2 -2
  116. data/lib/chef/knife/xargs.rb +19 -19
  117. data/lib/chef/knife/yaml_convert.rb +1 -1
  118. data/lib/chef/local_mode.rb +2 -2
  119. data/lib/chef/log/syslog.rb +2 -2
  120. data/lib/chef/log/winevt.rb +2 -2
  121. data/lib/chef/mixin/checksum.rb +0 -1
  122. data/lib/chef/mixin/deep_merge.rb +35 -18
  123. data/lib/chef/mixin/openssl_helper.rb +4 -5
  124. data/lib/chef/mixin/shell_out.rb +1 -1
  125. data/lib/chef/mixin/template.rb +3 -3
  126. data/lib/chef/mixin/uris.rb +4 -2
  127. data/lib/chef/mixin/versioned_api.rb +1 -2
  128. data/lib/chef/mixin/which.rb +1 -1
  129. data/lib/chef/monkey_patches/net_http.rb +4 -4
  130. data/lib/chef/monkey_patches/webrick-utils.rb +10 -10
  131. data/lib/chef/node/attribute.rb +2 -4
  132. data/lib/chef/node_map.rb +4 -4
  133. data/lib/chef/platform/service_helpers.rb +1 -1
  134. data/lib/chef/policy_builder/dynamic.rb +2 -0
  135. data/lib/chef/policy_builder/policyfile.rb +2 -2
  136. data/lib/chef/property.rb +1 -1
  137. data/lib/chef/provider.rb +1 -5
  138. data/lib/chef/provider/cron/unix.rb +0 -2
  139. data/lib/chef/provider/file.rb +2 -2
  140. data/lib/chef/provider/git.rb +5 -5
  141. data/lib/chef/provider/group.rb +0 -2
  142. data/lib/chef/provider/group/suse.rb +5 -5
  143. data/lib/chef/provider/ifconfig.rb +1 -4
  144. data/lib/chef/provider/launchd.rb +2 -2
  145. data/lib/chef/provider/link.rb +0 -9
  146. data/lib/chef/provider/mount.rb +0 -2
  147. data/lib/chef/provider/mount/linux.rb +63 -0
  148. data/lib/chef/provider/package.rb +0 -2
  149. data/lib/chef/provider/package/dpkg.rb +3 -12
  150. data/lib/chef/provider/package/homebrew.rb +1 -1
  151. data/lib/chef/provider/package/rubygems.rb +22 -19
  152. data/lib/chef/provider/package/snap.rb +1 -2
  153. data/lib/chef/provider/package/windows.rb +2 -2
  154. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +12 -10
  155. data/lib/chef/provider/package/zypper.rb +1 -1
  156. data/lib/chef/provider/powershell_script.rb +21 -5
  157. data/lib/chef/provider/remote_file/content.rb +3 -0
  158. data/lib/chef/provider/remote_file/ftp.rb +6 -4
  159. data/lib/chef/provider/remote_file/sftp.rb +6 -4
  160. data/lib/chef/provider/route.rb +2 -6
  161. data/lib/chef/provider/service/arch.rb +1 -1
  162. data/lib/chef/provider/service/debian.rb +1 -1
  163. data/lib/chef/provider/service/gentoo.rb +2 -2
  164. data/lib/chef/provider/service/macosx.rb +4 -4
  165. data/lib/chef/provider/service/openbsd.rb +1 -4
  166. data/lib/chef/provider/service/redhat.rb +3 -3
  167. data/lib/chef/provider/service/upstart.rb +1 -1
  168. data/lib/chef/provider/service/windows.rb +10 -10
  169. data/lib/chef/provider/systemd_unit.rb +0 -2
  170. data/lib/chef/provider/template/content.rb +1 -0
  171. data/lib/chef/provider/template_finder.rb +2 -10
  172. data/lib/chef/provider/user/dscl.rb +7 -7
  173. data/lib/chef/provider/user/mac.rb +12 -12
  174. data/lib/chef/provider/windows_task.rb +1 -5
  175. data/lib/chef/provider/zypper_repository.rb +2 -3
  176. data/lib/chef/provider_resolver.rb +1 -1
  177. data/lib/chef/providers.rb +1 -1
  178. data/lib/chef/recipe.rb +2 -2
  179. data/lib/chef/resource.rb +8 -12
  180. data/lib/chef/resource/apt_repository.rb +5 -12
  181. data/lib/chef/resource/bff_package.rb +22 -0
  182. data/lib/chef/resource/breakpoint.rb +57 -2
  183. data/lib/chef/resource/build_essential.rb +1 -1
  184. data/lib/chef/resource/cab_package.rb +29 -0
  185. data/lib/chef/resource/chef_client_cron.rb +32 -25
  186. data/lib/chef/resource/chef_client_launchd.rb +194 -0
  187. data/lib/chef/resource/chef_client_scheduled_task.rb +21 -18
  188. data/lib/chef/resource/chef_client_systemd_timer.rb +26 -19
  189. data/lib/chef/resource/chef_client_trusted_certificate.rb +101 -0
  190. data/lib/chef/resource/chef_gem.rb +10 -10
  191. data/lib/chef/resource/chef_handler.rb +149 -4
  192. data/lib/chef/resource/chef_sleep.rb +2 -2
  193. data/lib/chef/resource/chef_vault_secret.rb +14 -14
  194. data/lib/chef/resource/cookbook_file.rb +2 -2
  195. data/lib/chef/resource/cron/_cron_shared.rb +1 -0
  196. data/lib/chef/resource/cron/cron_d.rb +0 -1
  197. data/lib/chef/resource/dnf_package.rb +2 -2
  198. data/lib/chef/resource/dsc_resource.rb +0 -1
  199. data/lib/chef/resource/dsc_script.rb +2 -2
  200. data/lib/chef/resource/execute.rb +8 -9
  201. data/lib/chef/resource/file.rb +4 -4
  202. data/lib/chef/resource/gem_package.rb +5 -5
  203. data/lib/chef/resource/homebrew_package.rb +3 -3
  204. data/lib/chef/resource/homebrew_update.rb +7 -7
  205. data/lib/chef/resource/hostname.rb +2 -2
  206. data/lib/chef/resource/launchd.rb +2 -1
  207. data/lib/chef/resource/locale.rb +2 -2
  208. data/lib/chef/resource/macos_userdefaults.rb +3 -3
  209. data/lib/chef/resource/notify_group.rb +0 -1
  210. data/lib/chef/resource/ohai.rb +46 -3
  211. data/lib/chef/resource/ohai_hint.rb +33 -0
  212. data/lib/chef/resource/openssl_dhparam.rb +29 -5
  213. data/lib/chef/resource/openssl_ec_private_key.rb +8 -3
  214. data/lib/chef/resource/openssl_ec_public_key.rb +4 -2
  215. data/lib/chef/resource/openssl_rsa_private_key.rb +8 -3
  216. data/lib/chef/resource/openssl_rsa_public_key.rb +2 -0
  217. data/lib/chef/resource/openssl_x509_certificate.rb +38 -35
  218. data/lib/chef/resource/openssl_x509_crl.rb +21 -10
  219. data/lib/chef/resource/openssl_x509_request.rb +37 -36
  220. data/lib/chef/resource/osx_profile.rb +292 -6
  221. data/lib/chef/resource/plist.rb +1 -1
  222. data/lib/chef/resource/powershell_package_source.rb +6 -6
  223. data/lib/chef/resource/powershell_script.rb +24 -30
  224. data/lib/chef/resource/reboot.rb +2 -2
  225. data/lib/chef/resource/remote_file.rb +3 -3
  226. data/lib/chef/resource/rhsm_register.rb +22 -10
  227. data/lib/chef/resource/ruby_block.rb +2 -2
  228. data/lib/chef/resource/scm/subversion.rb +2 -2
  229. data/lib/chef/resource/service.rb +3 -3
  230. data/lib/chef/resource/ssh_known_hosts_entry.rb +2 -2
  231. data/lib/chef/resource/sudo.rb +1 -1
  232. data/lib/chef/resource/support/cron.d.erb +1 -1
  233. data/lib/chef/resource/support/cron_access.erb +1 -1
  234. data/lib/chef/resource/support/sudoer.erb +1 -1
  235. data/lib/chef/resource/support/ulimit.erb +1 -1
  236. data/lib/chef/resource/sysctl.rb +6 -10
  237. data/lib/chef/resource/systemd_unit.rb +2 -2
  238. data/lib/chef/resource/template.rb +2 -2
  239. data/lib/chef/resource/timezone.rb +112 -73
  240. data/lib/chef/resource/windows_ad_join.rb +12 -3
  241. data/lib/chef/resource/windows_audit_policy.rb +3 -0
  242. data/lib/chef/resource/windows_auto_run.rb +2 -0
  243. data/lib/chef/resource/windows_certificate.rb +8 -4
  244. data/lib/chef/resource/windows_dfs_folder.rb +2 -0
  245. data/lib/chef/resource/windows_dfs_namespace.rb +2 -0
  246. data/lib/chef/resource/windows_dfs_server.rb +2 -0
  247. data/lib/chef/resource/windows_dns_record.rb +10 -7
  248. data/lib/chef/resource/windows_dns_zone.rb +12 -7
  249. data/lib/chef/resource/windows_feature.rb +2 -0
  250. data/lib/chef/resource/windows_feature_dism.rb +10 -0
  251. data/lib/chef/resource/windows_feature_powershell.rb +14 -2
  252. data/lib/chef/resource/windows_firewall_profile.rb +24 -20
  253. data/lib/chef/resource/windows_firewall_rule.rb +5 -3
  254. data/lib/chef/resource/windows_font.rb +3 -1
  255. data/lib/chef/resource/windows_package.rb +28 -5
  256. data/lib/chef/resource/windows_pagefile.rb +4 -0
  257. data/lib/chef/resource/windows_printer.rb +22 -21
  258. data/lib/chef/resource/windows_printer_port.rb +20 -17
  259. data/lib/chef/resource/windows_security_policy.rb +2 -0
  260. data/lib/chef/resource/windows_share.rb +5 -3
  261. data/lib/chef/resource/windows_shortcut.rb +2 -0
  262. data/lib/chef/resource/windows_uac.rb +2 -0
  263. data/lib/chef/resource/windows_user_privilege.rb +54 -53
  264. data/lib/chef/resource/windows_workgroup.rb +5 -6
  265. data/lib/chef/resource/yum_package.rb +2 -2
  266. data/lib/chef/resource_collection/stepable_iterator.rb +1 -2
  267. data/lib/chef/resource_reporter.rb +0 -2
  268. data/lib/chef/resources.rb +3 -1
  269. data/lib/chef/role.rb +2 -2
  270. data/lib/chef/run_context.rb +2 -2
  271. data/lib/chef/run_context/cookbook_compiler.rb +21 -21
  272. data/lib/chef/run_lock.rb +2 -2
  273. data/lib/chef/run_status.rb +2 -6
  274. data/lib/chef/search/query.rb +6 -5
  275. data/lib/chef/shell.rb +32 -27
  276. data/lib/chef/shell/ext.rb +11 -11
  277. data/lib/chef/shell/shell_session.rb +2 -2
  278. data/lib/chef/train_transport.rb +5 -104
  279. data/lib/chef/util/backup.rb +2 -2
  280. data/lib/chef/util/diff.rb +14 -14
  281. data/lib/chef/util/powershell/cmdlet.rb +4 -2
  282. data/lib/chef/util/powershell/ps_credential.rb +18 -14
  283. data/lib/chef/util/threaded_job_queue.rb +0 -2
  284. data/lib/chef/version.rb +1 -1
  285. data/lib/chef/win32/crypto.rb +1 -1
  286. data/lib/chef/win32/file.rb +3 -3
  287. data/lib/chef/win32/file/version_info.rb +5 -5
  288. data/lib/chef/win32/registry.rb +1 -2
  289. data/lib/chef/win32/unicode.rb +1 -1
  290. data/spec/data/shef-config.rb +1 -1
  291. data/spec/data/ssl/chef-rspec.cert +15 -15
  292. data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -5
  293. data/spec/functional/resource/aix_service_spec.rb +2 -2
  294. data/spec/functional/resource/aixinit_service_spec.rb +8 -8
  295. data/spec/functional/resource/bff_spec.rb +2 -2
  296. data/spec/functional/resource/cookbook_file_spec.rb +1 -1
  297. data/spec/functional/resource/dsc_resource_spec.rb +1 -1
  298. data/spec/functional/resource/dsc_script_spec.rb +0 -1
  299. data/spec/functional/resource/group_spec.rb +6 -6
  300. data/spec/functional/resource/insserv_spec.rb +5 -5
  301. data/spec/functional/resource/link_spec.rb +20 -20
  302. data/spec/functional/resource/powershell_script_spec.rb +4 -4
  303. data/spec/functional/resource/rpm_spec.rb +2 -2
  304. data/spec/functional/resource/user/dscl_spec.rb +1 -1
  305. data/spec/functional/resource/user/mac_user_spec.rb +1 -1
  306. data/spec/functional/resource/windows_certificate_spec.rb +3 -3
  307. data/spec/functional/resource/windows_font_spec.rb +49 -0
  308. data/spec/functional/resource/windows_security_policy_spec.rb +0 -3
  309. data/spec/functional/resource/windows_task_spec.rb +13 -13
  310. data/spec/functional/run_lock_spec.rb +24 -24
  311. data/spec/functional/version_spec.rb +3 -3
  312. data/spec/functional/win32/registry_spec.rb +8 -8
  313. data/spec/functional/win32/service_manager_spec.rb +1 -1
  314. data/spec/integration/client/client_spec.rb +4 -4
  315. data/spec/integration/client/exit_code_spec.rb +3 -2
  316. data/spec/integration/client/ipv6_spec.rb +1 -1
  317. data/spec/integration/knife/common_options_spec.rb +12 -12
  318. data/spec/integration/knife/config_list_spec.rb +220 -0
  319. data/spec/integration/knife/config_show_spec.rb +192 -0
  320. data/spec/integration/knife/config_use_spec.rb +198 -0
  321. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
  322. data/spec/integration/knife/diff_spec.rb +3 -1
  323. data/spec/integration/knife/download_spec.rb +3 -1
  324. data/spec/integration/knife/serve_spec.rb +5 -5
  325. data/spec/integration/knife/upload_spec.rb +3 -1
  326. data/spec/integration/ohai/ohai_spec.rb +61 -0
  327. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
  328. data/spec/integration/recipes/remote_directory.rb +1 -1
  329. data/spec/integration/solo/solo_spec.rb +5 -5
  330. data/spec/spec_helper.rb +12 -11
  331. data/spec/stress/win32/file_spec.rb +1 -1
  332. data/spec/support/chef_helpers.rb +2 -2
  333. data/spec/support/matchers/leak.rb +2 -2
  334. data/spec/support/platform_helpers.rb +17 -35
  335. data/spec/support/platforms/win32/spec_service.rb +1 -1
  336. data/spec/support/shared/functional/directory_resource.rb +1 -1
  337. data/spec/support/shared/functional/execute_resource.rb +1 -1
  338. data/spec/support/shared/functional/file_resource.rb +20 -20
  339. data/spec/support/shared/functional/securable_resource.rb +108 -27
  340. data/spec/support/shared/functional/win32_service.rb +2 -2
  341. data/spec/support/shared/functional/windows_script.rb +3 -3
  342. data/spec/support/shared/integration/integration_helper.rb +22 -52
  343. data/spec/support/shared/unit/application_dot_d.rb +5 -3
  344. data/spec/support/shared/unit/script_resource.rb +6 -20
  345. data/spec/support/shared/unit/windows_script_resource.rb +15 -28
  346. data/spec/tiny_server.rb +0 -1
  347. data/spec/unit/application/client_spec.rb +2 -2
  348. data/spec/unit/application/exit_code_spec.rb +10 -0
  349. data/spec/unit/application_spec.rb +4 -6
  350. data/spec/unit/chef_fs/config_spec.rb +1 -1
  351. data/spec/unit/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  352. data/spec/unit/chef_fs/parallelizer_spec.rb +5 -1
  353. data/spec/unit/chef_fs/path_util_spec.rb +1 -1
  354. data/spec/unit/cookbook/synchronizer_spec.rb +2 -2
  355. data/spec/unit/cookbook_spec.rb +2 -2
  356. data/spec/unit/data_collector/config_validation_spec.rb +208 -0
  357. data/spec/unit/data_collector_spec.rb +28 -117
  358. data/spec/unit/dsl/declare_resource_spec.rb +1 -1
  359. data/spec/unit/environment_spec.rb +7 -7
  360. data/spec/unit/file_access_control_spec.rb +1 -1
  361. data/spec/unit/knife/bootstrap_spec.rb +20 -20
  362. data/spec/unit/knife/cookbook_download_spec.rb +4 -4
  363. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
  364. data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
  365. data/spec/unit/knife/core/ui_spec.rb +1 -0
  366. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +21 -12
  367. data/spec/unit/knife/ssh_spec.rb +2 -2
  368. data/spec/unit/knife/supermarket_share_spec.rb +1 -1
  369. data/spec/unit/lwrp_spec.rb +3 -3
  370. data/spec/unit/mixin/deep_merge_spec.rb +15 -0
  371. data/spec/unit/mixin/openssl_helper_spec.rb +1 -1
  372. data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
  373. data/spec/unit/mixin/securable_spec.rb +2 -2
  374. data/spec/unit/mixin/template_spec.rb +30 -30
  375. data/spec/unit/mixin/windows_architecture_helper_spec.rb +4 -4
  376. data/spec/unit/node/immutable_collections_spec.rb +8 -4
  377. data/spec/unit/node_spec.rb +5 -5
  378. data/spec/unit/provider/mount/linux_spec.rb +97 -0
  379. data/spec/unit/provider/package/chocolatey_spec.rb +1 -1
  380. data/spec/unit/provider/package/powershell_spec.rb +1 -1
  381. data/spec/unit/provider/package/rubygems_spec.rb +4 -1
  382. data/spec/unit/provider/powershell_script_spec.rb +11 -4
  383. data/spec/unit/provider/remote_directory_spec.rb +9 -9
  384. data/spec/unit/provider/route_spec.rb +0 -2
  385. data/spec/unit/provider/service/arch_service_spec.rb +3 -2
  386. data/spec/unit/provider/service/debian_service_spec.rb +1 -1
  387. data/spec/unit/provider/service/gentoo_service_spec.rb +7 -7
  388. data/spec/unit/provider/service/macosx_spec.rb +3 -3
  389. data/spec/unit/provider/service/redhat_spec.rb +2 -2
  390. data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
  391. data/spec/unit/provider_resolver_spec.rb +6 -6
  392. data/spec/unit/recipe_spec.rb +1 -1
  393. data/spec/unit/resource/batch_spec.rb +6 -6
  394. data/spec/unit/resource/chef_client_cron_spec.rb +35 -14
  395. data/spec/unit/resource/chef_client_launchd_spec.rb +127 -0
  396. data/spec/unit/resource/chef_client_systemd_timer_spec.rb +36 -1
  397. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +54 -0
  398. data/spec/unit/resource/execute_spec.rb +113 -118
  399. data/spec/unit/resource/launchd_spec.rb +8 -0
  400. data/spec/unit/resource/osx_profile_spec.rb +299 -0
  401. data/spec/unit/resource/powershell_script_spec.rb +11 -29
  402. data/spec/unit/resource/rhsm_register_spec.rb +56 -18
  403. data/spec/unit/resource/script_spec.rb +6 -1
  404. data/spec/unit/resource/timezone_spec.rb +63 -0
  405. data/spec/unit/resource/windows_feature_powershell_spec.rb +30 -4
  406. data/spec/unit/resource/windows_uac_spec.rb +1 -1
  407. data/spec/unit/resource/windows_user_privilege_spec.rb +55 -0
  408. data/spec/unit/role_spec.rb +11 -11
  409. data/spec/unit/run_lock_spec.rb +5 -1
  410. data/spec/unit/runner_spec.rb +1 -2
  411. data/spec/unit/shell/shell_ext_spec.rb +46 -3
  412. data/spec/unit/shell/shell_session_spec.rb +35 -64
  413. data/spec/unit/shell_spec.rb +16 -19
  414. data/spec/unit/train_transport_spec.rb +14 -13
  415. data/spec/unit/util/selinux_spec.rb +2 -0
  416. data/tasks/rspec.rb +1 -3
  417. metadata +42 -33
  418. data/lib/chef/dist.rb +0 -68
  419. data/lib/chef/provider/osx_profile.rb +0 -255
  420. data/spec/integration/knife/config_get_profile_spec.rb +0 -113
  421. data/spec/integration/knife/config_get_spec.rb +0 -191
  422. data/spec/integration/knife/config_list_profiles_spec.rb +0 -218
  423. data/spec/integration/knife/config_use_profile_spec.rb +0 -154
  424. data/spec/unit/provider/osx_profile_spec.rb +0 -255
@@ -17,7 +17,8 @@
17
17
  #
18
18
 
19
19
  require_relative "../../http/authenticator"
20
- require_relative "../../dist"
20
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
21
+ require "timeout" unless defined?(Timeout)
21
22
 
22
23
  class Chef
23
24
  module Formatters
@@ -40,7 +41,7 @@ class Chef
40
41
  def describe_eof_error(error_description)
41
42
  error_description.section("Authentication Error:", <<~E)
42
43
  Received an EOF on transport socket. This almost always indicates a network
43
- error external to #{Chef::Dist::CLIENT}. Some causes include:
44
+ error external to #{ChefUtils::Dist::Infra::CLIENT}. Some causes include:
44
45
 
45
46
  - Blocking ICMP Dest Unreachable (breaking Path MTU Discovery)
46
47
  - IPsec or VPN tunnelling / TCP Encapsulation MTU issues
@@ -114,8 +115,8 @@ class Chef
114
115
  error_description.section("Incompatible server API version:", <<~E)
115
116
  This version of the API that this request specified is not supported by the server you sent this request to.
116
117
  The server supports a min API version of #{min_server_version} and a max API version of #{max_server_version}.
117
- #{Chef::Dist::PRODUCT} just made a request with an API version of #{client_api_version}.
118
- Please either update your #{Chef::Dist::PRODUCT} or the server to be a compatible set.
118
+ #{ChefUtils::Dist::Infra::PRODUCT} just made a request with an API version of #{client_api_version}.
119
+ Please either update your #{ChefUtils::Dist::Infra::PRODUCT} or the server to be a compatible set.
119
120
  E
120
121
  else
121
122
  describe_http_error(error_description)
@@ -130,7 +131,7 @@ class Chef
130
131
  end
131
132
 
132
133
  def describe_503_error(error_description)
133
- error_description.section("Server Unavailable", "The #{Chef::Dist::SERVER_PRODUCT} is temporarily unavailable")
134
+ error_description.section("Server Unavailable", "The #{ChefUtils::Dist::Server::PRODUCT} is temporarily unavailable")
134
135
  error_description.section("Server Response:", format_rest_error)
135
136
  end
136
137
 
@@ -17,7 +17,7 @@
17
17
  #
18
18
 
19
19
  require_relative "api_error_formatting"
20
- require_relative "../../dist"
20
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
21
21
 
22
22
  class Chef
23
23
  module Formatters
@@ -46,7 +46,7 @@ class Chef
46
46
  when Chef::Exceptions::PrivateKeyMissing
47
47
  error_description.section("Private Key Not Found:", <<~E)
48
48
  Your private key could not be loaded. If the key file exists, ensure that it is
49
- readable by #{Chef::Dist::PRODUCT}.
49
+ readable by #{ChefUtils::Dist::Infra::PRODUCT}.
50
50
  E
51
51
  error_description.section("Relevant Config Settings:", <<~E)
52
52
  client_key "#{api_key}"
@@ -99,7 +99,7 @@ class Chef
99
99
  # redirect.
100
100
  def describe_404_error(error_description)
101
101
  error_description.section("Resource Not Found:", <<~E)
102
- The #{Chef::Dist::SERVER_PRODUCT} returned a HTTP 404. This usually indicates that your chef_server_url is incorrect.
102
+ The #{ChefUtils::Dist::Server::PRODUCT} returned a HTTP 404. This usually indicates that your chef_server_url is incorrect.
103
103
  E
104
104
  error_description.section("Relevant Config Settings:", <<~E)
105
105
  chef_server_url "#{server_url}"
@@ -1,4 +1,4 @@
1
- require_relative "../../dist"
1
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
2
2
 
3
3
  class Chef
4
4
  module Formatters
@@ -28,7 +28,7 @@ class Chef
28
28
  humanize_http_exception(error_description)
29
29
  when Errno::ECONNREFUSED, Timeout::Error, Errno::ETIMEDOUT, SocketError
30
30
  error_description.section("Network Error:", <<~E)
31
- There was a network error connecting to the #{Chef::Dist::SERVER_PRODUCT}:
31
+ There was a network error connecting to the #{ChefUtils::Dist::Server::PRODUCT}:
32
32
  #{exception.message}
33
33
  E
34
34
  error_description.section("Relevant Config Settings:", <<~E)
@@ -39,14 +39,14 @@ class Chef
39
39
  when Chef::Exceptions::PrivateKeyMissing
40
40
  error_description.section("Private Key Not Found:", <<~E)
41
41
  Your private key could not be loaded. If the key file exists, ensure that it is
42
- readable by #{Chef::Dist::PRODUCT}.
42
+ readable by #{ChefUtils::Dist::Infra::PRODUCT}.
43
43
  E
44
44
  error_description.section("Relevant Config Settings:", <<~E)
45
45
  validation_key "#{api_key}"
46
46
  E
47
47
  when Chef::Exceptions::InvalidRedirect
48
48
  error_description.section("Invalid Redirect:", <<~E)
49
- Change your #{Chef::Dist::SERVER_PRODUCT} location in client.rb to the #{Chef::Dist::SERVER_PRODUCT}'s FQDN to avoid unwanted redirections.
49
+ Change your #{ChefUtils::Dist::Server::PRODUCT} location in client.rb to the #{ChefUtils::Dist::Server::PRODUCT}'s FQDN to avoid unwanted redirections.
50
50
  E
51
51
  when EOFError
52
52
  describe_eof_error(error_description)
@@ -61,13 +61,13 @@ class Chef
61
61
  when Net::HTTPUnauthorized
62
62
  if clock_skew?
63
63
  error_description.section("Authentication Error:", <<~E)
64
- Failed to authenticate to the #{Chef::Dist::SERVER_PRODUCT} (http 401).
64
+ Failed to authenticate to the #{ChefUtils::Dist::Server::PRODUCT} (http 401).
65
65
  The request failed because your clock has drifted by more than 15 minutes.
66
66
  Syncing your clock to an NTP Time source should resolve the issue.
67
67
  E
68
68
  else
69
69
  error_description.section("Authentication Error:", <<~E)
70
- Failed to authenticate to the #{Chef::Dist::SERVER_PRODUCT} (http 401).
70
+ Failed to authenticate to the #{ChefUtils::Dist::Server::PRODUCT} (http 401).
71
71
  E
72
72
 
73
73
  error_description.section("Server Response:", format_rest_error)
@@ -81,7 +81,7 @@ class Chef
81
81
  end
82
82
  when Net::HTTPForbidden
83
83
  error_description.section("Authorization Error:", <<~E)
84
- Your validation client is not authorized to create the client for this node on the #{Chef::Dist::SERVER_PRODUCT} (HTTP 403).
84
+ Your validation client is not authorized to create the client for this node on the #{ChefUtils::Dist::Server::PRODUCT} (HTTP 403).
85
85
  E
86
86
  error_description.section("Possible Causes:", <<~E)
87
87
  * There may already be a client named "#{config[:node_name]}"
@@ -94,7 +94,7 @@ class Chef
94
94
  error_description.section("Server Response:", format_rest_error)
95
95
  when Net::HTTPNotFound
96
96
  error_description.section("Resource Not Found:", <<~E)
97
- The #{Chef::Dist::SERVER_PRODUCT} returned a HTTP 404. This usually indicates that your chef_server_url configuration is incorrect.
97
+ The #{ChefUtils::Dist::Server::PRODUCT} returned a HTTP 404. This usually indicates that your chef_server_url configuration is incorrect.
98
98
  E
99
99
  error_description.section("Relevant Config Settings:", <<~E)
100
100
  chef_server_url "#{server_url}"
@@ -107,7 +107,7 @@ class Chef
107
107
  E
108
108
  error_description.section("Server Response:", format_rest_error)
109
109
  when Net::HTTPBadGateway, Net::HTTPServiceUnavailable
110
- error_description.section("Server Unavailable", "The #{Chef::Dist::SERVER_PRODUCT} is temporarily unavailable")
110
+ error_description.section("Server Unavailable", "The #{ChefUtils::Dist::Server::PRODUCT} is temporarily unavailable")
111
111
  error_description.section("Server Response:", format_rest_error)
112
112
  else
113
113
  error_description.section("Unexpected API Request Failure:", format_rest_error)
@@ -16,7 +16,7 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
  #
19
- require_relative "../../dist"
19
+ require "chef-utils" unless defined?(ChefUtils::CANARY)
20
20
 
21
21
  class Chef
22
22
  module Formatters
@@ -56,7 +56,7 @@ class Chef
56
56
  require_relative "../../win32/security"
57
57
 
58
58
  unless Chef::ReservedNames::Win32::Security.has_admin_privileges?
59
- error_description.section("Missing Windows Admin Privileges", "#{Chef::Dist::CLIENT} doesn't have administrator privileges. This can be a possible reason for the resource failure.")
59
+ error_description.section("Missing Windows Admin Privileges", "#{ChefUtils::Dist::Infra::CLIENT} doesn't have administrator privileges. This can be a possible reason for the resource failure.")
60
60
  end
61
61
  end
62
62
  end
@@ -18,7 +18,7 @@
18
18
  #
19
19
 
20
20
  require_relative "api_error_formatting"
21
- require_relative "../../dist"
21
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
22
22
 
23
23
  class Chef
24
24
  module Formatters
@@ -78,7 +78,7 @@ class Chef
78
78
  case response
79
79
  when Net::HTTPUnauthorized
80
80
  error_description.section("Authentication Error:", <<~E)
81
- Failed to authenticate to the #{Chef::Dist::SERVER_PRODUCT} (http 401).
81
+ Failed to authenticate to the #{ChefUtils::Dist::Server::PRODUCT} (http 401).
82
82
  E
83
83
 
84
84
  error_description.section("Server Response:", format_rest_error)
@@ -109,7 +109,7 @@ class Chef
109
109
  E
110
110
  error_description.section("Server Response:", format_rest_error)
111
111
  when Net::HTTPBadGateway, Net::HTTPServiceUnavailable
112
- error_description.section("Server Unavailable", "The #{Chef::Dist::SERVER_PRODUCT} is temporarily unavailable")
112
+ error_description.section("Server Unavailable", "The #{ChefUtils::Dist::Server::PRODUCT} is temporarily unavailable")
113
113
  error_description.section("Server Response:", format_rest_error)
114
114
  else
115
115
  error_description.section("Unexpected API Request Failure:", format_rest_error)
@@ -20,7 +20,7 @@ class Chef
20
20
  # pastel.decorate is a lightweight replacement for highline.color
21
21
  def pastel
22
22
  @pastel ||= begin
23
- require "pastel"
23
+ require "pastel" unless defined?(Pastel)
24
24
  Pastel.new
25
25
  end
26
26
  end
@@ -126,7 +126,7 @@ class Chef
126
126
  indent_line(options)
127
127
 
128
128
  # Note that the next line will need to be started
129
- if line[-1..-1] == "\n"
129
+ if line[-1..] == "\n"
130
130
  @line_started = false
131
131
  end
132
132
 
@@ -1,5 +1,5 @@
1
1
  require_relative "base"
2
- require_relative "../dist"
2
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
3
3
 
4
4
  class Chef
5
5
 
@@ -28,19 +28,20 @@ class Chef
28
28
 
29
29
  # Called at the very start of a Chef Run
30
30
  def run_start(version, run_status)
31
- puts_line "Starting #{Chef::Dist::PRODUCT}, version #{version}"
31
+ puts_line "Starting #{ChefUtils::Dist::Infra::PRODUCT}, version #{version}"
32
+ puts_line "Patents: #{ChefUtils::Dist::Org::PATENTS}"
32
33
  puts_line "Targeting node: #{Chef::Config.target_mode.host}" if Chef::Config.target_mode?
33
34
  puts_line "OpenSSL FIPS 140 mode enabled" if Chef::Config[:fips]
34
35
  end
35
36
 
36
37
  # Called at the end of the Chef run.
37
38
  def run_completed(node)
38
- puts "#{Chef::Dist::PRODUCT} finished, #{@updated_resources.size} resources updated"
39
+ puts "#{ChefUtils::Dist::Infra::PRODUCT} finished, #{@updated_resources.size} resources updated"
39
40
  end
40
41
 
41
42
  # called at the end of a failed run
42
43
  def run_failed(exception)
43
- puts "#{Chef::Dist::PRODUCT} failed. #{@updated_resources.size} resources updated"
44
+ puts "#{ChefUtils::Dist::Infra::PRODUCT} failed. #{@updated_resources.size} resources updated"
44
45
  end
45
46
 
46
47
  # Called right after ohai runs.
@@ -22,10 +22,13 @@
22
22
  #
23
23
 
24
24
  require "tempfile" unless defined?(Tempfile)
25
- require "net/https"
26
- require "uri" unless defined?(URI)
25
+ autoload :OpenSSL, "openssl"
26
+ autoload :URI, "uri"
27
+ module Net
28
+ autoload :HTTP, File.expand_path("monkey_patches/net_http", __dir__)
29
+ autoload :HTTPClientException, File.expand_path("monkey_patches/net_http", __dir__)
30
+ end
27
31
  require_relative "http/basic_client"
28
- require_relative "monkey_patches/net_http"
29
32
  require_relative "config"
30
33
  require_relative "platform/query_helpers"
31
34
  require_relative "exceptions"
@@ -21,7 +21,11 @@
21
21
  # limitations under the License.
22
22
  #
23
23
  require_relative "../log"
24
- require "mixlib/authentication/signedheaderauth"
24
+ module Mixlib
25
+ module Authentication
26
+ autoload :SignedHeaderAuth, "mixlib/authentication/signedheaderauth"
27
+ end
28
+ end
25
29
 
26
30
  class Chef
27
31
  class HTTP
@@ -18,7 +18,7 @@
18
18
 
19
19
  require_relative "auth_credentials"
20
20
  require_relative "../exceptions"
21
- require "openssl" unless defined?(OpenSSL)
21
+ autoload :OpenSSL, "openssl"
22
22
 
23
23
  class Chef
24
24
  class HTTP
@@ -20,8 +20,10 @@
20
20
  # See the License for the specific language governing permissions and
21
21
  # limitations under the License.
22
22
  #
23
- require "uri" unless defined?(URI)
24
- require "net/http" unless defined?(Net::HTTP)
23
+ autoload :URI, "uri"
24
+ module Net
25
+ autoload :HTTP, File.expand_path("../monkey_patches/net_http", __dir__)
26
+ end
25
27
  require_relative "ssl_policies"
26
28
  require_relative "http_request"
27
29
 
@@ -16,7 +16,7 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- require "zlib"
19
+ require "zlib" unless defined?(Zlib)
20
20
  require_relative "http_request"
21
21
 
22
22
  class Chef
@@ -20,10 +20,12 @@
20
20
  # See the License for the specific language governing permissions and
21
21
  # limitations under the License.
22
22
  #
23
- require "uri" unless defined?(URI)
24
- require "cgi" unless defined?(CGI)
25
- require "net/http" unless defined?(Net::HTTP)
26
- require_relative "../dist"
23
+ autoload :URI, "uri"
24
+ autoload :CGI, "cgi"
25
+ module Net
26
+ autoload :HTTP, File.expand_path("../monkey_patches/net_http", __dir__)
27
+ end
28
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
27
29
 
28
30
  # To load faster, we only want ohai's version string.
29
31
  # However, in ohai before 0.6.0, the version is defined
@@ -42,7 +44,7 @@ class Chef
42
44
 
43
45
  engine = defined?(RUBY_ENGINE) ? RUBY_ENGINE : "ruby"
44
46
 
45
- UA_COMMON = "/#{::Chef::VERSION} (#{engine}-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}; ohai-#{Ohai::VERSION}; #{RUBY_PLATFORM}; +#{Chef::Dist::WEBSITE})".freeze
47
+ UA_COMMON = "/#{::Chef::VERSION} (#{engine}-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}; ohai-#{Ohai::VERSION}; #{RUBY_PLATFORM}; +#{ChefUtils::Dist::Org::WEBSITE})".freeze
46
48
  DEFAULT_UA = "Chef Client" << UA_COMMON
47
49
 
48
50
  USER_AGENT = "User-Agent".freeze
@@ -44,7 +44,10 @@
44
44
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
45
45
 
46
46
  require "chef_zero/server"
47
- require_relative "../dist"
47
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
48
+ module Net
49
+ autoload :HTTPResponse, File.expand_path("../monkey_patches/net_http", __dir__)
50
+ end
48
51
 
49
52
  class Chef
50
53
  class HTTP
@@ -64,7 +67,7 @@ class Chef
64
67
  # or else streaming-style responses won't work.
65
68
  def read_body(dest = nil, &block)
66
69
  if dest
67
- raise "responses from socketless #{Chef::Dist::ZERO} can't be written to specific destination"
70
+ raise "responses from socketless #{ChefUtils::Dist::Zero::PRODUCT} can't be written to specific destination"
68
71
  end
69
72
 
70
73
  if block_given?
@@ -21,7 +21,7 @@
21
21
  # limitations under the License.
22
22
  #
23
23
 
24
- require "openssl" unless defined?(OpenSSL)
24
+ autoload :OpenSSL, "openssl"
25
25
  require_relative "../util/path_helper"
26
26
 
27
27
  class Chef
@@ -17,10 +17,10 @@
17
17
 
18
18
  # Wrapper class for interacting with JSON.
19
19
 
20
- require "ffi_yajl" unless defined?(FFI_Yajl)
20
+ autoload :FFI_Yajl, "ffi_yajl"
21
21
  require_relative "exceptions"
22
22
  # We're requiring this to prevent breaking consumers using Hash.to_json
23
- require "json"
23
+ require "json" unless defined?(JSON)
24
24
 
25
25
  class Chef
26
26
  class JSONCompat
@@ -21,6 +21,7 @@ require "forwardable" unless defined?(Forwardable)
21
21
  require_relative "version"
22
22
  require "mixlib/cli" unless defined?(Mixlib::CLI)
23
23
  require "chef-utils/dsl/default_paths" unless defined?(ChefUtils::DSL::DefaultPaths)
24
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
24
25
  require_relative "workstation_config_loader"
25
26
  require_relative "mixin/convert_to_class_name"
26
27
  require_relative "mixin/default_paths"
@@ -32,12 +33,11 @@ require_relative "http/authenticator"
32
33
  require_relative "http/http_request"
33
34
  require_relative "http"
34
35
  require "pp" unless defined?(PP)
35
- require_relative "dist"
36
36
 
37
37
  class Chef
38
38
  class Knife
39
39
 
40
- Chef::HTTP::HTTPRequest.user_agent = "#{Chef::Dist::PRODUCT} Knife#{Chef::HTTP::HTTPRequest::UA_COMMON}"
40
+ Chef::HTTP::HTTPRequest.user_agent = "#{ChefUtils::Dist::Infra::PRODUCT} Knife#{Chef::HTTP::HTTPRequest::UA_COMMON}"
41
41
 
42
42
  include Mixlib::CLI
43
43
  include ChefUtils::DSL::DefaultPaths
@@ -282,7 +282,7 @@ class Chef
282
282
  elsif category_commands = guess_category(args)
283
283
  list_commands(category_commands)
284
284
  elsif OFFICIAL_PLUGINS.include?(args[0]) # command was an uninstalled official chef knife plugin
285
- ui.info("Use `#{Chef::Dist::EXEC} gem install knife-#{args[0]}` to install the plugin into Chef Workstation")
285
+ ui.info("Use `#{ChefUtils::Dist::Infra::EXEC} gem install knife-#{args[0]}` to install the plugin into Chef Workstation")
286
286
  else
287
287
  list_commands
288
288
  end
@@ -564,7 +564,7 @@ class Chef
564
564
  ui.error "The API version that Knife is using is not supported by the server you sent this request to."
565
565
  ui.info "The request that Knife sent was using API version #{client_api_version}."
566
566
  ui.info "The server you sent the request to supports a min API version of #{min_server_version} and a max API version of #{max_server_version}."
567
- ui.info "Please either update your #{Chef::Dist::PRODUCT} or the server to be a compatible set."
567
+ ui.info "Please either update your #{ChefUtils::Dist::Infra::PRODUCT} or the server to be a compatible set."
568
568
  else
569
569
  ui.error response.message
570
570
  ui.info "Response: #{format_rest_error(response)}"
@@ -18,9 +18,11 @@
18
18
 
19
19
  require_relative "../knife"
20
20
  require_relative "data_bag_secret_options"
21
- require_relative "../dist"
21
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
22
22
  require "license_acceptance/cli_flags/mixlib_cli"
23
- require "license_acceptance/acceptor"
23
+ module LicenseAcceptance
24
+ autoload :Acceptor, "license_acceptance/acceptor"
25
+ end
24
26
 
25
27
  class Chef
26
28
  class Knife
@@ -144,7 +146,7 @@ class Chef
144
146
  # client.rb content via chef-full/bootstrap_context
145
147
  option :bootstrap_version,
146
148
  long: "--bootstrap-version VERSION",
147
- description: "The version of #{Chef::Dist::PRODUCT} to install."
149
+ description: "The version of #{ChefUtils::Dist::Infra::PRODUCT} to install."
148
150
 
149
151
  option :channel,
150
152
  long: "--channel CHANNEL",
@@ -176,7 +178,7 @@ class Chef
176
178
  option :bootstrap_template,
177
179
  short: "-t TEMPLATE",
178
180
  long: "--bootstrap-template TEMPLATE",
179
- description: "Bootstrap #{Chef::Dist::PRODUCT} using a built-in or custom template. Set to the full path of an erb template or use one of the built-in templates."
181
+ description: "Bootstrap #{ChefUtils::Dist::Infra::PRODUCT} using a built-in or custom template. Set to the full path of an erb template or use one of the built-in templates."
180
182
 
181
183
  # client.rb content via bootstrap_context
182
184
  option :node_ssl_verify_mode,
@@ -194,7 +196,7 @@ class Chef
194
196
  # bootstrap_context - client.rb
195
197
  option :node_verify_api_cert,
196
198
  long: "--[no-]node-verify-api-cert",
197
- description: "Verify the SSL cert for HTTPS requests to the #{Chef::Dist::SERVER_PRODUCT} API.",
199
+ description: "Verify the SSL cert for HTTPS requests to the #{ChefUtils::Dist::Server::PRODUCT} API.",
198
200
  boolean: true
199
201
 
200
202
  # runtime - sudo settings (train handles sudo)
@@ -252,14 +254,14 @@ class Chef
252
254
  option :first_boot_attributes,
253
255
  short: "-j JSON_ATTRIBS",
254
256
  long: "--json-attributes",
255
- description: "A JSON string to be added to the first run of #{Chef::Dist::CLIENT}.",
257
+ description: "A JSON string to be added to the first run of #{ChefUtils::Dist::Infra::CLIENT}.",
256
258
  proc: lambda { |o| Chef::JSONCompat.parse(o) },
257
259
  default: nil
258
260
 
259
261
  # bootstrap template
260
262
  option :first_boot_attributes_from_file,
261
263
  long: "--json-attribute-file FILE",
262
- description: "A JSON file to be used to the first run of #{Chef::Dist::CLIENT}.",
264
+ description: "A JSON file to be used to the first run of #{ChefUtils::Dist::Infra::CLIENT}.",
263
265
  proc: lambda { |o| Chef::JSONCompat.parse(File.read(o)) },
264
266
  default: nil
265
267
 
@@ -290,28 +292,28 @@ class Chef
290
292
  option :msi_url, # Windows target only
291
293
  short: "-m URL",
292
294
  long: "--msi-url URL",
293
- description: "Location of the #{Chef::Dist::PRODUCT} MSI. The default templates will prefer to download from this location. The MSI will be downloaded from #{Chef::Dist::WEBSITE} if not provided (Windows).",
295
+ description: "Location of the #{ChefUtils::Dist::Infra::PRODUCT} MSI. The default templates will prefer to download from this location. The MSI will be downloaded from #{ChefUtils::Dist::Org::WEBSITE} if not provided (Windows).",
294
296
  default: ""
295
297
 
296
298
  # bootstrap override: Do this instead of our own setup.sh from omnitruck. Causes bootstrap_url to be ignored.
297
299
  option :bootstrap_install_command,
298
300
  long: "--bootstrap-install-command COMMANDS",
299
- description: "Custom command to install #{Chef::Dist::PRODUCT}."
301
+ description: "Custom command to install #{ChefUtils::Dist::Infra::PRODUCT}."
300
302
 
301
303
  # bootstrap template: Run this command first in the bootstrap script
302
304
  option :bootstrap_preinstall_command,
303
305
  long: "--bootstrap-preinstall-command COMMANDS",
304
- description: "Custom commands to run before installing #{Chef::Dist::PRODUCT}."
306
+ description: "Custom commands to run before installing #{ChefUtils::Dist::Infra::PRODUCT}."
305
307
 
306
308
  # bootstrap template
307
309
  option :bootstrap_wget_options,
308
310
  long: "--bootstrap-wget-options OPTIONS",
309
- description: "Add options to wget when installing #{Chef::Dist::PRODUCT}."
311
+ description: "Add options to wget when installing #{ChefUtils::Dist::Infra::PRODUCT}."
310
312
 
311
313
  # bootstrap template
312
314
  option :bootstrap_curl_options,
313
315
  long: "--bootstrap-curl-options OPTIONS",
314
- description: "Add options to curl when install #{Chef::Dist::PRODUCT}."
316
+ description: "Add options to curl when install #{ChefUtils::Dist::Infra::PRODUCT}."
315
317
 
316
318
  # chef_vault_handler
317
319
  option :bootstrap_vault_file,
@@ -480,14 +482,14 @@ class Chef
480
482
  template = bootstrap_template
481
483
 
482
484
  # Use the template directly if it's a path to an actual file
483
- if File.exists?(template)
485
+ if File.exist?(template)
484
486
  Chef::Log.trace("Using the specified bootstrap template: #{File.dirname(template)}")
485
487
  return template
486
488
  end
487
489
 
488
490
  # Otherwise search the template directories until we find the right one
489
491
  bootstrap_files = []
490
- bootstrap_files << File.join(File.dirname(__FILE__), "bootstrap/templates", "#{template}.erb")
492
+ bootstrap_files << File.join(__dir__, "bootstrap/templates", "#{template}.erb")
491
493
  bootstrap_files << File.join(Knife.chef_config_dir, "bootstrap", "#{template}.erb") if Chef::Knife.chef_config_dir
492
494
  Chef::Util::PathHelper.home(".chef", "bootstrap", "#{template}.erb") { |p| bootstrap_files << p }
493
495
  bootstrap_files << Gem.find_files(File.join("chef", "knife", "bootstrap", "#{template}.erb"))
@@ -495,7 +497,7 @@ class Chef
495
497
 
496
498
  template_file = Array(bootstrap_files).find do |bootstrap_template|
497
499
  Chef::Log.trace("Looking for bootstrap template in #{File.dirname(bootstrap_template)}")
498
- File.exists?(bootstrap_template)
500
+ File.exist?(bootstrap_template)
499
501
  end
500
502
 
501
503
  unless template_file
@@ -538,7 +540,7 @@ class Chef
538
540
  end
539
541
 
540
542
  def run
541
- check_license if ChefConfig::Dist::ENFORCE_LICENSE
543
+ check_license if ChefUtils::Dist::Org::ENFORCE_LICENSE
542
544
 
543
545
  plugin_setup!
544
546
  validate_name_args!