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_nextcodename.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 lib/facter/debian_nextcodename.rb (limited to 'lib/facter/debian_nextcodename.rb') diff --git a/lib/facter/debian_nextcodename.rb b/lib/facter/debian_nextcodename.rb new file mode 100644 index 0000000..755a0e5 --- /dev/null +++ b/lib/facter/debian_nextcodename.rb @@ -0,0 +1,22 @@ +begin + require 'facter/util/debian' +end + +def debian_codename_to_next(codename) + if codename == "sid" + return "experimental" + else + codenames = Facter::Util::Debian::CODENAMES.values.reverse + i = codenames.index(codename) + if i and i+1 < codenames.count + return codenames[i+1] + end + end +end + +Facter.add(:debian_nextcodename) do + confine :operatingsystem => 'Debian' + setcode do + debian_codename_to_next(Facter.value('debian_codename')) + end +end -- cgit v1.2.3 From 3a7dd605e344cd8bdfa33a1fb82bfefe948cbd00 Mon Sep 17 00:00:00 2001 From: Jerome Charaoui Date: Wed, 3 Jun 2015 16:20:36 -0400 Subject: Fix bug with debian_nextcodename --- lib/facter/debian_nextcodename.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/facter/debian_nextcodename.rb') diff --git a/lib/facter/debian_nextcodename.rb b/lib/facter/debian_nextcodename.rb index 755a0e5..af16cc8 100644 --- a/lib/facter/debian_nextcodename.rb +++ b/lib/facter/debian_nextcodename.rb @@ -6,7 +6,7 @@ def debian_codename_to_next(codename) if codename == "sid" return "experimental" else - codenames = Facter::Util::Debian::CODENAMES.values.reverse + codenames = Facter::Util::Debian::CODENAMES.values i = codenames.index(codename) if i and i+1 < codenames.count return codenames[i+1] -- 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_nextcodename.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 From 5381cb7b617a78b75b593a21fe9e0e8356013f6a Mon Sep 17 00:00:00 2001 From: varac Date: Mon, 7 Dec 2015 16:51:20 +0100 Subject: [bug] Fix debian_nextcodename on wheezy hosts I noticed this behaviour because $::debian_nextcodename was "squeeze" on a wheezy host. For debugging, i inserted a "puts codenames" in lib/facter/debian_nextcodename.rb, and it turned out that it was sorted differently on wheezy and jessie hosts: On wheezy: buster stretch jessie wheezy squeeze lenny On jessie: lenny squeeze wheezy jessie stretch buster So i decided to rewrite this so this doesn't happen again. --- lib/facter/debian_nextcodename.rb | 9 ++++----- lib/facter/util/ubuntu.rb | 1 + 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'lib/facter/debian_nextcodename.rb') diff --git a/lib/facter/debian_nextcodename.rb b/lib/facter/debian_nextcodename.rb index 6e994a4..c4c569b 100644 --- a/lib/facter/debian_nextcodename.rb +++ b/lib/facter/debian_nextcodename.rb @@ -8,11 +8,10 @@ def debian_codename_to_next(codename) if codename == "sid" return "experimental" else - codenames = Facter::Util::Debian::CODENAMES.values - i = codenames.index(codename) - if i and i+1 < codenames.count - return codenames[i+1] - end + codenames = Facter::Util::Debian::CODENAMES + versions = Facter::Util::Debian::CODENAMES.invert + current_version = versions[codename] + return codenames[(current_version.to_i + 1).to_s] end end diff --git a/lib/facter/util/ubuntu.rb b/lib/facter/util/ubuntu.rb index 1b2411a..52c15e8 100644 --- a/lib/facter/util/ubuntu.rb +++ b/lib/facter/util/ubuntu.rb @@ -14,6 +14,7 @@ module Facter "utopic", "vivid", "wily", + "xenial" ] end end -- cgit v1.2.3