chef 16.4.41-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 (271) 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/distro/templates/powershell/chef/chef.psm1.erb +18 -18
  7. data/ext/win32-eventlog/Rakefile +2 -2
  8. data/ext/win32-eventlog/chef-log.man.erb +4 -4
  9. data/lib/chef/application.rb +18 -16
  10. data/lib/chef/application/apply.rb +12 -7
  11. data/lib/chef/application/base.rb +26 -23
  12. data/lib/chef/application/client.rb +10 -4
  13. data/lib/chef/application/exit_code.rb +13 -4
  14. data/lib/chef/application/knife.rb +22 -11
  15. data/lib/chef/application/solo.rb +2 -1
  16. data/lib/chef/application/windows_service.rb +14 -14
  17. data/lib/chef/application/windows_service_manager.rb +6 -6
  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 +10 -11
  21. data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
  22. data/lib/chef/cookbook/synchronizer.rb +2 -2
  23. data/lib/chef/cookbook_site_streaming_uploader.rb +13 -11
  24. data/lib/chef/cookbook_uploader.rb +1 -1
  25. data/lib/chef/data_collector.rb +6 -5
  26. data/lib/chef/data_collector/config_validation.rb +22 -13
  27. data/lib/chef/data_collector/run_end_message.rb +2 -2
  28. data/lib/chef/data_collector/run_start_message.rb +1 -1
  29. data/lib/chef/deprecated.rb +1 -1
  30. data/lib/chef/deprecation/warnings.rb +2 -2
  31. data/lib/chef/digester.rb +2 -2
  32. data/lib/chef/dsl/chef_vault.rb +1 -1
  33. data/lib/chef/dsl/data_query.rb +2 -2
  34. data/lib/chef/dsl/platform_introspection.rb +1 -1
  35. data/lib/chef/encrypted_data_bag_item.rb +3 -4
  36. data/lib/chef/encrypted_data_bag_item/decryptor.rb +3 -3
  37. data/lib/chef/encrypted_data_bag_item/encryptor.rb +3 -3
  38. data/lib/chef/environment.rb +2 -2
  39. data/lib/chef/event_loggers/windows_eventlog.rb +2 -2
  40. data/lib/chef/exceptions.rb +4 -4
  41. data/lib/chef/file_access_control/windows.rb +5 -1
  42. data/lib/chef/formatters/doc.rb +7 -6
  43. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +6 -5
  44. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +3 -3
  45. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +9 -9
  46. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +2 -2
  47. data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +3 -3
  48. data/lib/chef/formatters/minimal.rb +5 -4
  49. data/lib/chef/http.rb +6 -4
  50. data/lib/chef/http/auth_credentials.rb +5 -1
  51. data/lib/chef/http/authenticator.rb +1 -1
  52. data/lib/chef/http/basic_client.rb +4 -2
  53. data/lib/chef/http/decompressor.rb +1 -1
  54. data/lib/chef/http/http_request.rb +7 -5
  55. data/lib/chef/http/socketless_chef_zero_client.rb +5 -2
  56. data/lib/chef/http/ssl_policies.rb +1 -1
  57. data/lib/chef/json_compat.rb +1 -1
  58. data/lib/chef/knife.rb +4 -4
  59. data/lib/chef/knife/bootstrap.rb +16 -14
  60. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  61. data/lib/chef/knife/bootstrap/templates/chef-full.erb +3 -3
  62. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +7 -7
  63. data/lib/chef/knife/client_create.rb +3 -3
  64. data/lib/chef/knife/config_get.rb +8 -97
  65. data/lib/chef/knife/config_get_profile.rb +9 -9
  66. data/lib/chef/knife/config_list.rb +139 -0
  67. data/lib/chef/knife/config_list_profiles.rb +8 -98
  68. data/lib/chef/knife/config_show.rb +127 -0
  69. data/lib/chef/knife/config_use.rb +61 -0
  70. data/lib/chef/knife/config_use_profile.rb +9 -24
  71. data/lib/chef/knife/configure.rb +2 -2
  72. data/lib/chef/knife/core/bootstrap_context.rb +2 -2
  73. data/lib/chef/knife/core/object_loader.rb +1 -1
  74. data/lib/chef/knife/core/windows_bootstrap_context.rb +11 -11
  75. data/lib/chef/knife/exec.rb +2 -2
  76. data/lib/chef/knife/node_show.rb +2 -2
  77. data/lib/chef/knife/serve.rb +3 -3
  78. data/lib/chef/knife/ssh.rb +16 -1
  79. data/lib/chef/knife/ssl_check.rb +3 -3
  80. data/lib/chef/knife/status.rb +2 -2
  81. data/lib/chef/knife/user_create.rb +2 -2
  82. data/lib/chef/knife/yaml_convert.rb +1 -1
  83. data/lib/chef/local_mode.rb +2 -2
  84. data/lib/chef/log/syslog.rb +2 -2
  85. data/lib/chef/log/winevt.rb +2 -2
  86. data/lib/chef/mixin/deep_merge.rb +0 -12
  87. data/lib/chef/mixin/openssl_helper.rb +1 -4
  88. data/lib/chef/mixin/template.rb +2 -2
  89. data/lib/chef/mixin/uris.rb +2 -2
  90. data/lib/chef/mixin/versioned_api.rb +1 -2
  91. data/lib/chef/monkey_patches/net_http.rb +4 -4
  92. data/lib/chef/node_map.rb +2 -2
  93. data/lib/chef/policy_builder/policyfile.rb +2 -2
  94. data/lib/chef/provider.rb +0 -4
  95. data/lib/chef/provider/file.rb +2 -2
  96. data/lib/chef/provider/ifconfig.rb +1 -1
  97. data/lib/chef/provider/launchd.rb +2 -2
  98. data/lib/chef/provider/mount/linux.rb +63 -0
  99. data/lib/chef/provider/package/rubygems.rb +21 -18
  100. data/lib/chef/provider/package/snap.rb +0 -1
  101. data/lib/chef/provider/package/windows.rb +2 -2
  102. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +3 -1
  103. data/lib/chef/provider/package/zypper.rb +1 -1
  104. data/lib/chef/provider/remote_file/content.rb +3 -0
  105. data/lib/chef/provider/remote_file/ftp.rb +6 -4
  106. data/lib/chef/provider/remote_file/sftp.rb +6 -4
  107. data/lib/chef/provider/route.rb +2 -6
  108. data/lib/chef/provider/service/macosx.rb +2 -2
  109. data/lib/chef/provider/template_finder.rb +2 -10
  110. data/lib/chef/provider/user/dscl.rb +3 -3
  111. data/lib/chef/provider/user/mac.rb +1 -1
  112. data/lib/chef/provider/windows_task.rb +1 -2
  113. data/lib/chef/provider/zypper_repository.rb +2 -2
  114. data/lib/chef/provider_resolver.rb +1 -1
  115. data/lib/chef/providers.rb +1 -0
  116. data/lib/chef/recipe.rb +2 -2
  117. data/lib/chef/resource.rb +1 -1
  118. data/lib/chef/resource/apt_repository.rb +1 -1
  119. data/lib/chef/resource/bff_package.rb +22 -0
  120. data/lib/chef/resource/breakpoint.rb +57 -2
  121. data/lib/chef/resource/build_essential.rb +1 -1
  122. data/lib/chef/resource/cab_package.rb +29 -0
  123. data/lib/chef/resource/chef_client_cron.rb +32 -25
  124. data/lib/chef/resource/chef_client_launchd.rb +194 -0
  125. data/lib/chef/resource/chef_client_scheduled_task.rb +21 -18
  126. data/lib/chef/resource/chef_client_systemd_timer.rb +24 -17
  127. data/lib/chef/resource/chef_client_trusted_certificate.rb +101 -0
  128. data/lib/chef/resource/chef_gem.rb +10 -10
  129. data/lib/chef/resource/chef_handler.rb +148 -4
  130. data/lib/chef/resource/chef_sleep.rb +2 -2
  131. data/lib/chef/resource/chef_vault_secret.rb +1 -1
  132. data/lib/chef/resource/cookbook_file.rb +2 -2
  133. data/lib/chef/resource/cron/cron_d.rb +0 -1
  134. data/lib/chef/resource/dnf_package.rb +2 -2
  135. data/lib/chef/resource/dsc_resource.rb +0 -1
  136. data/lib/chef/resource/dsc_script.rb +2 -2
  137. data/lib/chef/resource/execute.rb +6 -6
  138. data/lib/chef/resource/file.rb +4 -4
  139. data/lib/chef/resource/gem_package.rb +5 -5
  140. data/lib/chef/resource/homebrew_package.rb +3 -3
  141. data/lib/chef/resource/homebrew_update.rb +5 -5
  142. data/lib/chef/resource/hostname.rb +2 -2
  143. data/lib/chef/resource/launchd.rb +2 -1
  144. data/lib/chef/resource/locale.rb +2 -2
  145. data/lib/chef/resource/macos_userdefaults.rb +3 -3
  146. data/lib/chef/resource/notify_group.rb +0 -1
  147. data/lib/chef/resource/ohai.rb +46 -3
  148. data/lib/chef/resource/ohai_hint.rb +33 -0
  149. data/lib/chef/resource/openssl_dhparam.rb +27 -5
  150. data/lib/chef/resource/openssl_ec_private_key.rb +6 -3
  151. data/lib/chef/resource/openssl_ec_public_key.rb +2 -2
  152. data/lib/chef/resource/openssl_rsa_private_key.rb +6 -3
  153. data/lib/chef/resource/openssl_x509_certificate.rb +14 -14
  154. data/lib/chef/resource/openssl_x509_crl.rb +19 -10
  155. data/lib/chef/resource/openssl_x509_request.rb +14 -16
  156. data/lib/chef/resource/osx_profile.rb +77 -13
  157. data/lib/chef/resource/plist.rb +1 -1
  158. data/lib/chef/resource/powershell_package_source.rb +5 -5
  159. data/lib/chef/resource/reboot.rb +2 -2
  160. data/lib/chef/resource/remote_file.rb +3 -3
  161. data/lib/chef/resource/rhsm_register.rb +22 -10
  162. data/lib/chef/resource/ruby_block.rb +2 -2
  163. data/lib/chef/resource/scm/subversion.rb +2 -2
  164. data/lib/chef/resource/service.rb +3 -3
  165. data/lib/chef/resource/ssh_known_hosts_entry.rb +2 -2
  166. data/lib/chef/resource/support/cron.d.erb +1 -1
  167. data/lib/chef/resource/support/cron_access.erb +1 -1
  168. data/lib/chef/resource/support/sudoer.erb +1 -1
  169. data/lib/chef/resource/support/ulimit.erb +1 -1
  170. data/lib/chef/resource/sysctl.rb +1 -5
  171. data/lib/chef/resource/systemd_unit.rb +2 -2
  172. data/lib/chef/resource/template.rb +2 -2
  173. data/lib/chef/resource/windows_ad_join.rb +10 -3
  174. data/lib/chef/resource/windows_certificate.rb +6 -4
  175. data/lib/chef/resource/windows_firewall_profile.rb +22 -20
  176. data/lib/chef/resource/windows_package.rb +28 -5
  177. data/lib/chef/resource/windows_printer.rb +5 -3
  178. data/lib/chef/resource/windows_printer_port.rb +6 -4
  179. data/lib/chef/resource/windows_user_privilege.rb +53 -54
  180. data/lib/chef/resource/windows_workgroup.rb +3 -3
  181. data/lib/chef/resource/yum_package.rb +2 -2
  182. data/lib/chef/resources.rb +3 -1
  183. data/lib/chef/run_context.rb +2 -2
  184. data/lib/chef/run_context/cookbook_compiler.rb +1 -1
  185. data/lib/chef/run_lock.rb +2 -2
  186. data/lib/chef/search/query.rb +4 -5
  187. data/lib/chef/shell.rb +31 -26
  188. data/lib/chef/shell/ext.rb +11 -11
  189. data/lib/chef/shell/shell_session.rb +2 -2
  190. data/lib/chef/train_transport.rb +5 -104
  191. data/lib/chef/util/diff.rb +3 -3
  192. data/lib/chef/util/powershell/cmdlet.rb +3 -1
  193. data/lib/chef/util/powershell/ps_credential.rb +18 -14
  194. data/lib/chef/util/threaded_job_queue.rb +0 -2
  195. data/lib/chef/version.rb +1 -1
  196. data/lib/chef/win32/crypto.rb +1 -1
  197. data/lib/chef/win32/registry.rb +1 -2
  198. data/spec/data/shef-config.rb +1 -1
  199. data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -5
  200. data/spec/functional/resource/aix_service_spec.rb +2 -2
  201. data/spec/functional/resource/aixinit_service_spec.rb +1 -1
  202. data/spec/functional/resource/insserv_spec.rb +1 -1
  203. data/spec/functional/resource/user/dscl_spec.rb +1 -1
  204. data/spec/functional/resource/user/mac_user_spec.rb +1 -1
  205. data/spec/functional/resource/windows_task_spec.rb +13 -13
  206. data/spec/functional/version_spec.rb +3 -3
  207. data/spec/integration/client/client_spec.rb +4 -4
  208. data/spec/integration/client/exit_code_spec.rb +3 -2
  209. data/spec/integration/client/ipv6_spec.rb +1 -1
  210. data/spec/integration/knife/{config_list_profiles_spec.rb → config_list_spec.rb} +30 -29
  211. data/spec/integration/knife/{config_get_spec.rb → config_show_spec.rb} +3 -3
  212. data/spec/integration/knife/{config_use_profile_spec.rb → config_use_spec.rb} +53 -10
  213. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
  214. data/spec/integration/ohai/ohai_spec.rb +61 -0
  215. data/spec/integration/recipes/remote_directory.rb +1 -1
  216. data/spec/integration/solo/solo_spec.rb +5 -5
  217. data/spec/spec_helper.rb +6 -3
  218. data/spec/stress/win32/file_spec.rb +1 -1
  219. data/spec/support/chef_helpers.rb +2 -2
  220. data/spec/support/matchers/leak.rb +2 -2
  221. data/spec/support/platform_helpers.rb +16 -34
  222. data/spec/support/shared/functional/securable_resource.rb +108 -27
  223. data/spec/support/shared/functional/win32_service.rb +1 -1
  224. data/spec/support/shared/unit/application_dot_d.rb +5 -3
  225. data/spec/tiny_server.rb +0 -1
  226. data/spec/unit/application/client_spec.rb +2 -2
  227. data/spec/unit/application/exit_code_spec.rb +10 -0
  228. data/spec/unit/application_spec.rb +4 -6
  229. data/spec/unit/chef_fs/parallelizer_spec.rb +5 -1
  230. data/spec/unit/chef_fs/path_util_spec.rb +1 -1
  231. data/spec/unit/cookbook/synchronizer_spec.rb +2 -2
  232. data/spec/unit/cookbook_spec.rb +2 -2
  233. data/spec/unit/data_collector/config_validation_spec.rb +208 -0
  234. data/spec/unit/data_collector_spec.rb +0 -113
  235. data/spec/unit/dsl/declare_resource_spec.rb +1 -1
  236. data/spec/unit/file_access_control_spec.rb +1 -1
  237. data/spec/unit/knife/bootstrap_spec.rb +6 -6
  238. data/spec/unit/knife/core/ui_spec.rb +1 -0
  239. data/spec/unit/knife/ssh_spec.rb +2 -2
  240. data/spec/unit/lwrp_spec.rb +3 -3
  241. data/spec/unit/mixin/deep_merge_spec.rb +15 -0
  242. data/spec/unit/mixin/openssl_helper_spec.rb +1 -1
  243. data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
  244. data/spec/unit/mixin/securable_spec.rb +2 -2
  245. data/spec/unit/node/immutable_collections_spec.rb +2 -2
  246. data/spec/unit/provider/mount/linux_spec.rb +97 -0
  247. data/spec/unit/provider/package/chocolatey_spec.rb +1 -1
  248. data/spec/unit/provider/package/powershell_spec.rb +1 -1
  249. data/spec/unit/provider/package/rubygems_spec.rb +4 -1
  250. data/spec/unit/provider/route_spec.rb +0 -2
  251. data/spec/unit/recipe_spec.rb +1 -1
  252. data/spec/unit/resource/chef_client_cron_spec.rb +35 -14
  253. data/spec/unit/resource/chef_client_launchd_spec.rb +127 -0
  254. data/spec/unit/resource/chef_client_systemd_timer_spec.rb +36 -1
  255. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +54 -0
  256. data/spec/unit/resource/launchd_spec.rb +8 -0
  257. data/spec/unit/resource/osx_profile_spec.rb +67 -1
  258. data/spec/unit/resource/rhsm_register_spec.rb +56 -18
  259. data/spec/unit/resource/windows_uac_spec.rb +1 -1
  260. data/spec/unit/resource/windows_user_privilege_spec.rb +55 -0
  261. data/spec/unit/run_lock_spec.rb +5 -1
  262. data/spec/unit/runner_spec.rb +1 -2
  263. data/spec/unit/shell/shell_ext_spec.rb +46 -3
  264. data/spec/unit/shell/shell_session_spec.rb +35 -64
  265. data/spec/unit/shell_spec.rb +16 -19
  266. data/spec/unit/train_transport_spec.rb +14 -13
  267. data/spec/unit/util/selinux_spec.rb +2 -0
  268. data/tasks/rspec.rb +0 -2
  269. metadata +41 -17
  270. data/lib/chef/dist.rb +0 -68
  271. data/spec/integration/knife/config_get_profile_spec.rb +0 -114
@@ -20,7 +20,13 @@
20
20
  require_relative "base"
21
21
  require_relative "../handler/error_report"
22
22
  require_relative "../workstation_config_loader"
23
- require "uri" unless defined?(URI)
23
+ autoload :URI, "uri"
24
+ require "chef-utils" unless defined?(ChefUtils)
25
+ module Mixlib
26
+ module Authentication
27
+ autoload :Log, "mixlib/authentication"
28
+ end
29
+ end
24
30
 
25
31
  # DO NOT MAKE EDITS, see Chef::Application::Base
26
32
  #
@@ -45,7 +51,7 @@ class Chef::Application::Client < Chef::Application::Base
45
51
  option :pid_file,
46
52
  short: "-P PID_FILE",
47
53
  long: "--pid PIDFILE",
48
- description: "Set the PID file location, for the #{Chef::Dist::CLIENT} daemon process. Defaults to /tmp/chef-client.pid.",
54
+ description: "Set the PID file location, for the #{ChefUtils::Dist::Infra::CLIENT} daemon process. Defaults to /tmp/chef-client.pid.",
49
55
  proc: nil
50
56
 
51
57
  option :runlist,
@@ -100,7 +106,7 @@ class Chef::Application::Client < Chef::Application::Base
100
106
  tarball_path = File.join(Chef::Config.chef_repo_path, "recipes.tgz")
101
107
  fetch_recipe_tarball(Chef::Config[:recipe_url], tarball_path)
102
108
  Mixlib::Archive.new(tarball_path).extract(Chef::Config.chef_repo_path, perms: false, ignore: /^\.$/)
103
- config_path = File.join(Chef::Config.chef_repo_path, "#{Chef::Dist::USER_CONF_DIR}/config.rb")
109
+ config_path = File.join(Chef::Config.chef_repo_path, "#{ChefUtils::Dist::Infra::USER_CONF_DIR}/config.rb")
104
110
  Chef::Config.from_string(IO.read(config_path), config_path) if File.file?(config_path)
105
111
  end
106
112
  end
@@ -147,7 +153,7 @@ class Chef::Application::Client < Chef::Application::Base
147
153
  if config[:local_mode]
148
154
  config[:config_file] = Chef::WorkstationConfigLoader.new(nil, Chef::Log).config_location
149
155
  else
150
- config[:config_file] = Chef::Config.platform_specific_path("#{Chef::Dist::CONF_DIR}/client.rb")
156
+ config[:config_file] = Chef::Config.platform_specific_path("#{ChefConfig::Config.etc_chef_dir}/client.rb")
151
157
  end
152
158
  end
153
159
 
@@ -22,7 +22,7 @@ class Chef
22
22
  # These are the exit codes defined in Chef RFC 062
23
23
  # https://github.com/chef/chef-rfc/blob/master/rfc062-exit-status.md
24
24
  class ExitCode
25
- require_relative "../dist"
25
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
26
26
 
27
27
  # -1 is defined as DEPRECATED_FAILURE in RFC 062, so it is
28
28
  # not enumerated in an active constant.
@@ -36,6 +36,7 @@ class Chef
36
36
  REBOOT_NEEDED: 37,
37
37
  REBOOT_FAILED: 41,
38
38
  # 42 was used by audit mode and should not be reused
39
+ CONFIG_FAILURE: 43,
39
40
  CLIENT_UPGRADED: 213,
40
41
  }.freeze
41
42
 
@@ -79,6 +80,8 @@ class Chef
79
80
  VALID_RFC_062_EXIT_CODES[:REBOOT_NEEDED]
80
81
  elsif reboot_failed?(exception)
81
82
  VALID_RFC_062_EXIT_CODES[:REBOOT_FAILED]
83
+ elsif configuration_failure?(exception)
84
+ VALID_RFC_062_EXIT_CODES[:CONFIG_FAILURE]
82
85
  elsif client_upgraded?(exception)
83
86
  VALID_RFC_062_EXIT_CODES[:CLIENT_UPGRADED]
84
87
  else
@@ -104,6 +107,12 @@ class Chef
104
107
  end
105
108
  end
106
109
 
110
+ def configuration_failure?(exception)
111
+ resolve_exception_array(exception).any? do |e|
112
+ e.is_a? Chef::Exceptions::ConfigurationError
113
+ end
114
+ end
115
+
107
116
  def client_upgraded?(exception)
108
117
  resolve_exception_array(exception).any? do |e|
109
118
  e.is_a? Chef::Exceptions::ClientUpgraded
@@ -144,9 +153,9 @@ class Chef
144
153
  end
145
154
 
146
155
  def non_standard_exit_code_warning(exit_code)
147
- "#{Chef::Dist::CLIENT} attempted to exit with a non-standard exit code of #{exit_code}." \
148
- " The #{Chef::Dist::PRODUCT} Exit Codes design document (https://github.com/chef/chef-rfc/blob/master/rfc062-exit-status.md)" \
149
- " defines the exit codes that should be used with #{Chef::Dist::CLIENT}. Chef::Application::ExitCode defines" \
156
+ "#{ChefUtils::Dist::Infra::CLIENT} attempted to exit with a non-standard exit code of #{exit_code}." \
157
+ " The #{ChefUtils::Dist::Infra::PRODUCT} Exit Codes design document (https://github.com/chef/chef-rfc/blob/master/rfc062-exit-status.md)" \
158
+ " defines the exit codes that should be used with #{ChefUtils::Dist::Infra::CLIENT}. Chef::Application::ExitCode defines" \
150
159
  " valid exit codes Non-standard exit codes are redefined as GENERIC_FAILURE."
151
160
  end
152
161
 
@@ -19,8 +19,10 @@ require_relative "../knife"
19
19
  require_relative "../application"
20
20
  require "mixlib/log"
21
21
  require "ohai/config"
22
- require "chef/monkey_patches/net_http.rb"
23
- require_relative "../dist"
22
+ module Net
23
+ autoload :HTTP, File.expand_path("../monkey_patches/net_http", __dir__)
24
+ end
25
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
24
26
 
25
27
  class Chef::Application::Knife < Chef::Application
26
28
 
@@ -59,7 +61,7 @@ class Chef::Application::Knife < Chef::Application
59
61
  option :environment,
60
62
  short: "-E ENVIRONMENT",
61
63
  long: "--environment ENVIRONMENT",
62
- description: "Set the #{Chef::Dist::PRODUCT} environment (except for in searches, where this will be flagrantly ignored)."
64
+ description: "Set the #{ChefUtils::Dist::Infra::PRODUCT} environment (except for in searches, where this will be flagrantly ignored)."
63
65
 
64
66
  option :editor,
65
67
  short: "-e EDITOR",
@@ -84,18 +86,18 @@ class Chef::Application::Knife < Chef::Application
84
86
  option :node_name,
85
87
  short: "-u USER",
86
88
  long: "--user USER",
87
- description: "#{Chef::Dist::SERVER_PRODUCT} API client username."
89
+ description: "#{ChefUtils::Dist::Server::PRODUCT} API client username."
88
90
 
89
91
  option :client_key,
90
92
  short: "-k KEY",
91
93
  long: "--key KEY",
92
- description: "#{Chef::Dist::SERVER_PRODUCT} API client key.",
94
+ description: "#{ChefUtils::Dist::Server::PRODUCT} API client key.",
93
95
  proc: lambda { |path| File.expand_path(path, Dir.pwd) }
94
96
 
95
97
  option :chef_server_url,
96
98
  short: "-s URL",
97
99
  long: "--server-url URL",
98
- description: "#{Chef::Dist::SERVER_PRODUCT} URL."
100
+ description: "#{ChefUtils::Dist::Server::PRODUCT} URL."
99
101
 
100
102
  option :yes,
101
103
  short: "-y",
@@ -120,16 +122,16 @@ class Chef::Application::Knife < Chef::Application
120
122
  option :local_mode,
121
123
  short: "-z",
122
124
  long: "--local-mode",
123
- description: "Point knife commands at local repository instead of #{Chef::Dist::SERVER_PRODUCT}.",
125
+ description: "Point knife commands at local repository instead of #{ChefUtils::Dist::Server::PRODUCT}.",
124
126
  boolean: true
125
127
 
126
128
  option :chef_zero_host,
127
129
  long: "--chef-zero-host HOST",
128
- description: "Host to start #{Chef::Dist::ZERO} on."
130
+ description: "Host to start #{ChefUtils::Dist::Zero::PRODUCT} on."
129
131
 
130
132
  option :chef_zero_port,
131
133
  long: "--chef-zero-port PORT",
132
- 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."
134
+ 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."
133
135
 
134
136
  option :listen,
135
137
  long: "--[no-]listen",
@@ -139,9 +141,9 @@ class Chef::Application::Knife < Chef::Application
139
141
  option :version,
140
142
  short: "-v",
141
143
  long: "--version",
142
- description: "Show #{Chef::Dist::PRODUCT} version.",
144
+ description: "Show #{ChefUtils::Dist::Infra::PRODUCT} version.",
143
145
  boolean: true,
144
- proc: lambda { |v| puts "#{Chef::Dist::PRODUCT}: #{::Chef::VERSION}" },
146
+ proc: lambda { |v| puts "#{ChefUtils::Dist::Infra::PRODUCT}: #{::Chef::VERSION}" },
145
147
  exit: 0
146
148
 
147
149
  option :fips,
@@ -214,6 +216,15 @@ class Chef::Application::Knife < Chef::Application
214
216
  rescue OptionParser::InvalidOption => e
215
217
  puts "#{e}\n"
216
218
  end
219
+
220
+ if want_help?
221
+ puts "#{ChefUtils::Dist::Infra::PRODUCT}: #{Chef::VERSION}"
222
+ puts
223
+ puts "Docs: #{ChefUtils::Dist::Org::KNIFE_DOCS}"
224
+ puts "Patents: #{ChefUtils::Dist::Org::PATENTS}"
225
+ puts
226
+ end
227
+
217
228
  puts opt_parser
218
229
  puts
219
230
  Chef::Knife.list_commands
@@ -21,6 +21,7 @@ require_relative "../../chef"
21
21
  require_relative "client"
22
22
  require "fileutils" unless defined?(FileUtils)
23
23
  require "pathname" unless defined?(Pathname)
24
+ require "chef-utils" unless defined?(ChefUtils)
24
25
 
25
26
  # DO NOT MAKE EDITS, see Chef::Application::Base
26
27
  #
@@ -33,7 +34,7 @@ class Chef::Application::Solo < Chef::Application::Base
33
34
  option :config_file,
34
35
  short: "-c CONFIG",
35
36
  long: "--config CONFIG",
36
- default: Chef::Config.platform_specific_path("#{Chef::Dist::CONF_DIR}/solo.rb"),
37
+ default: Chef::Config.platform_specific_path("#{ChefConfig::Config.etc_chef_dir}/solo.rb"),
37
38
  description: "The configuration file to use."
38
39
 
39
40
  unless ChefUtils.windows?
@@ -29,7 +29,7 @@ require "socket" unless defined?(Socket)
29
29
  require "uri" unless defined?(URI)
30
30
  require "win32/daemon"
31
31
  require_relative "../mixin/shell_out"
32
- require_relative "../dist"
32
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
33
33
 
34
34
  class Chef
35
35
  class Application
@@ -41,7 +41,7 @@ class Chef
41
41
  short: "-c CONFIG",
42
42
  long: "--config CONFIG",
43
43
  default: "#{Chef::Config.etc_chef_dir}/client.rb",
44
- description: "The configuration file to use for #{Chef::Dist::PRODUCT} runs."
44
+ description: "The configuration file to use for #{ChefUtils::Dist::Infra::PRODUCT} runs."
45
45
 
46
46
  option :log_location,
47
47
  short: "-L LOGLOCATION",
@@ -57,7 +57,7 @@ class Chef
57
57
  option :interval,
58
58
  short: "-i SECONDS",
59
59
  long: "--interval SECONDS",
60
- description: "Set the number of seconds to wait between #{Chef::Dist::PRODUCT} runs.",
60
+ description: "Set the number of seconds to wait between #{ChefUtils::Dist::Infra::PRODUCT} runs.",
61
61
  proc: lambda { |s| s.to_i }
62
62
 
63
63
  DEFAULT_LOG_LOCATION ||= "#{Chef::Config.c_chef_dir}/client.log".freeze
@@ -67,7 +67,7 @@ class Chef
67
67
  @service_signal = ConditionVariable.new
68
68
 
69
69
  reconfigure
70
- Chef::Log.info("#{Chef::Dist::CLIENT} Service initialized")
70
+ Chef::Log.info("#{ChefUtils::Dist::Infra::CLIENT} Service initialized")
71
71
  end
72
72
 
73
73
  def service_main(*startup_parameters)
@@ -79,7 +79,7 @@ class Chef
79
79
  # Grab the service_action_mutex to make a chef-client run
80
80
  @service_action_mutex.synchronize do
81
81
 
82
- Chef::Log.info("Next #{Chef::Dist::CLIENT} run will happen in #{timeout} seconds")
82
+ Chef::Log.info("Next #{ChefUtils::Dist::Infra::CLIENT} run will happen in #{timeout} seconds")
83
83
  @service_signal.wait(@service_action_mutex, timeout)
84
84
 
85
85
  # Continue only if service is RUNNING
@@ -96,7 +96,7 @@ class Chef
96
96
  # run chef-client only if service is in RUNNING state
97
97
  next if state != RUNNING
98
98
 
99
- Chef::Log.info("#{Chef::Dist::CLIENT} service is starting a #{Chef::Dist::CLIENT} run...")
99
+ Chef::Log.info("#{ChefUtils::Dist::Infra::CLIENT} service is starting a #{ChefUtils::Dist::Infra::CLIENT} run...")
100
100
  run_chef_client
101
101
  rescue SystemExit => e
102
102
  # Do not raise any of the errors here in order to
@@ -131,12 +131,12 @@ class Chef
131
131
  break
132
132
  else
133
133
  unless run_warning_displayed
134
- Chef::Log.info("Currently a #{Chef::Dist::PRODUCT} run is happening on this system.")
134
+ Chef::Log.info("Currently a #{ChefUtils::Dist::Infra::PRODUCT} run is happening on this system.")
135
135
  Chef::Log.info("Service will stop when run is completed.")
136
136
  run_warning_displayed = true
137
137
  end
138
138
 
139
- Chef::Log.trace("Waiting for #{Chef::Dist::PRODUCT} run...")
139
+ Chef::Log.trace("Waiting for #{ChefUtils::Dist::Infra::PRODUCT} run...")
140
140
  sleep 1
141
141
  end
142
142
  end
@@ -150,7 +150,7 @@ class Chef
150
150
  # since this is a PAUSE signal.
151
151
 
152
152
  if @service_action_mutex.locked?
153
- Chef::Log.info("Currently a #{Chef::Dist::PRODUCT} run is happening.")
153
+ Chef::Log.info("Currently a #{ChefUtils::Dist::Infra::PRODUCT} run is happening.")
154
154
  Chef::Log.info("Service will pause once it's completed.")
155
155
  else
156
156
  Chef::Log.info("Service is pausing....")
@@ -185,7 +185,7 @@ class Chef
185
185
  # The log_location and config_file of the parent process is passed to the new chef-client process.
186
186
  # We need to add the --no-fork, as by default it is set to fork=true.
187
187
 
188
- Chef::Log.info "Starting #{Chef::Dist::CLIENT} in a new process"
188
+ Chef::Log.info "Starting #{ChefUtils::Dist::Infra::CLIENT} in a new process"
189
189
  # Pass config params to the new process
190
190
  config_params = " --no-fork"
191
191
  config_params += " -c #{Chef::Config[:config_file]}" unless Chef::Config[:config_file].nil?
@@ -197,20 +197,20 @@ class Chef
197
197
  # Starts a new process and waits till the process exits
198
198
 
199
199
  result = shell_out(
200
- "#{Chef::Dist::CLIENT}.bat #{config_params}",
200
+ "#{ChefUtils::Dist::Infra::CLIENT}.bat #{config_params}",
201
201
  timeout: Chef::Config[:windows_service][:watchdog_timeout],
202
202
  logger: Chef::Log
203
203
  )
204
204
  Chef::Log.trace (result.stdout).to_s
205
205
  Chef::Log.trace (result.stderr).to_s
206
206
  rescue Mixlib::ShellOut::CommandTimeout => e
207
- Chef::Log.error "#{Chef::Dist::CLIENT} timed out\n(#{e})"
207
+ Chef::Log.error "#{ChefUtils::Dist::Infra::CLIENT} timed out\n(#{e})"
208
208
  Chef::Log.error(<<-EOF)
209
- Your #{Chef::Dist::CLIENT} run timed out. You can increase the time #{Chef::Dist::CLIENT} is given
209
+ Your #{ChefUtils::Dist::Infra::CLIENT} run timed out. You can increase the time #{ChefUtils::Dist::Infra::CLIENT} is given
210
210
  to complete by configuring windows_service.watchdog_timeout in your client.rb.
211
211
  EOF
212
212
  rescue Mixlib::ShellOut::ShellCommandFailed => e
213
- Chef::Log.warn "Not able to start #{Chef::Dist::CLIENT} in new process (#{e})"
213
+ Chef::Log.warn "Not able to start #{ChefUtils::Dist::Infra::CLIENT} in new process (#{e})"
214
214
  rescue => e
215
215
  Chef::Log.error e
216
216
  ensure
@@ -21,7 +21,7 @@ if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
21
21
  end
22
22
  require_relative "../config"
23
23
  require "mixlib/cli" unless defined?(Mixlib::CLI)
24
- require_relative "../dist"
24
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
25
25
 
26
26
  class Chef
27
27
  class Application
@@ -41,18 +41,18 @@ class Chef
41
41
  short: "-a ACTION",
42
42
  long: "--action ACTION",
43
43
  default: "status",
44
- description: "Action to carry out on #{Chef::Dist::SHORT}-service (install, uninstall, status, start, stop, pause, or resume)."
44
+ description: "Action to carry out on #{ChefUtils::Dist::Infra::SHORT}-service (install, uninstall, status, start, stop, pause, or resume)."
45
45
 
46
46
  option :config_file,
47
47
  short: "-c CONFIG",
48
48
  long: "--config CONFIG",
49
49
  default: "#{ChefConfig::Config.c_chef_dir}/client.rb",
50
- description: "The configuration file to use for #{Chef::Dist::PRODUCT} runs."
50
+ description: "The configuration file to use for #{ChefUtils::Dist::Infra::PRODUCT} runs."
51
51
 
52
52
  option :log_location,
53
53
  short: "-L LOGLOCATION",
54
54
  long: "--logfile LOGLOCATION",
55
- description: "Set the log file location for #{Chef::Dist::SHORT}-service."
55
+ description: "Set the log file location for #{ChefUtils::Dist::Infra::SHORT}-service."
56
56
 
57
57
  option :help,
58
58
  short: "-h",
@@ -66,9 +66,9 @@ class Chef
66
66
  option :version,
67
67
  short: "-v",
68
68
  long: "--version",
69
- description: "Show #{Chef::Dist::PRODUCT} version.",
69
+ description: "Show #{ChefUtils::Dist::Infra::PRODUCT} version.",
70
70
  boolean: true,
71
- proc: lambda { |v| puts "#{Chef::Dist::PRODUCT}: #{::Chef::VERSION}" },
71
+ proc: lambda { |v| puts "#{ChefUtils::Dist::Infra::PRODUCT}: #{::Chef::VERSION}" },
72
72
  exit: 0
73
73
 
74
74
  def initialize(service_options)
@@ -18,7 +18,7 @@
18
18
 
19
19
  require_relative "../knife"
20
20
  require "pathname" unless defined?(Pathname)
21
- require_relative "../dist"
21
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
22
22
 
23
23
  class Chef
24
24
  module ChefFS
@@ -49,7 +49,7 @@ class Chef
49
49
 
50
50
  option :chef_repo_path,
51
51
  long: "--chef-repo-path PATH",
52
- description: "Overrides the location of #{Chef::Dist::PRODUCT} repo. Default is specified by chef_repo_path in the config"
52
+ description: "Overrides the location of #{ChefUtils::Dist::Infra::PRODUCT} repo. Default is specified by chef_repo_path in the config"
53
53
 
54
54
  option :concurrency,
55
55
  long: "--concurrency THREADS",
@@ -1,4 +1,3 @@
1
- require "thread"
2
1
  require_relative "parallelizer/parallel_enumerable"
3
2
 
4
3
  class Chef
@@ -29,7 +29,7 @@ require_relative "api_client/registration"
29
29
  require_relative "node"
30
30
  require_relative "role"
31
31
  require_relative "file_cache"
32
- require_relative "run_context"
32
+ Chef.autoload :RunContext, File.expand_path("run_context", __dir__)
33
33
  require_relative "runner"
34
34
  require_relative "run_status"
35
35
  require_relative "cookbook/cookbook_collection"
@@ -48,14 +48,13 @@ require_relative "action_collection"
48
48
  require_relative "resource_reporter"
49
49
  require_relative "data_collector"
50
50
  require_relative "run_lock"
51
- require_relative "policy_builder"
51
+ Chef.autoload :PolicyBuilder, File.expand_path("policy_builder", __dir__)
52
52
  require_relative "request_id"
53
53
  require_relative "platform/rebooter"
54
54
  require_relative "mixin/deprecation"
55
55
  require "chef-utils" unless defined?(ChefUtils::CANARY)
56
56
  require "ohai" unless defined?(Ohai::System)
57
57
  require "rbconfig" unless defined?(RbConfig)
58
- require_relative "dist"
59
58
  require "forwardable" unless defined?(Forwardable)
60
59
 
61
60
  class Chef
@@ -245,11 +244,11 @@ class Chef
245
244
 
246
245
  events.run_start(Chef::VERSION, run_status)
247
246
 
248
- logger.info("*** #{Chef::Dist::PRODUCT} #{Chef::VERSION} ***")
247
+ logger.info("*** #{ChefUtils::Dist::Infra::PRODUCT} #{Chef::VERSION} ***")
249
248
  logger.info("Platform: #{RUBY_PLATFORM}")
250
- logger.info "#{Chef::Dist::CLIENT.capitalize} pid: #{Process.pid}"
249
+ logger.info "#{ChefUtils::Dist::Infra::CLIENT.capitalize} pid: #{Process.pid}"
251
250
  logger.info "Targeting node: #{Chef::Config.target_mode.host}" if Chef::Config.target_mode?
252
- logger.debug("#{Chef::Dist::CLIENT.capitalize} request_id: #{request_id}")
251
+ logger.debug("#{ChefUtils::Dist::Infra::CLIENT.capitalize} request_id: #{request_id}")
253
252
  ENV["PATH"] = ChefUtils::DSL::DefaultPaths.default_paths if Chef::Config[:enforce_default_paths] || Chef::Config[:enforce_path_sanity]
254
253
 
255
254
  if Chef::Config.target_mode?
@@ -273,7 +272,7 @@ class Chef
273
272
  build_node
274
273
 
275
274
  run_status.start_clock
276
- logger.info("Starting #{Chef::Dist::PRODUCT} Run for #{node.name}")
275
+ logger.info("Starting #{ChefUtils::Dist::Infra::PRODUCT} Run for #{node.name}")
277
276
  run_started
278
277
 
279
278
  do_windows_admin_check
@@ -288,7 +287,7 @@ class Chef
288
287
  converge_and_save(run_context)
289
288
 
290
289
  run_status.stop_clock
291
- logger.info("#{Chef::Dist::PRODUCT} Run complete in #{run_status.elapsed_time} seconds")
290
+ logger.info("#{ChefUtils::Dist::Infra::PRODUCT} Run complete in #{run_status.elapsed_time} seconds")
292
291
  run_completed_successfully
293
292
  events.run_completed(node, run_status)
294
293
 
@@ -334,7 +333,7 @@ class Chef
334
333
  eol_year = 2006 + Gem::Version.new(Chef::VERSION).segments.first
335
334
 
336
335
  if Time.now > Time.new(eol_year, 5, 01)
337
- logger.warn("This release of #{Chef::Dist::PRODUCT} became end of life (EOL) on May 1st #{eol_year}. Please update to a supported release to receive new features, bug fixes, and security updates.")
336
+ logger.warn("This release of #{ChefUtils::Dist::Infra::PRODUCT} became end of life (EOL) on May 1st #{eol_year}. Please update to a supported release to receive new features, bug fixes, and security updates.")
338
337
  end
339
338
  end
340
339
 
@@ -763,7 +762,7 @@ class Chef
763
762
  logger.trace("Checking for administrator privileges....")
764
763
 
765
764
  if !has_admin_privileges?
766
- message = "#{Chef::Dist::CLIENT} doesn't have administrator privileges on node #{node_name}."
765
+ message = "#{ChefUtils::Dist::Infra::CLIENT} doesn't have administrator privileges on node #{node_name}."
767
766
  if Chef::Config[:fatal_windows_admin_check]
768
767
  logger.fatal(message)
769
768
  logger.fatal("fatal_windows_admin_check is set to TRUE.")
@@ -772,7 +771,7 @@ class Chef
772
771
  logger.warn("#{message} This might cause unexpected resource failures.")
773
772
  end
774
773
  else
775
- logger.trace("#{Chef::Dist::CLIENT} has administrator privileges on node #{node_name}.")
774
+ logger.trace("#{ChefUtils::Dist::Infra::CLIENT} has administrator privileges on node #{node_name}.")
776
775
  end
777
776
  end
778
777
  end