Skip to content

Commit 4522388

Browse files
authored
Merge pull request puppetlabs#1415 from weastur/users_alter
Fix mysql_user parameters update on modern MySQL
2 parents de48b9c + 5d7d0dd commit 4522388

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

lib/puppet/provider/mysql_user/mysql.rb

+20-8
Original file line numberDiff line numberDiff line change
@@ -177,29 +177,41 @@ def password_hash=(string)
177177

178178
def max_user_connections=(int)
179179
merged_name = self.class.cmd_user(@resource[:name])
180-
self.class.mysql_caller("GRANT USAGE ON *.* TO #{merged_name} WITH MAX_USER_CONNECTIONS #{int}", 'system').chomp
181-
180+
if newer_than('mysql' => '5.7.6', 'percona' => '5.7.6', 'mariadb' => '10.2.0')
181+
self.class.mysql_caller("ALTER USER #{merged_name} WITH MAX_USER_CONNECTIONS #{int}", 'system').chomp
182+
else
183+
self.class.mysql_caller("GRANT USAGE ON *.* TO #{merged_name} WITH MAX_USER_CONNECTIONS #{int}", 'system').chomp
184+
end
182185
(max_user_connections == int) ? (return true) : (return false)
183186
end
184187

185188
def max_connections_per_hour=(int)
186189
merged_name = self.class.cmd_user(@resource[:name])
187-
self.class.mysql_caller("GRANT USAGE ON *.* TO #{merged_name} WITH MAX_CONNECTIONS_PER_HOUR #{int}", 'system').chomp
188-
190+
if newer_than('mysql' => '5.7.6', 'percona' => '5.7.6', 'mariadb' => '10.2.0')
191+
self.class.mysql_caller("ALTER USER #{merged_name} WITH MAX_CONNECTIONS_PER_HOUR #{int}", 'system').chomp
192+
else
193+
self.class.mysql_caller("GRANT USAGE ON *.* TO #{merged_name} WITH MAX_CONNECTIONS_PER_HOUR #{int}", 'system').chomp
194+
end
189195
(max_connections_per_hour == int) ? (return true) : (return false)
190196
end
191197

192198
def max_queries_per_hour=(int)
193199
merged_name = self.class.cmd_user(@resource[:name])
194-
self.class.mysql_caller("GRANT USAGE ON *.* TO #{merged_name} WITH MAX_QUERIES_PER_HOUR #{int}", 'system').chomp
195-
200+
if newer_than('mysql' => '5.7.6', 'percona' => '5.7.6', 'mariadb' => '10.2.0')
201+
self.class.mysql_caller("ALTER USER #{merged_name} WITH MAX_QUERIES_PER_HOUR #{int}", 'system').chomp
202+
else
203+
self.class.mysql_caller("GRANT USAGE ON *.* TO #{merged_name} WITH MAX_QUERIES_PER_HOUR #{int}", 'system').chomp
204+
end
196205
(max_queries_per_hour == int) ? (return true) : (return false)
197206
end
198207

199208
def max_updates_per_hour=(int)
200209
merged_name = self.class.cmd_user(@resource[:name])
201-
self.class.mysql_caller("GRANT USAGE ON *.* TO #{merged_name} WITH MAX_UPDATES_PER_HOUR #{int}", 'system').chomp
202-
210+
if newer_than('mysql' => '5.7.6', 'percona' => '5.7.6', 'mariadb' => '10.2.0')
211+
self.class.mysql_caller("ALTER USER #{merged_name} WITH MAX_UPDATES_PER_HOUR #{int}", 'system').chomp
212+
else
213+
self.class.mysql_caller("GRANT USAGE ON *.* TO #{merged_name} WITH MAX_UPDATES_PER_HOUR #{int}", 'system').chomp
214+
end
203215
(max_updates_per_hour == int) ? (return true) : (return false)
204216
end
205217

0 commit comments

Comments
 (0)