summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Chamberland <mchamberland@pbsc.com>2019-04-25 23:58:27 -0400
committerMarc Chamberland <mchamberland@pbsc.com>2019-04-26 00:24:33 -0400
commit0fb79f0a5f8d2c8ca1f9ddb0d0b0267b300dc81f (patch)
tree7984d75e847846eb31923fd26ef51e625d55a0d5
parent66c0fdeb65c19d267bd501550e60cd16d7bb4901 (diff)
downloadchef-0fb79f0a5f8d2c8ca1f9ddb0d0b0267b300dc81f.tar.gz
chef-client => Chef::Dist::CLIENT
Signed-off-by: Marc Chamberland <mchamberland@pbsc.com>
-rw-r--r--lib/chef/application.rb3
-rw-r--r--lib/chef/application/solo.rb2
-rw-r--r--lib/chef/application/windows_service.rb2
-rw-r--r--lib/chef/cookbook/synchronizer.rb3
-rw-r--r--lib/chef/exceptions.rb3
-rw-r--r--lib/chef/formatters/error_inspectors/api_error_formatting.rb3
-rw-r--r--lib/chef/formatters/error_inspectors/node_load_error_inspector.rb3
-rw-r--r--lib/chef/formatters/error_inspectors/registration_error_inspector.rb5
-rw-r--r--lib/chef/formatters/error_inspectors/resource_failure_inspector.rb3
-rw-r--r--lib/chef/knife/bootstrap.rb15
-rw-r--r--lib/chef/knife/bootstrap/templates/chef-full.erb2
-rw-r--r--lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb10
-rw-r--r--lib/chef/knife/core/bootstrap_context.rb3
-rw-r--r--lib/chef/knife/core/windows_bootstrap_context.rb3
-rw-r--r--lib/chef/log/syslog.rb3
-rw-r--r--lib/chef/policy_builder/policyfile.rb3
-rw-r--r--lib/chef/provider/file.rb3
-rw-r--r--lib/chef/resource/breakpoint.rb3
-rw-r--r--lib/chef/resource/chef_gem.rb5
-rw-r--r--lib/chef/resource/cookbook_file.rb3
-rw-r--r--lib/chef/resource/dnf_package.rb3
-rw-r--r--lib/chef/resource/execute.rb5
-rw-r--r--lib/chef/resource/file.rb5
-rw-r--r--lib/chef/resource/gem_package.rb3
-rw-r--r--lib/chef/resource/homebrew_package.rb3
-rw-r--r--lib/chef/resource/ohai.rb5
-rw-r--r--lib/chef/resource/ruby_block.rb3
-rw-r--r--lib/chef/resource/service.rb5
-rw-r--r--lib/chef/resource/subversion.rb3
-rw-r--r--lib/chef/resource/template.rb3
-rw-r--r--lib/chef/resource/windows_certificate.rb3
-rw-r--r--lib/chef/resource/yum_package.rb3
-rw-r--r--spec/functional/resource/windows_task_spec.rb25
33 files changed, 89 insertions, 60 deletions
diff --git a/lib/chef/application.rb b/lib/chef/application.rb
index 0eaf9721d9..549d8b4482 100644
--- a/lib/chef/application.rb
+++ b/lib/chef/application.rb
@@ -28,6 +28,7 @@ require "mixlib/cli"
require "tmpdir"
require "rbconfig"
require "chef/application/exit_code"
+require "chef/dist"
class Chef
class Application
@@ -313,7 +314,7 @@ class Chef
" finishing converge to exit normally (send SIGINT to terminate immediately)")
end
- client_solo = chef_config[:solo] ? "chef-solo" : "chef-client"
+ client_solo = chef_config[:solo] ? "chef-solo" : "#{Chef::Dist::CLIENT}"
$0 = "#{client_solo} worker: ppid=#{Process.ppid};start=#{Time.new.strftime("%R:%S")};"
begin
logger.trace "Forked instance now converging"
diff --git a/lib/chef/application/solo.rb b/lib/chef/application/solo.rb
index 457cb1578c..5655b8cdfd 100644
--- a/lib/chef/application/solo.rb
+++ b/lib/chef/application/solo.rb
@@ -324,7 +324,7 @@ class Chef::Application::Solo < Chef::Application
def interval_run_chef_client
if Chef::Config[:daemonize]
- Chef::Daemon.daemonize("chef-client")
+ Chef::Daemon.daemonize("#{Chef::Dist::CLIENT}")
end
loop do
diff --git a/lib/chef/application/windows_service.rb b/lib/chef/application/windows_service.rb
index 6fbb1a36a2..3eb4f63129 100644
--- a/lib/chef/application/windows_service.rb
+++ b/lib/chef/application/windows_service.rb
@@ -57,7 +57,7 @@ class Chef
option :interval,
short: "-i SECONDS",
long: "--interval SECONDS",
- description: "Set the number of seconds to wait between chef-client runs",
+ description: "Set the number of seconds to wait between #{Chef::Dist::CLIENT} runs",
proc: lambda { |s| s.to_i }
DEFAULT_LOG_LOCATION ||= "#{ENV['SYSTEMDRIVE']}/chef/client.log".freeze
diff --git a/lib/chef/cookbook/synchronizer.rb b/lib/chef/cookbook/synchronizer.rb
index a1d02bac65..5f098a0538 100644
--- a/lib/chef/cookbook/synchronizer.rb
+++ b/lib/chef/cookbook/synchronizer.rb
@@ -17,6 +17,7 @@ require "chef/client"
require "chef/util/threaded_job_queue"
require "chef/server_api"
require "singleton"
+require "chef/dist"
class Chef
@@ -63,7 +64,7 @@ class Chef
# manifest.
cache.find(File.join(%w{cookbooks ** {*,.*}})).each do |cache_filename|
unless @valid_cache_entries[cache_filename]
- Chef::Log.info("Removing #{cache_filename} from the cache; it is no longer needed by chef-client.")
+ Chef::Log.info("Removing #{cache_filename} from the cache; it is no longer needed by #{Chef::Dist::CLIENT}.")
cache.delete(cache_filename)
end
end
diff --git a/lib/chef/exceptions.rb b/lib/chef/exceptions.rb
index 0a6c7dc635..4ab9434906 100644
--- a/lib/chef/exceptions.rb
+++ b/lib/chef/exceptions.rb
@@ -18,6 +18,7 @@
# limitations under the License.
require "chef-config/exceptions"
+require "chef/dist"
class Chef
# == Chef::Exceptions
@@ -401,7 +402,7 @@ class Chef
def initialize(response_length, content_length)
super <<~EOF
Response body length #{response_length} does not match HTTP Content-Length header #{content_length}.
- This error is most often caused by network issues (proxies, etc) outside of chef-client.
+ This error is most often caused by network issues (proxies, etc) outside of #{Chef::Dist::CLIENT}.
EOF
end
end
diff --git a/lib/chef/formatters/error_inspectors/api_error_formatting.rb b/lib/chef/formatters/error_inspectors/api_error_formatting.rb
index 4ecdec7105..e74c353ba9 100644
--- a/lib/chef/formatters/error_inspectors/api_error_formatting.rb
+++ b/lib/chef/formatters/error_inspectors/api_error_formatting.rb
@@ -17,6 +17,7 @@
#
require "chef/http/authenticator"
+require "chef/dist"
class Chef
module Formatters
@@ -39,7 +40,7 @@ class Chef
def describe_eof_error(error_description)
error_description.section("Authentication Error:", <<~E)
Received an EOF on transport socket. This almost always indicates a network
- error external to chef-client. Some causes include:
+ error external to #{Chef::Dist::CLIENT}. Some causes include:
- Blocking ICMP Dest Unreachable (breaking Path MTU Discovery)
- IPsec or VPN tunnelling / TCP Encapsulation MTU issues
diff --git a/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb b/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb
index 9617f729c1..8a94529237 100644
--- a/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb
+++ b/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb
@@ -17,6 +17,7 @@
#
require "chef/formatters/error_inspectors/api_error_formatting"
+require "chef/dist"
class Chef
module Formatters
@@ -45,7 +46,7 @@ class Chef
when Chef::Exceptions::PrivateKeyMissing
error_description.section("Private Key Not Found:", <<~E)
Your private key could not be loaded. If the key file exists, ensure that it is
- readable by chef-client.
+ readable by #{Chef::Dist::CLIENT}.
E
error_description.section("Relevant Config Settings:", <<~E)
client_key "#{api_key}"
diff --git a/lib/chef/formatters/error_inspectors/registration_error_inspector.rb b/lib/chef/formatters/error_inspectors/registration_error_inspector.rb
index 002870abeb..5ba5eba39d 100644
--- a/lib/chef/formatters/error_inspectors/registration_error_inspector.rb
+++ b/lib/chef/formatters/error_inspectors/registration_error_inspector.rb
@@ -1,7 +1,8 @@
+require "chef/dist"
+
class Chef
module Formatters
module ErrorInspectors
-
# == RegistrationErrorInspector
# Wraps exceptions that occur during the client registration process and
# suggests possible causes.
@@ -38,7 +39,7 @@ class Chef
when Chef::Exceptions::PrivateKeyMissing
error_description.section("Private Key Not Found:", <<~E)
Your private key could not be loaded. If the key file exists, ensure that it is
- readable by chef-client.
+ readable by #{Chef::Dist::CLIENT}.
E
error_description.section("Relevant Config Settings:", <<~E)
validation_key "#{api_key}"
diff --git a/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb b/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb
index 1cc147db7a..367bba321e 100644
--- a/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb
+++ b/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb
@@ -16,6 +16,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+require "chef/dist"
class Chef
module Formatters
@@ -55,7 +56,7 @@ class Chef
require "chef/win32/security"
if !Chef::ReservedNames::Win32::Security.has_admin_privileges?
- error_description.section("Missing Windows Admin Privileges", "chef-client doesn't have administrator privileges. This can be a possible reason for the resource failure.")
+ 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.")
end
end
end
diff --git a/lib/chef/knife/bootstrap.rb b/lib/chef/knife/bootstrap.rb
index b68fb1aa1e..daca0957d4 100644
--- a/lib/chef/knife/bootstrap.rb
+++ b/lib/chef/knife/bootstrap.rb
@@ -22,6 +22,7 @@ require "erubis"
require "chef/knife/bootstrap/chef_vault_handler"
require "chef/knife/bootstrap/client_builder"
require "chef/util/path_helper"
+require "chef/dist"
class Chef
class Knife
@@ -251,14 +252,14 @@ class Chef
option :first_boot_attributes,
short: "-j JSON_ATTRIBS",
long: "--json-attributes",
- description: "A JSON string to be added to the first run of chef-client",
+ description: "A JSON string to be added to the first run of #{Chef::Dist::CLIENT}",
proc: lambda { |o| Chef::JSONCompat.parse(o) },
default: nil
# bootstrap template
option :first_boot_attributes_from_file,
long: "--json-attribute-file FILE",
- description: "A JSON file to be used to the first run of chef-client",
+ description: "A JSON file to be used to the first run of #{Chef::Dist::CLIENT}",
proc: lambda { |o| Chef::JSONCompat.parse(File.read(o)) },
default: nil
@@ -296,25 +297,25 @@ class Chef
# bootstrap override: Do this instead of our own setup.sh from omnitruck. Causes bootstrap_url to be ignored.
option :bootstrap_install_command,
long: "--bootstrap-install-command COMMANDS",
- description: "Custom command to install chef-client",
+ description: "Custom command to install #{Chef::Dist::CLIENT}",
proc: Proc.new { |ic| Chef::Config[:knife][:bootstrap_install_command] = ic }
# bootstrap template: Run this command first in the bootstrap script
option :bootstrap_preinstall_command,
long: "--bootstrap-preinstall-command COMMANDS",
- description: "Custom commands to run before installing chef-client",
+ description: "Custom commands to run before installing #{Chef::Dist::CLIENT}",
proc: Proc.new { |preic| Chef::Config[:knife][:bootstrap_preinstall_command] = preic }
# bootstrap template
option :bootstrap_wget_options,
long: "--bootstrap-wget-options OPTIONS",
- description: "Add options to wget when installing chef-client",
+ description: "Add options to wget when installing #{Chef::Dist::CLIENT}",
proc: Proc.new { |wo| Chef::Config[:knife][:bootstrap_wget_options] = wo }
# bootstrap template
option :bootstrap_curl_options,
long: "--bootstrap-curl-options OPTIONS",
- description: "Add options to curl when install chef-client",
+ description: "Add options to curl when install #{Chef::Dist::CLIENT}",
proc: Proc.new { |co| Chef::Config[:knife][:bootstrap_curl_options] = co }
# chef_vault_handler
@@ -417,7 +418,7 @@ class Chef
# @return [String] Default bootstrap template
def default_bootstrap_template
if target_host.base_os == :windows
- "windows-chef-client-msi"
+ "windows-#{Chef::Dist::CLIENT}-msi"
else
"chef-full"
end
diff --git a/lib/chef/knife/bootstrap/templates/chef-full.erb b/lib/chef/knife/bootstrap/templates/chef-full.erb
index ec1f7e72c9..58a64a23b8 100644
--- a/lib/chef/knife/bootstrap/templates/chef-full.erb
+++ b/lib/chef/knife/bootstrap/templates/chef-full.erb
@@ -172,7 +172,7 @@ do_download() {
<%= knife_config[:bootstrap_install_command] %>
<% else %>
install_sh="<%= knife_config[:bootstrap_url] ? knife_config[:bootstrap_url] : "https://omnitruck.chef.io/chef/install.sh" %>"
- if test -f /usr/bin/chef-client; then
+ if test -f /usr/bin/<%= Chef::Dist::CLIENT %>}; then
echo "-----> Existing <%= Chef::Dist::PRODUCT %> installation detected"
else
echo "-----> Installing Chef Omnibus (<%= latest_current_chef_version_string %>)"
diff --git a/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb b/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb
index 37fcf15682..fd7b48f28d 100644
--- a/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb
+++ b/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb
@@ -110,7 +110,7 @@ goto chef_installed
:chef_installed
@echo Checking for existing chef installation
-WHERE chef-client >nul 2>nul
+WHERE <%= Chef::Dist::CLIENT %> >nul 2>nul
If !ERRORLEVEL!==0 (
@echo Existing Chef installation detected, skipping download
goto key_create
@@ -120,14 +120,14 @@ If !ERRORLEVEL!==0 (
)
:install
-@rem If user has provided the custom installation command for chef-client then execute it
+@rem If user has provided the custom installation command for <%= Chef::Dist::CLIENT %> then execute it
<% if @chef_config[:knife][:bootstrap_install_command] %>
<%= @chef_config[:knife][:bootstrap_install_command] %>
<% else %>
- @rem Install Chef using chef-client MSI installer
+ @rem Install Chef using <%= Chef::Dist::CLIENT %> MSI installer
@set "LOCAL_DESTINATION_MSI_PATH=<%= local_download_path %>"
- @set "CHEF_CLIENT_MSI_LOG_PATH=%TEMP%\chef-client-msi%RANDOM%.log"
+ @set "CHEF_CLIENT_MSI_LOG_PATH=%TEMP%\<%= Chef::Dist::CLIENT %>-msi%RANDOM%.log"
@rem Clear any pre-existing downloads
@echo Checking for existing downloaded package at "%LOCAL_DESTINATION_MSI_PATH%"
@@ -197,7 +197,7 @@ If !ERRORLEVEL!==0 (
<%= install_chef %>
@if ERRORLEVEL 1 (
- echo Chef-client package failed to install with status code !ERRORLEVEL!. > "&2"
+ echo <%= Chef::Dist::CLIENT %> package failed to install with status code !ERRORLEVEL!. > "&2"
echo See installation log for additional detail: %CHEF_CLIENT_MSI_LOG_PATH%. > "&2"
) else (
@echo Installation completed successfully
diff --git a/lib/chef/knife/core/bootstrap_context.rb b/lib/chef/knife/core/bootstrap_context.rb
index 355978c79d..5e987745e6 100644
--- a/lib/chef/knife/core/bootstrap_context.rb
+++ b/lib/chef/knife/core/bootstrap_context.rb
@@ -19,6 +19,7 @@
require "chef/run_list"
require "chef/util/path_helper"
require "pathname"
+require "chef/dist"
class Chef
class Knife
@@ -169,7 +170,7 @@ class Chef
def start_chef
# If the user doesn't have a client path configure, let bash use the PATH for what it was designed for
- client_path = @chef_config[:chef_client_path] || "chef-client"
+ client_path = @chef_config[:chef_client_path] || "#{Chef::Dist::CLIENT}"
s = "#{client_path} -j /etc/chef/first-boot.json"
if @config[:verbosity] && @config[:verbosity] >= 3
s << " -l trace"
diff --git a/lib/chef/knife/core/windows_bootstrap_context.rb b/lib/chef/knife/core/windows_bootstrap_context.rb
index c7b8666ed0..df69399074 100644
--- a/lib/chef/knife/core/windows_bootstrap_context.rb
+++ b/lib/chef/knife/core/windows_bootstrap_context.rb
@@ -18,6 +18,7 @@
require "chef/knife/core/bootstrap_context"
require "chef/util/path_helper"
+require "chef/dist"
class Chef
class Knife
@@ -268,7 +269,7 @@ class Chef
end
def local_download_path
- "%TEMP%\\chef-client-latest.msi"
+ "%TEMP%\\#{Chef::Dist::CLIENT}-latest.msi"
end
def msi_url(machine_os = nil, machine_arch = nil, download_context = nil)
diff --git a/lib/chef/log/syslog.rb b/lib/chef/log/syslog.rb
index 58d6671095..d4179d465c 100644
--- a/lib/chef/log/syslog.rb
+++ b/lib/chef/log/syslog.rb
@@ -19,6 +19,7 @@
require "logger"
require "syslog-logger"
require "chef/mixin/unformatter"
+require "chef/dist"
class Chef
class Log
@@ -32,7 +33,7 @@ class Chef
attr_accessor :sync, :formatter
- def initialize(program_name = "chef-client", facility = ::Syslog::LOG_DAEMON, logopts = nil)
+ def initialize(program_name = "#{Chef::Dist::CLIENT}", facility = ::Syslog::LOG_DAEMON, logopts = nil)
super
return if defined? ::Logger::Syslog::SYSLOG
::Logger::Syslog.const_set :SYSLOG, SYSLOG
diff --git a/lib/chef/policy_builder/policyfile.rb b/lib/chef/policy_builder/policyfile.rb
index a4134c02bd..421d2ca8ec 100644
--- a/lib/chef/policy_builder/policyfile.rb
+++ b/lib/chef/policy_builder/policyfile.rb
@@ -24,6 +24,7 @@ require "chef/run_context"
require "chef/config"
require "chef/node"
require "chef/server_api"
+require "chef/dist"
class Chef
module PolicyBuilder
@@ -90,7 +91,7 @@ class Chef
@node = nil
if Chef::Config[:solo_legacy_mode]
- raise UnsupportedFeature, "Policyfile does not support chef-solo. Use chef-client local mode instead."
+ raise UnsupportedFeature, "Policyfile does not support chef-solo. Use #{Chef::Dist::CLIENT} local mode instead."
end
if override_runlist
diff --git a/lib/chef/provider/file.rb b/lib/chef/provider/file.rb
index 05522f1eb8..589a70de09 100644
--- a/lib/chef/provider/file.rb
+++ b/lib/chef/provider/file.rb
@@ -31,6 +31,7 @@ require "chef/util/backup"
require "chef/util/diff"
require "chef/util/selinux"
require "chef/file_content_management/deploy"
+require "chef/dist"
# The Tao of File Providers:
# - the content provider must always return a tempfile that we can delete/mv
@@ -389,7 +390,7 @@ class Chef
return if tempfile.nil?
# but a tempfile that has no path or doesn't exist should not happen
if tempfile.path.nil? || !::File.exists?(tempfile.path)
- raise "chef-client is confused, trying to deploy a file that has no path or does not exist..."
+ raise "#{Chef::Dist::CLIENT} is confused, trying to deploy a file that has no path or does not exist..."
end
# the file? on the next line suppresses the case in why-run when we have a not-file here that would have otherwise been removed
diff --git a/lib/chef/resource/breakpoint.rb b/lib/chef/resource/breakpoint.rb
index 8af3edbe22..820ac70c09 100644
--- a/lib/chef/resource/breakpoint.rb
+++ b/lib/chef/resource/breakpoint.rb
@@ -17,6 +17,7 @@
#
require "chef/resource"
+require "chef/dist"
class Chef
class Resource
@@ -24,7 +25,7 @@ class Chef
provides :breakpoint
resource_name :breakpoint
- description "Use the breakpoint resource to add breakpoints to recipes. Run the chef-shell in chef-client mode, and then use those breakpoints to debug recipes. Breakpoints are ignored by the chef-client during an actual chef-client run. That said, breakpoints are typically used to debug recipes only when running them in a non-production environment, after which they are removed from those recipes before the parent cookbook is uploaded to the Chef server."
+ description "Use the breakpoint resource to add breakpoints to recipes. Run the chef-shell in #{Chef::Dist::CLIENT} mode, and then use those breakpoints to debug recipes. Breakpoints are ignored by the #{Chef::Dist::CLIENT} during an actual #{Chef::Dist::CLIENT} run. That said, breakpoints are typically used to debug recipes only when running them in a non-production environment, after which they are removed from those recipes before the parent cookbook is uploaded to the Chef server."
introduced "12.0"
default_action :break
diff --git a/lib/chef/resource/chef_gem.rb b/lib/chef/resource/chef_gem.rb
index 2079e5d796..7655d6651c 100644
--- a/lib/chef/resource/chef_gem.rb
+++ b/lib/chef/resource/chef_gem.rb
@@ -18,6 +18,7 @@
require "chef/resource/package"
require "chef/resource/gem_package"
+require "chef/dist"
class Chef
class Resource
@@ -37,12 +38,12 @@ class Chef
resource_name :chef_gem
property :gem_binary, default: "#{RbConfig::CONFIG['bindir']}/gem", default_description: "Chef's built-in gem binary.",
- description: "The path of a gem binary to use for the installation. By default, the same version of Ruby that is used by the chef-client will be installed.",
+ description: "The path of a gem binary to use for the installation. By default, the same version of Ruby that is used by the #{Chef::Dist::CLIENT} will be installed.",
callbacks: {
"The chef_gem resource is restricted to the current gem environment, use gem_package to install to other environments." => proc { |v| v == "#{RbConfig::CONFIG['bindir']}/gem" },
}
property :compile_time, [TrueClass, FalseClass],
- description: "Controls the phase during which a gem is installed on a node. Set to 'true' to install a gem while the resource collection is being built (the 'compile phase'). Set to 'false' to install a gem while the chef-client is configuring the node (the 'converge phase').",
+ description: "Controls the phase during which a gem is installed on a node. Set to 'true' to install a gem while the resource collection is being built (the 'compile phase'). Set to 'false' to install a gem while the #{Chef::Dist::CLIENT} is configuring the node (the 'converge phase').",
default: false, desired_state: false
# force the resource to compile time if the compile time property has been set
diff --git a/lib/chef/resource/cookbook_file.rb b/lib/chef/resource/cookbook_file.rb
index c96e794469..bee4a5f3f4 100644
--- a/lib/chef/resource/cookbook_file.rb
+++ b/lib/chef/resource/cookbook_file.rb
@@ -21,6 +21,7 @@
require "chef/resource/file"
require "chef/provider/cookbook_file"
require "chef/mixin/securable"
+require "chef/dist"
class Chef
class Resource
@@ -29,7 +30,7 @@ class Chef
resource_name :cookbook_file
- description "Use the cookbook_file resource to transfer files from a sub-directory of COOKBOOK_NAME/files/ to a specified path located on a host that is running the chef-client. The file is selected according to file specificity, which allows different source files to be used based on the hostname, host platform (operating system, distro, or as appropriate), or platform version. Files that are located in the COOKBOOK_NAME/files/default sub-directory may be used on any platform.\n\nDuring a chef-client run, the checksum for each local file is calculated and then compared against the checksum for the same file as it currently exists in the cookbook on the Chef server. A file is not transferred when the checksums match. Only files that require an update are transferred from the Chef server to a node."
+ description "Use the cookbook_file resource to transfer files from a sub-directory of COOKBOOK_NAME/files/ to a specified path located on a host that is running the #{Chef::Dist::CLIENT}. The file is selected according to file specificity, which allows different source files to be used based on the hostname, host platform (operating system, distro, or as appropriate), or platform version. Files that are located in the COOKBOOK_NAME/files/default sub-directory may be used on any platform.\n\nDuring a #{Chef::Dist::CLIENT} run, the checksum for each local file is calculated and then compared against the checksum for the same file as it currently exists in the cookbook on the Chef server. A file is not transferred when the checksums match. Only files that require an update are transferred from the Chef server to a node."
property :source, [ String, Array ],
description: "The name of the file in COOKBOOK_NAME/files/default or the path to a file located in COOKBOOK_NAME/files. The path must include the file name and its extension. This can be used to distribute specific files depending upon the platform used.",
diff --git a/lib/chef/resource/dnf_package.rb b/lib/chef/resource/dnf_package.rb
index 3b40a6dffb..6590c6c003 100644
--- a/lib/chef/resource/dnf_package.rb
+++ b/lib/chef/resource/dnf_package.rb
@@ -18,6 +18,7 @@
require "chef/resource/package"
require "chef/mixin/which"
require "chef/mixin/shell_out"
+require "chef/dist"
class Chef
class Resource
@@ -52,7 +53,7 @@ class Chef
# Flush the in-memory available/installed cache, this does not flush the dnf caches on disk
property :flush_cache, Hash,
- description: "Flush the in-memory cache before or after a DNF operation that installs, upgrades, or removes a package. DNF automatically synchronizes remote metadata to a local cache. The chef-client creates a copy of the local cache, and then stores it in-memory during the chef-client run. The in-memory cache allows packages to be installed during the chef-client run without the need to continue synchronizing the remote metadata to the local cache while the chef-client run is in-progress.",
+ description: "Flush the in-memory cache before or after a DNF operation that installs, upgrades, or removes a package. DNF automatically synchronizes remote metadata to a local cache. The #{Chef::Dist::CLIENT} creates a copy of the local cache, and then stores it in-memory during the #{Chef::Dist::CLIENT} run. The in-memory cache allows packages to be installed during the #{Chef::Dist::CLIENT} run without the need to continue synchronizing the remote metadata to the local cache while the #{Chef::Dist::CLIENT} run is in-progress.",
default: { before: false, after: false },
coerce: proc { |v|
if v.is_a?(Hash)
diff --git a/lib/chef/resource/execute.rb b/lib/chef/resource/execute.rb
index afab9a7b27..de3b7e044a 100644
--- a/lib/chef/resource/execute.rb
+++ b/lib/chef/resource/execute.rb
@@ -18,6 +18,7 @@
#
require "chef/resource"
+require "chef/dist"
class Chef
class Resource
@@ -65,7 +66,7 @@ class Chef
description: "The group name or group ID that must be changed before running a command."
property :live_stream, [ TrueClass, FalseClass ], default: false,
- description: "Send the output of the command run by this execute resource block to the chef-client event stream."
+ description: "Send the output of the command run by this execute resource block to the #{Chef::Dist::CLIENT} event stream."
# default_env defaults to `false` so that the command execution more exactly matches what the user gets on the command line without magic
property :default_env, [ TrueClass, FalseClass ], desired_state: false, default: false,
@@ -91,7 +92,7 @@ class Chef
# lazy used to set default value of sensitive to true if password is set
property :sensitive, [ TrueClass, FalseClass ],
- description: "Ensure that sensitive resource data is not logged by the chef-client.",
+ description: "Ensure that sensitive resource data is not logged by the #{Chef::Dist::CLIENT}.",
default: lazy { |r| r.password ? true : false }, default_description: "True if the password property is set. False otherwise."
property :elevated, [ TrueClass, FalseClass ], default: false,
diff --git a/lib/chef/resource/file.rb b/lib/chef/resource/file.rb
index 8db15fc661..1875846d79 100644
--- a/lib/chef/resource/file.rb
+++ b/lib/chef/resource/file.rb
@@ -22,6 +22,7 @@ require "chef/platform/query_helpers"
require "chef/mixin/securable"
require "chef/resource/file/verification"
require "pathname"
+require "chef/dist"
class Chef
class Resource
@@ -52,7 +53,7 @@ class Chef
allowed_actions :create, :delete, :touch, :create_if_missing
property :path, String, name_property: true, identity: true,
- description: "The full path to the file, including the file name and its extension. For example: /files/file.txt. Default value: the name of the resource block. Microsoft Windows: A path that begins with a forward slash (/) will point to the root of the current working directory of the chef-client process. This path can vary from system to system. Therefore, using a path that begins with a forward slash (/) is not recommended."
+ description: "The full path to the file, including the file name and its extension. For example: /files/file.txt. Default value: the name of the resource block. Microsoft Windows: A path that begins with a forward slash (/) will point to the root of the current working directory of the #{Chef::Dist::CLIENT} process. This path can vary from system to system. Therefore, using a path that begins with a forward slash (/) is not recommended."
property :atomic_update, [ TrueClass, FalseClass ], desired_state: false, default: lazy { |r| r.docker? && r.special_docker_files?(r.path) ? false : Chef::Config[:file_atomic_update] },
description: "Perform atomic file updates on a per-resource basis. Set to true for atomic file updates. Set to false for non-atomic file updates. This setting overrides file_atomic_update, which is a global setting found in the client.rb file."
@@ -69,7 +70,7 @@ class Chef
property :diff, [ String, nil ], desired_state: false, skip_docs: true
property :force_unlink, [ TrueClass, FalseClass ], desired_state: false, default: false,
- description: "How the chef-client handles certain situations when the target file turns out not to be a file. For example, when a target file is actually a symlink. Set to true for the chef-client delete the non-file target and replace it with the specified file. Set to false for the chef-client to raise an error."
+ description: "How the #{Chef::Dist::CLIENT} handles certain situations when the target file turns out not to be a file. For example, when a target file is actually a symlink. Set to true for the #{Chef::Dist::CLIENT} delete the non-file target and replace it with the specified file. Set to false for the #{Chef::Dist::CLIENT} to raise an error."
property :manage_symlink_source, [ TrueClass, FalseClass ], desired_state: false,
description: "Change the behavior of the file resource if it is pointed at a symlink. When this value is set to true, the Chef client will manage the symlink's permissions or will replace the symlink with a normal file if the resource has content. When this value is set to false, Chef will follow the symlink and will manage the permissions and content of symlink's target file. The default behavior is true but emits a warning that the default value will be changed to false in a future version; setting this explicitly to true or false suppresses this warning."
diff --git a/lib/chef/resource/gem_package.rb b/lib/chef/resource/gem_package.rb
index 0f6fd413ca..e057cbd485 100644
--- a/lib/chef/resource/gem_package.rb
+++ b/lib/chef/resource/gem_package.rb
@@ -17,6 +17,7 @@
#
require "chef/resource/package"
+require "chef/dist"
class Chef
class Resource
@@ -44,7 +45,7 @@ class Chef
default: lazy { Chef::Config[:clear_gem_sources] }, desired_state: false
property :gem_binary, String, desired_state: false,
- description: "The path of a gem binary to use for the installation. By default, the same version of Ruby that is used by the chef-client will be installed."
+ description: "The path of a gem binary to use for the installation. By default, the same version of Ruby that is used by the #{Chef::Dist::CLIENT} will be installed."
property :include_default_source, [ TrueClass, FalseClass ],
description: "Set to 'false' to not include 'Chef::Config[:rubygems_url]'' in the sources.",
diff --git a/lib/chef/resource/homebrew_package.rb b/lib/chef/resource/homebrew_package.rb
index 9d8c7b2596..930e25d820 100644
--- a/lib/chef/resource/homebrew_package.rb
+++ b/lib/chef/resource/homebrew_package.rb
@@ -20,6 +20,7 @@
require "chef/provider/package"
require "chef/resource/package"
+require "chef/dist"
class Chef
class Resource
@@ -31,7 +32,7 @@ class Chef
introduced "12.0"
property :homebrew_user, [ String, Integer ],
- description: "The name of the Homebrew owner to be used by the chef-client when executing a command."
+ description: "The name of the Homebrew owner to be used by the #{Chef::Dist::CLIENT} when executing a command."
end
end
diff --git a/lib/chef/resource/ohai.rb b/lib/chef/resource/ohai.rb
index b5cd97cae0..59f2967a2f 100644
--- a/lib/chef/resource/ohai.rb
+++ b/lib/chef/resource/ohai.rb
@@ -18,6 +18,7 @@
#
require "chef/resource"
+require "chef/dist"
class Chef
class Resource
@@ -25,10 +26,10 @@ class Chef
resource_name :ohai
provides :ohai
- description "Use the ohai resource to reload the Ohai configuration on a node. This allows recipes that change system attributes (like a recipe that adds a user) to refer to those attributes later on during the chef-client run."
+ description "Use the ohai resource to reload the Ohai configuration on a node. This allows recipes that change system attributes (like a recipe that adds a user) to refer to those attributes later on during the #{Chef::Dist::CLIENT} run."
property :plugin, String,
- description: "The name of an Ohai plugin to be reloaded. If this property is not specified, the chef-client will reload all plugins."
+ description: "The name of an Ohai plugin to be reloaded. If this property is not specified, the #{Chef::Dist::CLIENT} will reload all plugins."
default_action :reload
allowed_actions :reload
diff --git a/lib/chef/resource/ruby_block.rb b/lib/chef/resource/ruby_block.rb
index 911e6203d8..0ec6647fd8 100644
--- a/lib/chef/resource/ruby_block.rb
+++ b/lib/chef/resource/ruby_block.rb
@@ -19,11 +19,12 @@
require "chef/resource"
require "chef/provider/ruby_block"
+require "chef/dist"
class Chef
class Resource
class RubyBlock < Chef::Resource
- description "Use the ruby_block resource to execute Ruby code during a chef-client run."\
+ description "Use the ruby_block resource to execute Ruby code during a #{Chef::Dist::CLIENT} run."\
" Ruby code in the ruby_block resource is evaluated with other resources during"\
" convergence, whereas Ruby code outside of a ruby_block resource is evaluated"\
" before other resources, as the recipe is compiled."
diff --git a/lib/chef/resource/service.rb b/lib/chef/resource/service.rb
index 4e808d6035..20bf9ecc65 100644
--- a/lib/chef/resource/service.rb
+++ b/lib/chef/resource/service.rb
@@ -19,6 +19,7 @@
require "chef/resource"
require "shellwords"
+require "chef/dist"
class Chef
class Resource
@@ -33,7 +34,7 @@ class Chef
# this is a poor API please do not re-use this pattern
property :supports, Hash, default: { restart: nil, reload: nil, status: nil },
- description: "A list of properties that controls how the chef-client is to attempt to manage a service: :restart, :reload, :status. For :restart, the init script or other service provider can use a restart command; if :restart is not specified, the chef-client attempts to stop and then start a service. For :reload, the init script or other service provider can use a reload command. For :status, the init script or other service provider can use a status command to determine if the service is running; if :status is not specified, the chef-client attempts to match the service_name against the process table as a regular expression, unless a pattern is specified as a parameter property. Default value: { restart: false, reload: false, status: false } for all platforms (except for the Red Hat platform family, which defaults to { restart: false, reload: false, status: true }.)",
+ description: "A list of properties that controls how the #{Chef::Dist::CLIENT} is to attempt to manage a service: :restart, :reload, :status. For :restart, the init script or other service provider can use a restart command; if :restart is not specified, the #{Chef::Dist::CLIENT} attempts to stop and then start a service. For :reload, the init script or other service provider can use a reload command. For :status, the init script or other service provider can use a status command to determine if the service is running; if :status is not specified, the #{Chef::Dist::CLIENT} attempts to match the service_name against the process table as a regular expression, unless a pattern is specified as a parameter property. Default value: { restart: false, reload: false, status: false } for all platforms (except for the Red Hat platform family, which defaults to { restart: false, reload: false, status: true }.)",
coerce: proc { |x| x.is_a?(Array) ? x.each_with_object({}) { |i, m| m[i] = true } : x }
property :service_name, String,
@@ -76,7 +77,7 @@ class Chef
# specify overrides for the start_command, stop_command and
# restart_command properties.
property :init_command, String,
- description: "The path to the init script that is associated with the service. Use init_command to prevent the need to specify overrides for the start_command, stop_command, and restart_command properties. When this property is not specified, the chef-client will use the default init command for the service provider being used.",
+ description: "The path to the init script that is associated with the service. Use init_command to prevent the need to specify overrides for the start_command, stop_command, and restart_command properties. When this property is not specified, the #{Chef::Dist::CLIENT} will use the default init command for the service provider being used.",
desired_state: false
# if the service is enabled or not
diff --git a/lib/chef/resource/subversion.rb b/lib/chef/resource/subversion.rb
index adf8244668..4febb9353c 100644
--- a/lib/chef/resource/subversion.rb
+++ b/lib/chef/resource/subversion.rb
@@ -18,6 +18,7 @@
#
require "chef/resource/scm"
+require "chef/dist"
class Chef
class Resource
@@ -32,7 +33,7 @@ class Chef
default: "--no-auth-cache"
property :svn_info_args, [String, nil, FalseClass],
- description: "Use when the svn info command is used by the chef-client and arguments need to be passed. The svn_arguments command does not work when the svn info command is used.",
+ description: "Use when the svn info command is used by the #{Chef::Dist::CLIENT} and arguments need to be passed. The svn_arguments command does not work when the svn info command is used.",
coerce: proc { |v| v == false ? nil : v }, # coerce false to nil
default: "--no-auth-cache"
diff --git a/lib/chef/resource/template.rb b/lib/chef/resource/template.rb
index bd8325f2c1..b08bf0b8fb 100644
--- a/lib/chef/resource/template.rb
+++ b/lib/chef/resource/template.rb
@@ -20,6 +20,7 @@
require "chef/resource/file"
require "chef/mixin/securable"
+require "chef/dist"
class Chef
class Resource
@@ -67,7 +68,7 @@ class Chef
property :local, [ TrueClass, FalseClass ],
default: false, desired_state: false,
- description: "Load a template from a local path. By default, the chef-client loads templates from a cookbook’s /templates directory. When this property is set to true, use the source property to specify the path to a template on the local node."
+ description: "Load a template from a local path. By default, the #{Chef::Dist::CLIENT} loads templates from a cookbook’s /templates directory. When this property is set to true, use the source property to specify the path to a template on the local node."
# Declares a helper method to be defined in the template context when
# rendering.
diff --git a/lib/chef/resource/windows_certificate.rb b/lib/chef/resource/windows_certificate.rb
index e7261adfba..c530d3b67d 100644
--- a/lib/chef/resource/windows_certificate.rb
+++ b/lib/chef/resource/windows_certificate.rb
@@ -21,6 +21,7 @@ require "chef/util/path_helper"
require "chef/resource"
require "win32-certstore" if Chef::Platform.windows?
require "openssl"
+require "chef/dist"
class Chef
class Resource
@@ -53,7 +54,7 @@ class Chef
# lazy used to set default value of sensitive to true if password is set
property :sensitive, [TrueClass, FalseClass],
- description: "Ensure that sensitive resource data is not logged by the chef-client.",
+ description: "Ensure that sensitive resource data is not logged by the #{Chef::Dist::CLIENT}.",
default: lazy { |r| r.pfx_password ? true : false }, skip_docs: true
action :create do
diff --git a/lib/chef/resource/yum_package.rb b/lib/chef/resource/yum_package.rb
index 602fe489fb..8f088371ed 100644
--- a/lib/chef/resource/yum_package.rb
+++ b/lib/chef/resource/yum_package.rb
@@ -17,6 +17,7 @@
#
require "chef/resource/package"
+require "chef/dist"
class Chef
class Resource
@@ -51,7 +52,7 @@ class Chef
coerce: proc { |x| x.is_a?(Array) ? x.to_a : x }
property :flush_cache, Hash,
- description: "Flush the in-memory cache before or after a Yum operation that installs, upgrades, or removes a package. Accepts a Hash in the form: { :before => true/false, :after => true/false } or an Array in the form [ :before, :after ].\nYum automatically synchronizes remote metadata to a local cache. The chef-client creates a copy of the local cache, and then stores it in-memory during the chef-client run. The in-memory cache allows packages to be installed during the chef-client run without the need to continue synchronizing the remote metadata to the local cache while the chef-client run is in-progress.",
+ description: "Flush the in-memory cache before or after a Yum operation that installs, upgrades, or removes a package. Accepts a Hash in the form: { :before => true/false, :after => true/false } or an Array in the form [ :before, :after ].\nYum automatically synchronizes remote metadata to a local cache. The #{Chef::Dist::CLIENT} creates a copy of the local cache, and then stores it in-memory during the #{Chef::Dist::CLIENT} run. The in-memory cache allows packages to be installed during the #{Chef::Dist::CLIENT} run without the need to continue synchronizing the remote metadata to the local cache while the #{Chef::Dist::CLIENT} run is in-progress.",
default: { before: false, after: false },
coerce: proc { |v|
if v.is_a?(Hash)
diff --git a/spec/functional/resource/windows_task_spec.rb b/spec/functional/resource/windows_task_spec.rb
index b0c6998d77..b1f839550f 100644
--- a/spec/functional/resource/windows_task_spec.rb
+++ b/spec/functional/resource/windows_task_spec.rb
@@ -18,6 +18,7 @@
require "spec_helper"
require "chef/provider/windows_task"
+require "chef/dist"
describe Chef::Resource::WindowsTask, :windows_only do
# resource.task.application_name will default to task_name unless resource.command is set
@@ -45,37 +46,37 @@ describe Chef::Resource::WindowsTask, :windows_only do
context "With Arguments" do
it "creates scheduled task and sets command arguments" do
- subject.command "chef-client -W"
+ subject.command "#{Chef::Dist::CLIENT} -W"
call_for_create_action
# loading current resource again to check new task is creted and it matches task parameters
current_resource = call_for_load_current_resource
expect(current_resource.exists).to eq(true)
- expect(current_resource.task.application_name).to eq("chef-client")
+ expect(current_resource.task.application_name).to eq(Chef::Dist::CLIENT)
expect(current_resource.task.parameters).to eq("-W")
end
it "does not converge the resource if it is already converged" do
- subject.command "chef-client -W"
+ subject.command "#{Chef::Dist::CLIENT} -W"
subject.run_action(:create)
- subject.command "chef-client -W"
+ subject.command "#{Chef::Dist::CLIENT} -W"
subject.run_action(:create)
expect(subject).not_to be_updated_by_last_action
end
it "creates scheduled task and sets command arguments when arguments inclusive single quotes" do
- subject.command "chef-client -W -L 'C:\\chef\\chef-ad-join.log'"
+ subject.command "#{Chef::Dist::CLIENT} -W -L 'C:\\chef\\chef-ad-join.log'"
call_for_create_action
# loading current resource again to check new task is creted and it matches task parameters
current_resource = call_for_load_current_resource
expect(current_resource.exists).to eq(true)
- expect(current_resource.task.application_name).to eq("chef-client")
+ expect(current_resource.task.application_name).to eq(Chef::Dist::CLIENT)
expect(current_resource.task.parameters).to eq("-W -L 'C:\\chef\\chef-ad-join.log'")
end
it "does not converge the resource if it is already converged" do
- subject.command "chef-client -W -L 'C:\\chef\\chef-ad-join.log'"
+ subject.command "#{Chef::Dist::CLIENT} -W -L 'C:\\chef\\chef-ad-join.log'"
subject.run_action(:create)
- subject.command "chef-client -W -L 'C:\\chef\\chef-ad-join.log'"
+ subject.command "#{Chef::Dist::CLIENT} -W -L 'C:\\chef\\chef-ad-join.log'"
subject.run_action(:create)
expect(subject).not_to be_updated_by_last_action
end
@@ -135,19 +136,19 @@ describe Chef::Resource::WindowsTask, :windows_only do
context "Without Arguments" do
it "creates scheduled task and sets command arguments" do
- subject.command "chef-client"
+ subject.command Chef::Dist::CLIENT
call_for_create_action
# loading current resource again to check new task is creted and it matches task parameters
current_resource = call_for_load_current_resource
expect(current_resource.exists).to eq(true)
- expect(current_resource.task.application_name).to eq("chef-client")
+ expect(current_resource.task.application_name).to eq(Chef::Dist::CLIENT)
expect(current_resource.task.parameters).to be_empty
end
it "does not converge the resource if it is already converged" do
- subject.command "chef-client"
+ subject.command Chef::Dist::CLIENT
subject.run_action(:create)
- subject.command "chef-client"
+ subject.command Chef::Dist::CLIENT
subject.run_action(:create)
expect(subject).not_to be_updated_by_last_action
end