From d007a403330c553d925b1b4888d93962a5f83f99 Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Mon, 11 May 2015 10:49:27 -0400 Subject: Replace debian_*() parser functions with facts * Removes dependency on lsb-release and/or Facter >1.7 (values are based on $::lsbdistcodename, when available) * Simplifies maintenance: only lib/facter/util/* require updates as new releases are made Caveats: * apt::codename is removed; to override debian_* facts, set the FACTER_debian_codename environment variable for puppet * If tracking unstable, make sure lsb-release is installed, as other methods can't tell between testing and unstable --- lib/facter/debian_codename.rb | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 lib/facter/debian_codename.rb (limited to 'lib/facter/debian_codename.rb') diff --git a/lib/facter/debian_codename.rb b/lib/facter/debian_codename.rb new file mode 100644 index 0000000..73eeea2 --- /dev/null +++ b/lib/facter/debian_codename.rb @@ -0,0 +1,40 @@ +begin + require 'facter/util/debian' +end + +def version_to_codename(version) + if Facter::Util::Debian::CODENAMES.has_key?(version) + return Facter::Util::Debian::CODENAMES[version] + else + Facter.warn("Could not determine codename from version '#{version}'") + end +end + +Facter.add(:debian_codename) do + has_weight 99 + confine :operatingsystem => 'Debian' + setcode do + Facter.value('lsbdistcodename') + end +end + +Facter.add(:debian_codename) do + has_weight 66 + confine :operatingsystem => 'Debian' + setcode do + version_to_codename(Facter.value('operatingsystemmajrelease')) + end +end + +Facter.add(:debian_codename) do + has_weight 33 + confine :operatingsystem => 'Debian' + setcode do + debian_version = File.open('/etc/debian_version', &:readline) + if debian_version.match(/^\d+/) + version_to_codename(version_to_codename.scan(/^(\d+)/)[0][0]) + elsif debian_version.match(/^[a-z]+\/(sid|unstable)/) + debian_version.scan(/^([a-z]+)\//)[0][0] + end + end +end -- cgit v1.2.3 From 3dea5b8df77f1ab8224037eacb186ff0c026e378 Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Fri, 9 Oct 2015 17:12:31 -0400 Subject: Fix debian_codename fact when falling back to parsing /etc/debian_version --- lib/facter/debian_codename.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/facter/debian_codename.rb') diff --git a/lib/facter/debian_codename.rb b/lib/facter/debian_codename.rb index 73eeea2..06ec5ff 100644 --- a/lib/facter/debian_codename.rb +++ b/lib/facter/debian_codename.rb @@ -32,7 +32,7 @@ Facter.add(:debian_codename) do setcode do debian_version = File.open('/etc/debian_version', &:readline) if debian_version.match(/^\d+/) - version_to_codename(version_to_codename.scan(/^(\d+)/)[0][0]) + version_to_codename(debian_version.scan(/^(\d+)/)[0][0]) elsif debian_version.match(/^[a-z]+\/(sid|unstable)/) debian_version.scan(/^([a-z]+)\//)[0][0] end -- cgit v1.2.3 From a70c52c1d4f399c22fa6c71289031350a1da44b5 Mon Sep 17 00:00:00 2001 From: varac Date: Mon, 7 Dec 2015 14:27:04 +0100 Subject: Fix loading of util/debian.rb for custom facts requirering the facter/util/debian.rb module causes puppet warnings on wheezy hosts, and custom facts like `$::debian_codename` cannot be evaluated. warning: Could not load fact file /srv/dev/projects/puppet/shared-modules//apt/lib/facter/debian_nextcodename.rb: no such file to load -- facter/util/debian Removing the require line solves this. --- lib/facter/debian_codename.rb | 2 ++ lib/facter/debian_lts.rb | 2 ++ lib/facter/debian_nextcodename.rb | 2 ++ lib/facter/debian_release.rb | 2 ++ lib/facter/ubuntu_nextcodename.rb | 2 ++ 5 files changed, 10 insertions(+) (limited to 'lib/facter/debian_codename.rb') diff --git a/lib/facter/debian_codename.rb b/lib/facter/debian_codename.rb index 06ec5ff..254877a 100644 --- a/lib/facter/debian_codename.rb +++ b/lib/facter/debian_codename.rb @@ -1,5 +1,7 @@ begin require 'facter/util/debian' +rescue LoadError + require "#{File.dirname(__FILE__)}/util/debian" end def version_to_codename(version) diff --git a/lib/facter/debian_lts.rb b/lib/facter/debian_lts.rb index 1c137e1..f53a9eb 100644 --- a/lib/facter/debian_lts.rb +++ b/lib/facter/debian_lts.rb @@ -1,5 +1,7 @@ begin require 'facter/util/debian' +rescue LoadError + require "#{File.dirname(__FILE__)}/util/debian" end Facter.add(:debian_lts) do diff --git a/lib/facter/debian_nextcodename.rb b/lib/facter/debian_nextcodename.rb index af16cc8..6e994a4 100644 --- a/lib/facter/debian_nextcodename.rb +++ b/lib/facter/debian_nextcodename.rb @@ -1,5 +1,7 @@ begin require 'facter/util/debian' +rescue LoadError + require "#{File.dirname(__FILE__)}/util/debian" end def debian_codename_to_next(codename) diff --git a/lib/facter/debian_release.rb b/lib/facter/debian_release.rb index 09e8eef..2c334cc 100644 --- a/lib/facter/debian_release.rb +++ b/lib/facter/debian_release.rb @@ -1,5 +1,7 @@ begin require 'facter/util/debian' +rescue LoadError + require "#{File.dirname(__FILE__)}/util/debian" end def debian_codename_to_release(codename) diff --git a/lib/facter/ubuntu_nextcodename.rb b/lib/facter/ubuntu_nextcodename.rb index 38b64ad..ba985bf 100644 --- a/lib/facter/ubuntu_nextcodename.rb +++ b/lib/facter/ubuntu_nextcodename.rb @@ -1,5 +1,7 @@ begin require 'facter/util/ubuntu' +rescue LoadError + require "#{File.dirname(__FILE__)}/util/debian" end def ubuntu_codename_to_next(codename) -- cgit v1.2.3