From da4bcee4d65cf2e0d48eab03a4a9582e3806238e Mon Sep 17 00:00:00 2001 From: Jiri Stransky Date: Fri, 19 Aug 2016 15:17:59 +0200 Subject: Write restart flags to restart services only when necessary Write restart flag file for services managed by Pacemaker into /var/lib/tripleo/pacemaker-restarts directory. The name of the file must match the name of the clone resource defined in pacemaker. The post-puppet restart script will restart each service having a restart flag file and remove those files. This approach focuses on $pacemaker_master only (we don't want to restart the pacemaker services 3 times when we have 3 controllers), so it relies on the assumption that we're making the matching config changes across the pacemaker nodes. Change-Id: I6369ab0c82dbf3c8f21043f8aa9ab810744ddc12 --- manifests/profile/pacemaker/database/mysql.pp | 6 ++++++ manifests/profile/pacemaker/database/redis.pp | 8 ++++++++ 2 files changed, 14 insertions(+) (limited to 'manifests/profile/pacemaker/database') diff --git a/manifests/profile/pacemaker/database/mysql.pp b/manifests/profile/pacemaker/database/mysql.pp index fceb415..4e60f2f 100644 --- a/manifests/profile/pacemaker/database/mysql.pp +++ b/manifests/profile/pacemaker/database/mysql.pp @@ -71,6 +71,12 @@ class tripleo::profile::pacemaker::database::mysql ( mysql_server_options => $mysqld_options, } + if $step >= 1 and $pacemaker_master and hiera('stack_action') == 'UPDATE' { + tripleo::pacemaker::resource_restart_flag { 'galera-master': + subscribe => File['mysql-config-file'], + } + } + if $step >= 2 { if $pacemaker_master { pacemaker::resource::ocf { 'galera' : diff --git a/manifests/profile/pacemaker/database/redis.pp b/manifests/profile/pacemaker/database/redis.pp index 8a37ce9..e081516 100644 --- a/manifests/profile/pacemaker/database/redis.pp +++ b/manifests/profile/pacemaker/database/redis.pp @@ -44,6 +44,14 @@ class tripleo::profile::pacemaker::database::redis ( if $step >= 1 { include ::redis + + if $pacemaker_master and hiera('stack_action') == 'UPDATE' { + tripleo::pacemaker::resource_restart_flag { 'redis-master': + # ouch, but trying to stay close how notification works in + # puppet-redis when pacemaker is not being used + subscribe => Exec["cp -p ${::redis::config_file_orig} ${::redis::config_file}"] + } + } } if $step >= 2 and $pacemaker_master { -- cgit 1.2.3-korg