diff --git a/modules/openstack_project/manifests/pypi_mirror.pp b/modules/openstack_project/manifests/pypi_mirror.pp new file mode 100644 index 0000000000..a9f09db95a --- /dev/null +++ b/modules/openstack_project/manifests/pypi_mirror.pp @@ -0,0 +1,84 @@ +# == Class: openstack_project::pypi_mirror +# +class openstack_project::pypi_mirror ( + $vhost_name, +) { + + include apache + + if ! defined(File['/srv/static']) { + file { '/srv/static': + ensure => directory, + } + } + + file { '/srv/static/mirror': + ensure => directory, + owner => 'root', + group => 'root', + } + + file { '/srv/static/mirror/web': + ensure => directory, + owner => 'root', + group => 'root', + require => File['/srv/static/mirror'], + } + + apache::vhost { $vhost_name: + port => 80, + priority => '50', + docroot => '/srv/static/mirror/web', + require => File['/srv/static/mirror/web'], + } + + file { '/srv/static/mirror/web/robots.txt': + ensure => present, + owner => 'root', + group => 'root', + mode => '0444', + source => 'puppet:///modules/openstack_project/disallow_robots.txt', + require => File['/srv/static/mirror/web'], + } + + package { 'bandersnatch': + ensure => 'present', + provider => 'pip', + } + + file { '/etc/bandersnatch.conf': + ensure => present, + source => 'puppet:///modules/openstack_project/bandersnatch.conf', + } + + file { '/var/log/bandersnatch': + ensure => directory, + } + + cron { 'bandersnatch': + minute => '*/5', + command => '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/manifests/static.pp b/modules/openstack_project/manifests/static.pp index bf4d64f8a4..10fe9e275e 100644 --- a/modules/openstack_project/manifests/static.pp +++ b/modules/openstack_project/manifests/static.pp @@ -33,8 +33,10 @@ class openstack_project::static ( ensure => present, } - file { '/srv/static': - ensure => directory, + if ! defined(File['/srv/static']) { + file { '/srv/static': + ensure => directory, + } } ########################################################### @@ -200,22 +202,11 @@ class openstack_project::static ( require => File['/srv/static/docs-draft'], } - ########################################################### - # Pypi Mirror - - file { '/srv/static/mirror': - ensure => directory, - owner => 'root', - group => 'root', - } - - file { '/srv/static/mirror/web': - ensure => directory, - owner => 'root', - group => 'root', - require => File['/srv/static/mirror'], + class { 'openstack_project::pypi_mirror': + vhost_name => 'pypi.openstack.org', } + # Legacy pypi mirror file { '/srv/static/mirror/web/openstack': ensure => directory, owner => 'jenkins', @@ -223,63 +214,6 @@ class openstack_project::static ( require => [User['jenkins'], File['/srv/static/mirror']], } - apache::vhost { 'pypi.openstack.org': - port => 80, - priority => '50', - docroot => '/srv/static/mirror/web', - require => File['/srv/static/mirror/web'], - } - - file { '/srv/static/mirror/web/robots.txt': - ensure => present, - owner => 'root', - group => 'root', - mode => '0444', - source => 'puppet:///modules/openstack_project/disallow_robots.txt', - require => File['/srv/static/mirror/web'], - } - - package { 'bandersnatch': - ensure => 'present', - provider => 'pip', - } - - file { '/etc/bandersnatch.conf': - ensure => present, - source => 'puppet:///modules/openstack_project/bandersnatch.conf', - } - - file { '/var/log/bandersnatch': - ensure => directory, - } - - cron { 'bandersnatch': - minute => '*/5', - command => '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', - } - ########################################################### # Specs