From 03325b920ca60df3c46c6d6f313bb82ae34675d0 Mon Sep 17 00:00:00 2001
From: Jeremy Stanley <fungi@yuggoth.org>
Date: Wed, 3 Sep 2014 17:18:52 +0000
Subject: [PATCH] Add Python 3.4 and PyPy to Ubuntu Trusty slaves

When building Ubuntu 14.04 LTS workers, install the python3-all-dev,
python3.4 and pypy packages so that they can be used by future jobs.
This is in preparation to deprecate the special "precise-py3k"
nodepool node types we maintain for py33 and pypy tox jobs.

Change-Id: If6543e75eda5822d645164636720f6c597e07729
---
 .../manifests/jenkins_params.pp               |  8 ++++++++
 .../manifests/thick_slave.pp                  | 19 +++++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/modules/openstack_project/manifests/jenkins_params.pp b/modules/openstack_project/manifests/jenkins_params.pp
index da729040ff..d1dd6655a3 100644
--- a/modules/openstack_project/manifests/jenkins_params.pp
+++ b/modules/openstack_project/manifests/jenkins_params.pp
@@ -41,6 +41,10 @@ class openstack_project::jenkins_params {
       $mongodb_package = 'mongodb-server'
       $pandoc_package = 'pandoc'
       $pkgconfig_package = 'pkgconfig'
+      # FIXME: no PyPy headers on RHEL
+      # FIXME: no PyPy on RHEL
+      # FIXME: no Python 3 headers on RHEL
+      # FIXME: no Python 3 on RHEL
       $python_libvirt_package = 'libvirt-python'
       $python_lxml_package = 'python-lxml'
       $python_magic_package = 'python-magic'
@@ -121,6 +125,10 @@ class openstack_project::jenkins_params {
       $mongodb_package = 'mongodb'
       $pandoc_package = 'pandoc'
       $pkgconfig_package = 'pkg-config'
+      $pypy_dev_package = 'pypy-dev'
+      $pypy_package = 'pypy'
+      $python3_dev_package = 'python3-all-dev'
+      $python3_package = 'python3.4'
       $python_libvirt_package = 'python-libvirt'
       $python_lxml_package = 'python-lxml'
       $python_magic_package = 'python-magic'
diff --git a/modules/openstack_project/manifests/thick_slave.pp b/modules/openstack_project/manifests/thick_slave.pp
index de07569097..10537ededc 100644
--- a/modules/openstack_project/manifests/thick_slave.pp
+++ b/modules/openstack_project/manifests/thick_slave.pp
@@ -77,10 +77,28 @@ class openstack_project::thick_slave(
   }
 
   if ($::lsbdistcodename == 'trusty') {
+
+    # Only install PyPy and Python 3.4 packages on Ubuntu 14.04 LTS (Trusty)
+    package { $::openstack_project::jenkins_params::pypy_dev_package:
+      ensure => present,
+    }
+    package { $::openstack_project::jenkins_params::pypy_package:
+      ensure => present,
+    }
+    package { $::openstack_project::jenkins_params::python3_dev_package:
+      ensure => present,
+    }
+    package { $::openstack_project::jenkins_params::python3_package:
+      ensure => present,
+    }
+
+    # Don't install the Ruby Gems profile script on Trusty
     file { '/etc/profile.d/rubygems.sh':
       ensure => absent,
     }
+
   } else {
+
     file { '/etc/profile.d/rubygems.sh':
       ensure => present,
       owner  => 'root',
@@ -88,6 +106,7 @@ class openstack_project::thick_slave(
       mode   => '0644',
       source => 'puppet:///modules/openstack_project/rubygems.sh',
     }
+
   }
 
   package { 'rake':