diff options
author | Steve Huff <shuff@vecna.org> | 2014-02-26 12:04:54 -0500 |
---|---|---|
committer | Steve Huff <shuff@vecna.org> | 2014-02-26 12:04:54 -0500 |
commit | cc60884faa51751a7c2f07d94bec192fb57b76b3 (patch) | |
tree | 40d58ec536294665851d6068e7b34c2259f965c9 | |
parent | 2bb37cdbc62868f11de93c93853eea03bda513fd (diff) |
prevent Facter error when packages not installed
on RHEL systems, `pkg.retrieve[pkg.property(:ensure)]` returns `:absent`
when a package is not installed; this can generate an unsightly error
when running these facts on a RHEL system where the necessary OS
packages are not installed:
[root@gepeto ~]# facter -p osfamily
RedHat
[root@gepeto ~]# facter -p lsbmajdistrelease
5
[root@gepeto ~]# grep version /etc/puppet/modules/python/Modulefile
version '1.6.3'
[root@gepeto ~]# facter -p virtualenv_version pip_version
Could not retrieve virtualenv_version: can't convert Symbol into String
Could not retrieve pip_version: undefined method `[]' for nil:NilClass
Could not retrieve pip_version: can't convert Symbol into String
pip_version =>
virtualenv_version =>
Fixes #50
-rw-r--r-- | lib/facter/pip_version.rb | 2 | ||||
-rw-r--r-- | lib/facter/python_version.rb | 4 | ||||
-rw-r--r-- | lib/facter/virtualenv_version.rb | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/lib/facter/pip_version.rb b/lib/facter/pip_version.rb index bc725db..46c50d9 100644 --- a/lib/facter/pip_version.rb +++ b/lib/facter/pip_version.rb @@ -12,7 +12,7 @@ end Facter.add("pip_version") do has_weight 50 setcode do - if pkg.retrieve[pkg.property(:ensure)] != 'purged' + unless [:absent,'purged'].include?(pkg.retrieve[pkg.property(:ensure)]) /^.*(\d+\.\d+\.\d+).*$/.match(pkg.retrieve[pkg.property(:ensure)])[1] end end diff --git a/lib/facter/python_version.rb b/lib/facter/python_version.rb index 50fef72..919fd89 100644 --- a/lib/facter/python_version.rb +++ b/lib/facter/python_version.rb @@ -5,7 +5,7 @@ pkg = Puppet::Type.type(:package).new(:name => "python") Facter.add("system_python_version") do setcode do - if pkg.retrieve[pkg.property(:ensure)] != 'purged' + unless [:absent,'purged'].include?(pkg.retrieve[pkg.property(:ensure)]) /^(\d+\.\d+\.\d+).*$/.match(pkg.retrieve[pkg.property(:ensure)])[1] end end @@ -21,7 +21,7 @@ end Facter.add("python_version") do has_weight 50 setcode do - if pkg.retrieve[pkg.property(:ensure)] != 'purged' + unless [:absent,'purged'].include?(pkg.retrieve[pkg.property(:ensure)]) /^.*(\d+\.\d+\.\d+).*$/.match(pkg.retrieve[pkg.property(:ensure)])[1] end end diff --git a/lib/facter/virtualenv_version.rb b/lib/facter/virtualenv_version.rb index c923b09..9a3b4b0 100644 --- a/lib/facter/virtualenv_version.rb +++ b/lib/facter/virtualenv_version.rb @@ -12,7 +12,7 @@ end Facter.add("virtualenv_version") do has_weight 50 setcode do - if pkg.retrieve[pkg.property(:ensure)] != 'purged' + unless [:absent,'purged'].include?(pkg.retrieve[pkg.property(:ensure)]) /^.*(\d+\.\d+\.\d+).*$/.match(pkg.retrieve[pkg.property(:ensure)])[1] end end |