Move python-pip include to a class.

You can't have two different classes install the same package (FAIL)
But you can have two different classes include the same class, so
by encapsulating the "install pip" code into a module, we can safely
consume it across multiple modules.

Sometimes I really hate puppet.

Change-Id: I3467c52b6887298c1b4d01a29873c63edf0adfd3
Additional puppet-lint formatting

Change-Id: I6e5fa77a301eec30cff8e16bad33a91bfd95b13f
Signed-off-by: Paul Belanger <paul.belanger@polybeacon.com>
Reviewed-on: https://review.openstack.org/17176
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
Update pip module to support Red Hat distros.

Adds a new pip::params module where we set parameters based on
the operating system.

Updates the pip::init module so that it makes use of distro specific
parameters.

Also, includes a change to pip::init so that a soft link is
created for /usr/bin/pip (pointing to /usr/bin/pip-python). This
is required in order for the Puppet pip provider to work on Red Hat
distributions. Seems like we should push a fix into Puppet for this
as well but having this live here for now seems reasonable.

Change-Id: Ifee6bc42fabcf65ee1241ffac38f3bead7335be1
Reviewed-on: https://review.openstack.org/18904
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
Jenkins slave puppetry for CentOS.

The install scripts now look for CentOS in release files. Also some
instances of facter's operatingsystem are switched to osfamily and
capitalization of RedHat is normalized to match what facter uses.

Change-Id: I3bbca5481d0d5e6de9e62bfd6e2b0a85264ed6ed
Reviewed-on: https://review.openstack.org/27398
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
The facter osfamily of Ubuntu is Debian.

Clean up facter osfamily matches to just use Debian, not Ubuntu.
This is manually tested and confirmed to at least be the case on
Oneiric, Precise and Quantal.

Change-Id: I27b184ac419910f9c3271c3b4e57886333282a5f
Reviewed-on: https://review.openstack.org/27399
Reviewed-by: Spencer Krum <krum.spencer@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Tested-by: Jenkins
Add pip::python3 module and pip3 provider.

Adds python3 support to our pip package. Also adds a custom version
of the pip package provider which can be used when installing
things w/ python3-pip is explicitly required. For example:

  package { 'tox',
    provider => pip3,
    require  => Class[pip::python3],
  }

Change-Id: I1b563c8f7e647dad3a134ef1f0ec5b45b63f8b71
Reviewed-on: https://review.openstack.org/32451
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
Don't symlink pip on Fedora.

* modules/pip/manifests/init.pp: Fedora installs /usr/bin/pip and
thus doesn't need a symlink there like CentOS and RHEL do.

Change-Id: I2da3d5ed11db94da3ee2c3c7cae96c76e124dbd5
Reviewed-on: https://review.openstack.org/34081
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
Make pip3_cmd a class method.

* modules/pip/lib/puppet/provider/package/pip3.rb(pip3_cmd): The
instances class method was attempting to call the pip3_cmd instance
method, which does not work. Instead define a self.pip3_cmd method
it can call and then delegate the pip3_cmd instance method to that.
Also corrects an error message typo in passing.

Change-Id: I8a7b7ce353ac4293c2d7b82999402fa47dde6051
Reviewed-on: https://review.openstack.org/35708
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Tested-by: Jenkins
No longer link pip to pip-python on Red Hat

* modules/pip/manifests/init.pp: Remove the symlink workaround for
older python-pip EPEL packages since current versions now provide
/usr/bin/pip directly instead of /usr/bin/pip-python. The latter has
been switched to a symlink itself, so without this change in Puppet
we get circular symlinks and no executable.

Change-Id: If09a9c2a511dcc9ae845833543e304f1459fdeb2
Install pip using get-pip in launch node

packaged pip vs. upstream pip gets the systems very broken. Make launch-node
use get-pip to install pip as per:

http://www.pip-installer.org/en/latest/installing.html

Change-Id: Ice28b47d766c04b42462a7297911dc1a1abe5a77