From b81243bff3b7adfdcbe9c2950f0762bf40701c49 Mon Sep 17 00:00:00 2001 From: Tim Smith Date: Mon, 19 Dec 2016 17:57:20 -0800 Subject: Better error handling if we can't determine Cumulus version Signed-off-by: Tim Smith --- lib/ohai/plugins/linux/platform.rb | 20 ++++++++++++++------ spec/unit/plugins/linux/platform_spec.rb | 2 -- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/ohai/plugins/linux/platform.rb b/lib/ohai/plugins/linux/platform.rb index 4a013868..aa5fece2 100644 --- a/lib/ohai/plugins/linux/platform.rb +++ b/lib/ohai/plugins/linux/platform.rb @@ -72,6 +72,19 @@ Ohai.plugin(:Platform) do File.exist?("/etc/os-release") && os_release_info["CISCO_RELEASE_INFO"] end + # + # Determines the platform version for Cumulus Linux systems + # + # @returns [String] cumulus Linux version from /etc/cumulus/etc.replace/os-release + # + def cumulus_version + release_contents = File.read("/etc/cumulus/etc.replace/os-release") + release_contents.match(/VERSION_ID=(.*)/)[1] + rescue NoMethodError, Errno::ENOENT, Errno::EACCES # rescue regex failure, file missing, or permission denied + Ohai::Log.warn("Detected Cumulus Linux, but /etc/cumulus/etc/replace/os-release could not be parsed to determine platform_version") + nil + end + # # Determines the platform version for Debian based systems # @@ -79,12 +92,7 @@ Ohai.plugin(:Platform) do # def debian_platform_version if platform == "cumulus" - if File.exist?("/etc/cumulus/etc.replace/os-release") - release_contents = File.read("/etc/cumulus/etc.replace/os-release") - release_contents.match(/VERSION_ID=(.*)/)[1] rescue nil - else - Ohai::Log.warn("Detected Cumulus Linux, but /etc/cumulus/etc/replace/os-release not found to determine platform_version") - end + cumulus_version else # not cumulus File.read("/etc/debian_version").chomp end diff --git a/spec/unit/plugins/linux/platform_spec.rb b/spec/unit/plugins/linux/platform_spec.rb index 34b79254..47d81e23 100644 --- a/spec/unit/plugins/linux/platform_spec.rb +++ b/spec/unit/plugins/linux/platform_spec.rb @@ -176,7 +176,6 @@ describe Ohai::System, "Linux plugin platform" do context "on cumulus" do let(:have_cumulus_dir) { true } - let(:have_cumulus_release) { true } let(:cumulus_release_content) do <<-OS_RELEASE NAME="Cumulus Linux" @@ -193,7 +192,6 @@ OS_RELEASE end before(:each) do - expect(File).to receive(:exist?).with("/etc/cumulus/etc.replace/os-release").and_return(true) expect(File).to receive(:read).with("/etc/cumulus/etc.replace/os-release").and_return(cumulus_release_content) end -- cgit v1.2.1