chef 18.4.2 → 18.5.0
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 +4 -1
- data/chef.gemspec +7 -7
- data/lib/chef/application/client.rb +12 -0
- data/lib/chef/client.rb +10 -16
- data/lib/chef/compliance/runner.rb +10 -0
- data/lib/chef/cookbook/chefignore.rb +4 -1
- data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
- data/lib/chef/cookbook/synchronizer.rb +7 -1
- data/lib/chef/cookbook_manifest.rb +2 -2
- data/lib/chef/file_access_control/unix.rb +9 -9
- data/lib/chef/file_cache.rb +17 -2
- data/lib/chef/file_content_management/deploy/target_io.rb +29 -0
- data/lib/chef/file_content_management/deploy.rb +4 -1
- data/lib/chef/formatters/doc.rb +1 -1
- data/lib/chef/mixin/file_class.rb +3 -1
- data/lib/chef/mixin/get_source_from_package.rb +1 -1
- data/lib/chef/mixin/openssl_helper.rb +1 -1
- data/lib/chef/node/attribute.rb +3 -11
- data/lib/chef/node/immutable_collections.rb +15 -8
- data/lib/chef/node/mixin/state_tracking.rb +6 -3
- data/lib/chef/node.rb +1 -1
- data/lib/chef/policy_builder/policyfile.rb +8 -0
- data/lib/chef/provider/.gitkeep +0 -0
- data/lib/chef/provider/cookbook_file.rb +1 -1
- data/lib/chef/provider/cron.rb +1 -1
- data/lib/chef/provider/directory.rb +15 -15
- data/lib/chef/provider/file.rb +42 -29
- data/lib/chef/provider/git.rb +8 -8
- data/lib/chef/provider/group/aix.rb +1 -1
- data/lib/chef/provider/group/dscl.rb +1 -1
- data/lib/chef/provider/group/gpasswd.rb +2 -2
- data/lib/chef/provider/group/groupadd.rb +1 -1
- data/lib/chef/provider/group/groupmod.rb +2 -2
- data/lib/chef/provider/group/pw.rb +2 -2
- data/lib/chef/provider/group/solaris.rb +2 -2
- data/lib/chef/provider/group/usermod.rb +2 -2
- data/lib/chef/provider/group.rb +1 -1
- data/lib/chef/provider/http_request.rb +2 -3
- data/lib/chef/provider/ifconfig/aix.rb +1 -1
- data/lib/chef/provider/ifconfig/debian.rb +3 -3
- data/lib/chef/provider/ifconfig/redhat.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +1 -1
- data/lib/chef/provider/link.rb +10 -10
- data/lib/chef/provider/mount/aix.rb +4 -4
- data/lib/chef/provider/mount/linux.rb +4 -4
- data/lib/chef/provider/mount/mount.rb +11 -11
- data/lib/chef/provider/package/apt.rb +2 -11
- data/lib/chef/provider/package/bff.rb +3 -3
- data/lib/chef/provider/package/chocolatey.rb +54 -24
- data/lib/chef/provider/package/dpkg.rb +3 -3
- data/lib/chef/provider/package/freebsd/base.rb +1 -1
- data/lib/chef/provider/package/habitat.rb +5 -3
- data/lib/chef/provider/package/ips.rb +2 -2
- data/lib/chef/provider/package/openbsd.rb +3 -2
- data/lib/chef/provider/package/pacman.rb +4 -4
- data/lib/chef/provider/package/paludis.rb +2 -2
- data/lib/chef/provider/package/portage.rb +1 -1
- data/lib/chef/provider/package/powershell.rb +1 -0
- data/lib/chef/provider/package/rpm.rb +2 -2
- data/lib/chef/provider/package/smartos.rb +2 -2
- data/lib/chef/provider/package/snap.rb +2 -1
- data/lib/chef/provider/package/snap_tm.rb +79 -0
- data/lib/chef/provider/package/solaris.rb +4 -4
- data/lib/chef/provider/package/zypper.rb +4 -5
- data/lib/chef/provider/package.rb +1 -1
- data/lib/chef/provider/remote_directory.rb +5 -5
- data/lib/chef/provider/remote_file/http.rb +2 -3
- data/lib/chef/provider/remote_file.rb +1 -1
- data/lib/chef/provider/route.rb +9 -9
- data/lib/chef/provider/service/aix.rb +1 -1
- data/lib/chef/provider/service/aixinit.rb +4 -4
- data/lib/chef/provider/service/arch.rb +6 -6
- data/lib/chef/provider/service/debian.rb +5 -5
- data/lib/chef/provider/service/freebsd.rb +7 -7
- data/lib/chef/provider/service/gentoo.rb +5 -5
- data/lib/chef/provider/service/init.rb +2 -2
- data/lib/chef/provider/service/insserv.rb +2 -2
- data/lib/chef/provider/service/invokercd.rb +1 -1
- data/lib/chef/provider/service/openbsd.rb +7 -7
- data/lib/chef/provider/service/redhat.rb +3 -3
- data/lib/chef/provider/service/solaris.rb +2 -2
- data/lib/chef/provider/service/systemd.rb +2 -2
- data/lib/chef/provider/service/upstart.rb +2 -2
- data/lib/chef/provider/service/windows.rb +0 -1
- data/lib/chef/provider/subversion.rb +8 -8
- data/lib/chef/provider/systemd_unit.rb +3 -3
- data/lib/chef/provider/template.rb +1 -1
- data/lib/chef/provider/user/aix.rb +3 -3
- data/lib/chef/provider/user/linux.rb +7 -2
- data/lib/chef/provider/user/pw.rb +3 -3
- data/lib/chef/provider/user/solaris.rb +7 -7
- data/lib/chef/provider/user.rb +7 -8
- data/lib/chef/provider/yum_repository.rb +1 -3
- data/lib/chef/provider/zypper_repository.rb +1 -1
- data/lib/chef/providers.rb +1 -0
- data/lib/chef/resource/.gitkeep +0 -0
- data/lib/chef/resource/alternatives.rb +2 -2
- data/lib/chef/resource/apt_preference.rb +1 -1
- data/lib/chef/resource/apt_repository.rb +7 -9
- data/lib/chef/resource/apt_update.rb +3 -3
- data/lib/chef/resource/bff_package.rb +1 -1
- data/lib/chef/resource/chef_client_config.rb +3 -2
- data/lib/chef/resource/chef_client_systemd_timer.rb +5 -0
- data/lib/chef/resource/chef_gem.rb +1 -1
- data/lib/chef/resource/chef_sleep.rb +1 -1
- data/lib/chef/resource/cookbook_file.rb +1 -1
- data/lib/chef/resource/cron/cron.rb +1 -1
- data/lib/chef/resource/cron/cron_d.rb +1 -1
- data/lib/chef/resource/cron_access.rb +1 -1
- data/lib/chef/resource/directory.rb +1 -1
- data/lib/chef/resource/dpkg_package.rb +1 -1
- data/lib/chef/resource/execute.rb +8 -6
- data/lib/chef/resource/file/verification/json.rb +1 -1
- data/lib/chef/resource/file/verification/systemd_unit.rb +1 -1
- data/lib/chef/resource/file/verification/yaml.rb +1 -1
- data/lib/chef/resource/file.rb +1 -1
- data/lib/chef/resource/freebsd_package.rb +2 -2
- data/lib/chef/resource/group.rb +1 -1
- data/lib/chef/resource/habitat/habitat_package.rb +1 -1
- data/lib/chef/resource/habitat/habitat_sup.rb +9 -9
- data/lib/chef/resource/habitat/habitat_sup_systemd.rb +2 -2
- data/lib/chef/resource/habitat_install.rb +5 -4
- data/lib/chef/resource/hostname.rb +11 -10
- data/lib/chef/resource/http_request.rb +1 -1
- data/lib/chef/resource/ifconfig.rb +1 -1
- data/lib/chef/resource/inspec_input.rb +3 -1
- data/lib/chef/resource/inspec_waiver.rb +1 -1
- data/lib/chef/resource/inspec_waiver_file_entry.rb +1 -1
- data/lib/chef/resource/ips_package.rb +2 -2
- data/lib/chef/resource/kernel_module.rb +2 -2
- data/lib/chef/resource/link.rb +1 -1
- data/lib/chef/resource/locale.rb +2 -2
- data/lib/chef/resource/mount.rb +1 -1
- data/lib/chef/resource/notify_group.rb +1 -1
- data/lib/chef/resource/ohai.rb +1 -1
- data/lib/chef/resource/ohai_hint.rb +1 -1
- data/lib/chef/resource/openbsd_package.rb +2 -2
- data/lib/chef/resource/package.rb +1 -1
- data/lib/chef/resource/pacman_package.rb +1 -1
- data/lib/chef/resource/paludis_package.rb +1 -1
- data/lib/chef/resource/portage_package.rb +1 -1
- data/lib/chef/resource/powershell_package.rb +4 -0
- data/lib/chef/resource/reboot.rb +1 -1
- data/lib/chef/resource/remote_directory.rb +1 -1
- data/lib/chef/resource/remote_file.rb +1 -1
- data/lib/chef/resource/rhsm_errata.rb +1 -1
- data/lib/chef/resource/rhsm_errata_level.rb +1 -1
- data/lib/chef/resource/rhsm_register.rb +1 -1
- data/lib/chef/resource/rhsm_repo.rb +3 -4
- data/lib/chef/resource/rhsm_subscription.rb +8 -9
- data/lib/chef/resource/route.rb +1 -1
- data/lib/chef/resource/rpm_package.rb +1 -1
- data/lib/chef/resource/scm/git.rb +1 -1
- data/lib/chef/resource/scm/subversion.rb +1 -1
- data/lib/chef/resource/selinux/common_helpers.rb +1 -1
- data/lib/chef/resource/selinux_boolean.rb +1 -1
- data/lib/chef/resource/selinux_fcontext.rb +3 -3
- data/lib/chef/resource/selinux_install.rb +1 -1
- data/lib/chef/resource/selinux_login.rb +1 -1
- data/lib/chef/resource/selinux_module.rb +5 -5
- data/lib/chef/resource/selinux_permissive.rb +2 -2
- data/lib/chef/resource/selinux_port.rb +2 -2
- data/lib/chef/resource/selinux_state.rb +2 -2
- data/lib/chef/resource/selinux_user.rb +1 -1
- data/lib/chef/resource/smartos_package.rb +2 -2
- data/lib/chef/resource/snap_package.rb +24 -1
- data/lib/chef/resource/solaris_package.rb +1 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +1 -1
- data/lib/chef/resource/sudo.rb +5 -5
- data/lib/chef/resource/support/client.erb +1 -1
- data/lib/chef/resource/swap_file.rb +6 -6
- data/lib/chef/resource/sysctl.rb +6 -5
- data/lib/chef/resource/systemd_unit.rb +1 -1
- data/lib/chef/resource/template.rb +1 -1
- data/lib/chef/resource/timezone.rb +5 -5
- data/lib/chef/resource/user/aix_user.rb +2 -2
- data/lib/chef/resource/user/linux_user.rb +2 -2
- data/lib/chef/resource/user/pw_user.rb +2 -2
- data/lib/chef/resource/user/solaris_user.rb +2 -2
- data/lib/chef/resource/user_ulimit.rb +1 -1
- data/lib/chef/resource/yum_repository.rb +1 -1
- data/lib/chef/resource/zypper_package.rb +2 -2
- data/lib/chef/resource/zypper_repository.rb +2 -2
- data/lib/chef/run_lock.rb +3 -0
- data/lib/chef/scan_access_control.rb +6 -6
- data/lib/chef/target_io/dir.rb +12 -0
- data/lib/chef/target_io/etc.rb +16 -0
- data/lib/chef/target_io/file.rb +12 -0
- data/lib/chef/target_io/fileutils.rb +12 -0
- data/lib/chef/target_io/http.rb +22 -0
- data/lib/chef/target_io/io.rb +12 -0
- data/lib/chef/target_io/shadow.rb +44 -0
- data/lib/chef/target_io/train/dir.rb +69 -0
- data/lib/chef/target_io/train/etc.rb +112 -0
- data/lib/chef/target_io/train/file.rb +219 -0
- data/lib/chef/target_io/train/fileutils.rb +220 -0
- data/lib/chef/target_io/train/http.rb +117 -0
- data/lib/chef/target_io/train/io.rb +13 -0
- data/lib/chef/target_io/train/shadow.rb +52 -0
- data/lib/chef/target_io/train_compat.rb +7 -0
- data/lib/chef/target_io.rb +9 -0
- data/lib/chef/util/backup.rb +1 -1
- data/lib/chef/util/diff.rb +14 -1
- data/lib/chef/util/file_edit.rb +4 -4
- data/lib/chef/version.rb +1 -1
- data/lib/chef.rb +2 -0
- data/spec/functional/resource/remote_file_spec.rb +1 -1
- data/spec/integration/client/fips_spec.rb +11 -2
- data/spec/integration/client/open_ssl_spec.rb +20 -0
- data/spec/spec_helper.rb +3 -1
- data/spec/support/platform_helpers.rb +20 -7
- data/spec/unit/client_spec.rb +0 -16
- data/spec/unit/file_cache_spec.rb +64 -0
- data/spec/unit/mixin/openssl_helper_spec.rb +6 -1
- data/spec/unit/provider/apt_repository_spec.rb +1 -1
- data/spec/unit/provider/package/chocolatey_spec.rb +17 -12
- data/spec/unit/provider/package/windows_spec.rb +5 -5
- data/spec/unit/provider/package/zypper_spec.rb +0 -10
- data/spec/unit/provider/route_spec.rb +6 -4
- data/spec/unit/resource/rhsm_repo_spec.rb +1 -0
- data/spec/unit/resource/rhsm_subscription_spec.rb +2 -0
- metadata +31 -10
@@ -30,8 +30,8 @@ class Chef
|
|
30
30
|
use_package_name_for_source
|
31
31
|
allow_nils
|
32
32
|
|
33
|
-
provides :package, platform_family: "suse"
|
34
|
-
provides :zypper_package
|
33
|
+
provides :package, platform_family: "suse", target_mode: true
|
34
|
+
provides :zypper_package, target_mode: true
|
35
35
|
|
36
36
|
def define_resource_requirements
|
37
37
|
super
|
@@ -91,7 +91,7 @@ class Chef
|
|
91
91
|
# @return [Boolean] True if all sources exist
|
92
92
|
def source_files_exist?
|
93
93
|
if !new_resource.source.nil?
|
94
|
-
resolved_source_array.all? { |s| s && ::File.exist?(s) }
|
94
|
+
resolved_source_array.all? { |s| s && ::TargetIO::File.exist?(s) }
|
95
95
|
else
|
96
96
|
true
|
97
97
|
end
|
@@ -100,7 +100,7 @@ class Chef
|
|
100
100
|
# Helper to return all the names of the missing sources for error messages.
|
101
101
|
# @return [Array<String>] Array of missing sources
|
102
102
|
def missing_sources
|
103
|
-
resolved_source_array.select { |s| s.nil? || !::File.exist?(s) }
|
103
|
+
resolved_source_array.select { |s| s.nil? || !::TargetIO::File.exist?(s) }
|
104
104
|
end
|
105
105
|
|
106
106
|
def resolve_source_to_version
|
@@ -146,7 +146,6 @@ class Chef
|
|
146
146
|
if md = line.match(/^(\S*)\s+\|\s+(\S+)\s+\|\s+(\S+)\s+\|\s+(\S+)\s+\|\s+(\S+)\s+\|\s+(.*)$/)
|
147
147
|
(status, name, type, version, arch, repo) = [ md[1], md[2], md[3], md[4], md[5], md[6] ]
|
148
148
|
next if version == "Version" # header
|
149
|
-
next if name != package_name
|
150
149
|
|
151
150
|
# sometimes even though we request a specific version in the search string above and have match exact, we wind up
|
152
151
|
# with other versions in the output, particularly getting the installed version when downgrading.
|
@@ -648,7 +648,7 @@ class Chef
|
|
648
648
|
source_array.each_with_index.map do |source, i|
|
649
649
|
package_name = package_name_array[i]
|
650
650
|
# we require at least one '/' in the package_name to avoid [XXX_]package 'foo' breaking due to a random 'foo' file in cwd
|
651
|
-
if use_package_name_for_source? && source.nil? && package_name.match(/#{::File::SEPARATOR}/) && ::File.exist?(package_name)
|
651
|
+
if use_package_name_for_source? && source.nil? && package_name.match(/#{::File::SEPARATOR}/) && ::TargetIO::File.exist?(package_name)
|
652
652
|
logger.trace("No package source specified, but #{package_name} exists on filesystem, using #{package_name} as source.")
|
653
653
|
package_name
|
654
654
|
else
|
@@ -32,7 +32,7 @@ class Chef
|
|
32
32
|
extend Forwardable
|
33
33
|
include Chef::Mixin::FileClass
|
34
34
|
|
35
|
-
provides :remote_directory
|
35
|
+
provides :remote_directory, target_mode: true
|
36
36
|
|
37
37
|
def_delegators :new_resource, :purge, :path, :source, :cookbook, :cookbook_name
|
38
38
|
def_delegators :new_resource, :files_rights, :files_mode, :files_group, :files_owner, :files_backup
|
@@ -100,7 +100,7 @@ class Chef
|
|
100
100
|
#
|
101
101
|
def purge_unmanaged_files
|
102
102
|
if purge
|
103
|
-
Dir.glob(::File.join(Chef::Util::PathHelper.escape_glob_dir(path), "**", "*"), ::File::FNM_DOTMATCH).sort!.reverse!.each do |file|
|
103
|
+
TargetIO::Dir.glob(::File.join(Chef::Util::PathHelper.escape_glob_dir(path), "**", "*"), ::File::FNM_DOTMATCH).sort!.reverse!.each do |file|
|
104
104
|
# skip '.' and '..'
|
105
105
|
next if [".", ".."].include?(Pathname.new(file).basename.to_s)
|
106
106
|
|
@@ -110,7 +110,7 @@ class Chef
|
|
110
110
|
# Skip files that we've sync'd and their parent dirs
|
111
111
|
next if managed_files.include?(file)
|
112
112
|
|
113
|
-
if ::File.directory?(file)
|
113
|
+
if ::TargetIO::File.directory?(file)
|
114
114
|
if !ChefUtils.windows? && file_class.symlink?(file.dup)
|
115
115
|
# Unix treats dir symlinks as files
|
116
116
|
purge_file(file)
|
@@ -188,7 +188,7 @@ class Chef
|
|
188
188
|
def create_cookbook_file(cookbook_file_relative_path)
|
189
189
|
full_path = ::File.join(path, cookbook_file_relative_path)
|
190
190
|
|
191
|
-
ensure_directory_exists(::File.dirname(full_path))
|
191
|
+
ensure_directory_exists(::TargetIO::File.dirname(full_path))
|
192
192
|
|
193
193
|
res = cookbook_file_resource(full_path, cookbook_file_relative_path)
|
194
194
|
res.run_action(action_for_cookbook_file)
|
@@ -228,7 +228,7 @@ class Chef
|
|
228
228
|
#
|
229
229
|
def ensure_directory_exists(dir)
|
230
230
|
# doing the check here and skipping the resource should be more performant
|
231
|
-
unless ::File.directory?(dir)
|
231
|
+
unless ::TargetIO::File.directory?(dir)
|
232
232
|
res = directory_resource(dir)
|
233
233
|
res.run_action(:create)
|
234
234
|
new_resource.updated_by_last_action(true) if res.updated?
|
@@ -17,7 +17,6 @@
|
|
17
17
|
# limitations under the License.
|
18
18
|
#
|
19
19
|
|
20
|
-
require_relative "../../http/simple"
|
21
20
|
require_relative "../../digester"
|
22
21
|
require_relative "../remote_file"
|
23
22
|
require_relative "cache_control_data"
|
@@ -62,7 +61,7 @@ class Chef
|
|
62
61
|
end
|
63
62
|
|
64
63
|
def fetch
|
65
|
-
http =
|
64
|
+
http = TargetIO::HTTP.new(uri, http_client_opts)
|
66
65
|
orig_tempfile = Chef::FileContentManagement::Tempfile.new(@new_resource).tempfile
|
67
66
|
if want_progress?
|
68
67
|
tempfile = http.streaming_request_with_progress(uri, headers, orig_tempfile) do |size, total|
|
@@ -97,7 +96,7 @@ class Chef
|
|
97
96
|
end
|
98
97
|
|
99
98
|
def want_progress?
|
100
|
-
events.formatter? && (Chef::Config[:show_download_progress] || !!new_resource.show_progress)
|
99
|
+
!ChefConfig::Config.target_mode? && events.formatter? && (Chef::Config[:show_download_progress] || !!new_resource.show_progress)
|
101
100
|
end
|
102
101
|
|
103
102
|
def progress_interval
|
@@ -22,7 +22,7 @@ require_relative "file"
|
|
22
22
|
class Chef
|
23
23
|
class Provider
|
24
24
|
class RemoteFile < Chef::Provider::File
|
25
|
-
provides :remote_file
|
25
|
+
provides :remote_file, target_mode: true
|
26
26
|
|
27
27
|
def initialize(new_resource, run_context)
|
28
28
|
@content_class = Chef::Provider::RemoteFile::Content
|
data/lib/chef/provider/route.rb
CHANGED
@@ -25,7 +25,7 @@ class Chef
|
|
25
25
|
class Provider
|
26
26
|
class Route < Chef::Provider
|
27
27
|
|
28
|
-
provides :route
|
28
|
+
provides :route, target_mode: true
|
29
29
|
|
30
30
|
attr_accessor :is_running
|
31
31
|
|
@@ -98,7 +98,7 @@ class Chef
|
|
98
98
|
# For linux, we use /proc/net/route file to read proc table info
|
99
99
|
return unless linux?
|
100
100
|
|
101
|
-
route_file = ::File.open("/proc/net/route", "r")
|
101
|
+
route_file = ::TargetIO::File.open("/proc/net/route", "r")
|
102
102
|
|
103
103
|
# Read all routes
|
104
104
|
while (line = route_file.gets)
|
@@ -186,24 +186,24 @@ class Chef
|
|
186
186
|
network_file_name = "/etc/sysconfig/network"
|
187
187
|
converge_by("write route default route to #{network_file_name}") do
|
188
188
|
logger.trace("#{new_resource} writing default route #{new_resource.gateway} to #{network_file_name}")
|
189
|
-
if ::File.exist?(network_file_name)
|
189
|
+
if ::TargetIO::File.exist?(network_file_name)
|
190
190
|
network_file = ::Chef::Util::FileEdit.new(network_file_name)
|
191
191
|
network_file.search_file_replace_line(/^GATEWAY=/, "GATEWAY=#{new_resource.gateway}")
|
192
192
|
network_file.insert_line_if_no_match(/^GATEWAY=/, "GATEWAY=#{new_resource.gateway}")
|
193
193
|
network_file.write_file
|
194
194
|
else
|
195
|
-
|
196
|
-
|
197
|
-
|
195
|
+
::TargetIO::File.open(network_file_name, "w") do |network_file|
|
196
|
+
network_file.puts("GATEWAY=#{new_resource.gateway}")
|
197
|
+
end
|
198
198
|
end
|
199
199
|
end
|
200
200
|
else
|
201
201
|
network_file_name = "/etc/sysconfig/network-scripts/route-#{k}"
|
202
202
|
converge_by("write route route.#{k}\n#{conf[k]} to #{network_file_name}") do
|
203
|
-
|
204
|
-
|
203
|
+
::TargetIO::File.open(network_file_name, "w") do |network_file|
|
204
|
+
network_file.puts(conf[k])
|
205
|
+
end
|
205
206
|
logger.trace("#{new_resource} writing route.#{k}\n#{conf[k]}")
|
206
|
-
network_file.close
|
207
207
|
end
|
208
208
|
end
|
209
209
|
end
|
@@ -57,7 +57,7 @@ class Chef
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def enable_service
|
60
|
-
Dir.glob(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"]).each { |f| ::File.delete(f) }
|
60
|
+
TargetIO::Dir.glob(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"]).each { |f| ::File.delete(f) }
|
61
61
|
|
62
62
|
if @new_resource.priority.is_a? Integer
|
63
63
|
create_symlink(2, "S", @new_resource.priority)
|
@@ -72,7 +72,7 @@ class Chef
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def disable_service
|
75
|
-
Dir.glob(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"]).each { |f| ::File.delete(f) }
|
75
|
+
TargetIO::Dir.glob(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"]).each { |f| ::File.delete(f) }
|
76
76
|
|
77
77
|
if @new_resource.priority.is_a? Integer
|
78
78
|
create_symlink(2, "K", 100 - @new_resource.priority)
|
@@ -86,13 +86,13 @@ class Chef
|
|
86
86
|
end
|
87
87
|
|
88
88
|
def create_symlink(run_level, status, priority)
|
89
|
-
::File.symlink("/etc/rc.d/init.d/#{@new_resource.service_name}", "/etc/rc.d/rc#{run_level}.d/#{status}#{priority}#{@new_resource.service_name}")
|
89
|
+
::TargetIO::File.symlink("/etc/rc.d/init.d/#{@new_resource.service_name}", "/etc/rc.d/rc#{run_level}.d/#{status}#{priority}#{@new_resource.service_name}")
|
90
90
|
end
|
91
91
|
|
92
92
|
def set_current_resource_attributes
|
93
93
|
# assuming run level 2 for aix
|
94
94
|
is_enabled = false
|
95
|
-
files = Dir.glob(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"])
|
95
|
+
files = TargetIO::Dir.glob(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"])
|
96
96
|
|
97
97
|
priority = {}
|
98
98
|
|
@@ -20,7 +20,7 @@ require_relative "init"
|
|
20
20
|
|
21
21
|
class Chef::Provider::Service::Arch < Chef::Provider::Service::Init
|
22
22
|
|
23
|
-
provides :service, platform_family: "arch"
|
23
|
+
provides :service, platform_family: "arch", target_mode: true
|
24
24
|
|
25
25
|
def self.supports?(resource, action)
|
26
26
|
service_script_exist?(:etc_rcd, resource.service_name)
|
@@ -32,8 +32,8 @@ class Chef::Provider::Service::Arch < Chef::Provider::Service::Init
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def load_current_resource
|
35
|
-
raise Chef::Exceptions::Service, "Could not find /etc/rc.conf" unless ::File.exist?("/etc/rc.conf")
|
36
|
-
raise Chef::Exceptions::Service, "No DAEMONS found in /etc/rc.conf" unless /DAEMONS=\((.*)\)/m.match?(::File.read("/etc/rc.conf"))
|
35
|
+
raise Chef::Exceptions::Service, "Could not find /etc/rc.conf" unless ::TargetIO::File.exist?("/etc/rc.conf")
|
36
|
+
raise Chef::Exceptions::Service, "No DAEMONS found in /etc/rc.conf" unless /DAEMONS=\((.*)\)/m.match?(::TargetIO::File.read("/etc/rc.conf"))
|
37
37
|
|
38
38
|
super
|
39
39
|
|
@@ -50,7 +50,7 @@ class Chef::Provider::Service::Arch < Chef::Provider::Service::Init
|
|
50
50
|
# )
|
51
51
|
def daemons
|
52
52
|
entries = []
|
53
|
-
if ::File.read("/etc/rc.conf") =~ /DAEMONS=\((.*)\)/m
|
53
|
+
if ::TargetIO::File.read("/etc/rc.conf") =~ /DAEMONS=\((.*)\)/m
|
54
54
|
entries += $1.gsub(/\\?[\r\n]/, " ").gsub(/# *[^ ]+/, " ").split(" ") if $1.length > 0
|
55
55
|
end
|
56
56
|
|
@@ -61,8 +61,8 @@ class Chef::Provider::Service::Arch < Chef::Provider::Service::Init
|
|
61
61
|
|
62
62
|
# FIXME: Multiple entries of DAEMONS will cause very bad results :)
|
63
63
|
def update_daemons(entries)
|
64
|
-
content = ::File.read("/etc/rc.conf").gsub(/DAEMONS=\((.*)\)/m, "DAEMONS=(#{entries.join(" ")})")
|
65
|
-
::File.open("/etc/rc.conf", "w") do |f|
|
64
|
+
content = ::TargetIO::File.read("/etc/rc.conf").gsub(/DAEMONS=\((.*)\)/m, "DAEMONS=(#{entries.join(" ")})")
|
65
|
+
::TargetIO::File.open("/etc/rc.conf", "w") do |f|
|
66
66
|
f.write(content)
|
67
67
|
end
|
68
68
|
end
|
@@ -22,7 +22,7 @@ class Chef
|
|
22
22
|
class Provider
|
23
23
|
class Service
|
24
24
|
class Debian < Chef::Provider::Service::Init
|
25
|
-
provides :service, platform_family: "debian" do
|
25
|
+
provides :service, platform_family: "debian", target_mode: true do
|
26
26
|
debianrcd?
|
27
27
|
end
|
28
28
|
|
@@ -46,7 +46,7 @@ class Chef
|
|
46
46
|
shared_resource_requirements
|
47
47
|
requirements.assert(:all_actions) do |a|
|
48
48
|
update_rcd = "/usr/sbin/update-rc.d"
|
49
|
-
a.assertion { ::File.exist? update_rcd }
|
49
|
+
a.assertion { ::TargetIO::File.exist? update_rcd }
|
50
50
|
a.failure_message Chef::Exceptions::Service, "#{update_rcd} does not exist!"
|
51
51
|
# no whyrun recovery - this is a base system component of debian
|
52
52
|
# distros and must be present
|
@@ -73,10 +73,10 @@ class Chef
|
|
73
73
|
|
74
74
|
# returns a list of levels that the service should be stopped or started on
|
75
75
|
def parse_init_file(path)
|
76
|
-
return [] unless ::File.exist?(path)
|
76
|
+
return [] unless ::TargetIO::File.exist?(path)
|
77
77
|
|
78
78
|
in_info = false
|
79
|
-
::File.readlines(path).each_with_object([]) do |line, acc|
|
79
|
+
::TargetIO::File.readlines(path).each_with_object([]) do |line, acc|
|
80
80
|
if /^### BEGIN INIT INFO/.match?(line)
|
81
81
|
in_info = true
|
82
82
|
elsif /^### END INIT INFO/.match?(line)
|
@@ -95,7 +95,7 @@ class Chef
|
|
95
95
|
|
96
96
|
levels = parse_init_file(@init_command)
|
97
97
|
levels.each do |level|
|
98
|
-
rc_files.push Dir.glob("/etc/rc#{level}.d/[SK][0-9][0-9]#{current_resource.service_name}")
|
98
|
+
rc_files.push TargetIO::Dir.glob("/etc/rc#{level}.d/[SK][0-9][0-9]#{current_resource.service_name}")
|
99
99
|
end
|
100
100
|
|
101
101
|
rc_files.flatten.each do |line|
|
@@ -26,7 +26,7 @@ class Chef
|
|
26
26
|
|
27
27
|
attr_reader :enabled_state_found
|
28
28
|
|
29
|
-
provides :service, os: %w{freebsd netbsd}
|
29
|
+
provides :service, os: %w{freebsd netbsd}, target_mode: true
|
30
30
|
|
31
31
|
include Chef::Mixin::ShellOut
|
32
32
|
|
@@ -34,9 +34,9 @@ class Chef
|
|
34
34
|
super
|
35
35
|
@enabled_state_found = false
|
36
36
|
@init_command = nil
|
37
|
-
if ::File.exist?("/etc/rc.d/#{new_resource.service_name}")
|
37
|
+
if ::TargetIO::File.exist?("/etc/rc.d/#{new_resource.service_name}")
|
38
38
|
@init_command = "/etc/rc.d/#{new_resource.service_name}"
|
39
|
-
elsif ::File.exist?("/usr/local/etc/rc.d/#{new_resource.service_name}")
|
39
|
+
elsif ::TargetIO::File.exist?("/usr/local/etc/rc.d/#{new_resource.service_name}")
|
40
40
|
@init_command = "/usr/local/etc/rc.d/#{new_resource.service_name}"
|
41
41
|
end
|
42
42
|
end
|
@@ -118,11 +118,11 @@ class Chef
|
|
118
118
|
private
|
119
119
|
|
120
120
|
def read_rc_conf
|
121
|
-
::File.open("/etc/rc.conf", "r", &:readlines)
|
121
|
+
::TargetIO::File.open("/etc/rc.conf", "r", &:readlines)
|
122
122
|
end
|
123
123
|
|
124
124
|
def write_rc_conf(lines)
|
125
|
-
::File.open("/etc/rc.conf", "w") do |file|
|
125
|
+
::TargetIO::File.open("/etc/rc.conf", "w") do |file|
|
126
126
|
lines.each { |line| file.puts(line) }
|
127
127
|
end
|
128
128
|
end
|
@@ -131,7 +131,7 @@ class Chef
|
|
131
131
|
def service_enable_variable_name
|
132
132
|
@service_enable_variable_name ||=
|
133
133
|
if init_command
|
134
|
-
::File.open(init_command) do |rcscript|
|
134
|
+
::TargetIO::File.open(init_command) do |rcscript|
|
135
135
|
rcscript.each_line do |line|
|
136
136
|
if line =~ /^name="?(\w+)"?/
|
137
137
|
return $1 + "_enable"
|
@@ -150,7 +150,7 @@ class Chef
|
|
150
150
|
|
151
151
|
def determine_enabled_status!
|
152
152
|
var_name = service_enable_variable_name
|
153
|
-
if ::File.exist?("/etc/rc.conf") && var_name
|
153
|
+
if ::TargetIO::File.exist?("/etc/rc.conf") && var_name
|
154
154
|
read_rc_conf.each do |line|
|
155
155
|
case line
|
156
156
|
when /^#{Regexp.escape(var_name)}="(\w+)"/
|
@@ -22,7 +22,7 @@ require_relative "../../util/path_helper"
|
|
22
22
|
|
23
23
|
class Chef::Provider::Service::Gentoo < Chef::Provider::Service::Init
|
24
24
|
|
25
|
-
provides :service, platform_family: "gentoo"
|
25
|
+
provides :service, platform_family: "gentoo", target_mode: true
|
26
26
|
|
27
27
|
def load_current_resource
|
28
28
|
supports[:status] = true if supports[:status].nil?
|
@@ -32,10 +32,10 @@ class Chef::Provider::Service::Gentoo < Chef::Provider::Service::Init
|
|
32
32
|
super
|
33
33
|
|
34
34
|
@current_resource.enabled(
|
35
|
-
Dir.glob("/etc/runlevels/**/#{Chef::Util::PathHelper.escape_glob_dir(@current_resource.service_name)}").any? do |file|
|
35
|
+
TargetIO::Dir.glob("/etc/runlevels/**/#{Chef::Util::PathHelper.escape_glob_dir(@current_resource.service_name)}").any? do |file|
|
36
36
|
@found_script = true
|
37
|
-
exists = ::File.exist? file
|
38
|
-
readable = ::File.readable? file
|
37
|
+
exists = ::TargetIO::File.exist? file
|
38
|
+
readable = ::TargetIO::File.readable? file
|
39
39
|
logger.trace "#{@new_resource} exists: #{exists}, readable: #{readable}"
|
40
40
|
exists && readable
|
41
41
|
end
|
@@ -47,7 +47,7 @@ class Chef::Provider::Service::Gentoo < Chef::Provider::Service::Init
|
|
47
47
|
|
48
48
|
def define_resource_requirements
|
49
49
|
requirements.assert(:all_actions) do |a|
|
50
|
-
a.assertion { ::File.exist?("/sbin/rc-update") }
|
50
|
+
a.assertion { ::TargetIO::File.exist?("/sbin/rc-update") }
|
51
51
|
a.failure_message Chef::Exceptions::Service, "/sbin/rc-update does not exist"
|
52
52
|
# no whyrun recovery -t his is a core component whose presence is
|
53
53
|
# unlikely to be affected by what we do in the course of a chef run
|
@@ -26,7 +26,7 @@ class Chef
|
|
26
26
|
|
27
27
|
attr_accessor :init_command
|
28
28
|
|
29
|
-
provides :service, os: "!windows"
|
29
|
+
provides :service, os: "!windows", target_mode: true
|
30
30
|
|
31
31
|
def self.supports?(resource, action)
|
32
32
|
service_script_exist?(:initd, resource.service_name)
|
@@ -42,7 +42,7 @@ class Chef
|
|
42
42
|
shared_resource_requirements
|
43
43
|
requirements.assert(:start, :stop, :restart, :reload) do |a|
|
44
44
|
a.assertion do
|
45
|
-
custom_command_for_action?(action) || ::File.exist?(default_init_command)
|
45
|
+
custom_command_for_action?(action) || ::TargetIO::File.exist?(default_init_command)
|
46
46
|
end
|
47
47
|
a.failure_message(Chef::Exceptions::Service, "#{default_init_command} does not exist!")
|
48
48
|
a.whyrun("Init script '#{default_init_command}' doesn't exist, assuming a prior action would have created it.") do
|
@@ -24,7 +24,7 @@ class Chef
|
|
24
24
|
class Service
|
25
25
|
class Insserv < Chef::Provider::Service::Init
|
26
26
|
|
27
|
-
provides :service, platform_family: %w{debian rhel fedora suse amazon} do
|
27
|
+
provides :service, platform_family: %w{debian rhel fedora suse amazon}, target_mode: true do
|
28
28
|
insserv?
|
29
29
|
end
|
30
30
|
|
@@ -38,7 +38,7 @@ class Chef
|
|
38
38
|
# Look for a /etc/rc.*/SnnSERVICE link to signify that the service would be started in a runlevel
|
39
39
|
service_name = Chef::Util::PathHelper.escape_glob_dir(current_resource.service_name)
|
40
40
|
|
41
|
-
if Dir.glob("/etc/rc*/**/S*#{service_name}").empty?
|
41
|
+
if TargetIO::Dir.glob("/etc/rc*/**/S*#{service_name}").empty?
|
42
42
|
current_resource.enabled false
|
43
43
|
else
|
44
44
|
current_resource.enabled true
|
@@ -24,7 +24,7 @@ class Chef
|
|
24
24
|
class Service
|
25
25
|
class Openbsd < Chef::Provider::Service::Init
|
26
26
|
|
27
|
-
provides :service, os: "openbsd"
|
27
|
+
provides :service, os: "openbsd", target_mode: true
|
28
28
|
|
29
29
|
attr_reader :init_command, :rc_conf, :rc_conf_local, :enabled_state_found
|
30
30
|
|
@@ -33,9 +33,9 @@ class Chef
|
|
33
33
|
|
34
34
|
def initialize(new_resource, run_context)
|
35
35
|
super
|
36
|
-
@rc_conf = ::File.read(RC_CONF_PATH) rescue ""
|
37
|
-
@rc_conf_local = ::File.read(RC_CONF_LOCAL_PATH) rescue ""
|
38
|
-
@init_command = ::File.exist?(rcd_script_path) ? rcd_script_path : nil
|
36
|
+
@rc_conf = ::TargetIO::File.read(RC_CONF_PATH) rescue ""
|
37
|
+
@rc_conf_local = ::TargetIO::File.read(RC_CONF_LOCAL_PATH) rescue ""
|
38
|
+
@init_command = ::TargetIO::File.exist?(rcd_script_path) ? rcd_script_path : nil
|
39
39
|
new_resource.status_command("#{default_init_command} check")
|
40
40
|
end
|
41
41
|
|
@@ -129,8 +129,8 @@ class Chef
|
|
129
129
|
end
|
130
130
|
|
131
131
|
def update_rcl(value)
|
132
|
-
FileUtils.touch RC_CONF_LOCAL_PATH unless ::File.exist? RC_CONF_LOCAL_PATH
|
133
|
-
::File.write(RC_CONF_LOCAL_PATH, value)
|
132
|
+
TargetIO::FileUtils.touch RC_CONF_LOCAL_PATH unless ::TargetIO::File.exist? RC_CONF_LOCAL_PATH
|
133
|
+
::TargetIO::File.write(RC_CONF_LOCAL_PATH, value)
|
134
134
|
@rc_conf_local = value
|
135
135
|
end
|
136
136
|
|
@@ -139,7 +139,7 @@ class Chef
|
|
139
139
|
@bsevn ||= begin
|
140
140
|
result = nil
|
141
141
|
if rcd_script_found?
|
142
|
-
::File.open(init_command) do |rcscript|
|
142
|
+
::TargetIO::File.open(init_command) do |rcscript|
|
143
143
|
if m = rcscript.read.match(/^# \$OpenBSD: (\w+)[(.rc),]?/)
|
144
144
|
result = m[1] + "_flags"
|
145
145
|
end
|
@@ -28,7 +28,7 @@ class Chef
|
|
28
28
|
# @api private
|
29
29
|
attr_accessor :current_run_levels
|
30
30
|
|
31
|
-
provides :service, platform_family: "rpm_based" do
|
31
|
+
provides :service, platform_family: "rpm_based", target_mode: true do
|
32
32
|
redhatrcd?
|
33
33
|
end
|
34
34
|
|
@@ -56,7 +56,7 @@ class Chef
|
|
56
56
|
|
57
57
|
requirements.assert(:all_actions) do |a|
|
58
58
|
chkconfig_file = "/sbin/chkconfig"
|
59
|
-
a.assertion { ::File.exist? chkconfig_file }
|
59
|
+
a.assertion { ::TargetIO::File.exist? chkconfig_file }
|
60
60
|
a.failure_message Chef::Exceptions::Service, "#{chkconfig_file} does not exist!"
|
61
61
|
end
|
62
62
|
|
@@ -80,7 +80,7 @@ class Chef
|
|
80
80
|
|
81
81
|
super
|
82
82
|
|
83
|
-
if ::File.exist?("/sbin/chkconfig")
|
83
|
+
if ::TargetIO::File.exist?("/sbin/chkconfig")
|
84
84
|
chkconfig = shell_out!("/sbin/chkconfig --list #{current_resource.service_name}", returns: [0, 1])
|
85
85
|
unless run_levels.nil? || run_levels.empty?
|
86
86
|
all_levels_match = true
|
@@ -25,7 +25,7 @@ class Chef
|
|
25
25
|
class Solaris < Chef::Provider::Service
|
26
26
|
attr_reader :maintenance
|
27
27
|
|
28
|
-
provides :service, os: "solaris2"
|
28
|
+
provides :service, os: "solaris2", target_mode: true
|
29
29
|
|
30
30
|
def initialize(new_resource, run_context = nil)
|
31
31
|
super
|
@@ -39,7 +39,7 @@ class Chef
|
|
39
39
|
@current_resource.service_name(@new_resource.service_name)
|
40
40
|
|
41
41
|
[@init_command, @status_command].each do |cmd|
|
42
|
-
unless ::File.executable? cmd
|
42
|
+
unless ::TargetIO::File.executable? cmd
|
43
43
|
raise Chef::Exceptions::Service, "#{cmd} not executable!"
|
44
44
|
end
|
45
45
|
end
|
@@ -26,7 +26,7 @@ class Chef::Provider::Service::Systemd < Chef::Provider::Service::Simple
|
|
26
26
|
|
27
27
|
include Chef::Mixin::Which
|
28
28
|
|
29
|
-
provides
|
29
|
+
provides(:service, os: "linux", target_mode: true) do |node|
|
30
30
|
systemd?
|
31
31
|
end
|
32
32
|
|
@@ -106,7 +106,7 @@ class Chef::Provider::Service::Systemd < Chef::Provider::Service::Simple
|
|
106
106
|
if new_resource.user
|
107
107
|
raise NotImplementedError, "#{new_resource} does not support the user property on a target_mode host (yet)" if Chef::Config.target_mode?
|
108
108
|
|
109
|
-
uid = Etc.getpwnam(new_resource.user).uid
|
109
|
+
uid = TargetIO::Etc.getpwnam(new_resource.user).uid
|
110
110
|
options = {
|
111
111
|
environment: {
|
112
112
|
"DBUS_SESSION_BUS_ADDRESS" => "unix:path=/run/user/#{uid}/bus",
|
@@ -124,9 +124,9 @@ class Chef
|
|
124
124
|
end
|
125
125
|
end
|
126
126
|
# Get enabled/disabled state by reading job configuration file
|
127
|
-
if ::File.exist?("#{@upstart_job_dir}/#{@new_resource.service_name}#{@upstart_conf_suffix}")
|
127
|
+
if ::TargetIO::File.exist?("#{@upstart_job_dir}/#{@new_resource.service_name}#{@upstart_conf_suffix}")
|
128
128
|
logger.trace("#{@new_resource} found #{@upstart_job_dir}/#{@new_resource.service_name}#{@upstart_conf_suffix}")
|
129
|
-
::File.open("#{@upstart_job_dir}/#{@new_resource.service_name}#{@upstart_conf_suffix}", "r") do |file|
|
129
|
+
::TargetIO::File.open("#{@upstart_job_dir}/#{@new_resource.service_name}#{@upstart_conf_suffix}", "r") do |file|
|
130
130
|
while line = file.gets
|
131
131
|
case line
|
132
132
|
when /^start on/
|
@@ -74,7 +74,6 @@ class Chef::Provider::Service::Windows < Chef::Provider::Service
|
|
74
74
|
current_resource.run_as_user(config_info.service_start_name) if config_info.service_start_name
|
75
75
|
current_resource.display_name(config_info.display_name) if config_info.display_name
|
76
76
|
current_resource.delayed_start(current_delayed_start) if current_delayed_start
|
77
|
-
current_resource.description(config_info.description) if new_resource.description
|
78
77
|
end
|
79
78
|
|
80
79
|
current_resource
|
@@ -27,7 +27,7 @@ class Chef
|
|
27
27
|
class Provider
|
28
28
|
class Subversion < Chef::Provider
|
29
29
|
|
30
|
-
provides :subversion
|
30
|
+
provides :subversion, target_mode: true
|
31
31
|
|
32
32
|
SVN_INFO_PATTERN = /^([\w\s]+): (.+)$/.freeze
|
33
33
|
|
@@ -48,7 +48,7 @@ class Chef
|
|
48
48
|
# Make sure the parent dir exists, or else fail.
|
49
49
|
# for why run, print a message explaining the potential error.
|
50
50
|
parent_directory = ::File.dirname(new_resource.destination)
|
51
|
-
a.assertion { ::File.directory?(parent_directory) }
|
51
|
+
a.assertion { ::TargetIO::File.directory?(parent_directory) }
|
52
52
|
a.failure_message(Chef::Exceptions::MissingParentDirectory,
|
53
53
|
"Cannot clone #{new_resource} to #{new_resource.destination}, the enclosing directory #{parent_directory} does not exist")
|
54
54
|
a.whyrun("Directory #{parent_directory} does not exist, assuming it would have been created")
|
@@ -81,7 +81,7 @@ class Chef
|
|
81
81
|
|
82
82
|
action :sync, description: "Update the source to the specified version, or get a new clone or checkout. This action causes a hard reset of the index and working tree, discarding any uncommitted changes." do
|
83
83
|
assert_target_directory_valid!
|
84
|
-
if ::File.exist?(::File.join(new_resource.destination, ".svn"))
|
84
|
+
if ::TargetIO::File.exist?(::File.join(new_resource.destination, ".svn"))
|
85
85
|
current_rev = find_current_revision
|
86
86
|
logger.trace "#{new_resource} current revision: #{current_rev} target revision: #{revision_int}"
|
87
87
|
unless current_revision_matches_target_revision?
|
@@ -134,7 +134,7 @@ class Chef
|
|
134
134
|
alias :revision_slug :revision_int
|
135
135
|
|
136
136
|
def find_current_revision
|
137
|
-
return nil unless ::File.exist?(::File.join(new_resource.destination, ".svn"))
|
137
|
+
return nil unless ::TargetIO::File.exist?(::File.join(new_resource.destination, ".svn"))
|
138
138
|
|
139
139
|
command = scm(:info)
|
140
140
|
svn_info = shell_out!(command, **run_options(cwd: cwd, returns: [0, 1])).stdout
|
@@ -214,7 +214,7 @@ class Chef
|
|
214
214
|
end
|
215
215
|
|
216
216
|
def target_dir_non_existent_or_empty?
|
217
|
-
!::File.exist?(new_resource.destination) || Dir.entries(new_resource.destination).sort == [".", ".."]
|
217
|
+
!::TargetIO::File.exist?(new_resource.destination) || TargetIO::Dir.entries(new_resource.destination).sort == [".", ".."]
|
218
218
|
end
|
219
219
|
|
220
220
|
def svn_binary
|
@@ -224,7 +224,7 @@ class Chef
|
|
224
224
|
|
225
225
|
def assert_target_directory_valid!
|
226
226
|
target_parent_directory = ::File.dirname(new_resource.destination)
|
227
|
-
unless ::File.directory?(target_parent_directory)
|
227
|
+
unless ::TargetIO::File.directory?(target_parent_directory)
|
228
228
|
msg = "Cannot clone #{new_resource} to #{new_resource.destination}, the enclosing directory #{target_parent_directory} does not exist"
|
229
229
|
raise Chef::Exceptions::MissingParentDirectory, msg
|
230
230
|
end
|
@@ -238,9 +238,9 @@ class Chef
|
|
238
238
|
require "etc" unless defined?(Etc)
|
239
239
|
case user
|
240
240
|
when Integer
|
241
|
-
Etc.getpwuid(user).dir
|
241
|
+
TargetIO::Etc.getpwuid(user).dir
|
242
242
|
else
|
243
|
-
Etc.getpwnam(user.to_s).dir
|
243
|
+
TargetIO::Etc.getpwnam(user.to_s).dir
|
244
244
|
end
|
245
245
|
end
|
246
246
|
end
|