diff options
author | Tim Smith <tsmith@chef.io> | 2020-10-29 09:19:09 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-29 09:19:09 -0700 |
commit | 033de4fba12bc74183ddeaa81bfeb2e70bd9ae42 (patch) | |
tree | 92314d33400ab4c8f25f4f119cd9f7f5211bb4ed | |
parent | d7afbc38fafe295c8c8fb45b197d226070eb71b8 (diff) | |
parent | 61a991cb2fe3307d6d22822310f33f3971d2fb29 (diff) | |
download | ohai-033de4fba12bc74183ddeaa81bfeb2e70bd9ae42.tar.gz |
Merge pull request #1545 from chef/openindiana_working
Signed-off-by: Tim Smith <tsmith@chef.io>
-rw-r--r-- | lib/ohai/plugins/solaris2/platform.rb | 12 | ||||
-rw-r--r-- | spec/unit/plugins/solaris2/platform_spec.rb | 108 |
2 files changed, 95 insertions, 25 deletions
diff --git a/lib/ohai/plugins/solaris2/platform.rb b/lib/ohai/plugins/solaris2/platform.rb index e8a02e2a..e2ace48d 100644 --- a/lib/ohai/plugins/solaris2/platform.rb +++ b/lib/ohai/plugins/solaris2/platform.rb @@ -38,17 +38,15 @@ Ohai.plugin(:Platform) do file_open("/etc/release") do |file| while ( line = file.gets ) case line - when /^.*(SmartOS).*$/ + when /.*SmartOS.*/ platform "smartos" - when /^\s*(OmniOS).*r(\d+).*$/ + when /^\s*OmniOS.*r(\d+).*$/ platform "omnios" - platform_version $2 - when /^\s*(OpenIndiana).*oi_(\d+).*$/ + platform_version $1 + when /^\s*OpenIndiana.*(Development oi_|Hipster )(\d\S*)/ # https://rubular.com/r/iMtOBwbnyqDz7u platform "openindiana" platform_version $2 - when /^\s*(Oracle Solaris)/ - platform "solaris2" - when /^\s*(Solaris)\s.*$/ + when /^\s*(Oracle Solaris|Solaris)/ platform "solaris2" end end diff --git a/spec/unit/plugins/solaris2/platform_spec.rb b/spec/unit/plugins/solaris2/platform_spec.rb index 08bbec74..d52c0986 100644 --- a/spec/unit/plugins/solaris2/platform_spec.rb +++ b/spec/unit/plugins/solaris2/platform_spec.rb @@ -19,10 +19,11 @@ require "spec_helper" describe Ohai::System, "Solaris plugin platform" do + let(:plugin) { get_plugin("solaris2/platform") } + before do - @plugin = get_plugin("solaris2/platform") - allow(@plugin).to receive(:collect_os).and_return(:solaris2) - allow(@plugin).to receive(:shell_out).with("/sbin/uname -X") + allow(plugin).to receive(:collect_os).and_return(:solaris2) + allow(plugin).to receive(:shell_out).with("/sbin/uname -X") end describe "on SmartOS" do @@ -42,23 +43,23 @@ describe Ohai::System, "Solaris plugin platform" do UNAME_X allow(File).to receive(:exist?).with("/sbin/uname").and_return(true) - allow(@plugin).to receive(:shell_out).with("/sbin/uname -X").and_return(mock_shell_out(0, @uname_x, "")) + allow(plugin).to receive(:shell_out).with("/sbin/uname -X").and_return(mock_shell_out(0, @uname_x, "")) @release = StringIO.new(" SmartOS 20120130T201844Z x86_64\n") allow(File).to receive(:open).with("/etc/release").and_yield(@release) - @plugin.run + plugin.run end it "runs uname and set platform and build" do - expect(@plugin[:platform_build]).to eq("joyent_20120130T201844Z") + expect(plugin[:platform_build]).to eq("joyent_20120130T201844Z") end it "sets the platform" do - expect(@plugin[:platform]).to eq("smartos") + expect(plugin[:platform]).to eq("smartos") end it "sets the platform_version" do - expect(@plugin[:platform_version]).to eq("5.11") + expect(plugin[:platform_version]).to eq("5.11") end end @@ -80,23 +81,23 @@ describe Ohai::System, "Solaris plugin platform" do UNAME_X allow(File).to receive(:exist?).with("/sbin/uname").and_return(true) - allow(@plugin).to receive(:shell_out).with("/sbin/uname -X").and_return(mock_shell_out(0, @uname_x, "")) + allow(plugin).to receive(:shell_out).with("/sbin/uname -X").and_return(mock_shell_out(0, @uname_x, "")) @release = StringIO.new(" Oracle Solaris 11.1 X86\n") allow(File).to receive(:open).with("/etc/release").and_yield(@release) - @plugin.run + plugin.run end it "runs uname and set platform and build" do - expect(@plugin[:platform_build]).to eq("11.1") + expect(plugin[:platform_build]).to eq("11.1") end it "sets the platform" do - expect(@plugin[:platform]).to eq("solaris2") + expect(plugin[:platform]).to eq("solaris2") end it "sets the platform_version" do - expect(@plugin[:platform_version]).to eq("5.11") + expect(plugin[:platform_version]).to eq("5.11") end end @@ -118,23 +119,94 @@ describe Ohai::System, "Solaris plugin platform" do UNAME_X allow(File).to receive(:exist?).with("/sbin/uname").and_return(true) - allow(@plugin).to receive(:shell_out).with("/sbin/uname -X").and_return(mock_shell_out(0, @uname_x, "")) + allow(plugin).to receive(:shell_out).with("/sbin/uname -X").and_return(mock_shell_out(0, @uname_x, "")) @release = StringIO.new(" OmniOS v11 r151026\n Copyright 2017 OmniTI Computer Consulting, Inc. All rights reserved.\n Copyright 2018 OmniOS Community Edition (OmniOSce) Association.\n All rights reserved. Use is subject to licence terms.") allow(File).to receive(:open).with("/etc/release").and_yield(@release) - @plugin.run + plugin.run + end + + it "runs uname and set platform and build" do + expect(plugin[:platform_build]).to eq("omnios-r151026-673c59f55d") + end + + it "sets the platform" do + expect(plugin[:platform]).to eq("omnios") + end + + it "sets the platform_version" do + expect(plugin[:platform_version]).to eq("151026") + end + + end + + describe "on OpenIndiana Hipster" do + before do + @uname_x = <<~UNAME_X + System = SunOS + Node = openindiana + Release = 5.11 + KernelID = illumos-c3e16711de + Machine = i86pc + BusType = <unknown> + Serial = <unknown> + Users = <unknown> + OEM# = 0 + Origin# = 1 + NumCPU = 1 + UNAME_X + + allow(File).to receive(:exist?).with("/sbin/uname").and_return(true) + allow(plugin).to receive(:shell_out).with("/sbin/uname -X").and_return(mock_shell_out(0, @uname_x, "")) + + @release = StringIO.new(" OpenIndiana Hipster 2020.04 (powered by illumos)\n OpenIndiana Project, part of The Illumos Foundation (C) 2010-2020\n Use is subject to license terms.\n Assembled 03 May 2020") + allow(File).to receive(:open).with("/etc/release").and_yield(@release) + plugin.run end it "runs uname and set platform and build" do - expect(@plugin[:platform_build]).to eq("omnios-r151026-673c59f55d") + expect(plugin[:platform_build]).to eq("illumos-c3e16711de") + end + + it "sets the platform" do + expect(plugin[:platform]).to eq("openindiana") + end + + it "sets the platform_version" do + expect(plugin[:platform_version]).to eq("2020.04") + end + + end + + describe "on OpenIndiana pre-Hipster" do + before do + @uname_x = <<~UNAME_X + System = SunOS + Node = openindiana + Release = 5.11 + KernelID = illumos-cf2fa55 + Machine = i86pc + BusType = <unknown> + Serial = <unknown> + Users = <unknown> + OEM# = 0 + Origin# = 1 + NumCPU = 2 + UNAME_X + + allow(File).to receive(:exist?).with("/sbin/uname").and_return(true) + allow(plugin).to receive(:shell_out).with("/sbin/uname -X").and_return(mock_shell_out(0, @uname_x, "")) + @release = StringIO.new(" OpenIndiana Development oi_151.1.8 (powered by illumos)\n Copyright 2011 Oracle and/or its affiliates. All rights reserved\n Use is subject to license terms.\n Assembled 20 July 2013") + allow(File).to receive(:open).with("/etc/release").and_yield(@release) + plugin.run end it "sets the platform" do - expect(@plugin[:platform]).to eq("omnios") + expect(plugin[:platform]).to eq("openindiana") end it "sets the platform_version" do - expect(@plugin[:platform_version]).to eq("151026") + expect(plugin[:platform_version]).to eq("151.1.8") end end |