chef 15.13.8-universal-mingw32 → 15.16.7-universal-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +6 -6
  3. data/README.md +3 -3
  4. data/Rakefile +11 -17
  5. data/chef-universal-mingw32.gemspec +2 -2
  6. data/chef.gemspec +22 -4
  7. data/lib/chef/api_client/registration.rb +2 -2
  8. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
  9. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
  10. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +2 -2
  11. data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
  12. data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
  13. data/lib/chef/environment.rb +2 -2
  14. data/lib/chef/http.rb +2 -1
  15. data/lib/chef/knife/bootstrap.rb +2 -2
  16. data/lib/chef/knife/cookbook_download.rb +1 -1
  17. data/lib/chef/knife/cookbook_metadata.rb +1 -1
  18. data/lib/chef/knife/core/hashed_command_loader.rb +2 -2
  19. data/lib/chef/knife/exec.rb +2 -2
  20. data/lib/chef/knife/ssh.rb +16 -1
  21. data/lib/chef/provider/package/dnf/dnf_helper.py +5 -0
  22. data/lib/chef/provider/package/freebsd/pkgng.rb +3 -1
  23. data/lib/chef/provider/package/yum/yum_helper.py +4 -0
  24. data/lib/chef/provider/service/arch.rb +2 -2
  25. data/lib/chef/provider/service/debian.rb +1 -1
  26. data/lib/chef/provider/service/gentoo.rb +2 -2
  27. data/lib/chef/provider/service/macosx.rb +2 -2
  28. data/lib/chef/provider/service/openbsd.rb +1 -1
  29. data/lib/chef/provider/service/redhat.rb +2 -2
  30. data/lib/chef/provider/service/upstart.rb +1 -1
  31. data/lib/chef/resource/cron_d.rb +1 -0
  32. data/lib/chef/resource/homebrew_cask.rb +3 -3
  33. data/lib/chef/resource/hostname.rb +18 -18
  34. data/lib/chef/resource/locale.rb +1 -1
  35. data/lib/chef/resource/sudo.rb +1 -1
  36. data/lib/chef/resource/windows_feature_powershell.rb +6 -2
  37. data/lib/chef/resource/windows_font.rb +2 -1
  38. data/lib/chef/role.rb +2 -2
  39. data/lib/chef/shell.rb +32 -1
  40. data/lib/chef/util/diff.rb +1 -1
  41. data/lib/chef/util/dsc/configuration_generator.rb +1 -1
  42. data/lib/chef/util/powershell/cmdlet.rb +1 -1
  43. data/lib/chef/version.rb +1 -1
  44. data/lib/chef/version_string.rb +1 -1
  45. data/lib/chef/win32/file.rb +2 -2
  46. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  47. data/spec/functional/resource/bff_spec.rb +2 -2
  48. data/spec/functional/resource/cookbook_file_spec.rb +1 -1
  49. data/spec/functional/resource/dsc_resource_spec.rb +1 -1
  50. data/spec/functional/resource/insserv_spec.rb +4 -4
  51. data/spec/functional/resource/link_spec.rb +17 -17
  52. data/spec/functional/resource/rpm_spec.rb +2 -2
  53. data/spec/functional/resource/user/dscl_spec.rb +1 -1
  54. data/spec/functional/resource/user/mac_user_spec.rb +1 -1
  55. data/spec/functional/resource/windows_certificate_spec.rb +3 -3
  56. data/spec/functional/resource/windows_font_spec.rb +49 -0
  57. data/spec/functional/shell_spec.rb +5 -5
  58. data/spec/functional/win32/service_manager_spec.rb +1 -1
  59. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
  60. data/spec/spec_helper.rb +5 -4
  61. data/spec/support/platform_helpers.rb +12 -42
  62. data/spec/support/platforms/win32/spec_service.rb +1 -1
  63. data/spec/support/shared/functional/directory_resource.rb +1 -1
  64. data/spec/support/shared/functional/execute_resource.rb +1 -1
  65. data/spec/support/shared/functional/file_resource.rb +2 -2
  66. data/spec/support/shared/functional/win32_service.rb +1 -1
  67. data/spec/support/shared/functional/windows_script.rb +3 -3
  68. data/spec/unit/environment_spec.rb +7 -7
  69. data/spec/unit/knife/bootstrap_spec.rb +14 -14
  70. data/spec/unit/knife/cookbook_download_spec.rb +4 -4
  71. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
  72. data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
  73. data/spec/unit/knife/ssh_spec.rb +2 -2
  74. data/spec/unit/knife/supermarket_share_spec.rb +5 -3
  75. data/spec/unit/provider/package/freebsd/pkgng_spec.rb +1 -1
  76. data/spec/unit/provider/service/arch_service_spec.rb +3 -2
  77. data/spec/unit/provider/service/debian_service_spec.rb +1 -1
  78. data/spec/unit/provider/service/gentoo_service_spec.rb +7 -7
  79. data/spec/unit/provider/service/macosx_spec.rb +3 -3
  80. data/spec/unit/provider/service/redhat_spec.rb +2 -2
  81. data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
  82. data/spec/unit/resource/windows_feature_powershell_spec.rb +30 -4
  83. data/spec/unit/role_spec.rb +11 -11
  84. metadata +40 -27
@@ -31,12 +31,12 @@ describe Chef::Resource::BffPackage, :requires_root, external: ohai[:platform] !
31
31
 
32
32
  def bff_pkg_should_be_installed(resource)
33
33
  expect(shell_out("lslpp -L #{resource.name}").exitstatus).to eq(0)
34
- ::File.exists?("/usr/PkgA/bin/acommand")
34
+ ::File.exist?("/usr/PkgA/bin/acommand")
35
35
  end
36
36
 
37
37
  def bff_pkg_should_be_removed(resource)
38
38
  expect(shell_out("lslpp -L #{resource.name}").exitstatus).to eq(1)
39
- !::File.exists?("/usr/PkgA/bin/acommand")
39
+ !::File.exist?("/usr/PkgA/bin/acommand")
40
40
  end
41
41
 
42
42
  before(:all) do
@@ -72,7 +72,7 @@ describe Chef::Resource::CookbookFile do
72
72
  end
73
73
 
74
74
  after do
75
- FileUtils.rm_r(windows_non_temp_dir) if ChefUtils.windows? && File.exists?(windows_non_temp_dir)
75
+ FileUtils.rm_r(windows_non_temp_dir) if ChefUtils.windows? && File.exist?(windows_non_temp_dir)
76
76
  end
77
77
 
78
78
  end
@@ -62,7 +62,7 @@ describe Chef::Resource::DscResource, :windows_powershell_dsc_only do
62
62
  end
63
63
 
64
64
  after do
65
- File.delete(tmp_file_name) if File.exists? tmp_file_name
65
+ File.delete(tmp_file_name) if File.exist? tmp_file_name
66
66
  end
67
67
 
68
68
  it "converges the resource if it is not converged" do
@@ -39,11 +39,11 @@ describe Chef::Resource::Service, :requires_root, :sles11 do
39
39
  # Platform specific validation routines.
40
40
  def service_should_be_started(file_name)
41
41
  # The existence of this file indicates that the service was started.
42
- expect(File.exists?("#{Dir.tmpdir}/#{file_name}")).to be_truthy
42
+ expect(File.exist?("#{Dir.tmpdir}/#{file_name}")).to be_truthy
43
43
  end
44
44
 
45
45
  def service_should_be_stopped(file_name)
46
- expect(File.exists?("#{Dir.tmpdir}/#{file_name}")).to be_falsey
46
+ expect(File.exist?("#{Dir.tmpdir}/#{file_name}")).to be_falsey
47
47
  end
48
48
 
49
49
  def delete_test_files
@@ -72,13 +72,13 @@ describe Chef::Resource::Service, :requires_root, :sles11 do
72
72
  end
73
73
 
74
74
  before(:all) do
75
- File.delete("/etc/init.d/inittest") if File.exists?("/etc/init.d/inittest")
75
+ File.delete("/etc/init.d/inittest") if File.exist?("/etc/init.d/inittest")
76
76
  FileUtils.cp((File.join(File.dirname(__FILE__), "/../assets/inittest")).to_s, "/etc/init.d/inittest")
77
77
  FileUtils.chmod(0755, "/etc/init.d/inittest")
78
78
  end
79
79
 
80
80
  after(:all) do
81
- File.delete("/etc/init.d/inittest") if File.exists?("/etc/init.d/inittest")
81
+ File.delete("/etc/init.d/inittest") if File.exist?("/etc/init.d/inittest")
82
82
  end
83
83
 
84
84
  before(:each) do
@@ -56,9 +56,9 @@ describe Chef::Resource::Link do
56
56
 
57
57
  after(:each) do
58
58
  begin
59
- cleanup_link(to) if File.exists?(to)
60
- cleanup_link(target_file) if File.exists?(target_file)
61
- cleanup_link(CHEF_SPEC_BACKUP_PATH) if File.exists?(CHEF_SPEC_BACKUP_PATH)
59
+ cleanup_link(to) if File.exist?(to)
60
+ cleanup_link(target_file) if File.exist?(target_file)
61
+ cleanup_link(CHEF_SPEC_BACKUP_PATH) if File.exist?(CHEF_SPEC_BACKUP_PATH)
62
62
  rescue
63
63
  puts "Could not remove a file: #{$!}"
64
64
  end
@@ -276,7 +276,7 @@ describe Chef::Resource::Link do
276
276
  resource.run_action(:create)
277
277
  end
278
278
  it "preserves the hard link" do
279
- expect(File.exists?(target_file)).to be_truthy
279
+ expect(File.exist?(target_file)).to be_truthy
280
280
  expect(symlink?(target_file)).to be_falsey
281
281
  # Writing to one hardlinked file should cause both
282
282
  # to have the new value.
@@ -301,7 +301,7 @@ describe Chef::Resource::Link do
301
301
  resource.run_action(:create)
302
302
  end
303
303
  it "links to the target file" do
304
- expect(File.exists?(target_file)).to be_truthy
304
+ expect(File.exist?(target_file)).to be_truthy
305
305
  expect(symlink?(target_file)).to be_falsey
306
306
  # Writing to one hardlinked file should cause both
307
307
  # to have the new value.
@@ -341,7 +341,7 @@ describe Chef::Resource::Link do
341
341
  include_context "delete succeeds"
342
342
  it "the :delete action does not delete the target file" do
343
343
  resource.run_action(:delete)
344
- expect(File.exists?(to)).to be_truthy
344
+ expect(File.exist?(to)).to be_truthy
345
345
  end
346
346
  end
347
347
  context "pointing somewhere else", :requires_root_or_running_windows do
@@ -369,7 +369,7 @@ describe Chef::Resource::Link do
369
369
  include_context "delete succeeds"
370
370
  it "the :delete action does not delete the target file" do
371
371
  resource.run_action(:delete)
372
- expect(File.exists?(to)).to be_truthy
372
+ expect(File.exist?(to)).to be_truthy
373
373
  end
374
374
  end
375
375
  context "pointing nowhere" do
@@ -386,7 +386,7 @@ describe Chef::Resource::Link do
386
386
  context "and the link already exists and is a hard link to the file" do
387
387
  before(:each) do
388
388
  link(to, target_file)
389
- expect(File.exists?(target_file)).to be_truthy
389
+ expect(File.exist?(target_file)).to be_truthy
390
390
  expect(symlink?(target_file)).to be_falsey
391
391
  end
392
392
  include_context "create symbolic link succeeds"
@@ -406,7 +406,7 @@ describe Chef::Resource::Link do
406
406
  it "create errors out" do
407
407
  if windows?
408
408
  expect { resource.run_action(:create) }.to raise_error(Errno::EACCES)
409
- elsif os_x? || solaris? || freebsd? || aix?
409
+ elsif macos? || solaris? || freebsd? || aix?
410
410
  expect { resource.run_action(:create) }.to raise_error(Errno::EPERM)
411
411
  else
412
412
  expect { resource.run_action(:create) }.to raise_error(Errno::EISDIR)
@@ -585,14 +585,14 @@ describe Chef::Resource::Link do
585
585
  context "and the link already exists and is a hard link to the file" do
586
586
  before(:each) do
587
587
  link(to, target_file)
588
- expect(File.exists?(target_file)).to be_truthy
588
+ expect(File.exist?(target_file)).to be_truthy
589
589
  expect(symlink?(target_file)).to be_falsey
590
590
  end
591
591
  include_context "create hard link is noop"
592
592
  include_context "delete succeeds"
593
593
  it "the :delete action does not delete the target file" do
594
594
  resource.run_action(:delete)
595
- expect(File.exists?(to)).to be_truthy
595
+ expect(File.exist?(to)).to be_truthy
596
596
  end
597
597
  end
598
598
  context "and the link already exists and is a file" do
@@ -609,7 +609,7 @@ describe Chef::Resource::Link do
609
609
  it "errors out" do
610
610
  if windows?
611
611
  expect { resource.run_action(:create) }.to raise_error(Errno::EACCES)
612
- elsif os_x? || solaris? || freebsd? || aix?
612
+ elsif macos? || solaris? || freebsd? || aix?
613
613
  expect { resource.run_action(:create) }.to raise_error(Errno::EPERM)
614
614
  else
615
615
  expect { resource.run_action(:create) }.to raise_error(Errno::EISDIR)
@@ -656,10 +656,10 @@ describe Chef::Resource::Link do
656
656
  end
657
657
  context "and the link does not yet exist" do
658
658
  it "links to the target file" do
659
- skip("OS X/FreeBSD/AIX/Solaris symlink? and readlink working on hard links to symlinks") if os_x? || freebsd? || aix? || solaris?
659
+ skip("macOS/FreeBSD/AIX/Solaris symlink? and readlink working on hard links to symlinks") if macos? || freebsd? || aix? || solaris?
660
660
  resource.run_action(:create)
661
- expect(File.exists?(target_file)).to be_truthy
662
- # OS X gets angry about this sort of link. Bug in OS X, IMO.
661
+ expect(File.exist?(target_file)).to be_truthy
662
+ # macOS gets angry about this sort of link. Bug in macOS, IMO.
663
663
  expect(symlink?(target_file)).to be_truthy
664
664
  expect(readlink(target_file)).to eq(canonicalize(@other_target))
665
665
  end
@@ -675,9 +675,9 @@ describe Chef::Resource::Link do
675
675
  end
676
676
  context "and the link does not yet exist" do
677
677
  it "links to the target file" do
678
- skip("OS X/FreeBSD/AIX/Solaris fails to create hardlinks to broken symlinks") if os_x? || freebsd? || aix? || solaris?
678
+ skip("macOS/FreeBSD/AIX/Solaris fails to create hardlinks to broken symlinks") if macos? || freebsd? || aix? || solaris?
679
679
  resource.run_action(:create)
680
- expect(File.exists?(target_file) || File.symlink?(target_file)).to be_truthy
680
+ expect(File.exist?(target_file) || File.symlink?(target_file)).to be_truthy
681
681
  expect(symlink?(target_file)).to be_truthy
682
682
  expect(readlink(target_file)).to eq(canonicalize(@other_target))
683
683
  end
@@ -39,7 +39,7 @@ describe Chef::Resource::RpmPackage, :requires_root, external: exclude_test do
39
39
  # mytest rpm package works in centos, redhat and in suse without any dependency issues.
40
40
  else
41
41
  expect(shell_out("rpm -qa | grep mytest").exitstatus).to eq(0)
42
- ::File.exists?("/opt/mytest/mytest.sh") # The mytest rpm package contains the mytest.sh file
42
+ ::File.exist?("/opt/mytest/mytest.sh") # The mytest rpm package contains the mytest.sh file
43
43
  end
44
44
  end
45
45
 
@@ -48,7 +48,7 @@ describe Chef::Resource::RpmPackage, :requires_root, external: exclude_test do
48
48
  expect(shell_out("rpm -qa | grep dummy").exitstatus).to eq(1)
49
49
  else
50
50
  expect(shell_out("rpm -qa | grep mytest").exitstatus).to eq(1)
51
- !::File.exists?("/opt/mytest/mytest.sh")
51
+ !::File.exist?("/opt/mytest/mytest.sh")
52
52
  end
53
53
  end
54
54
 
@@ -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
 
@@ -390,7 +390,7 @@ describe Chef::Resource::WindowsCertificate, :windows_only do
390
390
  end
391
391
 
392
392
  after do
393
- if File.exists?(out_path)
393
+ if File.exist?(out_path)
394
394
  File.delete(out_path)
395
395
  end
396
396
  end
@@ -405,7 +405,7 @@ describe Chef::Resource::WindowsCertificate, :windows_only do
405
405
  expect(no_of_certificates).to eq(1)
406
406
  end
407
407
  it "Stores Certificate content at given path" do
408
- expect(File.exists?(out_path)).to be_truthy
408
+ expect(File.exist?(out_path)).to be_truthy
409
409
  end
410
410
  it "Does not converge while fetching" do
411
411
  expect(win_certificate).not_to be_updated_by_last_action
@@ -425,7 +425,7 @@ describe Chef::Resource::WindowsCertificate, :windows_only do
425
425
  expect(stdout.string.strip).to be_empty
426
426
  end
427
427
  it "Does not store certificate content at given path" do
428
- expect(File.exists?(out_path)).to be_falsy
428
+ expect(File.exist?(out_path)).to be_falsy
429
429
  end
430
430
  it "Does not converge while fetching" do
431
431
  expect(win_certificate).not_to be_updated_by_last_action
@@ -0,0 +1,49 @@
1
+ #
2
+ # Author:: Dheeraj Singh Dubey (<ddubey@chef.io>)
3
+ # Copyright:: Copyright (c) Chef Software Inc.
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ require "spec_helper"
20
+
21
+ describe Chef::Resource::WindowsFont, :windows_only do
22
+ let(:resource_name) { "Playmaker.ttf" }
23
+ let(:resource_source) { "https://www.wfonts.com/download/data/2020/05/06/playmaker/Playmaker.ttf" }
24
+
25
+ let(:run_context) do
26
+ node = Chef::Node.new
27
+ node.default[:platform] = ohai[:platform]
28
+ node.default[:platform_version] = ohai[:platform_version]
29
+ node.default[:os] = ohai[:os]
30
+ events = Chef::EventDispatch::Dispatcher.new
31
+ Chef::RunContext.new(node, {}, events)
32
+ end
33
+
34
+ subject do
35
+ resource = Chef::Resource::WindowsFont.new(resource_name, run_context)
36
+ resource.source resource_source
37
+ resource
38
+ end
39
+
40
+ it "installs font on first install" do
41
+ subject.run_action(:install)
42
+ expect(subject).to be_updated_by_last_action
43
+ end
44
+
45
+ it "does not install font when already installed" do
46
+ subject.run_action(:install)
47
+ expect(subject).not_to be_updated_by_last_action
48
+ end
49
+ end
@@ -98,13 +98,13 @@ describe Shell do
98
98
  [output, e.status]
99
99
  end
100
100
 
101
- it "boots correctly with -lauto" do
101
+ it "boots correctly with -lauto", :executables do
102
102
  output, exitstatus = run_chef_shell_with("-lauto")
103
103
  expect(output).to include("done")
104
104
  expect(exitstatus).to eq(0)
105
105
  end
106
106
 
107
- it "sets the log_level from the command line" do
107
+ it "sets the log_level from the command line", :executables do
108
108
  output, exitstatus = run_chef_shell_with("-lfatal") do |out, keyboard|
109
109
  show_log_level_code = %q[puts "===#{Chef::Log.level}==="]
110
110
  keyboard.puts(show_log_level_code)
@@ -115,13 +115,13 @@ describe Shell do
115
115
  end
116
116
 
117
117
  context "on solo mode" do
118
- it "starts correctly" do
118
+ it "starts correctly", :executables do
119
119
  output, exitstatus = run_chef_shell_with("--solo")
120
120
  expect(output).to include("done")
121
121
  expect(exitstatus).to eq(0)
122
122
  end
123
123
 
124
- it "should be able to use the API" do
124
+ it "should be able to use the API", :executables do
125
125
  output, exitstatus = run_chef_shell_with("-s") do |out, keyboard|
126
126
  simple_api_get = "api.get('data')"
127
127
  keyboard.puts(simple_api_get)
@@ -132,7 +132,7 @@ describe Shell do
132
132
  end
133
133
  end
134
134
 
135
- it "sets the override_runlist from the command line" do
135
+ it "sets the override_runlist from the command line", :executables do
136
136
  output, exitstatus = run_chef_shell_with("-o 'override::foo,override::bar'") do |out, keyboard|
137
137
  show_recipes_code = %q[puts "#{node["recipes"].inspect}"]
138
138
  keyboard.puts(show_recipes_code)
@@ -125,7 +125,7 @@ describe "Chef::Application::WindowsServiceManager", :windows_only, :system_wind
125
125
  it "start should start the service", :volatile do
126
126
  service_manager.run(["-a", "start"])
127
127
  expect(test_service_state).to eq("running")
128
- expect(File.exists?(test_service_file)).to be_truthy
128
+ expect(File.exist?(test_service_file)).to be_truthy
129
129
  end
130
130
 
131
131
  it "stop should not affect the service" do
@@ -59,7 +59,7 @@ describe "LWRPs with inline resources" do
59
59
  end
60
60
  end
61
61
 
62
- after { File.delete(LwrpShadowedPropertyTest::PATH) if File.exists?(LwrpShadowedPropertyTest::PATH) }
62
+ after { File.delete(LwrpShadowedPropertyTest::PATH) if File.exist?(LwrpShadowedPropertyTest::PATH) }
63
63
 
64
64
  # https://github.com/chef/chef/issues/4334
65
65
  it "does not warn spuriously" do
data/spec/spec_helper.rb CHANGED
@@ -69,7 +69,7 @@ end
69
69
 
70
70
  # If you want to load anything into the testing environment
71
71
  # without versioning it, add it to spec/support/local_gems.rb
72
- require "spec/support/local_gems.rb" if File.exists?(File.join(File.dirname(__FILE__), "support", "local_gems.rb"))
72
+ require "spec/support/local_gems.rb" if File.exist?(File.join(File.dirname(__FILE__), "support", "local_gems.rb"))
73
73
 
74
74
  # Explicitly require spec helpers that need to load first
75
75
  require "spec/support/platform_helpers"
@@ -139,9 +139,10 @@ RSpec.configure do |config|
139
139
 
140
140
  config.filter_run_excluding windows_only: true unless windows?
141
141
  config.filter_run_excluding not_supported_on_windows: true if windows?
142
- config.filter_run_excluding not_supported_on_macos: true if mac_osx?
143
- config.filter_run_excluding macos_only: true unless mac_osx?
144
- config.filter_run_excluding macos_1014: true unless mac_osx_1014?
142
+ config.filter_run_excluding not_supported_on_macos: true if macos?
143
+ config.filter_run_excluding macos_only: true unless macos?
144
+ config.filter_run_excluding macos_1013: true unless macos_1013?
145
+ config.filter_run_excluding macos_gte_1014: true unless macos_gte_1014?
145
146
  config.filter_run_excluding not_supported_on_aix: true if aix?
146
147
  config.filter_run_excluding not_supported_on_solaris: true if solaris?
147
148
  config.filter_run_excluding not_supported_on_gce: true if gce?
@@ -3,7 +3,6 @@ require "chef/mixin/shell_out"
3
3
  require "ohai/mixin/http_helper"
4
4
  require "ohai/mixin/gce_metadata"
5
5
  require "chef/mixin/powershell_out"
6
- require "chef/version_class"
7
6
 
8
7
  class ShellHelpers
9
8
  extend Chef::Mixin::ShellOut
@@ -100,39 +99,12 @@ def windows_user_right?(right)
100
99
  Chef::ReservedNames::Win32::Security.get_account_right(ENV["USERNAME"]).include?(right)
101
100
  end
102
101
 
103
- def mac_osx_106?
104
- if File.exists? "/usr/bin/sw_vers"
105
- result = ShellHelpers.shell_out("/usr/bin/sw_vers")
106
- result.stdout.each_line do |line|
107
- if line =~ /^ProductVersion:\s10.6.*$/
108
- return true
109
- end
110
- end
111
- end
112
-
113
- false
114
- end
115
-
116
- def mac_osx_1014?
117
- if mac_osx?
118
- ver = Chef::Version.new(ohai[:platform_version])
119
- return ver.major == 10 && ver.minor == 14
120
- end
121
-
122
- false
102
+ def macos_1013?
103
+ macos? && Gem::Requirement.new("~> 10.13.0").satisfied_by?(Gem::Version.new(ohai[:platform_version]))
123
104
  end
124
105
 
125
- def mac_osx?
126
- if File.exists? "/usr/bin/sw_vers"
127
- result = ShellHelpers.shell_out("/usr/bin/sw_vers")
128
- result.stdout.each_line do |line|
129
- if line =~ /^ProductName:\sMac OS X.*$/
130
- return true
131
- end
132
- end
133
- end
134
-
135
- false
106
+ def macos_gte_1014?
107
+ macos? && Gem::Requirement.new(">= 10.14").satisfied_by?(Gem::Version.new(ohai[:platform_version]))
136
108
  end
137
109
 
138
110
  # detects if the hardware is 64-bit (evaluates to true in "WOW64" mode in a 32-bit app on a 64-bit system)
@@ -145,26 +117,24 @@ def windows32?
145
117
  windows? && !windows64?
146
118
  end
147
119
 
148
- # def jruby?
149
-
150
120
  def unix?
151
121
  !windows?
152
122
  end
153
123
 
154
124
  def linux?
155
- !!(RUBY_PLATFORM =~ /linux/)
125
+ RUBY_PLATFORM.match?(/linux/)
156
126
  end
157
127
 
158
- def os_x?
159
- !!(RUBY_PLATFORM =~ /darwin/)
128
+ def macos?
129
+ RUBY_PLATFORM.match?(/darwin/)
160
130
  end
161
131
 
162
132
  def solaris?
163
- !!(RUBY_PLATFORM =~ /solaris/)
133
+ RUBY_PLATFORM.match?(/solaris/)
164
134
  end
165
135
 
166
136
  def freebsd?
167
- !!(RUBY_PLATFORM =~ /freebsd/)
137
+ RUBY_PLATFORM.match?(/freebsd/)
168
138
  end
169
139
 
170
140
  def intel_64bit?
@@ -200,7 +170,7 @@ def debian_family?
200
170
  end
201
171
 
202
172
  def aix?
203
- !!(RUBY_PLATFORM =~ /aix/)
173
+ RUBY_PLATFORM.match?(/aix/)
204
174
  end
205
175
 
206
176
  def wpar?
@@ -236,8 +206,8 @@ def selinux_enabled?
236
206
  end
237
207
 
238
208
  def suse?
239
- ::File.exists?("/etc/SuSE-release") ||
240
- ( ::File.exists?("/etc/os-release") && /sles|suse/.match?(File.read("/etc/os-release")) )
209
+ ::File.exist?("/etc/SuSE-release") ||
210
+ ( ::File.exist?("/etc/os-release") && /sles|suse/.match?(File.read("/etc/os-release")) )
241
211
  end
242
212
 
243
213
  def root?