From 6749810c2e13a10c68db73d0c6d30834597b451e Mon Sep 17 00:00:00 2001 From: Anders Kaseorg Date: Mon, 13 Jan 2020 16:48:19 -0800 Subject: [PATCH] puppet: Fix zuli-redis.conf path typo. Signed-off-by: Anders Kaseorg --- puppet/zulip/manifests/redis.pp | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/puppet/zulip/manifests/redis.pp b/puppet/zulip/manifests/redis.pp index 39fb246d21..edd230bf89 100644 --- a/puppet/zulip/manifests/redis.pp +++ b/puppet/zulip/manifests/redis.pp @@ -19,20 +19,40 @@ class zulip::redis { package { $redis_packages: ensure => 'installed' } $file = "${redis_dir}/redis.conf" - $zulip_redisconf = "${redis_dir}/zuli-redis.conf" + $zulip_redisconf = "${redis_dir}/zulip-redis.conf" $line = "include ${zulip_redisconf}" exec { 'redis': unless => "/bin/grep -Fxqe '${line}' '${file}'", path => '/bin', command => "bash -c \"(/bin/echo; /bin/echo '# Include Zulip-specific configuration'; /bin/echo '${line}') >> '${file}'\"", require => [Package[$redis], - File[$zulip_redisconf]], + File[$zulip_redisconf], + Exec['rediscleanup-zuli-redis']], + } + + # Fix the typo in the path to $zulip_redisconf introduced in + # 071e32985c1207f20043e1cf28f82300d9f23f31 without triggering a + # redis restart. + $legacy_wrong_filename = "${redis_dir}/zuli-redis.conf" + exec { 'rediscleanup-zuli-redis': + onlyif => "test -e ${legacy_wrong_filename}", + command => " + mv ${legacy_wrong_filename} ${zulip_redisconf} + perl -0777 -pe ' + if (m|^\\Q${line}\\E\$|m) { + s|^\\n?(:?# Include Zulip-specific configuration\\n)?include \\Q${legacy_wrong_filename}\\E\\n||m; + } else { + s|^include \\Q${legacy_wrong_filename}\\E\$|${line}|m; + } + ' -i /etc/redis/redis.conf + ", + provider => shell, } $redis_password = zulipsecret('secrets', 'redis_password', '') file { $zulip_redisconf: ensure => file, - require => Package[$redis], + require => [Package[$redis], Exec['rediscleanup-zuli-redis']], owner => 'redis', group => 'redis', mode => '0640',