chef 16.4.41 → 16.5.64

Sign up to get free protection for your applications and to get access to all the features.
Files changed (268) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Rakefile +2 -2
  4. data/bin/knife +1 -1
  5. data/chef.gemspec +2 -1
  6. data/lib/chef/application.rb +18 -16
  7. data/lib/chef/application/apply.rb +12 -7
  8. data/lib/chef/application/base.rb +26 -23
  9. data/lib/chef/application/client.rb +10 -4
  10. data/lib/chef/application/exit_code.rb +13 -4
  11. data/lib/chef/application/knife.rb +22 -11
  12. data/lib/chef/application/solo.rb +2 -1
  13. data/lib/chef/application/windows_service.rb +14 -14
  14. data/lib/chef/application/windows_service_manager.rb +6 -6
  15. data/lib/chef/chef_fs/knife.rb +2 -2
  16. data/lib/chef/chef_fs/parallelizer.rb +0 -1
  17. data/lib/chef/client.rb +10 -11
  18. data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
  19. data/lib/chef/cookbook/synchronizer.rb +2 -2
  20. data/lib/chef/cookbook_site_streaming_uploader.rb +13 -11
  21. data/lib/chef/cookbook_uploader.rb +1 -1
  22. data/lib/chef/data_collector.rb +6 -5
  23. data/lib/chef/data_collector/config_validation.rb +22 -13
  24. data/lib/chef/data_collector/run_end_message.rb +2 -2
  25. data/lib/chef/data_collector/run_start_message.rb +1 -1
  26. data/lib/chef/deprecated.rb +1 -1
  27. data/lib/chef/deprecation/warnings.rb +2 -2
  28. data/lib/chef/digester.rb +2 -2
  29. data/lib/chef/dsl/chef_vault.rb +1 -1
  30. data/lib/chef/dsl/data_query.rb +2 -2
  31. data/lib/chef/dsl/platform_introspection.rb +1 -1
  32. data/lib/chef/encrypted_data_bag_item.rb +3 -4
  33. data/lib/chef/encrypted_data_bag_item/decryptor.rb +3 -3
  34. data/lib/chef/encrypted_data_bag_item/encryptor.rb +3 -3
  35. data/lib/chef/environment.rb +2 -2
  36. data/lib/chef/event_loggers/windows_eventlog.rb +2 -2
  37. data/lib/chef/exceptions.rb +4 -4
  38. data/lib/chef/file_access_control/windows.rb +5 -1
  39. data/lib/chef/formatters/doc.rb +7 -6
  40. data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +6 -5
  41. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +3 -3
  42. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +9 -9
  43. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +2 -2
  44. data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +3 -3
  45. data/lib/chef/formatters/minimal.rb +5 -4
  46. data/lib/chef/http.rb +6 -4
  47. data/lib/chef/http/auth_credentials.rb +5 -1
  48. data/lib/chef/http/authenticator.rb +1 -1
  49. data/lib/chef/http/basic_client.rb +4 -2
  50. data/lib/chef/http/decompressor.rb +1 -1
  51. data/lib/chef/http/http_request.rb +7 -5
  52. data/lib/chef/http/socketless_chef_zero_client.rb +5 -2
  53. data/lib/chef/http/ssl_policies.rb +1 -1
  54. data/lib/chef/json_compat.rb +1 -1
  55. data/lib/chef/knife.rb +4 -4
  56. data/lib/chef/knife/bootstrap.rb +16 -14
  57. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  58. data/lib/chef/knife/bootstrap/templates/chef-full.erb +3 -3
  59. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +7 -7
  60. data/lib/chef/knife/client_create.rb +3 -3
  61. data/lib/chef/knife/config_get.rb +8 -97
  62. data/lib/chef/knife/config_get_profile.rb +9 -9
  63. data/lib/chef/knife/config_list.rb +139 -0
  64. data/lib/chef/knife/config_list_profiles.rb +8 -98
  65. data/lib/chef/knife/config_show.rb +127 -0
  66. data/lib/chef/knife/config_use.rb +61 -0
  67. data/lib/chef/knife/config_use_profile.rb +9 -24
  68. data/lib/chef/knife/configure.rb +2 -2
  69. data/lib/chef/knife/core/bootstrap_context.rb +2 -2
  70. data/lib/chef/knife/core/object_loader.rb +1 -1
  71. data/lib/chef/knife/core/windows_bootstrap_context.rb +11 -11
  72. data/lib/chef/knife/exec.rb +2 -2
  73. data/lib/chef/knife/node_show.rb +2 -2
  74. data/lib/chef/knife/serve.rb +3 -3
  75. data/lib/chef/knife/ssh.rb +16 -1
  76. data/lib/chef/knife/ssl_check.rb +3 -3
  77. data/lib/chef/knife/status.rb +2 -2
  78. data/lib/chef/knife/user_create.rb +2 -2
  79. data/lib/chef/knife/yaml_convert.rb +1 -1
  80. data/lib/chef/local_mode.rb +2 -2
  81. data/lib/chef/log/syslog.rb +2 -2
  82. data/lib/chef/log/winevt.rb +2 -2
  83. data/lib/chef/mixin/deep_merge.rb +0 -12
  84. data/lib/chef/mixin/openssl_helper.rb +1 -4
  85. data/lib/chef/mixin/template.rb +2 -2
  86. data/lib/chef/mixin/uris.rb +2 -2
  87. data/lib/chef/mixin/versioned_api.rb +1 -2
  88. data/lib/chef/monkey_patches/net_http.rb +4 -4
  89. data/lib/chef/node_map.rb +2 -2
  90. data/lib/chef/policy_builder/policyfile.rb +2 -2
  91. data/lib/chef/provider.rb +0 -4
  92. data/lib/chef/provider/file.rb +2 -2
  93. data/lib/chef/provider/ifconfig.rb +1 -1
  94. data/lib/chef/provider/launchd.rb +2 -2
  95. data/lib/chef/provider/mount/linux.rb +63 -0
  96. data/lib/chef/provider/package/rubygems.rb +21 -18
  97. data/lib/chef/provider/package/snap.rb +0 -1
  98. data/lib/chef/provider/package/windows.rb +2 -2
  99. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +3 -1
  100. data/lib/chef/provider/package/zypper.rb +1 -1
  101. data/lib/chef/provider/remote_file/content.rb +3 -0
  102. data/lib/chef/provider/remote_file/ftp.rb +6 -4
  103. data/lib/chef/provider/remote_file/sftp.rb +6 -4
  104. data/lib/chef/provider/route.rb +2 -6
  105. data/lib/chef/provider/service/macosx.rb +2 -2
  106. data/lib/chef/provider/template_finder.rb +2 -10
  107. data/lib/chef/provider/user/dscl.rb +3 -3
  108. data/lib/chef/provider/user/mac.rb +1 -1
  109. data/lib/chef/provider/windows_task.rb +1 -2
  110. data/lib/chef/provider/zypper_repository.rb +2 -2
  111. data/lib/chef/provider_resolver.rb +1 -1
  112. data/lib/chef/providers.rb +1 -0
  113. data/lib/chef/recipe.rb +2 -2
  114. data/lib/chef/resource.rb +1 -1
  115. data/lib/chef/resource/apt_repository.rb +1 -1
  116. data/lib/chef/resource/bff_package.rb +22 -0
  117. data/lib/chef/resource/breakpoint.rb +57 -2
  118. data/lib/chef/resource/build_essential.rb +1 -1
  119. data/lib/chef/resource/cab_package.rb +29 -0
  120. data/lib/chef/resource/chef_client_cron.rb +32 -25
  121. data/lib/chef/resource/chef_client_launchd.rb +194 -0
  122. data/lib/chef/resource/chef_client_scheduled_task.rb +21 -18
  123. data/lib/chef/resource/chef_client_systemd_timer.rb +24 -17
  124. data/lib/chef/resource/chef_client_trusted_certificate.rb +101 -0
  125. data/lib/chef/resource/chef_gem.rb +10 -10
  126. data/lib/chef/resource/chef_handler.rb +148 -4
  127. data/lib/chef/resource/chef_sleep.rb +2 -2
  128. data/lib/chef/resource/chef_vault_secret.rb +1 -1
  129. data/lib/chef/resource/cookbook_file.rb +2 -2
  130. data/lib/chef/resource/cron/cron_d.rb +0 -1
  131. data/lib/chef/resource/dnf_package.rb +2 -2
  132. data/lib/chef/resource/dsc_resource.rb +0 -1
  133. data/lib/chef/resource/dsc_script.rb +2 -2
  134. data/lib/chef/resource/execute.rb +6 -6
  135. data/lib/chef/resource/file.rb +4 -4
  136. data/lib/chef/resource/gem_package.rb +5 -5
  137. data/lib/chef/resource/homebrew_package.rb +3 -3
  138. data/lib/chef/resource/homebrew_update.rb +5 -5
  139. data/lib/chef/resource/hostname.rb +2 -2
  140. data/lib/chef/resource/launchd.rb +2 -1
  141. data/lib/chef/resource/locale.rb +2 -2
  142. data/lib/chef/resource/macos_userdefaults.rb +3 -3
  143. data/lib/chef/resource/notify_group.rb +0 -1
  144. data/lib/chef/resource/ohai.rb +46 -3
  145. data/lib/chef/resource/ohai_hint.rb +33 -0
  146. data/lib/chef/resource/openssl_dhparam.rb +27 -5
  147. data/lib/chef/resource/openssl_ec_private_key.rb +6 -3
  148. data/lib/chef/resource/openssl_ec_public_key.rb +2 -2
  149. data/lib/chef/resource/openssl_rsa_private_key.rb +6 -3
  150. data/lib/chef/resource/openssl_x509_certificate.rb +14 -14
  151. data/lib/chef/resource/openssl_x509_crl.rb +19 -10
  152. data/lib/chef/resource/openssl_x509_request.rb +14 -16
  153. data/lib/chef/resource/osx_profile.rb +77 -13
  154. data/lib/chef/resource/plist.rb +1 -1
  155. data/lib/chef/resource/powershell_package_source.rb +5 -5
  156. data/lib/chef/resource/reboot.rb +2 -2
  157. data/lib/chef/resource/remote_file.rb +3 -3
  158. data/lib/chef/resource/rhsm_register.rb +22 -10
  159. data/lib/chef/resource/ruby_block.rb +2 -2
  160. data/lib/chef/resource/scm/subversion.rb +2 -2
  161. data/lib/chef/resource/service.rb +3 -3
  162. data/lib/chef/resource/ssh_known_hosts_entry.rb +2 -2
  163. data/lib/chef/resource/support/cron.d.erb +1 -1
  164. data/lib/chef/resource/support/cron_access.erb +1 -1
  165. data/lib/chef/resource/support/sudoer.erb +1 -1
  166. data/lib/chef/resource/support/ulimit.erb +1 -1
  167. data/lib/chef/resource/sysctl.rb +1 -5
  168. data/lib/chef/resource/systemd_unit.rb +2 -2
  169. data/lib/chef/resource/template.rb +2 -2
  170. data/lib/chef/resource/windows_ad_join.rb +10 -3
  171. data/lib/chef/resource/windows_certificate.rb +6 -4
  172. data/lib/chef/resource/windows_firewall_profile.rb +22 -20
  173. data/lib/chef/resource/windows_package.rb +28 -5
  174. data/lib/chef/resource/windows_printer.rb +5 -3
  175. data/lib/chef/resource/windows_printer_port.rb +6 -4
  176. data/lib/chef/resource/windows_user_privilege.rb +53 -54
  177. data/lib/chef/resource/windows_workgroup.rb +3 -3
  178. data/lib/chef/resource/yum_package.rb +2 -2
  179. data/lib/chef/resources.rb +3 -1
  180. data/lib/chef/run_context.rb +2 -2
  181. data/lib/chef/run_context/cookbook_compiler.rb +1 -1
  182. data/lib/chef/run_lock.rb +2 -2
  183. data/lib/chef/search/query.rb +4 -5
  184. data/lib/chef/shell.rb +31 -26
  185. data/lib/chef/shell/ext.rb +11 -11
  186. data/lib/chef/shell/shell_session.rb +2 -2
  187. data/lib/chef/train_transport.rb +5 -104
  188. data/lib/chef/util/diff.rb +3 -3
  189. data/lib/chef/util/powershell/cmdlet.rb +3 -1
  190. data/lib/chef/util/powershell/ps_credential.rb +18 -14
  191. data/lib/chef/util/threaded_job_queue.rb +0 -2
  192. data/lib/chef/version.rb +1 -1
  193. data/lib/chef/win32/crypto.rb +1 -1
  194. data/lib/chef/win32/registry.rb +1 -2
  195. data/spec/data/shef-config.rb +1 -1
  196. data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -5
  197. data/spec/functional/resource/aix_service_spec.rb +2 -2
  198. data/spec/functional/resource/aixinit_service_spec.rb +1 -1
  199. data/spec/functional/resource/insserv_spec.rb +1 -1
  200. data/spec/functional/resource/user/dscl_spec.rb +1 -1
  201. data/spec/functional/resource/user/mac_user_spec.rb +1 -1
  202. data/spec/functional/resource/windows_task_spec.rb +13 -13
  203. data/spec/functional/version_spec.rb +3 -3
  204. data/spec/integration/client/client_spec.rb +4 -4
  205. data/spec/integration/client/exit_code_spec.rb +3 -2
  206. data/spec/integration/client/ipv6_spec.rb +1 -1
  207. data/spec/integration/knife/{config_list_profiles_spec.rb → config_list_spec.rb} +30 -29
  208. data/spec/integration/knife/{config_get_spec.rb → config_show_spec.rb} +3 -3
  209. data/spec/integration/knife/{config_use_profile_spec.rb → config_use_spec.rb} +53 -10
  210. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
  211. data/spec/integration/ohai/ohai_spec.rb +61 -0
  212. data/spec/integration/recipes/remote_directory.rb +1 -1
  213. data/spec/integration/solo/solo_spec.rb +5 -5
  214. data/spec/spec_helper.rb +6 -3
  215. data/spec/stress/win32/file_spec.rb +1 -1
  216. data/spec/support/chef_helpers.rb +2 -2
  217. data/spec/support/matchers/leak.rb +2 -2
  218. data/spec/support/platform_helpers.rb +16 -34
  219. data/spec/support/shared/functional/securable_resource.rb +108 -27
  220. data/spec/support/shared/functional/win32_service.rb +1 -1
  221. data/spec/support/shared/unit/application_dot_d.rb +5 -3
  222. data/spec/tiny_server.rb +0 -1
  223. data/spec/unit/application/client_spec.rb +2 -2
  224. data/spec/unit/application/exit_code_spec.rb +10 -0
  225. data/spec/unit/application_spec.rb +4 -6
  226. data/spec/unit/chef_fs/parallelizer_spec.rb +5 -1
  227. data/spec/unit/chef_fs/path_util_spec.rb +1 -1
  228. data/spec/unit/cookbook/synchronizer_spec.rb +2 -2
  229. data/spec/unit/cookbook_spec.rb +2 -2
  230. data/spec/unit/data_collector/config_validation_spec.rb +208 -0
  231. data/spec/unit/data_collector_spec.rb +0 -113
  232. data/spec/unit/dsl/declare_resource_spec.rb +1 -1
  233. data/spec/unit/file_access_control_spec.rb +1 -1
  234. data/spec/unit/knife/bootstrap_spec.rb +6 -6
  235. data/spec/unit/knife/core/ui_spec.rb +1 -0
  236. data/spec/unit/knife/ssh_spec.rb +2 -2
  237. data/spec/unit/lwrp_spec.rb +3 -3
  238. data/spec/unit/mixin/deep_merge_spec.rb +15 -0
  239. data/spec/unit/mixin/openssl_helper_spec.rb +1 -1
  240. data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
  241. data/spec/unit/mixin/securable_spec.rb +2 -2
  242. data/spec/unit/node/immutable_collections_spec.rb +2 -2
  243. data/spec/unit/provider/mount/linux_spec.rb +97 -0
  244. data/spec/unit/provider/package/chocolatey_spec.rb +1 -1
  245. data/spec/unit/provider/package/powershell_spec.rb +1 -1
  246. data/spec/unit/provider/package/rubygems_spec.rb +4 -1
  247. data/spec/unit/provider/route_spec.rb +0 -2
  248. data/spec/unit/recipe_spec.rb +1 -1
  249. data/spec/unit/resource/chef_client_cron_spec.rb +35 -14
  250. data/spec/unit/resource/chef_client_launchd_spec.rb +127 -0
  251. data/spec/unit/resource/chef_client_systemd_timer_spec.rb +36 -1
  252. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +54 -0
  253. data/spec/unit/resource/launchd_spec.rb +8 -0
  254. data/spec/unit/resource/osx_profile_spec.rb +67 -1
  255. data/spec/unit/resource/rhsm_register_spec.rb +56 -18
  256. data/spec/unit/resource/windows_uac_spec.rb +1 -1
  257. data/spec/unit/resource/windows_user_privilege_spec.rb +55 -0
  258. data/spec/unit/run_lock_spec.rb +5 -1
  259. data/spec/unit/runner_spec.rb +1 -2
  260. data/spec/unit/shell/shell_ext_spec.rb +46 -3
  261. data/spec/unit/shell/shell_session_spec.rb +35 -64
  262. data/spec/unit/shell_spec.rb +16 -19
  263. data/spec/unit/train_transport_spec.rb +14 -13
  264. data/spec/unit/util/selinux_spec.rb +2 -0
  265. data/tasks/rspec.rb +0 -2
  266. metadata +41 -17
  267. data/lib/chef/dist.rb +0 -68
  268. data/spec/integration/knife/config_get_profile_spec.rb +0 -114
@@ -40,9 +40,6 @@
40
40
  # CONNECTION WITH THE SOFTWARE OR THE USE OF OTHER DEALINGS IN THE
41
41
  # SOFTWARE.
42
42
 
43
- require "diff/lcs"
44
- require "diff/lcs/hunk"
45
-
46
43
  class Chef
47
44
  class Util
48
45
  class Diff
@@ -86,6 +83,9 @@ class Chef
86
83
  # produces a unified-output-format diff with 3 lines of context
87
84
  # ChefFS uses udiff() directly
88
85
  def udiff(old_file, new_file)
86
+ require "diff/lcs"
87
+ require "diff/lcs/hunk"
88
+
89
89
  diff_str = ""
90
90
  file_length_difference = 0
91
91
 
@@ -16,7 +16,9 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- require "mixlib/shellout" unless defined?(Mixlib::ShellOut::DEFAULT_READ_TIMEOUT)
19
+ module Mixlib
20
+ autoload :ShellOut, "mixlib/shellout"
21
+ end
20
22
  require_relative "../../mixin/windows_architecture_helper"
21
23
  require_relative "cmdlet_result"
22
24
 
@@ -18,24 +18,28 @@
18
18
 
19
19
  require_relative "../../win32/crypto" if ChefUtils.windows?
20
20
 
21
- class Chef::Util::Powershell
22
- class PSCredential
23
- def initialize(username, password)
24
- @username = username
25
- @password = password
26
- end
21
+ class Chef
22
+ class Util
23
+ class Powershell
24
+ class PSCredential
25
+ def initialize(username, password)
26
+ @username = username
27
+ @password = password
28
+ end
27
29
 
28
- def to_psobject
29
- "New-Object System.Management.Automation.PSCredential('#{@username}',('#{encrypt(@password)}' | ConvertTo-SecureString))"
30
- end
30
+ def to_psobject
31
+ "New-Object System.Management.Automation.PSCredential('#{@username}',('#{encrypt(@password)}' | ConvertTo-SecureString))"
32
+ end
31
33
 
32
- alias to_s to_psobject
33
- alias to_text to_psobject
34
+ alias to_s to_psobject
35
+ alias to_text to_psobject
34
36
 
35
- private
37
+ private
36
38
 
37
- def encrypt(str)
38
- Chef::ReservedNames::Win32::Crypto.encrypt(str)
39
+ def encrypt(str)
40
+ Chef::ReservedNames::Win32::Crypto.encrypt(str)
41
+ end
42
+ end
39
43
  end
40
44
  end
41
45
  end
@@ -13,8 +13,6 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
 
16
- require "thread"
17
-
18
16
  class Chef
19
17
  class Util
20
18
  # A simple threaded job queue
@@ -23,7 +23,7 @@ require_relative "version_string"
23
23
 
24
24
  class Chef
25
25
  CHEF_ROOT = File.expand_path("..", __dir__)
26
- VERSION = Chef::VersionString.new("16.4.41")
26
+ VERSION = Chef::VersionString.new("16.5.64")
27
27
  end
28
28
 
29
29
  #
@@ -20,7 +20,7 @@ require_relative "error"
20
20
  require_relative "api/memory"
21
21
  require_relative "api/crypto"
22
22
  require_relative "unicode"
23
- require "digest"
23
+ require "digest" unless defined?(Digest)
24
24
 
25
25
  class Chef
26
26
  module ReservedNames::Win32
@@ -21,9 +21,8 @@ require_relative "api"
21
21
  require_relative "../mixin/wide_string"
22
22
 
23
23
  if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
24
- require_relative "../monkey_patches/win32/registry"
24
+ Win32.autoload :Registry, File.expand_path("../monkey_patches/win32/registry", __dir__)
25
25
  require_relative "api/registry"
26
- require "win32/registry" unless defined?(Win32::Registry)
27
26
  require "win32/api"
28
27
  end
29
28
 
@@ -7,5 +7,5 @@ ohai[:disabled_plugins] << "solaris2::cpu" << "solaris2::dmi" << "solaris2::file
7
7
  ohai[:disabled_plugins] << "solaris2::virtualization" << "solaris2::zpools"
8
8
  ohai[:disabled_plugins] << "c" << "php" << "mono" << "groovy" << "lua" << "erlang"
9
9
  ohai[:disabled_plugins] << "kernel" << "linux::filesystem" << "ruby"
10
- chef_repo_path File.dirname(__FILE__)
10
+ chef_repo_path __dir__
11
11
  cookbook_path "#{chef_repo_path}/cookbooks"
@@ -19,6 +19,7 @@
19
19
  require "spec_helper"
20
20
  require "securerandom"
21
21
  require "chef/event_loggers/windows_eventlog"
22
+ require "chef-utils"
22
23
  if ChefUtils.windows?
23
24
  require "win32/eventlog"
24
25
  include Win32
@@ -49,7 +50,7 @@ describe Chef::EventLoggers::WindowsEventLogger, :windows_only do
49
50
  logger.run_start(version, run_status)
50
51
 
51
52
  expect(event_log.read(flags, offset).any? do |e|
52
- e.source == Chef::Dist::SHORT && e.event_id == 10000 &&
53
+ e.source == ChefUtils::Dist::Infra::SHORT && e.event_id == 10000 &&
53
54
  e.string_inserts[0].include?(version)
54
55
  end ).to be_truthy
55
56
  end
@@ -58,7 +59,7 @@ describe Chef::EventLoggers::WindowsEventLogger, :windows_only do
58
59
  logger.run_started(run_status)
59
60
 
60
61
  expect(event_log.read(flags, offset).any? do |e|
61
- e.source == Chef::Dist::SHORT && e.event_id == 10001 &&
62
+ e.source == ChefUtils::Dist::Infra::SHORT && e.event_id == 10001 &&
62
63
  e.string_inserts[0].include?(run_id)
63
64
  end ).to be_truthy
64
65
  end
@@ -68,7 +69,7 @@ describe Chef::EventLoggers::WindowsEventLogger, :windows_only do
68
69
  logger.run_completed(node)
69
70
 
70
71
  expect(event_log.read(flags, offset).any? do |e|
71
- e.source == Chef::Dist::SHORT && e.event_id == 10002 &&
72
+ e.source == ChefUtils::Dist::Infra::SHORT && e.event_id == 10002 &&
72
73
  e.string_inserts[0].include?(run_id) &&
73
74
  e.string_inserts[1].include?(elapsed_time.to_s)
74
75
  end).to be_truthy
@@ -79,7 +80,7 @@ describe Chef::EventLoggers::WindowsEventLogger, :windows_only do
79
80
  logger.run_failed(mock_exception)
80
81
 
81
82
  expect(event_log.read(flags, offset).any? do |e|
82
- e.source == Chef::Dist::SHORT && e.event_id == 10003 &&
83
+ e.source == ChefUtils::Dist::Infra::SHORT && e.event_id == 10003 &&
83
84
  e.string_inserts[0].include?(run_id) &&
84
85
  e.string_inserts[1].include?(elapsed_time.to_s) &&
85
86
  e.string_inserts[2].include?(mock_exception.class.name) &&
@@ -93,7 +94,7 @@ describe Chef::EventLoggers::WindowsEventLogger, :windows_only do
93
94
  logger.run_failed(mock_exception)
94
95
 
95
96
  expect(event_log.read(flags, offset).any? do |e|
96
- e.source == Chef::Dist::SHORT && e.event_id == 10003 &&
97
+ e.source == ChefUtils::Dist::Infra::SHORT && e.event_id == 10003 &&
97
98
  e.string_inserts[0].include?("UNKNOWN") &&
98
99
  e.string_inserts[1].include?("UNKNOWN") &&
99
100
  e.string_inserts[2].include?(mock_exception.class.name) &&
@@ -89,7 +89,7 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
89
89
 
90
90
  describe "When service is a subsystem" do
91
91
  before(:all) do
92
- script_dir = File.join(File.dirname(__FILE__), "/../assets/")
92
+ script_dir = File.join(__dir__, "/../assets/")
93
93
  shell_out!("mkssys -s ctestsys -p #{script_dir}/testchefsubsys -u #{get_user_id} -S -n 15 -f 9 -R -Q")
94
94
  end
95
95
 
@@ -117,7 +117,7 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
117
117
  # Cannot run this test on a WPAR
118
118
  describe "When service is a group", :not_wpar do
119
119
  before(:all) do
120
- script_dir = File.join(File.dirname(__FILE__), "/../assets/")
120
+ script_dir = File.join(__dir__, "/../assets/")
121
121
  shell_out!("mkssys -s ctestsys -p #{script_dir}/testchefsubsys -u #{get_user_id} -S -n 15 -f 9 -R -Q -G ctestgrp")
122
122
  end
123
123
 
@@ -69,7 +69,7 @@ describe Chef::Resource::Service, :requires_root, :aix_only do
69
69
 
70
70
  before(:all) do
71
71
  File.delete("/etc/rc.d/init.d/chefinittest") if File.exist?("/etc/rc.d/init.d/chefinittest")
72
- FileUtils.cp((File.join(File.dirname(__FILE__), "/../assets/chefinittest")).to_s, "/etc/rc.d/init.d/chefinittest")
72
+ FileUtils.cp((File.join(__dir__, "/../assets/chefinittest")).to_s, "/etc/rc.d/init.d/chefinittest")
73
73
  end
74
74
 
75
75
  after(:all) do
@@ -74,7 +74,7 @@ describe Chef::Resource::Service, :requires_root, :opensuse do
74
74
 
75
75
  before(:all) do
76
76
  File.delete("/etc/init.d/inittest") if File.exist?("/etc/init.d/inittest")
77
- FileUtils.cp((File.join(File.dirname(__FILE__), "/../assets/inittest")).to_s, "/etc/init.d/inittest")
77
+ FileUtils.cp((File.join(__dir__, "/../assets/inittest")).to_s, "/etc/init.d/inittest")
78
78
  FileUtils.chmod(0755, "/etc/init.d/inittest")
79
79
  end
80
80
 
@@ -19,7 +19,7 @@ require "spec_helper"
19
19
  require "chef/mixin/shell_out"
20
20
 
21
21
  metadata = {
22
- macos_only: true,
22
+ macos_1013: true,
23
23
  requires_root: true,
24
24
  }
25
25
 
@@ -19,7 +19,7 @@ require "spec_helper"
19
19
  require "chef/mixin/shell_out"
20
20
 
21
21
  metadata = {
22
- macos_1014: true,
22
+ macos_gte_1014: true,
23
23
  requires_root: true,
24
24
  }
25
25
 
@@ -18,7 +18,7 @@
18
18
 
19
19
  require "spec_helper"
20
20
  require "chef/provider/windows_task"
21
- require "chef/dist"
21
+ require "chef-utils/dist"
22
22
 
23
23
  describe Chef::Resource::WindowsTask, :windows_only do
24
24
  # resource.task.application_name will default to task_name unless resource.command is set
@@ -47,37 +47,37 @@ describe Chef::Resource::WindowsTask, :windows_only do
47
47
 
48
48
  context "With Arguments" do
49
49
  it "creates scheduled task and sets command arguments" do
50
- subject.command "#{Chef::Dist::CLIENT} -W"
50
+ subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W"
51
51
  call_for_create_action
52
52
  # loading current resource again to check new task is creted and it matches task parameters
53
53
  current_resource = call_for_load_current_resource
54
54
  expect(current_resource.exists).to eq(true)
55
- expect(current_resource.task.application_name).to eq(Chef::Dist::CLIENT)
55
+ expect(current_resource.task.application_name).to eq(ChefUtils::Dist::Infra::CLIENT)
56
56
  expect(current_resource.task.parameters).to eq("-W")
57
57
  end
58
58
 
59
59
  it "does not converge the resource if it is already converged" do
60
- subject.command "#{Chef::Dist::CLIENT} -W"
60
+ subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W"
61
61
  subject.run_action(:create)
62
- subject.command "#{Chef::Dist::CLIENT} -W"
62
+ subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W"
63
63
  subject.run_action(:create)
64
64
  expect(subject).not_to be_updated_by_last_action
65
65
  end
66
66
 
67
67
  it "creates scheduled task and sets command arguments when arguments inclusive single quotes" do
68
- subject.command "#{Chef::Dist::CLIENT} -W -L 'C:\\chef\\chef-ad-join.log'"
68
+ subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W -L 'C:\\chef\\chef-ad-join.log'"
69
69
  call_for_create_action
70
70
  # loading current resource again to check new task is creted and it matches task parameters
71
71
  current_resource = call_for_load_current_resource
72
72
  expect(current_resource.exists).to eq(true)
73
- expect(current_resource.task.application_name).to eq(Chef::Dist::CLIENT)
73
+ expect(current_resource.task.application_name).to eq(ChefUtils::Dist::Infra::CLIENT)
74
74
  expect(current_resource.task.parameters).to eq("-W -L 'C:\\chef\\chef-ad-join.log'")
75
75
  end
76
76
 
77
77
  it "does not converge the resource if it is already converged" do
78
- subject.command "#{Chef::Dist::CLIENT} -W -L 'C:\\chef\\chef-ad-join.log'"
78
+ subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W -L 'C:\\chef\\chef-ad-join.log'"
79
79
  subject.run_action(:create)
80
- subject.command "#{Chef::Dist::CLIENT} -W -L 'C:\\chef\\chef-ad-join.log'"
80
+ subject.command "#{ChefUtils::Dist::Infra::CLIENT} -W -L 'C:\\chef\\chef-ad-join.log'"
81
81
  subject.run_action(:create)
82
82
  expect(subject).not_to be_updated_by_last_action
83
83
  end
@@ -137,19 +137,19 @@ describe Chef::Resource::WindowsTask, :windows_only do
137
137
 
138
138
  context "Without Arguments" do
139
139
  it "creates scheduled task and sets command arguments" do
140
- subject.command Chef::Dist::CLIENT
140
+ subject.command ChefUtils::Dist::Infra::CLIENT
141
141
  call_for_create_action
142
142
  # loading current resource again to check new task is creted and it matches task parameters
143
143
  current_resource = call_for_load_current_resource
144
144
  expect(current_resource.exists).to eq(true)
145
- expect(current_resource.task.application_name).to eq(Chef::Dist::CLIENT)
145
+ expect(current_resource.task.application_name).to eq(ChefUtils::Dist::Infra::CLIENT)
146
146
  expect(current_resource.task.parameters).to be_empty
147
147
  end
148
148
 
149
149
  it "does not converge the resource if it is already converged" do
150
- subject.command Chef::Dist::CLIENT
150
+ subject.command ChefUtils::Dist::Infra::CLIENT
151
151
  subject.run_action(:create)
152
- subject.command Chef::Dist::CLIENT
152
+ subject.command ChefUtils::Dist::Infra::CLIENT
153
153
  subject.run_action(:create)
154
154
  expect(subject).not_to be_updated_by_last_action
155
155
  end
@@ -19,13 +19,13 @@ require "spec_helper"
19
19
  require "chef/mixin/shell_out"
20
20
  require "chef/version"
21
21
  require "ohai/version"
22
- require "chef/dist"
22
+ require "chef-utils/dist"
23
23
 
24
24
  describe "Chef Versions", :executables do
25
25
  include Chef::Mixin::ShellOut
26
- let(:chef_dir) { File.join(File.dirname(__FILE__), "..", "..") }
26
+ let(:chef_dir) { File.join(__dir__, "..", "..") }
27
27
 
28
- binaries = [ Chef::Dist::CLIENT, "chef-shell", "chef-apply", "knife", Chef::Dist::SOLOEXEC ]
28
+ binaries = [ ChefUtils::Dist::Infra::CLIENT, "chef-shell", "chef-apply", "knife", ChefUtils::Dist::Solo::EXEC ]
29
29
 
30
30
  binaries.each do |binary|
31
31
  it "#{binary} version should be sane" do
@@ -3,7 +3,7 @@ require "support/shared/integration/integration_helper"
3
3
  require "chef/mixin/shell_out"
4
4
  require "tiny_server"
5
5
  require "tmpdir"
6
- require "chef/dist"
6
+ require "chef-utils/dist"
7
7
 
8
8
  describe "chef-client" do
9
9
 
@@ -34,7 +34,7 @@ describe "chef-client" do
34
34
  include IntegrationSupport
35
35
  include Chef::Mixin::ShellOut
36
36
 
37
- let(:chef_dir) { File.join(File.dirname(__FILE__), "..", "..", "..", "bin") }
37
+ let(:chef_dir) { File.join(__dir__, "..", "..", "..", "bin") }
38
38
 
39
39
  # Invoke `chef-client` as `ruby PATH/TO/chef-client`. This ensures the
40
40
  # following constraints are satisfied:
@@ -45,8 +45,8 @@ describe "chef-client" do
45
45
  # machine that has omnibus chef installed. In that case we need to ensure
46
46
  # we're running `chef-client` from the source tree and not the external one.
47
47
  # cf. CHEF-4914
48
- let(:chef_client) { "bundle exec #{Chef::Dist::CLIENT} --minimal-ohai" }
49
- let(:chef_solo) { "bundle exec #{Chef::Dist::SOLOEXEC} --legacy-mode --minimal-ohai" }
48
+ let(:chef_client) { "bundle exec #{ChefUtils::Dist::Infra::CLIENT} --minimal-ohai" }
49
+ let(:chef_solo) { "bundle exec #{ChefUtils::Dist::Solo::EXEC} --legacy-mode --minimal-ohai" }
50
50
 
51
51
  when_the_repository "has a cookbook with a no-op recipe" do
52
52
  before { file "cookbooks/x/recipes/default.rb", "" }
@@ -5,13 +5,14 @@ require "chef/mixin/shell_out"
5
5
  require "tiny_server"
6
6
  require "tmpdir"
7
7
  require "chef/platform"
8
+ require "chef-utils/dist"
8
9
 
9
10
  describe "chef-client" do
10
11
 
11
12
  include IntegrationSupport
12
13
  include Chef::Mixin::ShellOut
13
14
 
14
- let(:chef_dir) { File.join(File.dirname(__FILE__), "..", "..", "..", "bin") }
15
+ let(:chef_dir) { File.join(__dir__, "..", "..", "..", "bin") }
15
16
 
16
17
  # Invoke `chef-client` as `ruby PATH/TO/chef-client`. This ensures the
17
18
  # following constraints are satisfied:
@@ -22,7 +23,7 @@ describe "chef-client" do
22
23
  # machine that has omnibus chef installed. In that case we need to ensure
23
24
  # we're running `chef-client` from the source tree and not the external one.
24
25
  # cf. CHEF-4914
25
- let(:chef_client) { "bundle exec #{Chef::Dist::CLIENT} --no-fork --minimal-ohai" }
26
+ let(:chef_client) { "bundle exec #{ChefUtils::Dist::Infra::CLIENT} --no-fork --minimal-ohai" }
26
27
 
27
28
  let(:critical_env_vars) { %w{PATH RUBYOPT BUNDLE_GEMFILE GEM_PATH}.map { |o| "#{o}=#{ENV[o]}" } .join(" ") }
28
29
 
@@ -74,7 +74,7 @@ describe "chef-client" do
74
74
  basic_config_file
75
75
  end
76
76
 
77
- let(:chef_dir) { File.join(File.dirname(__FILE__), "..", "..", "..", "bin") }
77
+ let(:chef_dir) { File.join(__dir__, "..", "..", "..", "bin") }
78
78
 
79
79
  let(:chef_client_cmd) { %Q{bundle exec chef-client --minimal-ohai -c "#{path_to("config/client.rb")}" -lwarn} }
80
80
 
@@ -17,7 +17,7 @@ require "spec_helper"
17
17
  require "support/shared/integration/integration_helper"
18
18
  require "support/shared/context/config"
19
19
 
20
- describe "knife config list-profiles", :workstation do
20
+ describe "knife config list", :workstation do
21
21
  include IntegrationSupport
22
22
  include KnifeSupport
23
23
 
@@ -25,14 +25,14 @@ describe "knife config list-profiles", :workstation do
25
25
 
26
26
  when_the_repository("has a custom env") do
27
27
  let(:cmd_args) { [] }
28
- let(:knife_list_profiles) do
29
- knife("config", "list-profiles", *cmd_args, instance_filter: lambda { |instance|
28
+ let(:knife_list) do
29
+ knife("config", "list", *cmd_args, instance_filter: lambda { |instance|
30
30
  # Fake the failsafe check because this command doesn't actually process knife.rb.
31
31
  $__KNIFE_INTEGRATION_FAILSAFE_CHECK << " ole"
32
32
  allow(File).to receive(:file?).and_call_original
33
33
  })
34
34
  end
35
- subject { knife_list_profiles.stdout }
35
+ subject { knife_list.stdout }
36
36
 
37
37
  around do |ex|
38
38
  # Store and reset the value of some env vars.
@@ -40,7 +40,7 @@ describe "knife config list-profiles", :workstation do
40
40
  old_wd = Dir.pwd
41
41
  # Clear these out because they are cached permanently.
42
42
  ChefConfig::PathHelper.class_exec { remove_class_variable(:@@home_dir) }
43
- Chef::Knife::ConfigListProfiles.reset_config_loader!
43
+ Chef::Knife::ConfigList.reset_config_loader!
44
44
  begin
45
45
  ex.run
46
46
  ensure
@@ -57,6 +57,7 @@ describe "knife config list-profiles", :workstation do
57
57
  Dir.chdir(path_to("repo"))
58
58
  ENV[ChefUtils.windows? ? "CD" : "PWD"] = Dir.pwd
59
59
  ENV["HOME"] = path_to(".")
60
+ allow(TTY::Screen).to receive(:width).and_return(200)
60
61
  end
61
62
 
62
63
  # NOTE: The funky formatting with # at the end of the line of some of the
@@ -64,13 +65,13 @@ describe "knife config list-profiles", :workstation do
64
65
  # substantial trailing whitespace in most cases which many editors "helpfully" remove.
65
66
 
66
67
  context "with no credentials file" do
67
- subject { knife_list_profiles.stderr }
68
+ subject { knife_list.stderr }
68
69
  it { is_expected.to eq "FATAL: No profiles found, #{path_to(".chef/credentials")} does not exist or is empty\n" }
69
70
  end
70
71
 
71
72
  context "with an empty credentials file" do
72
73
  before { file(".chef/credentials", "") }
73
- subject { knife_list_profiles.stderr }
74
+ subject { knife_list.stderr }
74
75
  it { is_expected.to eq "FATAL: No profiles found, #{path_to(".chef/credentials")} does not exist or is empty\n" }
75
76
  end
76
77
 
@@ -82,9 +83,9 @@ describe "knife config list-profiles", :workstation do
82
83
  chef_server_url = "https://example.com/organizations/testorg"
83
84
  EOH
84
85
  it { is_expected.to eq <<~EOH.delete("#") }
85
- Profile Client Key Server #
86
- ----------------------------------------------------------------------------------#
87
- *default testuser ~/.chef/testkey.pem https://example.com/organizations/testorg#
86
+ Profile Client Key Server #
87
+ --------------------------------------------------------------------------------#
88
+ *default testuser ~/.chef/testkey.pem https://example.com/organizations/testorg #
88
89
  EOH
89
90
  end
90
91
 
@@ -106,11 +107,11 @@ describe "knife config list-profiles", :workstation do
106
107
  chef_server_url = "https://example.com/organizations/testorg"
107
108
  EOH
108
109
  it { is_expected.to eq <<~EOH.delete("#") }
109
- Profile Client Key Server #
110
- ----------------------------------------------------------------------------------#
111
- *default testuser ~/.chef/testkey.pem https://example.com/organizations/testorg#
112
- prod testuser ~/.chef/testkey.pem https://example.com/organizations/prod #
113
- qa qauser ~/src/qauser.pem https://example.com/organizations/testorg#
110
+ Profile Client Key Server #
111
+ --------------------------------------------------------------------------------#
112
+ *default testuser ~/.chef/testkey.pem https://example.com/organizations/testorg #
113
+ prod testuser ~/.chef/testkey.pem https://example.com/organizations/prod #
114
+ qa qauser ~/src/qauser.pem https://example.com/organizations/testorg #
114
115
  EOH
115
116
  end
116
117
 
@@ -133,11 +134,11 @@ describe "knife config list-profiles", :workstation do
133
134
  chef_server_url = "https://example.com/organizations/testorg"
134
135
  EOH
135
136
  it { is_expected.to eq <<~EOH.delete("#") }
136
- Profile Client Key Server #
137
- ----------------------------------------------------------------------------------#
138
- default testuser ~/.chef/testkey.pem https://example.com/organizations/testorg#
139
- *prod testuser ~/.chef/testkey.pem https://example.com/organizations/prod #
140
- qa qauser ~/src/qauser.pem https://example.com/organizations/testorg#
137
+ Profile Client Key Server #
138
+ --------------------------------------------------------------------------------#
139
+ default testuser ~/.chef/testkey.pem https://example.com/organizations/testorg #
140
+ *prod testuser ~/.chef/testkey.pem https://example.com/organizations/prod #
141
+ qa qauser ~/src/qauser.pem https://example.com/organizations/testorg #
141
142
  EOH
142
143
  end
143
144
 
@@ -160,11 +161,11 @@ describe "knife config list-profiles", :workstation do
160
161
  chef_server_url = "https://example.com/organizations/testorg"
161
162
  EOH
162
163
  it { is_expected.to eq <<~EOH.delete("#") }
163
- Profile Client Key Server #
164
- ---------------------------------------------------------------------------------#
165
- default testuser ~/.chef/testkey.pem https://example.com/organizations/testorg#
166
- prod testuser ~/.chef/testkey.pem https://example.com/organizations/prod #
167
- qa qauser ~/src/qauser.pem https://example.com/organizations/testorg#
164
+ Profile Client Key Server #
165
+ --------------------------------------------------------------------------------#
166
+ default testuser ~/.chef/testkey.pem https://example.com/organizations/testorg #
167
+ prod testuser ~/.chef/testkey.pem https://example.com/organizations/prod #
168
+ qa qauser ~/src/qauser.pem https://example.com/organizations/testorg #
168
169
  EOH
169
170
  end
170
171
 
@@ -173,7 +174,7 @@ describe "knife config list-profiles", :workstation do
173
174
  [default]
174
175
  chef_server_url = "https://example.com/organizations/testorg"
175
176
  EOH
176
- it { is_expected.to match %r{^*default .*? https://example.com/organizations/testorg$} }
177
+ it { is_expected.to match %r{^*default .*? https://example.com/organizations/testorg} }
177
178
  end
178
179
 
179
180
  context "with -i" do
@@ -183,9 +184,9 @@ describe "knife config list-profiles", :workstation do
183
184
  chef_server_url = "https://example.com/organizations/testorg"
184
185
  EOH
185
186
  it { is_expected.to eq <<~EOH.delete("#") }
186
- Profile Client Key Server #
187
- ----------------------------------------------------------------#
188
- *default https://example.com/organizations/testorg#
187
+ Profile Client Key Server #
188
+ --------------------------------------------------------------#
189
+ *default https://example.com/organizations/testorg #
189
190
  EOH
190
191
  end
191
192