From 2e3784ba2c93f8240648682ce0b3c14bcb8605a7 Mon Sep 17 00:00:00 2001 From: Jarl Stefansson Date: Thu, 7 Nov 2013 18:46:52 -0500 Subject: Added latest support to pip, fixed log param --log-file is not supported in older versions, changed to use --log Added ability to do pip --upgrade by using latest --- lib/facter/pip_version.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 lib/facter/pip_version.rb (limited to 'lib/facter/pip_version.rb') diff --git a/lib/facter/pip_version.rb b/lib/facter/pip_version.rb new file mode 100644 index 0000000..48dd0bf --- /dev/null +++ b/lib/facter/pip_version.rb @@ -0,0 +1,19 @@ +# Make pip version available as a fact +# Works with pip loaded and without, pip installed using pip and package installed +require 'puppet' +pkg = Puppet::Type.type(:package).new(:name => "python-pip") +Facter.add("pip_version") do + has_weight 100 + setcode do + Facter::Util::Resolution.exec('pip --version') + end +end + +Facter.add("pip_version") do + has_weight 50 + setcode do + if pkg.retrieve[pkg.property(:ensure)] != 'purged' + /^.*(\d+\.\d+\.\d+).*$/.match(pkg.retrieve[pkg.property(:ensure)])[1] + end + end +end -- cgit v1.2.3 From 6d88eb88f3ec00655a25f9cb83efd58f293ef4fe Mon Sep 17 00:00:00 2001 From: Jarl Stefansson Date: Thu, 2 Jan 2014 15:25:27 -0500 Subject: Fix wheel support and pip version compatability Fix wheel support and compatability for older pip versions by detecting suppport when running the pip command inside a virtualenv. --- lib/facter/pip_version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/facter/pip_version.rb') diff --git a/lib/facter/pip_version.rb b/lib/facter/pip_version.rb index 48dd0bf..131d1f9 100644 --- a/lib/facter/pip_version.rb +++ b/lib/facter/pip_version.rb @@ -5,7 +5,7 @@ pkg = Puppet::Type.type(:package).new(:name => "python-pip") Facter.add("pip_version") do has_weight 100 setcode do - Facter::Util::Resolution.exec('pip --version') + /^pip (\d+\.\d+\.?\d*).*$/.match(Facter::Util::Resolution.exec('pip --version'))[1] end end -- cgit v1.2.3 From ad2a8ba8081ee05a5b2abfb8eb813e8c6f103826 Mon Sep 17 00:00:00 2001 From: Vlastimil Holer Date: Mon, 20 Jan 2014 14:30:49 +0100 Subject: Drop stderr in pip --version --- lib/facter/pip_version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/facter/pip_version.rb') diff --git a/lib/facter/pip_version.rb b/lib/facter/pip_version.rb index 131d1f9..bc725db 100644 --- a/lib/facter/pip_version.rb +++ b/lib/facter/pip_version.rb @@ -5,7 +5,7 @@ pkg = Puppet::Type.type(:package).new(:name => "python-pip") Facter.add("pip_version") do has_weight 100 setcode do - /^pip (\d+\.\d+\.?\d*).*$/.match(Facter::Util::Resolution.exec('pip --version'))[1] + /^pip (\d+\.\d+\.?\d*).*$/.match(Facter::Util::Resolution.exec('pip --version 2>/dev/null'))[1] end end -- cgit v1.2.3 From cc60884faa51751a7c2f07d94bec192fb57b76b3 Mon Sep 17 00:00:00 2001 From: Steve Huff Date: Wed, 26 Feb 2014 12:04:54 -0500 Subject: 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 --- lib/facter/pip_version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/facter/pip_version.rb') 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 -- cgit v1.2.3 From a29284170a6687669b00fbc574f1bdc5f9e5b404 Mon Sep 17 00:00:00 2001 From: Matt Callaway Date: Tue, 4 Mar 2014 15:14:08 -0600 Subject: Add begin/rescue/end to setcode block This silences these warnings: Could not retrieve pip_version: undefined method `[]' for nil:NilClass Could not retrieve pip_version: can't convert Symbol into String --- lib/facter/pip_version.rb | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'lib/facter/pip_version.rb') diff --git a/lib/facter/pip_version.rb b/lib/facter/pip_version.rb index 46c50d9..ce32f98 100644 --- a/lib/facter/pip_version.rb +++ b/lib/facter/pip_version.rb @@ -5,15 +5,23 @@ pkg = Puppet::Type.type(:package).new(:name => "python-pip") Facter.add("pip_version") do has_weight 100 setcode do - /^pip (\d+\.\d+\.?\d*).*$/.match(Facter::Util::Resolution.exec('pip --version 2>/dev/null'))[1] + begin + /^pip (\d+\.\d+\.?\d*).*$/.match(Facter::Util::Resolution.exec('pip --version 2>/dev/null'))[1] + rescue + false + end end end Facter.add("pip_version") do has_weight 50 setcode do - unless [:absent,'purged'].include?(pkg.retrieve[pkg.property(:ensure)]) - /^.*(\d+\.\d+\.\d+).*$/.match(pkg.retrieve[pkg.property(:ensure)])[1] + begin + unless [:absent,'purged'].include?(pkg.retrieve[pkg.property(:ensure)]) + /^.*(\d+\.\d+\.\d+).*$/.match(pkg.retrieve[pkg.property(:ensure)])[1] + end + rescue + false end end end -- cgit v1.2.3