Clark Boylan 546a73ba0c Install bandersnatch under python3
If the bandersnatch source is set to pip3 then install bandersnatch from
pip under python3. This will allow us to install current bandersnatch and
use newer features like package blacklisting.

Change-Id: I97d8e0ef5a1fb75c513b7f87d6f015f57cd42df6
2018-04-16 14:37:00 -07:00

89 lines
2.2 KiB
Puppet

# Copyright 2015 Hewlett-Packard Development Company, L.P.
#
# 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: bandersnatch
#
# Class to install common bandersnatch items.
#
class bandersnatch (
$bandersnatch_source = 'pip',
) {
if ! defined(Package['mercurial']) {
package { 'mercurial':
ensure => present,
}
}
if ($bandersnatch_source == 'pip') {
package { 'bandersnatch':
# Bandersnatch v2 only supports python and starts at 3.5
# We'll need to install python3 and upgrade to xenial before we can
# use that.
ensure => '1.11',
provider => openstack_pip,
}
} elsif ($bandersnatch_source == 'pip3') {
package { 'bandersnatch':
ensure => '2.2.0',
provider => pip3,
}
} else {
vcsrepo { '/opt/bandersnatch':
ensure => latest,
provider => hg,
source => $bandersnatch_source,
}
exec { 'install_bandersnatch' :
command => 'pip install -U /opt/bandersnatch',
path => '/usr/local/bin:/usr/bin:/bin/',
refreshonly => true,
subscribe => Vcsrepo['/opt/bandersnatch'],
require => [
Class['pip'],
],
}
}
file { '/var/log/bandersnatch':
ensure => directory,
}
file { '/var/run/bandersnatch':
ensure => directory,
}
include ::logrotate
logrotate::file { 'bandersnatch':
log => '/var/log/bandersnatch/mirror.log',
options => [
'compress',
'copytruncate',
'missingok',
'rotate 7',
'daily',
'notifempty',
],
}
file { '/usr/local/bin/run-bandersnatch':
ensure => present,
owner => 'root',
group => 'root',
mode => '0755',
source => 'puppet:///modules/bandersnatch/run_bandersnatch.py',
}
}