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.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Rakefile +2 -2
- data/bin/knife +1 -1
- data/chef.gemspec +2 -1
- data/distro/templates/powershell/chef/chef.psm1.erb +18 -18
- data/ext/win32-eventlog/Rakefile +2 -2
- data/ext/win32-eventlog/chef-log.man.erb +4 -4
- data/lib/chef/application.rb +18 -16
- data/lib/chef/application/apply.rb +12 -7
- data/lib/chef/application/base.rb +26 -23
- data/lib/chef/application/client.rb +10 -4
- data/lib/chef/application/exit_code.rb +13 -4
- data/lib/chef/application/knife.rb +22 -11
- data/lib/chef/application/solo.rb +2 -1
- data/lib/chef/application/windows_service.rb +14 -14
- data/lib/chef/application/windows_service_manager.rb +6 -6
- data/lib/chef/chef_fs/knife.rb +2 -2
- data/lib/chef/chef_fs/parallelizer.rb +0 -1
- data/lib/chef/client.rb +10 -11
- data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
- data/lib/chef/cookbook/synchronizer.rb +2 -2
- data/lib/chef/cookbook_site_streaming_uploader.rb +13 -11
- data/lib/chef/cookbook_uploader.rb +1 -1
- data/lib/chef/data_collector.rb +6 -5
- data/lib/chef/data_collector/config_validation.rb +22 -13
- data/lib/chef/data_collector/run_end_message.rb +2 -2
- data/lib/chef/data_collector/run_start_message.rb +1 -1
- data/lib/chef/deprecated.rb +1 -1
- data/lib/chef/deprecation/warnings.rb +2 -2
- data/lib/chef/digester.rb +2 -2
- data/lib/chef/dsl/chef_vault.rb +1 -1
- data/lib/chef/dsl/data_query.rb +2 -2
- data/lib/chef/dsl/platform_introspection.rb +1 -1
- data/lib/chef/encrypted_data_bag_item.rb +3 -4
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +3 -3
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +3 -3
- data/lib/chef/environment.rb +2 -2
- data/lib/chef/event_loggers/windows_eventlog.rb +2 -2
- data/lib/chef/exceptions.rb +4 -4
- data/lib/chef/file_access_control/windows.rb +5 -1
- data/lib/chef/formatters/doc.rb +7 -6
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +6 -5
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +3 -3
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +9 -9
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +2 -2
- data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +3 -3
- data/lib/chef/formatters/minimal.rb +5 -4
- data/lib/chef/http.rb +6 -4
- data/lib/chef/http/auth_credentials.rb +5 -1
- data/lib/chef/http/authenticator.rb +1 -1
- data/lib/chef/http/basic_client.rb +4 -2
- data/lib/chef/http/decompressor.rb +1 -1
- data/lib/chef/http/http_request.rb +7 -5
- data/lib/chef/http/socketless_chef_zero_client.rb +5 -2
- data/lib/chef/http/ssl_policies.rb +1 -1
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/knife.rb +4 -4
- data/lib/chef/knife/bootstrap.rb +16 -14
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +3 -3
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +7 -7
- data/lib/chef/knife/client_create.rb +3 -3
- data/lib/chef/knife/config_get.rb +8 -97
- data/lib/chef/knife/config_get_profile.rb +9 -9
- data/lib/chef/knife/config_list.rb +139 -0
- data/lib/chef/knife/config_list_profiles.rb +8 -98
- data/lib/chef/knife/config_show.rb +127 -0
- data/lib/chef/knife/config_use.rb +61 -0
- data/lib/chef/knife/config_use_profile.rb +9 -24
- data/lib/chef/knife/configure.rb +2 -2
- data/lib/chef/knife/core/bootstrap_context.rb +2 -2
- data/lib/chef/knife/core/object_loader.rb +1 -1
- data/lib/chef/knife/core/windows_bootstrap_context.rb +11 -11
- data/lib/chef/knife/exec.rb +2 -2
- data/lib/chef/knife/node_show.rb +2 -2
- data/lib/chef/knife/serve.rb +3 -3
- data/lib/chef/knife/ssh.rb +16 -1
- data/lib/chef/knife/ssl_check.rb +3 -3
- data/lib/chef/knife/status.rb +2 -2
- data/lib/chef/knife/user_create.rb +2 -2
- data/lib/chef/knife/yaml_convert.rb +1 -1
- data/lib/chef/local_mode.rb +2 -2
- data/lib/chef/log/syslog.rb +2 -2
- data/lib/chef/log/winevt.rb +2 -2
- data/lib/chef/mixin/deep_merge.rb +0 -12
- data/lib/chef/mixin/openssl_helper.rb +1 -4
- data/lib/chef/mixin/template.rb +2 -2
- data/lib/chef/mixin/uris.rb +2 -2
- data/lib/chef/mixin/versioned_api.rb +1 -2
- data/lib/chef/monkey_patches/net_http.rb +4 -4
- data/lib/chef/node_map.rb +2 -2
- data/lib/chef/policy_builder/policyfile.rb +2 -2
- data/lib/chef/provider.rb +0 -4
- data/lib/chef/provider/file.rb +2 -2
- data/lib/chef/provider/ifconfig.rb +1 -1
- data/lib/chef/provider/launchd.rb +2 -2
- data/lib/chef/provider/mount/linux.rb +63 -0
- data/lib/chef/provider/package/rubygems.rb +21 -18
- data/lib/chef/provider/package/snap.rb +0 -1
- data/lib/chef/provider/package/windows.rb +2 -2
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +3 -1
- data/lib/chef/provider/package/zypper.rb +1 -1
- data/lib/chef/provider/remote_file/content.rb +3 -0
- data/lib/chef/provider/remote_file/ftp.rb +6 -4
- data/lib/chef/provider/remote_file/sftp.rb +6 -4
- data/lib/chef/provider/route.rb +2 -6
- data/lib/chef/provider/service/macosx.rb +2 -2
- data/lib/chef/provider/template_finder.rb +2 -10
- data/lib/chef/provider/user/dscl.rb +3 -3
- data/lib/chef/provider/user/mac.rb +1 -1
- data/lib/chef/provider/windows_task.rb +1 -2
- data/lib/chef/provider/zypper_repository.rb +2 -2
- data/lib/chef/provider_resolver.rb +1 -1
- data/lib/chef/providers.rb +1 -0
- data/lib/chef/recipe.rb +2 -2
- data/lib/chef/resource.rb +1 -1
- data/lib/chef/resource/apt_repository.rb +1 -1
- data/lib/chef/resource/bff_package.rb +22 -0
- data/lib/chef/resource/breakpoint.rb +57 -2
- data/lib/chef/resource/build_essential.rb +1 -1
- data/lib/chef/resource/cab_package.rb +29 -0
- data/lib/chef/resource/chef_client_cron.rb +32 -25
- data/lib/chef/resource/chef_client_launchd.rb +194 -0
- data/lib/chef/resource/chef_client_scheduled_task.rb +21 -18
- data/lib/chef/resource/chef_client_systemd_timer.rb +24 -17
- data/lib/chef/resource/chef_client_trusted_certificate.rb +101 -0
- data/lib/chef/resource/chef_gem.rb +10 -10
- data/lib/chef/resource/chef_handler.rb +148 -4
- data/lib/chef/resource/chef_sleep.rb +2 -2
- data/lib/chef/resource/chef_vault_secret.rb +1 -1
- data/lib/chef/resource/cookbook_file.rb +2 -2
- data/lib/chef/resource/cron/cron_d.rb +0 -1
- data/lib/chef/resource/dnf_package.rb +2 -2
- data/lib/chef/resource/dsc_resource.rb +0 -1
- data/lib/chef/resource/dsc_script.rb +2 -2
- data/lib/chef/resource/execute.rb +6 -6
- data/lib/chef/resource/file.rb +4 -4
- data/lib/chef/resource/gem_package.rb +5 -5
- data/lib/chef/resource/homebrew_package.rb +3 -3
- data/lib/chef/resource/homebrew_update.rb +5 -5
- data/lib/chef/resource/hostname.rb +2 -2
- data/lib/chef/resource/launchd.rb +2 -1
- data/lib/chef/resource/locale.rb +2 -2
- data/lib/chef/resource/macos_userdefaults.rb +3 -3
- data/lib/chef/resource/notify_group.rb +0 -1
- data/lib/chef/resource/ohai.rb +46 -3
- data/lib/chef/resource/ohai_hint.rb +33 -0
- data/lib/chef/resource/openssl_dhparam.rb +27 -5
- data/lib/chef/resource/openssl_ec_private_key.rb +6 -3
- data/lib/chef/resource/openssl_ec_public_key.rb +2 -2
- data/lib/chef/resource/openssl_rsa_private_key.rb +6 -3
- data/lib/chef/resource/openssl_x509_certificate.rb +14 -14
- data/lib/chef/resource/openssl_x509_crl.rb +19 -10
- data/lib/chef/resource/openssl_x509_request.rb +14 -16
- data/lib/chef/resource/osx_profile.rb +77 -13
- data/lib/chef/resource/plist.rb +1 -1
- data/lib/chef/resource/powershell_package_source.rb +5 -5
- data/lib/chef/resource/reboot.rb +2 -2
- data/lib/chef/resource/remote_file.rb +3 -3
- data/lib/chef/resource/rhsm_register.rb +22 -10
- data/lib/chef/resource/ruby_block.rb +2 -2
- data/lib/chef/resource/scm/subversion.rb +2 -2
- data/lib/chef/resource/service.rb +3 -3
- data/lib/chef/resource/ssh_known_hosts_entry.rb +2 -2
- data/lib/chef/resource/support/cron.d.erb +1 -1
- data/lib/chef/resource/support/cron_access.erb +1 -1
- data/lib/chef/resource/support/sudoer.erb +1 -1
- data/lib/chef/resource/support/ulimit.erb +1 -1
- data/lib/chef/resource/sysctl.rb +1 -5
- data/lib/chef/resource/systemd_unit.rb +2 -2
- data/lib/chef/resource/template.rb +2 -2
- data/lib/chef/resource/windows_ad_join.rb +10 -3
- data/lib/chef/resource/windows_certificate.rb +6 -4
- data/lib/chef/resource/windows_firewall_profile.rb +22 -20
- data/lib/chef/resource/windows_package.rb +28 -5
- data/lib/chef/resource/windows_printer.rb +5 -3
- data/lib/chef/resource/windows_printer_port.rb +6 -4
- data/lib/chef/resource/windows_user_privilege.rb +53 -54
- data/lib/chef/resource/windows_workgroup.rb +3 -3
- data/lib/chef/resource/yum_package.rb +2 -2
- data/lib/chef/resources.rb +3 -1
- data/lib/chef/run_context.rb +2 -2
- data/lib/chef/run_context/cookbook_compiler.rb +1 -1
- data/lib/chef/run_lock.rb +2 -2
- data/lib/chef/search/query.rb +4 -5
- data/lib/chef/shell.rb +31 -26
- data/lib/chef/shell/ext.rb +11 -11
- data/lib/chef/shell/shell_session.rb +2 -2
- data/lib/chef/train_transport.rb +5 -104
- data/lib/chef/util/diff.rb +3 -3
- data/lib/chef/util/powershell/cmdlet.rb +3 -1
- data/lib/chef/util/powershell/ps_credential.rb +18 -14
- data/lib/chef/util/threaded_job_queue.rb +0 -2
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/crypto.rb +1 -1
- data/lib/chef/win32/registry.rb +1 -2
- data/spec/data/shef-config.rb +1 -1
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -5
- data/spec/functional/resource/aix_service_spec.rb +2 -2
- data/spec/functional/resource/aixinit_service_spec.rb +1 -1
- data/spec/functional/resource/insserv_spec.rb +1 -1
- data/spec/functional/resource/user/dscl_spec.rb +1 -1
- data/spec/functional/resource/user/mac_user_spec.rb +1 -1
- data/spec/functional/resource/windows_task_spec.rb +13 -13
- data/spec/functional/version_spec.rb +3 -3
- data/spec/integration/client/client_spec.rb +4 -4
- data/spec/integration/client/exit_code_spec.rb +3 -2
- data/spec/integration/client/ipv6_spec.rb +1 -1
- data/spec/integration/knife/{config_list_profiles_spec.rb → config_list_spec.rb} +30 -29
- data/spec/integration/knife/{config_get_spec.rb → config_show_spec.rb} +3 -3
- data/spec/integration/knife/{config_use_profile_spec.rb → config_use_spec.rb} +53 -10
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
- data/spec/integration/ohai/ohai_spec.rb +61 -0
- data/spec/integration/recipes/remote_directory.rb +1 -1
- data/spec/integration/solo/solo_spec.rb +5 -5
- data/spec/spec_helper.rb +6 -3
- data/spec/stress/win32/file_spec.rb +1 -1
- data/spec/support/chef_helpers.rb +2 -2
- data/spec/support/matchers/leak.rb +2 -2
- data/spec/support/platform_helpers.rb +16 -34
- data/spec/support/shared/functional/securable_resource.rb +108 -27
- data/spec/support/shared/functional/win32_service.rb +1 -1
- data/spec/support/shared/unit/application_dot_d.rb +5 -3
- data/spec/tiny_server.rb +0 -1
- data/spec/unit/application/client_spec.rb +2 -2
- data/spec/unit/application/exit_code_spec.rb +10 -0
- data/spec/unit/application_spec.rb +4 -6
- data/spec/unit/chef_fs/parallelizer_spec.rb +5 -1
- data/spec/unit/chef_fs/path_util_spec.rb +1 -1
- data/spec/unit/cookbook/synchronizer_spec.rb +2 -2
- data/spec/unit/cookbook_spec.rb +2 -2
- data/spec/unit/data_collector/config_validation_spec.rb +208 -0
- data/spec/unit/data_collector_spec.rb +0 -113
- data/spec/unit/dsl/declare_resource_spec.rb +1 -1
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/knife/bootstrap_spec.rb +6 -6
- data/spec/unit/knife/core/ui_spec.rb +1 -0
- data/spec/unit/knife/ssh_spec.rb +2 -2
- data/spec/unit/lwrp_spec.rb +3 -3
- data/spec/unit/mixin/deep_merge_spec.rb +15 -0
- data/spec/unit/mixin/openssl_helper_spec.rb +1 -1
- data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
- data/spec/unit/mixin/securable_spec.rb +2 -2
- data/spec/unit/node/immutable_collections_spec.rb +2 -2
- data/spec/unit/provider/mount/linux_spec.rb +97 -0
- data/spec/unit/provider/package/chocolatey_spec.rb +1 -1
- data/spec/unit/provider/package/powershell_spec.rb +1 -1
- data/spec/unit/provider/package/rubygems_spec.rb +4 -1
- data/spec/unit/provider/route_spec.rb +0 -2
- data/spec/unit/recipe_spec.rb +1 -1
- data/spec/unit/resource/chef_client_cron_spec.rb +35 -14
- data/spec/unit/resource/chef_client_launchd_spec.rb +127 -0
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +36 -1
- data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +54 -0
- data/spec/unit/resource/launchd_spec.rb +8 -0
- data/spec/unit/resource/osx_profile_spec.rb +67 -1
- data/spec/unit/resource/rhsm_register_spec.rb +56 -18
- data/spec/unit/resource/windows_uac_spec.rb +1 -1
- data/spec/unit/resource/windows_user_privilege_spec.rb +55 -0
- data/spec/unit/run_lock_spec.rb +5 -1
- data/spec/unit/runner_spec.rb +1 -2
- data/spec/unit/shell/shell_ext_spec.rb +46 -3
- data/spec/unit/shell/shell_session_spec.rb +35 -64
- data/spec/unit/shell_spec.rb +16 -19
- data/spec/unit/train_transport_spec.rb +14 -13
- data/spec/unit/util/selinux_spec.rb +2 -0
- data/tasks/rspec.rb +0 -2
- metadata +41 -17
- data/lib/chef/dist.rb +0 -68
- data/spec/integration/knife/config_get_profile_spec.rb +0 -114
data/lib/chef/knife/ssl_check.rb
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require_relative "../knife"
|
20
|
-
|
20
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
21
21
|
|
22
22
|
class Chef
|
23
23
|
class Knife
|
@@ -190,7 +190,7 @@ class Chef
|
|
190
190
|
#{ui.color("TO FIX THIS ERROR:", :bold)}
|
191
191
|
|
192
192
|
If the server you are connecting to uses a self-signed certificate, you must
|
193
|
-
configure #{
|
193
|
+
configure #{ChefUtils::Dist::Infra::PRODUCT} to trust that server's certificate.
|
194
194
|
|
195
195
|
By default, the certificate is stored in the following location on the host
|
196
196
|
where your chef-server runs:
|
@@ -234,7 +234,7 @@ class Chef
|
|
234
234
|
end
|
235
235
|
|
236
236
|
def debug_chef_ssl_config
|
237
|
-
ui.err "#{
|
237
|
+
ui.err "#{ChefUtils::Dist::Infra::PRODUCT} SSL Configuration:"
|
238
238
|
ui.err "* ssl_ca_path: #{configuration.ssl_ca_path.inspect}"
|
239
239
|
ui.err "* ssl_ca_file: #{configuration.ssl_ca_file.inspect}"
|
240
240
|
ui.err "* trusted_certs_dir: #{configuration.trusted_certs_dir.inspect}"
|
data/lib/chef/knife/status.rb
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
require_relative "../knife"
|
20
20
|
require_relative "core/status_presenter"
|
21
21
|
require_relative "core/node_presenter"
|
22
|
-
|
22
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
23
23
|
|
24
24
|
class Chef
|
25
25
|
class Knife
|
@@ -44,7 +44,7 @@ class Chef
|
|
44
44
|
|
45
45
|
option :hide_by_mins,
|
46
46
|
long: "--hide-by-mins MINS",
|
47
|
-
description: "Hide nodes that have run #{
|
47
|
+
description: "Hide nodes that have run #{ChefUtils::Dist::Infra::CLIENT} in the last MINS minutes"
|
48
48
|
|
49
49
|
def append_to_query(term)
|
50
50
|
@query << " AND " unless @query.empty?
|
@@ -18,7 +18,7 @@
|
|
18
18
|
#
|
19
19
|
|
20
20
|
require_relative "../knife"
|
21
|
-
|
21
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
22
22
|
|
23
23
|
class Chef
|
24
24
|
class Knife
|
@@ -42,7 +42,7 @@ class Chef
|
|
42
42
|
option :prevent_keygen,
|
43
43
|
short: "-k",
|
44
44
|
long: "--prevent-keygen",
|
45
|
-
description: "API V1 (#{
|
45
|
+
description: "API V1 (#{ChefUtils::Dist::Server::PRODUCT} 12.1+) only. Prevent server from generating a default key pair for you. Cannot be passed with --user-key.",
|
46
46
|
boolean: true
|
47
47
|
|
48
48
|
banner "knife user create USERNAME DISPLAY_NAME FIRST_NAME LAST_NAME EMAIL PASSWORD (options)"
|
data/lib/chef/local_mode.rb
CHANGED
@@ -15,9 +15,9 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
+
require "chef-utils" unless defined?(ChefUtils)
|
18
19
|
require_relative "config"
|
19
20
|
require_relative "monkey_patches/webrick-utils" if ChefUtils.windows?
|
20
|
-
require_relative "dist"
|
21
21
|
|
22
22
|
class Chef
|
23
23
|
module LocalMode
|
@@ -79,7 +79,7 @@ class Chef
|
|
79
79
|
|
80
80
|
local_mode_url = @chef_zero_server.local_mode_url
|
81
81
|
|
82
|
-
Chef::Log.info("Started #{
|
82
|
+
Chef::Log.info("Started #{ChefUtils::Dist::Zero::PRODUCT} at #{local_mode_url} with #{@chef_fs.fs_description}")
|
83
83
|
Chef::Config.chef_server_url = local_mode_url
|
84
84
|
end
|
85
85
|
end
|
data/lib/chef/log/syslog.rb
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
require "logger"
|
20
20
|
require "syslog-logger"
|
21
21
|
require_relative "../mixin/unformatter"
|
22
|
-
|
22
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
23
23
|
|
24
24
|
class Chef
|
25
25
|
class Log
|
@@ -33,7 +33,7 @@ class Chef
|
|
33
33
|
|
34
34
|
attr_accessor :sync, :formatter
|
35
35
|
|
36
|
-
def initialize(program_name =
|
36
|
+
def initialize(program_name = ChefUtils::Dist::Infra::CLIENT, facility = ::Syslog::LOG_DAEMON, logopts = nil)
|
37
37
|
super
|
38
38
|
return if defined? ::Logger::Syslog::SYSLOG
|
39
39
|
|
data/lib/chef/log/winevt.rb
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
require_relative "../event_loggers/base"
|
20
20
|
require_relative "../platform/query_helpers"
|
21
21
|
require_relative "../mixin/unformatter"
|
22
|
-
|
22
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
23
23
|
|
24
24
|
class Chef
|
25
25
|
class Log
|
@@ -37,7 +37,7 @@ class Chef
|
|
37
37
|
FATAL_EVENT_ID = 10104
|
38
38
|
|
39
39
|
# Since we must install the event logger, this is not really configurable
|
40
|
-
SOURCE =
|
40
|
+
SOURCE = ChefUtils::Dist::Infra::SHORT.freeze
|
41
41
|
|
42
42
|
include Chef::Mixin::Unformatter
|
43
43
|
|
@@ -75,14 +75,7 @@ class Chef
|
|
75
75
|
# @api private
|
76
76
|
#
|
77
77
|
def deep_merge!(source, dest)
|
78
|
-
# if dest doesn't exist, then simply copy source to it
|
79
|
-
if dest.nil?
|
80
|
-
dest = source; return dest
|
81
|
-
end
|
82
|
-
|
83
78
|
case source
|
84
|
-
when nil
|
85
|
-
dest
|
86
79
|
when Hash
|
87
80
|
if dest.is_a?(Hash)
|
88
81
|
source.each do |src_key, src_value|
|
@@ -147,11 +140,6 @@ class Chef
|
|
147
140
|
end
|
148
141
|
end
|
149
142
|
merge_onto
|
150
|
-
|
151
|
-
# If merge_with is nil, don't replace merge_onto
|
152
|
-
elsif merge_with.nil?
|
153
|
-
merge_onto
|
154
|
-
|
155
143
|
# In all other cases, replace merge_onto with merge_with
|
156
144
|
else
|
157
145
|
merge_with
|
@@ -14,15 +14,12 @@
|
|
14
14
|
# See the License for the specific language governing permissions and
|
15
15
|
# limitations under the License.
|
16
16
|
#
|
17
|
+
autoload :OpenSSL, "openssl"
|
17
18
|
|
18
19
|
class Chef
|
19
20
|
module Mixin
|
20
21
|
# various helpers for use with openssl. Currently used by the openssl_* resources
|
21
22
|
module OpenSSLHelper
|
22
|
-
def self.included(_base)
|
23
|
-
require "openssl" unless defined?(::OpenSSL)
|
24
|
-
end
|
25
|
-
|
26
23
|
# determine the key filename from the cert filename
|
27
24
|
# @param [String] cert_filename the path to the certfile
|
28
25
|
# @return [String] the path to the keyfile
|
data/lib/chef/mixin/template.rb
CHANGED
data/lib/chef/mixin/uris.rb
CHANGED
@@ -50,8 +50,7 @@ class Chef
|
|
50
50
|
# in which case we'll just start with the highest version and see what happens
|
51
51
|
ServerAPIVersions.instance.min_server_version.nil? || (version >= ServerAPIVersions.instance.min_server_version && version <= ServerAPIVersions.instance.send(type))
|
52
52
|
end
|
53
|
-
.
|
54
|
-
.last
|
53
|
+
.max_by { |a| a.send(:minimum_api_version) }
|
55
54
|
end
|
56
55
|
|
57
56
|
def def_versioned_delegator(method)
|
@@ -7,16 +7,16 @@ end
|
|
7
7
|
|
8
8
|
require "net/http" unless defined?(Net::HTTP)
|
9
9
|
module Net
|
10
|
-
class HTTPError
|
10
|
+
class HTTPError < Net::ProtocolError
|
11
11
|
include ChefNetHTTPExceptionExtensions
|
12
12
|
end
|
13
|
-
class HTTPRetriableError
|
13
|
+
class HTTPRetriableError < Net::ProtoRetriableError
|
14
14
|
include ChefNetHTTPExceptionExtensions
|
15
15
|
end
|
16
|
-
class HTTPClientException
|
16
|
+
class HTTPClientException < Net::ProtoServerError
|
17
17
|
include ChefNetHTTPExceptionExtensions
|
18
18
|
end
|
19
|
-
class HTTPFatalError
|
19
|
+
class HTTPFatalError < Net::ProtoFatalError
|
20
20
|
include ChefNetHTTPExceptionExtensions
|
21
21
|
end
|
22
22
|
end
|
data/lib/chef/node_map.rb
CHANGED
@@ -36,7 +36,7 @@
|
|
36
36
|
# XXX: confusingly, in the *_priority_map the :klass may be an array of Strings of class names
|
37
37
|
#
|
38
38
|
|
39
|
-
|
39
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
40
40
|
|
41
41
|
class Chef
|
42
42
|
class NodeMap
|
@@ -86,7 +86,7 @@ class Chef
|
|
86
86
|
else
|
87
87
|
klass.superclass.to_s
|
88
88
|
end
|
89
|
-
Chef::Log.warn( COLLISION_WARNING % { type: type_of_thing, key: key, type_caps: type_of_thing.capitalize, client_name:
|
89
|
+
Chef::Log.warn( COLLISION_WARNING % { type: type_of_thing, key: key, type_caps: type_of_thing.capitalize, client_name: ChefUtils::Dist::Infra::PRODUCT } )
|
90
90
|
end
|
91
91
|
|
92
92
|
# The map is sorted in order of preference already; we just need to find
|
@@ -24,7 +24,7 @@ require_relative "../run_context"
|
|
24
24
|
require_relative "../config"
|
25
25
|
require_relative "../node"
|
26
26
|
require_relative "../server_api"
|
27
|
-
|
27
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
28
28
|
|
29
29
|
class Chef
|
30
30
|
module PolicyBuilder
|
@@ -91,7 +91,7 @@ class Chef
|
|
91
91
|
@node = nil
|
92
92
|
|
93
93
|
if Chef::Config[:solo_legacy_mode]
|
94
|
-
raise UnsupportedFeature, "Policyfile does not support chef-solo. Use #{
|
94
|
+
raise UnsupportedFeature, "Policyfile does not support chef-solo. Use #{ChefUtils::Dist::Infra::CLIENT} local mode instead."
|
95
95
|
end
|
96
96
|
|
97
97
|
if override_runlist
|
data/lib/chef/provider.rb
CHANGED
@@ -30,9 +30,6 @@ require "forwardable" unless defined?(Forwardable)
|
|
30
30
|
|
31
31
|
class Chef
|
32
32
|
class Provider
|
33
|
-
require_relative "mixin/why_run"
|
34
|
-
require_relative "mixin/provides"
|
35
|
-
|
36
33
|
attr_accessor :new_resource
|
37
34
|
attr_accessor :current_resource
|
38
35
|
attr_accessor :after_resource
|
@@ -455,6 +452,5 @@ end
|
|
455
452
|
|
456
453
|
# Requiring things at the bottom breaks cycles
|
457
454
|
require_relative "chef_class"
|
458
|
-
require_relative "mixin/why_run"
|
459
455
|
require_relative "resource_collection"
|
460
456
|
require_relative "runner"
|
data/lib/chef/provider/file.rb
CHANGED
@@ -31,7 +31,7 @@ require_relative "../util/backup"
|
|
31
31
|
require_relative "../util/diff"
|
32
32
|
require_relative "../util/selinux"
|
33
33
|
require_relative "../file_content_management/deploy"
|
34
|
-
|
34
|
+
require "chef-utils" unless defined?(ChefUtils)
|
35
35
|
|
36
36
|
# The Tao of File Providers:
|
37
37
|
# - the content provider must always return a tempfile that we can delete/mv
|
@@ -394,7 +394,7 @@ class Chef
|
|
394
394
|
return if tempfile.nil?
|
395
395
|
# but a tempfile that has no path or doesn't exist should not happen
|
396
396
|
if tempfile.path.nil? || !::File.exists?(tempfile.path)
|
397
|
-
raise "#{
|
397
|
+
raise "#{ChefUtils::Dist::Infra::CLIENT} is confused, trying to deploy a file that has no path or does not exist..."
|
398
398
|
end
|
399
399
|
|
400
400
|
# the file? on the next line suppresses the case in why-run when we have a not-file here that would have otherwise been removed
|
@@ -20,7 +20,7 @@ require_relative "../provider"
|
|
20
20
|
require_relative "../resource/file"
|
21
21
|
require_relative "../resource/cookbook_file"
|
22
22
|
require_relative "../resource/macosx_service"
|
23
|
-
|
23
|
+
autoload :Plist, "plist"
|
24
24
|
require "forwardable" unless defined?(Forwardable)
|
25
25
|
|
26
26
|
class Chef
|
@@ -209,7 +209,7 @@ class Chef
|
|
209
209
|
|
210
210
|
# @api private
|
211
211
|
def path
|
212
|
-
@path ||= new_resource.path
|
212
|
+
@path ||= new_resource.path || gen_path_from_type
|
213
213
|
end
|
214
214
|
end
|
215
215
|
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Antima Gupta (<agupta@chef.io>)
|
3
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require_relative "../mount"
|
20
|
+
|
21
|
+
class Chef
|
22
|
+
class Provider
|
23
|
+
class Mount
|
24
|
+
class Linux < Chef::Provider::Mount::Mount
|
25
|
+
|
26
|
+
provides :mount, os: "linux"
|
27
|
+
|
28
|
+
# Check to see if the volume is mounted.
|
29
|
+
# "findmnt" outputs the mount points with volume.
|
30
|
+
# Convert the mount_point of the resource to a real path in case it
|
31
|
+
# contains symlinks in its parents dirs.
|
32
|
+
|
33
|
+
def mounted?
|
34
|
+
mounted = false
|
35
|
+
|
36
|
+
real_mount_point = if ::File.exists? @new_resource.mount_point
|
37
|
+
::File.realpath(@new_resource.mount_point)
|
38
|
+
else
|
39
|
+
@new_resource.mount_point
|
40
|
+
end
|
41
|
+
|
42
|
+
shell_out!("findmnt -rn").stdout.each_line do |line|
|
43
|
+
case line
|
44
|
+
# Permalink for device already mounted to mount point for : https://rubular.com/r/L0RNnD4gf2DJGl
|
45
|
+
when /\A#{Regexp.escape(real_mount_point)}\s+#{device_mount_regex}\s/
|
46
|
+
mounted = true
|
47
|
+
logger.trace("Special device #{device_logstring} mounted as #{real_mount_point}")
|
48
|
+
# Permalink for multiple devices mounted to the same mount point(i.e. '/proc') https://rubular.com/r/a356yzspU7N9TY
|
49
|
+
when %r{\A#{Regexp.escape(real_mount_point)}\s+([/\w])+\s}
|
50
|
+
mounted = false
|
51
|
+
logger.trace("Special device #{$~[1]} mounted as #{real_mount_point}")
|
52
|
+
# Permalink for bind device mounted to an existing mount point: https://rubular.com/r/QAE0ilL3sm3Ldz
|
53
|
+
when %r{\A#{Regexp.escape(real_mount_point)}\s+([/\w])+\[#{device_mount_regex}\]\s}
|
54
|
+
mounted = true
|
55
|
+
logger.trace("Bind device #{device_logstring} mounted as #{real_mount_point}")
|
56
|
+
end
|
57
|
+
end
|
58
|
+
@current_resource.mounted(mounted)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -17,39 +17,42 @@
|
|
17
17
|
# limitations under the License.
|
18
18
|
#
|
19
19
|
|
20
|
-
|
20
|
+
autoload :URI, "uri"
|
21
21
|
require_relative "../package"
|
22
22
|
require_relative "../../resource/package"
|
23
23
|
require_relative "../../mixin/get_source_from_package"
|
24
24
|
require_relative "../../mixin/which"
|
25
|
-
|
25
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
26
26
|
|
27
27
|
# Class methods on Gem are defined in rubygems
|
28
|
-
|
28
|
+
autoload :Gem, "rubygems"
|
29
29
|
# Ruby 1.9's gem_prelude can interact poorly with loading the full rubygems
|
30
30
|
# explicitly like this. Make sure rubygems/specification is always last in this
|
31
31
|
# list
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
32
|
+
Gem.autoload :Version, "rubygems/version"
|
33
|
+
Gem.autoload :Dependency, "rubygems/dependency"
|
34
|
+
Gem.autoload :SpecFetcher, "rubygems/spec_fetcher"
|
35
|
+
Gem.autoload :Platform, "rubygems/platform"
|
36
|
+
Gem.autoload :Package, "rubygems/package"
|
37
|
+
Gem.autoload :DependencyInstaller, "rubygems/dependency_installer"
|
38
|
+
Gem.autoload :Uninstaller, "rubygems/uninstaller"
|
39
|
+
Gem.autoload :Specification, "rubygems/specification"
|
40
40
|
|
41
41
|
class Chef
|
42
42
|
class Provider
|
43
43
|
class Package
|
44
44
|
class Rubygems < Chef::Provider::Package
|
45
45
|
class GemEnvironment
|
46
|
-
# HACK: trigger gem config load early. Otherwise it can get lazy
|
47
|
-
# loaded during operations where we've set Gem.sources to an
|
48
|
-
# alternate value and overwrite it with the defaults.
|
49
|
-
Gem.configuration
|
50
|
-
|
51
46
|
DEFAULT_UNINSTALLER_OPTS = { ignore: true, executables: true }.freeze
|
52
47
|
|
48
|
+
def initialize(*args)
|
49
|
+
super
|
50
|
+
# HACK: trigger gem config load early. Otherwise it can get lazy
|
51
|
+
# loaded during operations where we've set Gem.sources to an
|
52
|
+
# alternate value and overwrite it with the defaults.
|
53
|
+
Gem.configuration
|
54
|
+
end
|
55
|
+
|
53
56
|
# The paths where rubygems should search for installed gems.
|
54
57
|
# Implemented by subclasses.
|
55
58
|
def gem_paths
|
@@ -401,8 +404,8 @@ class Chef
|
|
401
404
|
if new_resource.options && new_resource.options.is_a?(Hash)
|
402
405
|
msg = [
|
403
406
|
"Gem options must be passed to gem_package as a string instead of a hash when",
|
404
|
-
"using this installation of #{
|
405
|
-
"may only be used when installing a gem to the same Ruby installation that #{
|
407
|
+
"using this installation of #{ChefUtils::Dist::Infra::PRODUCT} because it runs with its own packaged Ruby. A hash",
|
408
|
+
"may only be used when installing a gem to the same Ruby installation that #{ChefUtils::Dist::Infra::PRODUCT} is",
|
406
409
|
"running under. See https://docs.chef.io/resources/gem_package/ for more information.",
|
407
410
|
"Error raised at #{new_resource} from #{new_resource.source_line}",
|
408
411
|
].join("\n")
|