From 176915523acd5ddd88de187426966b0d9ffb5f4b Mon Sep 17 00:00:00 2001 From: Jarl Stefansson Date: Fri, 1 Nov 2013 18:20:01 -0400 Subject: Disable system package flag on older virtualenv --- lib/facter/virtualenv_version.rb | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 lib/facter/virtualenv_version.rb (limited to 'lib') diff --git a/lib/facter/virtualenv_version.rb b/lib/facter/virtualenv_version.rb new file mode 100644 index 0000000..2ede3f9 --- /dev/null +++ b/lib/facter/virtualenv_version.rb @@ -0,0 +1,7 @@ +require 'puppet' +pkg = Puppet::Type.type(:package).new(:name => "virtualenv") +Facter.add("virtualenv_version") do + setcode do + /^(\d+\.\d+\.\d+).*$/.match(pkg.retrieve[pkg.property(:ensure)])[1] + end +end -- cgit v1.2.3 From b044b0b9fa03adb6897a20fdc5adbb56f97856e4 Mon Sep 17 00:00:00 2001 From: Jarl Stefansson Date: Mon, 4 Nov 2013 15:39:02 -0500 Subject: Add system wide default python version to facter --- lib/facter/system_python_version.rb | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 lib/facter/system_python_version.rb (limited to 'lib') diff --git a/lib/facter/system_python_version.rb b/lib/facter/system_python_version.rb new file mode 100644 index 0000000..099104f --- /dev/null +++ b/lib/facter/system_python_version.rb @@ -0,0 +1,7 @@ +require 'puppet' +pkg = Puppet::Type.type(:package).new(:name => "python") +Facter.add("system_python_version") do + setcode do + /^(\d+\.\d+\.\d+).*$/.match(pkg.retrieve[pkg.property(:ensure)])[1] + end +end -- cgit v1.2.3 From 42e0f436f08778374bc44aa6a0b81d6fd48d6f43 Mon Sep 17 00:00:00 2001 From: Jarl Stefansson Date: Mon, 4 Nov 2013 16:32:46 -0500 Subject: Added support for pip installed virtualenv facter --- lib/facter/virtualenv_version.rb | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/facter/virtualenv_version.rb b/lib/facter/virtualenv_version.rb index 2ede3f9..327b2ca 100644 --- a/lib/facter/virtualenv_version.rb +++ b/lib/facter/virtualenv_version.rb @@ -1,7 +1,19 @@ +# Show the virtualenv version +# works with virualenv loaded and without, pip installed and package installed require 'puppet' pkg = Puppet::Type.type(:package).new(:name => "virtualenv") Facter.add("virtualenv_version") do + has_weight 100 setcode do - /^(\d+\.\d+\.\d+).*$/.match(pkg.retrieve[pkg.property(:ensure)])[1] + Facter::Util::Resolution.exec('virtualenv --version') + end +end + +Facter.add("virtualenv_version") do + has_eight 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 669e62ca668255b179d93644101fd4e534f02bcb Mon Sep 17 00:00:00 2001 From: Jarl Stefansson Date: Tue, 5 Nov 2013 10:44:38 -0500 Subject: Improve python version and virtualenv version facts --- lib/facter/system_python_version.rb | 19 +++++++++++++++++++ lib/facter/virtualenv_version.rb | 6 +++--- 2 files changed, 22 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/facter/system_python_version.rb b/lib/facter/system_python_version.rb index 099104f..6df6ae4 100644 --- a/lib/facter/system_python_version.rb +++ b/lib/facter/system_python_version.rb @@ -1,7 +1,26 @@ +# Make python versions available as facts +# In lists default python and system python versions require 'puppet' pkg = Puppet::Type.type(:package).new(:name => "python") + Facter.add("system_python_version") do setcode do /^(\d+\.\d+\.\d+).*$/.match(pkg.retrieve[pkg.property(:ensure)])[1] end end + +Facter.add("python_version") do + has_weight 100 + setcode do + /^.*(\d+\.\d+\.\d+)$/.match(Facter::Util::Resolution.exec('python -V'))[1] + end +end + +Facter.add("python_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 diff --git a/lib/facter/virtualenv_version.rb b/lib/facter/virtualenv_version.rb index 327b2ca..c923b09 100644 --- a/lib/facter/virtualenv_version.rb +++ b/lib/facter/virtualenv_version.rb @@ -1,5 +1,5 @@ -# Show the virtualenv version -# works with virualenv loaded and without, pip installed and package installed +# Make virtualenv version available as a fact +# Works with virualenv loaded and without, pip installed and package installed require 'puppet' pkg = Puppet::Type.type(:package).new(:name => "virtualenv") Facter.add("virtualenv_version") do @@ -10,7 +10,7 @@ Facter.add("virtualenv_version") do end Facter.add("virtualenv_version") do - has_eight 50 + has_weight 50 setcode do if pkg.retrieve[pkg.property(:ensure)] != 'purged' /^.*(\d+\.\d+\.\d+).*$/.match(pkg.retrieve[pkg.property(:ensure)])[1] -- cgit v1.2.3 From b4cf920545959bf6cbb5f438b59b2cba6c0ff492 Mon Sep 17 00:00:00 2001 From: Jarl Stefansson Date: Tue, 5 Nov 2013 11:22:59 -0500 Subject: Fix facter for versions --- lib/facter/python_version.rb | 28 ++++++++++++++++++++++++++++ lib/facter/system_python_version.rb | 26 -------------------------- 2 files changed, 28 insertions(+), 26 deletions(-) create mode 100644 lib/facter/python_version.rb delete mode 100644 lib/facter/system_python_version.rb (limited to 'lib') diff --git a/lib/facter/python_version.rb b/lib/facter/python_version.rb new file mode 100644 index 0000000..a2bdb26 --- /dev/null +++ b/lib/facter/python_version.rb @@ -0,0 +1,28 @@ +# Make python versions available as facts +# In lists default python and system python versions +require 'puppet' +pkg = Puppet::Type.type(:package).new(:name => "python") + +Facter.add("system_python_version") do + setcode do + if pkg.retrieve[pkg.property(:ensure)] != 'purged' + /^(\d+\.\d+\.\d+).*$/.match(pkg.retrieve[pkg.property(:ensure)])[1] + end + end +end + +Facter.add("python_version") do + has_weight 100 + setcode do + /^.*(\d+\.\d+\.\d+)$/.match(Facter::Util::Resolution.exec('python -V'))[1] + end +end + +Facter.add("python_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 diff --git a/lib/facter/system_python_version.rb b/lib/facter/system_python_version.rb deleted file mode 100644 index 6df6ae4..0000000 --- a/lib/facter/system_python_version.rb +++ /dev/null @@ -1,26 +0,0 @@ -# Make python versions available as facts -# In lists default python and system python versions -require 'puppet' -pkg = Puppet::Type.type(:package).new(:name => "python") - -Facter.add("system_python_version") do - setcode do - /^(\d+\.\d+\.\d+).*$/.match(pkg.retrieve[pkg.property(:ensure)])[1] - end -end - -Facter.add("python_version") do - has_weight 100 - setcode do - /^.*(\d+\.\d+\.\d+)$/.match(Facter::Util::Resolution.exec('python -V'))[1] - end -end - -Facter.add("python_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 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') 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') 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 fae8ae4476142112db877470fe6d374c0e63acc9 Mon Sep 17 00:00:00 2001 From: Jarl Stefansson Date: Tue, 7 Jan 2014 13:29:00 -0500 Subject: Silence facter by redirecting python -V stderr --- lib/facter/python_version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/facter/python_version.rb b/lib/facter/python_version.rb index a2bdb26..6b88ee9 100644 --- a/lib/facter/python_version.rb +++ b/lib/facter/python_version.rb @@ -14,7 +14,7 @@ end Facter.add("python_version") do has_weight 100 setcode do - /^.*(\d+\.\d+\.\d+)$/.match(Facter::Util::Resolution.exec('python -V'))[1] + /^.*(\d+\.\d+\.\d+)$/.match(Facter::Util::Resolution.exec('python -V 2>/dev/null'))[1] end end -- cgit v1.2.3 From 25d7203f8c7c152dcc4ecd75569effebee9ba25a Mon Sep 17 00:00:00 2001 From: Jarl Stefansson Date: Tue, 7 Jan 2014 14:25:42 -0500 Subject: Fix Python version detection, stderr to stdout --- lib/facter/python_version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/facter/python_version.rb b/lib/facter/python_version.rb index 6b88ee9..50fef72 100644 --- a/lib/facter/python_version.rb +++ b/lib/facter/python_version.rb @@ -14,7 +14,7 @@ end Facter.add("python_version") do has_weight 100 setcode do - /^.*(\d+\.\d+\.\d+)$/.match(Facter::Util::Resolution.exec('python -V 2>/dev/null'))[1] + /^.*(\d+\.\d+\.\d+)$/.match(Facter::Util::Resolution.exec('python -V 2>&1'))[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') 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 +- lib/facter/python_version.rb | 4 ++-- lib/facter/virtualenv_version.rb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'lib') 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 -- 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') 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 From c47678748b39c0d7b524e6cfb4b3aab2e8811c6b Mon Sep 17 00:00:00 2001 From: Matt Callaway Date: Tue, 4 Mar 2014 15:17:07 -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/python_version.rb | 22 +++++++++++++++++----- lib/facter/virtualenv_version.rb | 14 +++++++++++--- 2 files changed, 28 insertions(+), 8 deletions(-) (limited to 'lib') diff --git a/lib/facter/python_version.rb b/lib/facter/python_version.rb index 919fd89..bb9ec98 100644 --- a/lib/facter/python_version.rb +++ b/lib/facter/python_version.rb @@ -5,8 +5,12 @@ pkg = Puppet::Type.type(:package).new(:name => "python") Facter.add("system_python_version") do 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 @@ -14,15 +18,23 @@ end Facter.add("python_version") do has_weight 100 setcode do - /^.*(\d+\.\d+\.\d+)$/.match(Facter::Util::Resolution.exec('python -V 2>&1'))[1] + begin + /^.*(\d+\.\d+\.\d+)$/.match(Facter::Util::Resolution.exec('python -V 2>&1'))[1] + rescue + false + end end end Facter.add("python_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 diff --git a/lib/facter/virtualenv_version.rb b/lib/facter/virtualenv_version.rb index 9a3b4b0..04736ed 100644 --- a/lib/facter/virtualenv_version.rb +++ b/lib/facter/virtualenv_version.rb @@ -5,15 +5,23 @@ pkg = Puppet::Type.type(:package).new(:name => "virtualenv") Facter.add("virtualenv_version") do has_weight 100 setcode do - Facter::Util::Resolution.exec('virtualenv --version') + begin + Facter::Util::Resolution.exec('virtualenv --version') + rescue + false + end end end Facter.add("virtualenv_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