1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
From: dmburmistrov <dmburmistrov@mirantis.com>
Date: Thu, 18 Aug 2016 21:30:26 +0300
Subject: [PATCH] Always wait for MySQL sync on service refresh
Always trigger Exec['wait-for-sync'] on
MySQL service refresh.
Closes-bug: #1614647
Change-Id: I82ec0d46eff217daedc1bd07c67069498c515c44
---
deployment/puppet/cluster/manifests/mysql.pp | 6 +++---
deployment/puppet/cluster/spec/classes/cluster_mysql_spec.rb | 6 +++++-
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/deployment/puppet/cluster/manifests/mysql.pp b/deployment/puppet/cluster/manifests/mysql.pp
index c36b65d..f483cf6 100644
--- a/deployment/puppet/cluster/manifests/mysql.pp
+++ b/deployment/puppet/cluster/manifests/mysql.pp
@@ -104,7 +104,7 @@ class cluster::mysql (
require => Package['mysql-server'],
} ~>
- exec { 'wait-initial-sync':
+ exec { 'wait-for-sync':
path => '/bin:/sbin:/usr/bin:/usr/sbin',
command => "mysql ${user_password_string} -Nbe \"show status like 'wsrep_local_state_comment'\" | grep -q -e Synced && sleep 10",
try_sleep => 10,
@@ -119,7 +119,7 @@ class cluster::mysql (
}
Exec['create-init-file'] ->
- Service<| title == $service_name |> ->
- Exec['wait-initial-sync'] ->
+ Service<| title == $service_name |> ~>
+ Exec['wait-for-sync'] ->
Exec['rm-init-file']
}
diff --git a/deployment/puppet/cluster/spec/classes/cluster_mysql_spec.rb b/deployment/puppet/cluster/spec/classes/cluster_mysql_spec.rb
index cf2c719..72c8c2f 100644
--- a/deployment/puppet/cluster/spec/classes/cluster_mysql_spec.rb
+++ b/deployment/puppet/cluster/spec/classes/cluster_mysql_spec.rb
@@ -34,12 +34,16 @@ describe 'cluster::mysql' do
/'username'@'localhost' IDENTIFIED BY 'password'/
)
should contain_exec('create-init-file').that_comes_before('Service[mysqld]')
- should contain_exec('create-init-file').that_notifies('Exec[wait-initial-sync]')
+ should contain_exec('create-init-file').that_notifies('Exec[wait-for-sync]')
end
it 'creates exec to remove init-file' do
should contain_exec('rm-init-file')
end
+
+ it 'creates exec to wait initial database sync' do
+ should contain_exec('wait-for-sync').that_subscribes_to('Service[mysqld]')
+ end
end
end
|