
PyYAML is already a dependency of subunit2sql, so the distro package doesn't need to be installed explicitly. If it is installed by the distro, then on a system with pip 10 the subunit2sql installation will fail. Change-Id: Ie7be5cf01fcf9a630c7bf282549a862515c159d9
120 lines
3.3 KiB
Puppet
120 lines
3.3 KiB
Puppet
# Copyright 2012-2013 Hewlett-Packard Development Company, L.P.
|
|
# Copyright 2013 OpenStack Foundation
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
# == Class: subunit2sql
|
|
#
|
|
class subunit2sql (
|
|
) {
|
|
include ::pip
|
|
|
|
package {'python-mysqldb':
|
|
ensure => present,
|
|
}
|
|
|
|
package {'python-psycopg2':
|
|
ensure => present,
|
|
}
|
|
|
|
package {'python-netifaces':
|
|
ensure => present,
|
|
}
|
|
|
|
package { 'python-subunit':
|
|
ensure => latest,
|
|
provider => openstack_pip,
|
|
require => Class['pip'],
|
|
}
|
|
|
|
exec { 'install-subunit2sql-safely':
|
|
command => 'pip install --upgrade --upgrade-strategy=only-if-needed subunit2sql',
|
|
path => '/usr/local/bin:/usr/bin:/bin/',
|
|
# This checks the current installed subunit2sql version with pip list and
|
|
# the latest version of subunit2sql on pypi with pip search and if they are
|
|
# different then we know we need to upgrade to reconcile the local version
|
|
# with the upstream version.
|
|
#
|
|
# We do this using this check here rather than a pip package resource so we
|
|
# can override pip's default upgrade strategy in order to avoid replacing
|
|
# deps we've preinstalled from system packages because they lack wheels on
|
|
# PyPI and must be otherwise rebuilt from sdist instead (specifically
|
|
# netifaces).
|
|
onlyif => '/bin/bash -c "test \\"$(pip list --format columns | sed -ne \'s/^subunit2sql\s\+\(.*\)$/\1/p\')\\" != \\"$(pip search \'subunit2sql$\' | sed -ne \'s/^subunit2sql (\(.*\)).*$/\1/p\')\\""',
|
|
require => [
|
|
Class['pip'],
|
|
Package['python-mysqldb'],
|
|
Package['python-psycopg2'],
|
|
Package['python-netifaces']
|
|
],
|
|
}
|
|
|
|
package { 'os-performance-tools':
|
|
ensure => latest,
|
|
provider => openstack_pip,
|
|
require => [
|
|
Class['pip']
|
|
],
|
|
}
|
|
|
|
package { 'testtools':
|
|
ensure => latest,
|
|
provider => openstack_pip,
|
|
require => Class['pip'],
|
|
}
|
|
|
|
if ! defined(Package['python-daemon']) {
|
|
package { 'python-daemon':
|
|
ensure => present,
|
|
}
|
|
}
|
|
|
|
if ! defined(Package['python-zmq']) {
|
|
package { 'python-zmq':
|
|
ensure => present,
|
|
}
|
|
}
|
|
|
|
if ! defined(Package['gear']) {
|
|
package { 'gear':
|
|
ensure => latest,
|
|
provider => openstack_pip,
|
|
require => Class['pip'],
|
|
}
|
|
}
|
|
|
|
if ! defined(Package['statsd']) {
|
|
package { 'statsd':
|
|
ensure => latest,
|
|
provider => openstack_pip,
|
|
require => Class['pip']
|
|
}
|
|
}
|
|
|
|
file { '/usr/local/bin/subunit-gearman-worker.py':
|
|
ensure => present,
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0755',
|
|
source => 'puppet:///modules/subunit2sql/subunit-gearman-worker.py',
|
|
require => [
|
|
Package['python-daemon'],
|
|
Package['python-zmq'],
|
|
Package['gear'],
|
|
Exec['install-subunit2sql-safely'],
|
|
Package['python-subunit'],
|
|
Package['testtools']
|
|
],
|
|
}
|
|
}
|