Showing with 37 additions and 8 deletions.
  1. +1 −1 Modulefile
  2. +3 −2 README.md
  3. +10 −1 lib/facter/pip_version.rb
  4. +10 −1 lib/facter/python_version.rb
  5. +10 −1 lib/facter/virtualenv_version.rb
  6. +3 −2 manifests/pip.pp
2 changes: 1 addition & 1 deletion Modulefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name 'stankevich-python'
version '1.7.15'
version '1.7.16'
source 'git://github.com/stankevich/puppet-python.git'
author 'stankevich'
license 'Apache License, Version 2.0'
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Installs and manages packages from pip.

**pkgname** - the name of the package to install. Required.

**ensure** - present/latest/absent. Default: present
**ensure** - present/latest/absent. You can also specify the version. Default: present

**virtualenv** - virtualenv to run pip in. Default: system (no virtualenv)

Expand All @@ -70,7 +70,7 @@ Installs and manages packages from pip.

**environment** - Additional environment variables required to install the packages. Default: none

**egg** - The egg name to use. Default: $name of the class, e.g. cx_Oracle
**egg** - The egg name to use. Default: `$name` of the class, e.g. cx_Oracle

**install_args** - Array of additional flags to pass to pip during installaton. Default: none

Expand All @@ -80,6 +80,7 @@ Installs and manages packages from pip.
```puppet
python::pip { 'cx_Oracle' :
pkgname => 'cx_Oracle',
ensure => '5.1.2',
virtualenv => '/var/www/project1',
owner => 'appuser',
proxy => 'http://proxy.domain.com:3128',
Expand Down
11 changes: 10 additions & 1 deletion lib/facter/pip_version.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
# Make pip version available as a fact
# Works with pip loaded and without, pip installed using pip and package installed
require 'puppet'
if Gem::Version.new(Facter.value(:puppetversion)) >= Gem::Version.new('3.6')
require 'rubygems'

facter_puppet_version = Facter.value(:puppetversion)
facter_is_pe = Facter.value(:is_pe)

if facter_is_pe
facter_puppet_version = facter_puppet_version.to_s.split(' ')[0]
end

if Gem::Version.new(facter_puppet_version) >= Gem::Version.new('3.6')
pkg = Puppet::Type.type(:package).new(:name => 'python-pip', :allow_virtual => 'false')
else
pkg = Puppet::Type.type(:package).new(:name => 'python-pip')
Expand Down
11 changes: 10 additions & 1 deletion lib/facter/python_version.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
# Make python versions available as facts
# In lists default python and system python versions
require 'puppet'
if Gem::Version.new(Facter.value(:puppetversion)) >= Gem::Version.new('3.6')
require 'rubygems'

facter_puppet_version = Facter.value(:puppetversion)
facter_is_pe = Facter.value(:is_pe)

if facter_is_pe
facter_puppet_version = facter_puppet_version.to_s.split(' ')[0]
end

if Gem::Version.new(facter_puppet_version) >= Gem::Version.new('3.6')
pkg = Puppet::Type.type(:package).new(:name => 'python', :allow_virtual => 'false')
else
pkg = Puppet::Type.type(:package).new(:name => 'python')
Expand Down
11 changes: 10 additions & 1 deletion lib/facter/virtualenv_version.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
# Make virtualenv version available as a fact
# Works with virualenv loaded and without, pip installed and package installed
require 'puppet'
if Gem::Version.new(Facter.value(:puppetversion)) >= Gem::Version.new('3.6')
require 'rubygems'

facter_puppet_version = Facter.value(:puppetversion)
facter_is_pe = Facter.value(:is_pe)

if facter_is_pe
facter_puppet_version = facter_puppet_version.to_s.split(' ')[0]
end

if Gem::Version.new(facter_puppet_version) >= Gem::Version.new('3.6')
pkg = Puppet::Type.type(:package).new(:name => 'virtualenv', :allow_virtual => 'false')
else
pkg = Puppet::Type.type(:package).new(:name => 'virtualenv')
Expand Down
5 changes: 3 additions & 2 deletions manifests/pip.pp
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,9 @@
}

$source = $url ? {
false => $pkgname,
default => "${url}#egg=${egg_name}",
false => $pkgname,
/^(\/|[a-zA-Z]\:)/ => $url,
default => "${url}#egg=${egg_name}",
}

# We need to jump through hoops to make sure we issue the correct pip command
Expand Down