chef 18.5.0 → 18.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +8 -3
  3. data/chef-universal-mingw-ucrt.gemspec +1 -1
  4. data/chef.gemspec +2 -2
  5. data/lib/chef/application/client.rb +0 -12
  6. data/lib/chef/client.rb +1 -10
  7. data/lib/chef/compliance/runner.rb +0 -10
  8. data/lib/chef/cookbook/remote_file_vendor.rb +3 -2
  9. data/lib/chef/cookbook/synchronizer.rb +0 -5
  10. data/lib/chef/exceptions.rb +1 -1
  11. data/lib/chef/file_access_control/unix.rb +9 -9
  12. data/lib/chef/file_content_management/deploy.rb +1 -4
  13. data/lib/chef/mixin/file_class.rb +1 -3
  14. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  15. data/lib/chef/mixin/{homebrew_user.rb → homebrew.rb} +13 -16
  16. data/lib/chef/mixin/openssl_helper.rb +1 -12
  17. data/lib/chef/provider/cookbook_file.rb +1 -1
  18. data/lib/chef/provider/cron.rb +1 -1
  19. data/lib/chef/provider/directory.rb +15 -15
  20. data/lib/chef/provider/file.rb +29 -42
  21. data/lib/chef/provider/git.rb +8 -8
  22. data/lib/chef/provider/group/aix.rb +1 -1
  23. data/lib/chef/provider/group/dscl.rb +1 -1
  24. data/lib/chef/provider/group/gpasswd.rb +2 -2
  25. data/lib/chef/provider/group/groupadd.rb +1 -1
  26. data/lib/chef/provider/group/groupmod.rb +2 -2
  27. data/lib/chef/provider/group/pw.rb +2 -2
  28. data/lib/chef/provider/group/solaris.rb +2 -2
  29. data/lib/chef/provider/group/usermod.rb +2 -2
  30. data/lib/chef/provider/group.rb +1 -1
  31. data/lib/chef/provider/http_request.rb +3 -2
  32. data/lib/chef/provider/ifconfig/aix.rb +1 -1
  33. data/lib/chef/provider/ifconfig/debian.rb +3 -3
  34. data/lib/chef/provider/ifconfig/redhat.rb +1 -1
  35. data/lib/chef/provider/ifconfig.rb +1 -1
  36. data/lib/chef/provider/link.rb +10 -10
  37. data/lib/chef/provider/mount/aix.rb +4 -4
  38. data/lib/chef/provider/mount/linux.rb +4 -4
  39. data/lib/chef/provider/mount/mount.rb +11 -11
  40. data/lib/chef/provider/package/apt.rb +11 -2
  41. data/lib/chef/provider/package/bff.rb +3 -3
  42. data/lib/chef/provider/package/chocolatey.rb +2 -2
  43. data/lib/chef/provider/package/dpkg.rb +3 -3
  44. data/lib/chef/provider/package/freebsd/base.rb +1 -1
  45. data/lib/chef/provider/package/habitat.rb +3 -5
  46. data/lib/chef/provider/package/homebrew.rb +6 -9
  47. data/lib/chef/provider/package/ips.rb +2 -2
  48. data/lib/chef/provider/package/openbsd.rb +2 -3
  49. data/lib/chef/provider/package/pacman.rb +4 -4
  50. data/lib/chef/provider/package/paludis.rb +2 -2
  51. data/lib/chef/provider/package/portage.rb +1 -1
  52. data/lib/chef/provider/package/rpm.rb +2 -2
  53. data/lib/chef/provider/package/rubygems.rb +4 -0
  54. data/lib/chef/provider/package/smartos.rb +2 -2
  55. data/lib/chef/provider/package/snap.rb +1 -1
  56. data/lib/chef/provider/package/solaris.rb +4 -4
  57. data/lib/chef/provider/package/zypper.rb +4 -4
  58. data/lib/chef/provider/package.rb +1 -1
  59. data/lib/chef/provider/remote_directory.rb +5 -5
  60. data/lib/chef/provider/remote_file/http.rb +3 -2
  61. data/lib/chef/provider/remote_file.rb +1 -1
  62. data/lib/chef/provider/route.rb +9 -9
  63. data/lib/chef/provider/service/aix.rb +1 -1
  64. data/lib/chef/provider/service/aixinit.rb +4 -4
  65. data/lib/chef/provider/service/arch.rb +6 -6
  66. data/lib/chef/provider/service/debian.rb +5 -5
  67. data/lib/chef/provider/service/freebsd.rb +7 -7
  68. data/lib/chef/provider/service/gentoo.rb +5 -5
  69. data/lib/chef/provider/service/init.rb +2 -2
  70. data/lib/chef/provider/service/insserv.rb +2 -2
  71. data/lib/chef/provider/service/invokercd.rb +1 -1
  72. data/lib/chef/provider/service/openbsd.rb +7 -7
  73. data/lib/chef/provider/service/redhat.rb +3 -3
  74. data/lib/chef/provider/service/solaris.rb +2 -2
  75. data/lib/chef/provider/service/systemd.rb +2 -2
  76. data/lib/chef/provider/service/upstart.rb +2 -2
  77. data/lib/chef/provider/subversion.rb +8 -8
  78. data/lib/chef/provider/systemd_unit.rb +3 -3
  79. data/lib/chef/provider/template.rb +1 -1
  80. data/lib/chef/provider/user/aix.rb +3 -3
  81. data/lib/chef/provider/user/linux.rb +2 -7
  82. data/lib/chef/provider/user/pw.rb +3 -3
  83. data/lib/chef/provider/user/solaris.rb +7 -7
  84. data/lib/chef/provider/user/windows.rb +5 -0
  85. data/lib/chef/provider/user.rb +8 -7
  86. data/lib/chef/provider/yum_repository.rb +3 -1
  87. data/lib/chef/provider/zypper_repository.rb +1 -1
  88. data/lib/chef/providers.rb +0 -1
  89. data/lib/chef/resource/alternatives.rb +2 -2
  90. data/lib/chef/resource/apt_preference.rb +1 -1
  91. data/lib/chef/resource/apt_repository.rb +9 -7
  92. data/lib/chef/resource/apt_update.rb +3 -3
  93. data/lib/chef/resource/bff_package.rb +1 -1
  94. data/lib/chef/resource/chef_client_config.rb +3 -2
  95. data/lib/chef/resource/chef_sleep.rb +1 -1
  96. data/lib/chef/resource/cookbook_file.rb +1 -1
  97. data/lib/chef/resource/cron/cron.rb +1 -1
  98. data/lib/chef/resource/cron/cron_d.rb +1 -1
  99. data/lib/chef/resource/cron_access.rb +1 -1
  100. data/lib/chef/resource/directory.rb +1 -1
  101. data/lib/chef/resource/dpkg_package.rb +1 -1
  102. data/lib/chef/resource/file/verification/json.rb +1 -1
  103. data/lib/chef/resource/file/verification/systemd_unit.rb +1 -1
  104. data/lib/chef/resource/file/verification/yaml.rb +1 -1
  105. data/lib/chef/resource/file.rb +1 -1
  106. data/lib/chef/resource/freebsd_package.rb +2 -2
  107. data/lib/chef/resource/group.rb +1 -1
  108. data/lib/chef/resource/habitat/habitat_package.rb +1 -1
  109. data/lib/chef/resource/habitat/habitat_sup.rb +9 -9
  110. data/lib/chef/resource/habitat/habitat_sup_systemd.rb +2 -2
  111. data/lib/chef/resource/habitat_install.rb +3 -3
  112. data/lib/chef/resource/homebrew_cask.rb +19 -30
  113. data/lib/chef/resource/homebrew_tap.rb +32 -17
  114. data/lib/chef/resource/homebrew_update.rb +4 -4
  115. data/lib/chef/resource/hostname.rb +10 -11
  116. data/lib/chef/resource/http_request.rb +1 -1
  117. data/lib/chef/resource/ifconfig.rb +1 -1
  118. data/lib/chef/resource/inspec_input.rb +1 -3
  119. data/lib/chef/resource/inspec_waiver.rb +1 -1
  120. data/lib/chef/resource/inspec_waiver_file_entry.rb +1 -1
  121. data/lib/chef/resource/ips_package.rb +2 -2
  122. data/lib/chef/resource/kernel_module.rb +2 -2
  123. data/lib/chef/resource/link.rb +1 -1
  124. data/lib/chef/resource/locale.rb +2 -2
  125. data/lib/chef/resource/mount.rb +1 -1
  126. data/lib/chef/resource/notify_group.rb +1 -1
  127. data/lib/chef/resource/ohai.rb +1 -1
  128. data/lib/chef/resource/ohai_hint.rb +1 -1
  129. data/lib/chef/resource/openbsd_package.rb +2 -2
  130. data/lib/chef/resource/package.rb +1 -1
  131. data/lib/chef/resource/pacman_package.rb +1 -1
  132. data/lib/chef/resource/paludis_package.rb +1 -1
  133. data/lib/chef/resource/portage_package.rb +1 -1
  134. data/lib/chef/resource/reboot.rb +1 -1
  135. data/lib/chef/resource/remote_directory.rb +1 -1
  136. data/lib/chef/resource/remote_file.rb +1 -1
  137. data/lib/chef/resource/rhsm_errata.rb +1 -1
  138. data/lib/chef/resource/rhsm_errata_level.rb +1 -1
  139. data/lib/chef/resource/rhsm_register.rb +1 -1
  140. data/lib/chef/resource/rhsm_repo.rb +4 -3
  141. data/lib/chef/resource/rhsm_subscription.rb +9 -8
  142. data/lib/chef/resource/route.rb +1 -1
  143. data/lib/chef/resource/rpm_package.rb +1 -1
  144. data/lib/chef/resource/scm/git.rb +1 -1
  145. data/lib/chef/resource/scm/subversion.rb +1 -1
  146. data/lib/chef/resource/selinux/common_helpers.rb +1 -1
  147. data/lib/chef/resource/selinux_boolean.rb +1 -1
  148. data/lib/chef/resource/selinux_fcontext.rb +3 -3
  149. data/lib/chef/resource/selinux_install.rb +1 -1
  150. data/lib/chef/resource/selinux_login.rb +1 -1
  151. data/lib/chef/resource/selinux_module.rb +5 -5
  152. data/lib/chef/resource/selinux_permissive.rb +2 -2
  153. data/lib/chef/resource/selinux_port.rb +2 -2
  154. data/lib/chef/resource/selinux_state.rb +2 -2
  155. data/lib/chef/resource/selinux_user.rb +1 -1
  156. data/lib/chef/resource/smartos_package.rb +2 -2
  157. data/lib/chef/resource/snap_package.rb +1 -1
  158. data/lib/chef/resource/solaris_package.rb +1 -1
  159. data/lib/chef/resource/ssh_known_hosts_entry.rb +1 -1
  160. data/lib/chef/resource/sudo.rb +5 -5
  161. data/lib/chef/resource/support/client.erb +3 -2
  162. data/lib/chef/resource/swap_file.rb +6 -6
  163. data/lib/chef/resource/sysctl.rb +5 -5
  164. data/lib/chef/resource/systemd_unit.rb +1 -1
  165. data/lib/chef/resource/template.rb +1 -1
  166. data/lib/chef/resource/timezone.rb +5 -5
  167. data/lib/chef/resource/user/aix_user.rb +2 -2
  168. data/lib/chef/resource/user/linux_user.rb +2 -2
  169. data/lib/chef/resource/user/pw_user.rb +2 -2
  170. data/lib/chef/resource/user/solaris_user.rb +2 -2
  171. data/lib/chef/resource/user_ulimit.rb +1 -1
  172. data/lib/chef/resource/yum_repository.rb +1 -1
  173. data/lib/chef/resource/zypper_package.rb +2 -2
  174. data/lib/chef/resource/zypper_repository.rb +2 -2
  175. data/lib/chef/resource_inspector.rb +25 -7
  176. data/lib/chef/run_lock.rb +0 -3
  177. data/lib/chef/scan_access_control.rb +6 -6
  178. data/lib/chef/util/backup.rb +1 -1
  179. data/lib/chef/util/diff.rb +1 -14
  180. data/lib/chef/util/file_edit.rb +4 -4
  181. data/lib/chef/version.rb +1 -1
  182. data/lib/chef/win32/registry.rb +5 -0
  183. data/lib/chef/win32/security.rb +9 -0
  184. data/lib/chef.rb +0 -2
  185. data/spec/functional/resource/cookbook_file_spec.rb +1 -1
  186. data/spec/integration/client/open_ssl_spec.rb +1 -1
  187. data/spec/spec_helper.rb +1 -0
  188. data/spec/support/chef_helpers.rb +2 -2
  189. data/spec/support/platform_helpers.rb +8 -0
  190. data/spec/support/shared/functional/file_resource.rb +3 -3
  191. data/spec/unit/mixin/homebrew_spec.rb +118 -0
  192. data/spec/unit/provider/apt_repository_spec.rb +1 -1
  193. data/spec/unit/provider/package/chocolatey_spec.rb +1 -1
  194. data/spec/unit/provider/package/homebrew_spec.rb +4 -1
  195. data/spec/unit/provider/route_spec.rb +4 -6
  196. data/spec/unit/provider/user/windows_spec.rb +1 -0
  197. data/spec/unit/resource/rhsm_repo_spec.rb +0 -1
  198. data/spec/unit/resource/rhsm_subscription_spec.rb +0 -2
  199. data/spec/unit/resource_inspector_spec.rb +36 -0
  200. metadata +20 -28
  201. data/lib/chef/file_content_management/deploy/target_io.rb +0 -29
  202. data/lib/chef/provider/.gitkeep +0 -0
  203. data/lib/chef/provider/package/snap_tm.rb +0 -79
  204. data/lib/chef/resource/.gitkeep +0 -0
  205. data/lib/chef/target_io/dir.rb +0 -12
  206. data/lib/chef/target_io/etc.rb +0 -16
  207. data/lib/chef/target_io/file.rb +0 -12
  208. data/lib/chef/target_io/fileutils.rb +0 -12
  209. data/lib/chef/target_io/http.rb +0 -22
  210. data/lib/chef/target_io/io.rb +0 -12
  211. data/lib/chef/target_io/shadow.rb +0 -44
  212. data/lib/chef/target_io/train/dir.rb +0 -69
  213. data/lib/chef/target_io/train/etc.rb +0 -112
  214. data/lib/chef/target_io/train/file.rb +0 -219
  215. data/lib/chef/target_io/train/fileutils.rb +0 -220
  216. data/lib/chef/target_io/train/http.rb +0 -117
  217. data/lib/chef/target_io/train/io.rb +0 -13
  218. data/lib/chef/target_io/train/shadow.rb +0 -52
  219. data/lib/chef/target_io/train_compat.rb +0 -7
  220. data/lib/chef/target_io.rb +0 -9
  221. data/spec/unit/mixin/homebrew_user_spec.rb +0 -119
@@ -0,0 +1,118 @@
1
+ #
2
+ # Author:: Joshua Timberman (<joshua@chef.io>)
3
+ #
4
+ # Copyright:: Copyright (c) Chef Software Inc.
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
+ require "spec_helper"
19
+
20
+ describe Chef::Mixin::Homebrew do
21
+ let(:homebrew) { Class.new { include Chef::Mixin::Homebrew }.new }
22
+ let(:uid) { 1001 }
23
+ let(:username) { "foobar" }
24
+ let(:alt_brew_path) { "/foo" }
25
+
26
+ describe "#find_homebrew_uid" do
27
+ it "returns the provided UID when an integer is given" do
28
+ expect(File).to receive(:exist?).exactly(0).times
29
+ expect(homebrew.find_homebrew_uid(uid)).to eq(uid)
30
+ end
31
+
32
+ it "returns the provided UID when username is given" do
33
+ expect(File).to receive(:exist?).exactly(0).times
34
+ allow(Etc).to receive(:getpwnam).with(username).and_return(OpenStruct.new(uid: uid))
35
+ expect(homebrew.find_homebrew_uid(username)).to eq(uid)
36
+ end
37
+
38
+ it "raises an error when the brew executable is not found" do
39
+ allow(homebrew).to receive(:homebrew_bin_path).and_raise(Chef::Exceptions::CannotDetermineHomebrewPath)
40
+ expect { homebrew.find_homebrew_uid }.to raise_error(Chef::Exceptions::CannotDetermineHomebrewPath)
41
+ end
42
+
43
+ it "returns the UID of the owner based on the brew executable" do
44
+ allow(homebrew).to receive(:homebrew_bin_path).and_return(alt_brew_path)
45
+ allow(File).to receive(:stat).with(alt_brew_path).and_return(OpenStruct.new(uid: uid))
46
+ allow(Etc).to receive(:getpwuid).with(uid).and_return(OpenStruct.new(name: username))
47
+ expect(homebrew.find_homebrew_uid).to eq(uid)
48
+ end
49
+ end
50
+
51
+ describe "#find_homebrew_username" do
52
+ it "returns the username for the provided UID" do
53
+ allow(homebrew).to receive(:find_homebrew_uid).and_return(uid)
54
+ allow(Etc).to receive(:getpwuid).with(uid).and_return(OpenStruct.new(name: username))
55
+ expect(homebrew.find_homebrew_username(uid)).to eq(username)
56
+ end
57
+ end
58
+
59
+ describe "#homebrew_bin_path" do
60
+ it "returns the correct path when a valid path is provided" do
61
+ allow(File).to receive(:exist?).with(alt_brew_path).and_return(true)
62
+ expect(homebrew.homebrew_bin_path(alt_brew_path)).to eq(alt_brew_path)
63
+ end
64
+
65
+ it "raises an error when the brew executable is not found" do
66
+ allow(homebrew).to receive(:which).and_return(false)
67
+ expect { homebrew.homebrew_bin_path }.to raise_error(Chef::Exceptions::CannotDetermineHomebrewPath)
68
+ end
69
+ end
70
+
71
+ shared_examples "successfully find executable" do
72
+ let(:default_brew_path) { "/usr/local/bin/brew" }
73
+ let(:default_brew_path_arm) { "/opt/homebrew/bin/brew" }
74
+ let(:default_brew_path_linux) { "/home/linuxbrew/.linuxbrew/bin/brew" }
75
+
76
+ context "debug statement prints owner name" do
77
+
78
+ before do
79
+ expect(Etc).to receive(:getpwuid).with(uid).and_return(OpenStruct.new(name: username))
80
+ end
81
+
82
+ it "returns the owner of the brew executable when it is at a default location for x86_64 machines" do
83
+ allow(homebrew).to receive(:homebrew_bin_path).and_return(default_brew_path)
84
+ allow(File).to receive(:stat).with(default_brew_path).and_return(OpenStruct.new(uid: uid))
85
+ expect(homebrew.find_homebrew_uid).to eq(uid)
86
+ end
87
+
88
+ it "returns the owner of the brew executable when it is at a default location for arm machines" do
89
+ allow(homebrew).to receive(:homebrew_bin_path).and_return(default_brew_path_arm)
90
+ allow(File).to receive(:stat).with(default_brew_path_arm).and_return(OpenStruct.new(uid: uid))
91
+ expect(homebrew.find_homebrew_uid).to eq(uid)
92
+ end
93
+
94
+ it "returns the owner of the brew executable when it is at a default location for linux machines" do
95
+ allow(homebrew).to receive(:homebrew_bin_path).and_return(default_brew_path_linux)
96
+ allow(File).to receive(:stat).with(default_brew_path_linux).and_return(OpenStruct.new(uid: uid))
97
+ expect(homebrew.find_homebrew_uid).to eq(uid)
98
+ end
99
+
100
+ it "returns the owner of the brew executable when it is not at a default location" do
101
+ allow(homebrew).to receive(:homebrew_bin_path).and_return(alt_brew_path)
102
+ allow(File).to receive(:stat).with(alt_brew_path).and_return(OpenStruct.new(uid: uid))
103
+ expect(homebrew.find_homebrew_uid).to eq(uid)
104
+ end
105
+ end
106
+ end
107
+
108
+ describe "#When the homebrew user is not provided" do
109
+
110
+ include_examples "successfully find executable"
111
+
112
+ context "the executable is owned by root" do
113
+ include_examples "successfully find executable" do
114
+ let(:uid) { 0 }
115
+ end
116
+ end
117
+ end
118
+ end
@@ -230,7 +230,7 @@ C5986B4F1257FFA86632CBA746181433FBB75451
230
230
  it "gets a key" do
231
231
  simples = double("HTTP")
232
232
  allow(simples).to receive(:get).and_return("\"#{key}\"")
233
- expect(Chef::HTTP::Simple).to receive(:new).with(url, {}).and_return(simples)
233
+ expect(Chef::HTTP::Simple).to receive(:new).with(url).and_return(simples)
234
234
  expect(provider).to receive(:install_key_from_keyserver).with(key, "keyserver.ubuntu.com")
235
235
  provider.install_ppa_key("chef", "main")
236
236
  end
@@ -92,7 +92,7 @@ describe Chef::Provider::Package::Chocolatey, :windows_only do
92
92
 
93
93
  describe "choco searches change with the version" do
94
94
  it "Choco V1 uses List" do
95
- allow(provider).to receive(:powershell_exec!).with("Get-ItemProperty #{choco_exe} | select-object -expandproperty versioninfo | select-object -expandproperty productversion").and_return(double(result: "1.4.0"))
95
+ allow(provider).to receive(:powershell_exec!).with("Get-ItemProperty #{choco_exe} | select-object -expandproperty versioninfo | select-object -expandproperty productversion").and_return(double(result: "1.3.0"))
96
96
  expect(provider.query_command).to eql("list")
97
97
  end
98
98
 
@@ -19,6 +19,7 @@
19
19
  require "spec_helper"
20
20
 
21
21
  describe Chef::Provider::Package::Homebrew do
22
+ let(:default_brew_path) { "/usr/local/bin/brew" }
22
23
  let(:node) { Chef::Node.new }
23
24
  let(:new_resource) { Chef::Resource::HomebrewPackage.new(%w{emacs vim}) }
24
25
  let(:current_resource) { Chef::Resource::HomebrewPackage.new("emacs, vim") }
@@ -30,7 +31,6 @@ describe Chef::Provider::Package::Homebrew do
30
31
  end
31
32
 
32
33
  let(:homebrew_uid) { 1001 }
33
-
34
34
  let(:brew_cmd_output_data) { '[{"name":"emacs","full_name":"emacs","oldname":null,"aliases":[],"versioned_formulae":[],"desc":"GNU Emacs text editor","homepage":"https://www.gnu.org/software/emacs/","versions":{"stable":"26.3","devel":null,"head":"HEAD","bottle":true},"urls":{"stable":{"url":"https://ftp.gnu.org/gnu/emacs/emacs-26.3.tar.xz","tag":null,"revision":null}},"revision":0,"version_scheme":0,"bottle":{"stable":{"rebuild":0,"cellar":"/usr/local/Cellar","prefix":"/usr/local","root_url":"https://homebrew.bintray.com/bottles","files":{"catalina":{"url":"https://homebrew.bintray.com/bottles/emacs-26.3.catalina.bottle.tar.gz","sha256":"9ab33f4386ca5f7326a8c28da1324556ec990f682a7ca88641203da0b42dbdae"},"mojave":{"url":"https://homebrew.bintray.com/bottles/emacs-26.3.mojave.bottle.tar.gz","sha256":"8162a26246de7db44c53ea0d0ef0a806140318d19c69e8e5e33aa88ce7e823a8"},"high_sierra":{"url":"https://homebrew.bintray.com/bottles/emacs-26.3.high_sierra.bottle.tar.gz","sha256":"6a2629b6deddf99f81abb1990ecd6c87f0242a0eecbb6b6c2e4c3540e421d4c4"},"sierra":{"url":"https://homebrew.bintray.com/bottles/emacs-26.3.sierra.bottle.tar.gz","sha256":"2a47477e71766d7dd6b16c29ad5ba71817ed80d06212e3261ef3c776e7e9f5a2"}}}},"keg_only":false,"bottle_disabled":false,"options":[],"build_dependencies":["pkg-config"],"dependencies":["gnutls"],"recommended_dependencies":[],"optional_dependencies":[],"uses_from_macos":["libxml2","ncurses"],"requirements":[],"conflicts_with":[],"caveats":null,"installed":[],"linked_keg":null,"pinned":false,"outdated":false},{"name":"vim","full_name":"vim","oldname":null,"aliases":[],"versioned_formulae":[],"desc":"Vi \'workalike\' with many additional features","homepage":"https://www.vim.org/","versions":{"stable":"8.2.0550","devel":null,"head":"HEAD","bottle":true},"urls":{"stable":{"url":"https://github.com/vim/vim/archive/v8.2.0550.tar.gz","tag":null,"revision":null}},"revision":0,"version_scheme":0,"bottle":{"stable":{"rebuild":0,"cellar":"/usr/local/Cellar","prefix":"/usr/local","root_url":"https://homebrew.bintray.com/bottles","files":{"catalina":{"url":"https://homebrew.bintray.com/bottles/vim-8.2.0550.catalina.bottle.tar.gz","sha256":"8f9252500775aa85d8f826af30ca9e1118a56145fc2f961c37abed48bf78cf6b"},"mojave":{"url":"https://homebrew.bintray.com/bottles/vim-8.2.0550.mojave.bottle.tar.gz","sha256":"7566c83b770f3e8c4d4b462a39e5eb26609b37a8f8db6690a2560a3e22ded6b6"},"high_sierra":{"url":"https://homebrew.bintray.com/bottles/vim-8.2.0550.high_sierra.bottle.tar.gz","sha256":"a76e517fc69bf67b6903cb82295bc085c5eb4b46b4659f034c694dd97d2ee2d9"}}}},"keg_only":false,"bottle_disabled":false,"options":[],"build_dependencies":[],"dependencies":["gettext","lua","perl","python","ruby"],"recommended_dependencies":[],"optional_dependencies":[],"uses_from_macos":["ncurses"],"requirements":[],"conflicts_with":["ex-vi","macvim"],"caveats":null,"installed":[{"version":"8.2.0550","used_options":[],"built_as_bottle":true,"poured_from_bottle":true,"runtime_dependencies":[{"full_name":"gettext","version":"0.20.1"},{"full_name":"lua","version":"5.3.5"},{"full_name":"perl","version":"5.30.2"},{"full_name":"gdbm","version":"1.18.1"},{"full_name":"openssl@1.1","version":"1.1.1f"},{"full_name":"readline","version":"8.0.4"},{"full_name":"sqlite","version":"3.31.1"},{"full_name":"xz","version":"5.2.5"},{"full_name":"python","version":"3.7.7"},{"full_name":"libyaml","version":"0.2.2"},{"full_name":"ruby","version":"2.7.1"}],"installed_as_dependency":false,"installed_on_request":true}],"linked_keg":"8.2.0550","pinned":false,"outdated":false}]' }
35
35
 
36
36
  let(:brew_info_data) do
@@ -297,11 +297,13 @@ describe Chef::Provider::Package::Homebrew do
297
297
 
298
298
  it "passes a single pkg to the brew command and return stdout" do
299
299
  allow(provider).to receive(:shell_out!).and_return(OpenStruct.new(stdout: "zombo"))
300
+ allow(provider).to receive(:homebrew_bin_path).and_return(default_brew_path)
300
301
  expect(provider.brew_cmd_output).to eql("zombo")
301
302
  end
302
303
 
303
304
  it "takes multiple arguments as an array" do
304
305
  allow(provider).to receive(:shell_out!).and_return(OpenStruct.new(stdout: "homestarrunner"))
306
+ allow(provider).to receive(:homebrew_bin_path).and_return(default_brew_path)
305
307
  expect(provider.brew_cmd_output("info", "opts", "bananas")).to eql("homestarrunner")
306
308
  end
307
309
 
@@ -310,6 +312,7 @@ describe Chef::Provider::Package::Homebrew do
310
312
 
311
313
  it "does not try to read homebrew_user from Package, which does not have it" do
312
314
  allow(provider).to receive(:shell_out!).and_return(OpenStruct.new(stdout: "zombo"))
315
+ allow(provider).to receive(:homebrew_bin_path).and_return(default_brew_path)
313
316
  expect(provider.brew_cmd_output).to eql("zombo")
314
317
  end
315
318
  end
@@ -117,7 +117,7 @@ describe Chef::Provider::Route do
117
117
  @node.automatic_attrs[:platform_family] = "rhel"
118
118
 
119
119
  route_file = StringIO.new
120
- expect(File).to receive(:open).and_yield(route_file)
120
+ expect(File).to receive(:new).and_return(route_file)
121
121
  @resource_add = Chef::Resource::Route.new("192.168.1.0/24 via 192.168.0.1")
122
122
  @run_context.resource_collection << @resource_add
123
123
  allow(@provider).to receive(:shell_out!).and_return(true)
@@ -225,7 +225,7 @@ describe Chef::Provider::Route do
225
225
  @node.automatic_attrs[:platform_family] = platform_family
226
226
 
227
227
  route_file = StringIO.new
228
- expect(File).to receive(:open).with("/etc/sysconfig/network-scripts/route-eth0", "w").and_return(route_file)
228
+ expect(File).to receive(:new).with("/etc/sysconfig/network-scripts/route-eth0", "w").and_return(route_file)
229
229
  @run_context.resource_collection << @new_resource
230
230
  @provider.generate_config
231
231
  end
@@ -234,10 +234,8 @@ describe Chef::Provider::Route do
234
234
  @node.automatic_attrs[:platform_family] = platform_family
235
235
 
236
236
  route_file = StringIO.new
237
- allow(File).to receive(:exist?).and_call_original
238
- allow(File).to receive(:open).and_call_original
239
237
  allow(File).to receive(:exist?).with("/etc/sysconfig/network").and_return(false)
240
- expect(File).to receive(:open).with("/etc/sysconfig/network", "w").and_yield(route_file)
238
+ expect(File).to receive(:new).with("/etc/sysconfig/network", "w").and_return(route_file)
241
239
  @run_context.resource_collection << @default_resource
242
240
  @default_provider.generate_config
243
241
  expect(route_file.string).to match(/GATEWAY=10\.0\.0\.9/)
@@ -248,7 +246,7 @@ describe Chef::Provider::Route do
248
246
  @node.automatic_attrs[:platform_family] = "rhel"
249
247
 
250
248
  route_file = StringIO.new
251
- expect(File).to receive(:open).and_yield(route_file)
249
+ expect(File).to receive(:new).and_return(route_file)
252
250
  @run_context.resource_collection << Chef::Resource::Route.new("192.168.1.0/24 via 192.168.0.1")
253
251
  @run_context.resource_collection << Chef::Resource::Route.new("192.168.2.0/24 via 192.168.0.1")
254
252
  @run_context.resource_collection << Chef::Resource::Route.new("192.168.3.0/24 via 192.168.0.1")
@@ -158,6 +158,7 @@ describe Chef::Provider::User::Windows do
158
158
 
159
159
  describe "when removing the user" do
160
160
  it "should call @net_user.delete" do
161
+ allow(Chef::ReservedNames::Win32::Security).to receive(:clear_account_rights)
161
162
  expect(@net_user).to receive(:delete)
162
163
  @provider.remove_user
163
164
  end
@@ -46,7 +46,6 @@ describe Chef::Resource::RhsmRepo do
46
46
  before do
47
47
  allow(Mixlib::ShellOut).to receive(:new).and_return(cmd)
48
48
  allow(cmd).to receive(:run_command)
49
- allow(cmd).to receive(:live_stream).and_return(output)
50
49
  allow(cmd).to receive(:stdout).and_return(output)
51
50
  end
52
51
 
@@ -92,7 +92,6 @@ describe Chef::Resource::RhsmSubscription do
92
92
  before do
93
93
  allow(Mixlib::ShellOut).to receive(:new).and_return(cmd)
94
94
  allow(cmd).to receive(:run_command)
95
- allow(cmd).to receive(:live_stream).and_return(output)
96
95
  allow(cmd).to receive(:stdout).and_return(output)
97
96
  end
98
97
 
@@ -128,7 +127,6 @@ describe Chef::Resource::RhsmSubscription do
128
127
  it "parses the output correctly" do
129
128
  allow(Mixlib::ShellOut).to receive(:new).and_return(cmd)
130
129
  allow(cmd).to receive(:run_command)
131
- allow(cmd).to receive(:live_stream).and_return(output)
132
130
  allow(cmd).to receive(:stdout).and_return(output)
133
131
 
134
132
  expect(provider.serials_by_pool["pool1"]).to eq("serial1")
@@ -17,6 +17,20 @@
17
17
  require "spec_helper"
18
18
  require "chef/resource_inspector"
19
19
 
20
+ COMBINED_RESOURCE_TEXT = <<~EOF.freeze
21
+ class Dummy1 < Chef::Resource::LWRPBase
22
+ resource_name :dummy1
23
+ description "A dummy resource"
24
+ property :first, String, description: "My First Property", introduced: "14.0"
25
+ end
26
+
27
+ class Dummy2 < Chef::Resource::LWRPBase
28
+ resource_name :dummy2
29
+ description "Another dummy resource"
30
+ property :second, String, description: "My Second Property", introduced: "14.0"
31
+ end
32
+ EOF
33
+
20
34
  class DummyResource < Chef::Resource
21
35
  resource_name :dummy
22
36
  description "A dummy resource"
@@ -62,4 +76,26 @@ describe Chef::ResourceInspector do
62
76
  end
63
77
  end
64
78
  end
79
+
80
+ describe "inspecting a multi-resource file" do
81
+ # Call the inspector with a fake file containing two resources, and ensure that we get
82
+ # both of them back!
83
+ subject {
84
+ Chef::ResourceInspector.load_from_resources([
85
+ { "full_path" => "/cookbooks/fake_cookbook/resources/big_resource.rb" },
86
+ ], false)
87
+ }
88
+ it "has elephants" do
89
+ allow(File).to receive(:file?).with("/cookbooks/fake_cookbook/resources/big_resource.rb").and_return(true)
90
+ allow(File).to receive(:readable?).with("/cookbooks/fake_cookbook/resources/big_resource.rb").and_return(true)
91
+ allow(IO).to receive(:read).with("/cookbooks/fake_cookbook/resources/big_resource.rb").and_return(COMBINED_RESOURCE_TEXT)
92
+ expect(subject.keys.count).to be 2
93
+ expect(subject.keys.sort).to eq(%i{dummy1 dummy2})
94
+ # This is correct - because they're not fully realised resources at this point, sensitive and friends are not added yet.
95
+ expect(subject[:dummy1][:properties].count).to be 1
96
+ expect(subject[:dummy2][:properties].count).to be 1
97
+ expect(subject[:dummy1][:properties][0][:description]).to eq "My First Property"
98
+ expect(subject[:dummy2][:properties][0][:description]).to eq "My Second Property"
99
+ end
100
+ end
65
101
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef
3
3
  version: !ruby/object:Gem::Version
4
- version: 18.5.0
4
+ version: 18.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Jacob
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-02 00:00:00.000000000 Z
11
+ date: 2024-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chef-config
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 18.5.0
19
+ version: 18.6.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 18.5.0
26
+ version: 18.6.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: chef-utils
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 18.5.0
33
+ version: 18.6.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 18.5.0
40
+ version: 18.6.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: train-core
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -45,6 +45,9 @@ dependencies:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '3.10'
48
+ - - "<="
49
+ - !ruby/object:Gem::Version
50
+ version: 3.12.7
48
51
  type: :runtime
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
@@ -52,6 +55,9 @@ dependencies:
52
55
  - - "~>"
53
56
  - !ruby/object:Gem::Version
54
57
  version: '3.10'
58
+ - - "<="
59
+ - !ruby/object:Gem::Version
60
+ version: 3.12.7
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: train-winrm
57
63
  requirement: !ruby/object:Gem::Requirement
@@ -241,6 +247,9 @@ dependencies:
241
247
  - - ">="
242
248
  - !ruby/object:Gem::Version
243
249
  version: 1.15.5
250
+ - - "<="
251
+ - !ruby/object:Gem::Version
252
+ version: 1.16.3
244
253
  type: :runtime
245
254
  prerelease: false
246
255
  version_requirements: !ruby/object:Gem::Requirement
@@ -248,6 +257,9 @@ dependencies:
248
257
  - - ">="
249
258
  - !ruby/object:Gem::Version
250
259
  version: 1.15.5
260
+ - - "<="
261
+ - !ruby/object:Gem::Version
262
+ version: 1.16.3
251
263
  - !ruby/object:Gem::Dependency
252
264
  name: ffi-yajl
253
265
  requirement: !ruby/object:Gem::Requirement
@@ -774,7 +786,6 @@ files:
774
786
  - lib/chef/file_content_management/deploy/cp.rb
775
787
  - lib/chef/file_content_management/deploy/mv_unix.rb
776
788
  - lib/chef/file_content_management/deploy/mv_windows.rb
777
- - lib/chef/file_content_management/deploy/target_io.rb
778
789
  - lib/chef/file_content_management/tempfile.rb
779
790
  - lib/chef/formatters/base.rb
780
791
  - lib/chef/formatters/doc.rb
@@ -837,7 +848,7 @@ files:
837
848
  - lib/chef/mixin/file_class.rb
838
849
  - lib/chef/mixin/from_file.rb
839
850
  - lib/chef/mixin/get_source_from_package.rb
840
- - lib/chef/mixin/homebrew_user.rb
851
+ - lib/chef/mixin/homebrew.rb
841
852
  - lib/chef/mixin/lazy_module_include.rb
842
853
  - lib/chef/mixin/notifying_block.rb
843
854
  - lib/chef/mixin/openssl_helper.rb
@@ -898,7 +909,6 @@ files:
898
909
  - lib/chef/policy_builder/policyfile.rb
899
910
  - lib/chef/property.rb
900
911
  - lib/chef/provider.rb
901
- - lib/chef/provider/.gitkeep
902
912
  - lib/chef/provider/batch.rb
903
913
  - lib/chef/provider/cookbook_file.rb
904
914
  - lib/chef/provider/cookbook_file/content.rb
@@ -966,7 +976,6 @@ files:
966
976
  - lib/chef/provider/package/rubygems.rb
967
977
  - lib/chef/provider/package/smartos.rb
968
978
  - lib/chef/provider/package/snap.rb
969
- - lib/chef/provider/package/snap_tm.rb
970
979
  - lib/chef/provider/package/solaris.rb
971
980
  - lib/chef/provider/package/windows.rb
972
981
  - lib/chef/provider/package/windows/exe.rb
@@ -1040,7 +1049,6 @@ files:
1040
1049
  - lib/chef/request_id.rb
1041
1050
  - lib/chef/reserved_names.rb
1042
1051
  - lib/chef/resource.rb
1043
- - lib/chef/resource/.gitkeep
1044
1052
  - lib/chef/resource/_rest_resource.rb
1045
1053
  - lib/chef/resource/action_class.rb
1046
1054
  - lib/chef/resource/alternatives.rb
@@ -1284,22 +1292,6 @@ files:
1284
1292
  - lib/chef/shell/ext.rb
1285
1293
  - lib/chef/shell/model_wrapper.rb
1286
1294
  - lib/chef/shell/shell_session.rb
1287
- - lib/chef/target_io.rb
1288
- - lib/chef/target_io/dir.rb
1289
- - lib/chef/target_io/etc.rb
1290
- - lib/chef/target_io/file.rb
1291
- - lib/chef/target_io/fileutils.rb
1292
- - lib/chef/target_io/http.rb
1293
- - lib/chef/target_io/io.rb
1294
- - lib/chef/target_io/shadow.rb
1295
- - lib/chef/target_io/train/dir.rb
1296
- - lib/chef/target_io/train/etc.rb
1297
- - lib/chef/target_io/train/file.rb
1298
- - lib/chef/target_io/train/fileutils.rb
1299
- - lib/chef/target_io/train/http.rb
1300
- - lib/chef/target_io/train/io.rb
1301
- - lib/chef/target_io/train/shadow.rb
1302
- - lib/chef/target_io/train_compat.rb
1303
1295
  - lib/chef/train_transport.rb
1304
1296
  - lib/chef/user.rb
1305
1297
  - lib/chef/user_v1.rb
@@ -2080,7 +2072,7 @@ files:
2080
2072
  - spec/unit/mixin/default_paths_spec.rb
2081
2073
  - spec/unit/mixin/deprecation_spec.rb
2082
2074
  - spec/unit/mixin/enforce_ownership_and_permissions_spec.rb
2083
- - spec/unit/mixin/homebrew_user_spec.rb
2075
+ - spec/unit/mixin/homebrew_spec.rb
2084
2076
  - spec/unit/mixin/lazy_module_include.rb
2085
2077
  - spec/unit/mixin/openssl_helper_spec.rb
2086
2078
  - spec/unit/mixin/params_validate_spec.rb
@@ -1,29 +0,0 @@
1
- module TargetIO
2
- class Deploy
3
- def create(file)
4
- Chef::Log.trace("Touching #{file} to create it")
5
- TargetIO::FileUtils.touch(file)
6
- end
7
-
8
- def deploy(src, dst)
9
- Chef::Log.trace("Reading modes from remote file #{dst}")
10
- stat = ::TargetIO::File.stat(dst)
11
- mode = stat.mode & 07777
12
- uid = stat.uid
13
- gid = stat.gid
14
-
15
- # TODO: Switch to TargetIO::File.open as soon as writing is implemented
16
- Chef::Log.trace("Uploading local temporary file #{src} as remote file #{dst}")
17
- connection = Chef.run_context&.transport_connection
18
- connection.upload(src, dst)
19
-
20
- Chef::Log.trace("Applying mode = #{mode.to_s(8)}, uid = #{uid}, gid = #{gid} to #{dst}")
21
- ::TargetIO::File.chown(uid, nil, dst)
22
- ::TargetIO::File.chown(nil, gid, dst)
23
- ::TargetIO::File.chmod(mode, dst)
24
-
25
- # Local clean up
26
- File.delete(src)
27
- end
28
- end
29
- end
File without changes
@@ -1,79 +0,0 @@
1
- #
2
- # Author:: T.Heinen (<thomas.heinen@gmail.com>)
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 "snap"
20
-
21
- class Chef
22
- class Provider
23
- class Package
24
- class SnapTM < Chef::Provider::Package::Snap
25
- provides :snap_package, target_mode: true
26
-
27
- def install_package(names, versions)
28
- if new_resource.source
29
- install_snap_from_source(names, new_resource.source)
30
- else
31
- Array(names).each do |snap|
32
- snap_options = new_resource.options
33
-
34
- snapctl([
35
- "install",
36
- "--channel=#{new_resource.channel}",
37
- snap_options&.map { |opt| "--#{opt}" },
38
- snap,
39
- ].flatten.compact)
40
- end
41
- end
42
- end
43
-
44
- def remove_package(names, versions)
45
- Array(names).each do |snap|
46
- snapctl([
47
- "remove",
48
- snap,
49
- ])
50
- end
51
- end
52
-
53
- def snapctl(*args)
54
- # Deferred execution can result in exit code 10
55
- shell_out!("snap", *args, returns: [0, 10])
56
- end
57
-
58
- def get_latest_package_version(name, channel)
59
- cmd = shell_out("snap info #{name}")
60
- latest = cmd.stdout.lines.detect { |l| l.start_with? " latest/#{new_resource.channel}:" }
61
- return unless latest
62
-
63
- latest.split.at(1)
64
- end
65
-
66
- def get_installed_package_by_name(name)
67
- cmd = shell_out("snap info #{name}")
68
- installed = cmd.stdout.lines.detect { |l| l.start_with? "installed:" }
69
- return {} unless installed
70
-
71
- {
72
- "name" => name,
73
- "version" => installed.split.at(1),
74
- }
75
- end
76
- end
77
- end
78
- end
79
- end
File without changes
@@ -1,12 +0,0 @@
1
- module TargetIO
2
- class Dir
3
- class << self
4
- def method_missing(m, *args, **kwargs, &block)
5
- Chef::Log.debug format("Dir::%s(%s)", m.to_s, args.join(", "))
6
-
7
- backend = ChefConfig::Config.target_mode? ? TrainCompat::Dir : ::Dir
8
- backend.send(m, *args, **kwargs, &block)
9
- end
10
- end
11
- end
12
- end
@@ -1,16 +0,0 @@
1
- module TargetIO
2
- class Etc
3
- class << self
4
- def method_missing(m, *args, **kwargs, &block)
5
- Chef::Log.debug format("Etc::%s(%s)", m.to_s, args.join(", "))
6
-
7
- if ChefConfig::Config.target_mode? && !Chef.run_context.transport_connection.os.unix?
8
- raise "Etc support only on Unix, this is " + Chef.run_context.transport_connection.platform.title
9
- end
10
-
11
- backend = ChefConfig::Config.target_mode? ? TrainCompat::Etc : ::Etc
12
- backend.send(m, *args, **kwargs, &block)
13
- end
14
- end
15
- end
16
- end
@@ -1,12 +0,0 @@
1
- module TargetIO
2
- class File
3
- class << self
4
- def method_missing(m, *args, **kwargs, &block)
5
- Chef::Log.debug format("File::%s(%s)", m.to_s, args.join(", "))
6
-
7
- backend = ChefConfig::Config.target_mode? ? TrainCompat::File : ::File
8
- backend.send(m, *args, **kwargs, &block)
9
- end
10
- end
11
- end
12
- end
@@ -1,12 +0,0 @@
1
- module TargetIO
2
- class FileUtils
3
- class << self
4
- def method_missing(m, *args, **kwargs, &block)
5
- Chef::Log.debug format("FileUtils::%s(%s)", m.to_s, args.join(", "))
6
-
7
- backend = ChefConfig::Config.target_mode? ? TrainCompat::FileUtils : ::FileUtils
8
- backend.send(m, *args, **kwargs, &block)
9
- end
10
- end
11
- end
12
- end
@@ -1,22 +0,0 @@
1
- require "forwardable" unless defined?(Forwardable)
2
-
3
- require_relative "../http/simple"
4
- require_relative "train/http"
5
-
6
- module TargetIO
7
- class HTTP
8
- extend Forwardable
9
- def_delegators :@http_class, :get, :head, :patch, :post, :put, :delete
10
-
11
- # Only for Chef::Provider::RemoteFile::HTTP
12
- def_delegators :@http_class, :streaming_request, :streaming_request_with_progress, :last_response
13
-
14
- def initialize(url, http_client_opts = {})
15
- if ::ChefConfig::Config.target_mode?
16
- @http_class = TargetIO::TrainCompat::HTTP.new(url, http_client_opts)
17
- else
18
- @http_class = Chef::HTTP::Simple.new(url, http_client_opts)
19
- end
20
- end
21
- end
22
- end