
Without this patch, the SysV init scripts defined in this module will not be recognized by systemd and puppet will fail to enable the services. This is because between installing the init script and starting the service, systemd needs to be reloaded. This patch adds a new class to define the systemd reload. The conditional logic for whether the reload exec should be in the catalog is defined in the class. Then the file and service resources that depend on the reload define their relationships to the new class rather than to the exec resource so that the conditional logic does not have to be repeated for every resource. We also need to correct a bug in the init scripts themselves. The Provides statement needs to give a unique service name, not just 'zuul'. If it is not unique, insserv will error with "service zuul already provided!" when systemd tries to enable the service. Change-Id: Ica849094c6011806bdd0b205ba6b2b73856b7aa6
72 lines
2.0 KiB
Puppet
72 lines
2.0 KiB
Puppet
# Copyright 2012-2013 Hewlett-Packard Development Company, L.P.
|
|
# Copyright 2014 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: zuul::merger
|
|
#
|
|
class zuul::merger (
|
|
$ensure = undef,
|
|
$manage_log_conf = true,
|
|
) {
|
|
service { 'zuul-merger':
|
|
ensure => $ensure,
|
|
name => 'zuul-merger',
|
|
enable => true,
|
|
hasrestart => true,
|
|
require => [File['/etc/init.d/zuul-merger'],
|
|
Class['zuul::systemd_reload']]
|
|
}
|
|
|
|
cron { 'zuul_repack':
|
|
user => 'zuul',
|
|
hour => '4',
|
|
minute => '7',
|
|
command => 'find /var/lib/zuul/git/ -maxdepth 3 -type d -name ".git" -exec git --git-dir="{}" pack-refs --all \;',
|
|
environment => 'PATH=/usr/bin:/bin:/usr/sbin:/sbin',
|
|
require => [User['zuul'],
|
|
File['/var/lib/zuul/git']],
|
|
}
|
|
|
|
if $manage_log_conf {
|
|
file { '/etc/zuul/merger-logging.conf':
|
|
ensure => present,
|
|
source => 'puppet:///modules/zuul/merger-logging.conf',
|
|
}
|
|
}
|
|
|
|
include ::logrotate
|
|
::logrotate::file { 'merger.log':
|
|
log => '/var/log/zuul/merger.log',
|
|
options => [
|
|
'compress',
|
|
'missingok',
|
|
'rotate 30',
|
|
'daily',
|
|
'notifempty',
|
|
],
|
|
require => Service['zuul-merger'],
|
|
}
|
|
::logrotate::file { 'merger-debug.log':
|
|
log => '/var/log/zuul/merger-debug.log',
|
|
options => [
|
|
'compress',
|
|
'missingok',
|
|
'rotate 30',
|
|
'daily',
|
|
'notifempty',
|
|
],
|
|
require => Service['zuul-merger'],
|
|
}
|
|
}
|