aboutsummaryrefslogtreecommitdiffstats
path: root/patches/fuel-library/0018-Fix-MySQL-logging-dir-permissions-for-syslog.patch
blob: da6acac8e4ca96021a20140aca2da28275f2989e (plain)
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
From: Maksim Malchuk <mmalchuk@mirantis.com>
Date: Wed, 24 Aug 2016 00:15:02 +0300
Subject: Fix MySQL logging dir permissions for syslog

This change fixes permissions for MySQL logging directory to enable
syslogd create and write logs files into it.

Closes-Bug: #1615680
Change-Id: Id29aead6619ea8ed68811d0fd80895ee79f51687
Signed-off-by: Maksim Malchuk <mmalchuk@mirantis.com>
(cherry picked from commit 9c978278811eeebfb11ab4d2b42ebabe00c132c2)
---
 deployment/puppet/cluster/manifests/mysql.pp               | 14 +++++++++++---
 .../puppet/cluster/spec/classes/cluster_mysql_spec.rb      | 11 ++++++++++-
 tests/noop/spec/hosts/database/database_spec.rb            |  9 +++++++++
 3 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/deployment/puppet/cluster/manifests/mysql.pp b/deployment/puppet/cluster/manifests/mysql.pp
index f483cf6..7bc8874 100644
--- a/deployment/puppet/cluster/manifests/mysql.pp
+++ b/deployment/puppet/cluster/manifests/mysql.pp
@@ -118,8 +118,16 @@ class cluster::mysql (
     onlyif  => 'test -f /tmp/wsrep-init-file',
   }
 
+  file { 'fix-log-dir':
+    ensure  => directory,
+    path    => '/var/log/mysql',
+    mode    => '0770',
+    require => Package['mysql-server'],
+  }
+
   Exec['create-init-file'] ->
-    Service<| title == $service_name |> ~>
-      Exec['wait-for-sync'] ->
-        Exec['rm-init-file']
+    File['fix-log-dir'] ->
+      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 72c8c2f..ad3fc1b 100644
--- a/deployment/puppet/cluster/spec/classes/cluster_mysql_spec.rb
+++ b/deployment/puppet/cluster/spec/classes/cluster_mysql_spec.rb
@@ -33,7 +33,7 @@ describe 'cluster::mysql' do
         should contain_exec('create-init-file').with_command(
           /'username'@'localhost' IDENTIFIED BY 'password'/
         )
-        should contain_exec('create-init-file').that_comes_before('Service[mysqld]')
+        should contain_exec('create-init-file').that_comes_before('File[fix-log-dir]')
         should contain_exec('create-init-file').that_notifies('Exec[wait-for-sync]')
       end
 
@@ -41,6 +41,15 @@ describe 'cluster::mysql' do
         should contain_exec('rm-init-file')
       end
 
+      it 'should have correct permissions for logging directory' do
+        should contain_file('fix-log-dir').with(
+          :ensure => 'directory',
+          :path   => '/var/log/mysql',
+          :mode   => '0770',
+        ).that_requires('Package[mysql-server]')
+        should contain_file('fix-log-dir').that_comes_before('Service[mysqld]')
+      end
+
       it 'creates exec to wait initial database sync' do
         should contain_exec('wait-for-sync').that_subscribes_to('Service[mysqld]')
       end
diff --git a/tests/noop/spec/hosts/database/database_spec.rb b/tests/noop/spec/hosts/database/database_spec.rb
index d4ad8d0..2c4c5c5 100644
--- a/tests/noop/spec/hosts/database/database_spec.rb
+++ b/tests/noop/spec/hosts/database/database_spec.rb
@@ -261,6 +261,15 @@ describe manifest do
       )
     end
 
+    it 'should have correct permissions for logging directory' do
+      should contain_file('fix-log-dir').with(
+        :ensure => 'directory',
+        :path   => '/var/log/mysql',
+        :mode   => '0770',
+      ).that_requires('Package[mysql-server]')
+      should contain_file('fix-log-dir').that_comes_before('Service[mysqld]')
+    end
+
     it 'should configure galera grants service and proper flow' do
       if primary_controller
         should contain_class('cluster::galera_grants').with(