diff --git a/manifests/site.pp b/manifests/site.pp index bec70d39db..91b1302ea0 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -553,15 +553,6 @@ node /^mirror\..*\.openstack\.org$/ { } } -# Legacy machines in each region to run pypi package mirrors. -# Node-OS: precise -node /^pypi\..*\.openstack\.org$/ { - $group = "pypi" - class { 'openstack_project::pypi': - sysadmins => hiera('sysadmins', []), - } -} - # A machine to run ODSREG in preparation for summits. # Node-OS: trusty node 'design-summit-prep.openstack.org' { diff --git a/modules/openstack_project/files/run_bandersnatch.py b/modules/openstack_project/files/run_bandersnatch.py deleted file mode 100644 index c3636f84fd..0000000000 --- a/modules/openstack_project/files/run_bandersnatch.py +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/python -# Copyright (c) 2014 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. - -import logging -import requests -import subprocess - - -def setup_logging(logger): - ch = logging.StreamHandler() - formatter = logging.Formatter( - '%(asctime)s %(levelname)s: %(message)s') - ch.setFormatter(formatter) - logger.setLevel(logging.INFO) - logger.addHandler(ch) - - -def main(): - logger = logging.getLogger('bandersnatch') - setup_logging(logger) - - stale = dict() - output = subprocess.check_output( - ['bandersnatch', 'mirror'], stderr=subprocess.STDOUT) - for line in output.split('\n'): - print(line) - if 'Expected PyPI serial' in line: - url = line.split("for request ")[1].split()[0] - stale[url] = True - for url in stale.keys(): - logger.info('Purging %s' % url) - response = requests.request('PURGE', url) - if not response.ok: - logger.error('Failed to purge %s: %s' % (url, response.text)) - - -if __name__ == '__main__': - main() diff --git a/modules/openstack_project/manifests/pypi.pp b/modules/openstack_project/manifests/pypi.pp deleted file mode 100644 index ec9f195b66..0000000000 --- a/modules/openstack_project/manifests/pypi.pp +++ /dev/null @@ -1,58 +0,0 @@ -# == Class: openstack_project::pypi -# -class openstack_project::pypi ( - $vhost_name = $::fqdn, - $sysadmins = [], -) { - - class { 'openstack_project::server': - iptables_public_tcp_ports => [22, 80], - sysadmins => $sysadmins, - } - - $mirror_root = '/srv/static' - $pypi_root = "${mirror_root}/mirror" - $www_root = "${pypi_root}/web" - $wheel_root = "${www_root}/wheel" - - if ! defined(File[$mirror_root]) { - file { $mirror_root: - ensure => directory, - } - } - - class { 'openstack_project::pypi_mirror': - data_directory => "${pypi_root}", - require => File[$mirror_root] - } - - class { 'openstack_project::wheel_mirror': - data_directory => "${wheel_root}", - require => Class['Openstack_project::Pypi_mirror'], - } - - include ::httpd - - if ! defined(Httpd::Mod['rewrite']) { - httpd::mod { 'rewrite': - ensure => present, - } - } - - ::httpd::vhost { $vhost_name: - port => 80, - priority => '50', - docroot => $www_root, - require => Class['Openstack_project::Pypi_mirror'], - template => 'openstack_project/pypi.vhost.erb', - } - - file { "${www_root}/robots.txt": - ensure => present, - owner => 'root', - group => 'root', - mode => '0444', - source => 'puppet:///modules/openstack_project/disallow_robots.txt', - require => Class['Openstack_project::Pypi_mirror'], - } -} diff --git a/modules/openstack_project/manifests/pypi_mirror.pp b/modules/openstack_project/manifests/pypi_mirror.pp deleted file mode 100644 index 87414e6c19..0000000000 --- a/modules/openstack_project/manifests/pypi_mirror.pp +++ /dev/null @@ -1,65 +0,0 @@ -# == Class: openstack_project::pypi_mirror -# -class openstack_project::pypi_mirror ( - $data_directory = '/srv/static/mirror', - $cron_frequency = '*/5', -) { - - file { "${data_directory}": - ensure => directory, - owner => 'root', - group => 'root', - } - - file { "${data_directory}/web": - ensure => directory, - owner => 'root', - group => 'root', - require => File["${data_directory}"], - } - - package { 'bandersnatch': - ensure => 'latest', - provider => 'pip', - } - - file { '/etc/bandersnatch.conf': - ensure => present, - content => template('openstack_project/bandersnatch.conf.erb'), - } - - file { '/var/log/bandersnatch': - ensure => directory, - } - - file { '/var/run/bandersnatch': - ensure => directory, - } - - cron { 'bandersnatch': - minute => $cron_frequency, - command => 'flock -n /var/run/bandersnatch/mirror.lock timeout -k 2m 30m run-bandersnatch >>/var/log/bandersnatch/mirror.log 2>&1', - environment => 'PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin', - } - - 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/openstack_project/run_bandersnatch.py', - } -} diff --git a/modules/openstack_project/templates/bandersnatch.conf.erb b/modules/openstack_project/templates/bandersnatch.conf.erb deleted file mode 100644 index 5332c737fe..0000000000 --- a/modules/openstack_project/templates/bandersnatch.conf.erb +++ /dev/null @@ -1,39 +0,0 @@ -[mirror] -; The directory where the mirror data will be stored. -directory = <%= @data_directory %> - -; The PyPI server which will be mirrored. -; master = https://testpypi.python.org -; scheme for PyPI server MUST be https -master = https://pypi.python.org - -; The network socket timeout to use for all connections. This is set to a -; somewhat aggressively low value: rather fail quickly temporarily and re-run -; the client soon instead of having a process hang infinitely and have TCP not -; catching up for ages. -timeout = 10 - -; Number of worker threads to use for parallel downloads. -; Recommendations for worker thread setting: -; - leave the default of 3 to avoid overloading the pypi master -; - official servers located in data centers could run 20 workers -; - anything beyond 50 is probably unreasonable and avoided by bandersnatch -workers = 3 - -; Whether to stop a sync quickly after an error is found or whether to continue -; syncing but not marking the sync as successful. Value should be "true" or -; "false". -stop-on-error = false - -; Whether or not files that have been deleted on the master should be deleted -; on the mirror, too. -; IMPORTANT: if you are running an official mirror than you *need* to leave -; this on. -delete-packages = true - -[statistics] -; A glob pattern matching all access log files that should be processed to -; generate daily access statistics that will be aggregated on the master PyPI. -access-log-pattern = /var/log/apache2/pypi.*openstack.org_access.* - -; vim: set ft=cfg: