@@ -14,7 +14,7 @@ def self.instances
14
14
## Default ...
15
15
# rubocop:disable Metrics/LineLength
16
16
query = "SELECT MAX_USER_CONNECTIONS, MAX_CONNECTIONS, MAX_QUESTIONS, MAX_UPDATES, SSL_TYPE, SSL_CIPHER, X509_ISSUER, X509_SUBJECT, PASSWORD /*!50508 , PLUGIN */ FROM mysql.user WHERE CONCAT(user, '@', host) = '#{ name } '"
17
- elsif ( mysqld_type == 'mysql' || mysqld_type == ' percona') && Puppet :: Util :: Package . versioncmp ( mysqld_version , '5.7.6' ) >= 0
17
+ elsif newer_than ( 'mysql' => '5.7.6' , ' percona' => '5.7.6' )
18
18
query = "SELECT MAX_USER_CONNECTIONS, MAX_CONNECTIONS, MAX_QUESTIONS, MAX_UPDATES, SSL_TYPE, SSL_CIPHER, X509_ISSUER, X509_SUBJECT, AUTHENTICATION_STRING, PLUGIN FROM mysql.user WHERE CONCAT(user, '@', host) = '#{ name } '"
19
19
else
20
20
query = "SELECT MAX_USER_CONNECTIONS, MAX_CONNECTIONS, MAX_QUESTIONS, MAX_UPDATES, SSL_TYPE, SSL_CIPHER, X509_ISSUER, X509_SUBJECT, PASSWORD /*!50508 , PLUGIN */ FROM mysql.user WHERE CONCAT(user, '@', host) = '#{ name } '"
@@ -83,8 +83,7 @@ def create
83
83
@property_hash [ :max_updates_per_hour ] = max_updates_per_hour
84
84
85
85
merged_tls_options = tls_options . join ( ' AND ' )
86
- if ( ( mysqld_type == 'mysql' || mysqld_type == 'percona' ) && Puppet ::Util ::Package . versioncmp ( mysqld_version , '5.7.6' ) >= 0 ) ||
87
- ( mysqld_type == 'mariadb' && Puppet ::Util ::Package . versioncmp ( mysqld_version , '10.2.0' ) >= 0 )
86
+ if newer_than ( 'mysql' => '5.7.6' , 'percona' => '5.7.6' , 'mariadb' => '10.2.0' )
88
87
self . class . mysql_caller ( "ALTER USER '#{ merged_name } ' REQUIRE #{ merged_tls_options } " , 'system' )
89
88
else
90
89
self . class . mysql_caller ( "GRANT USAGE ON *.* TO '#{ merged_name } ' REQUIRE #{ merged_tls_options } " , 'system' )
@@ -96,7 +95,11 @@ def create
96
95
97
96
def destroy
98
97
merged_name = @resource [ :name ] . sub ( '@' , "'@'" )
99
- if_exists = ( Puppet ::Util ::Package . versioncmp ( mysqld_version , '5.7' ) >= 0 ) ? 'IF EXISTS ' : ''
98
+ if_exists = if newer_than ( 'mysql' => '5.7' , 'percona' => '5.7' , 'mariadb' => '10.1.3' )
99
+ 'IF EXISTS '
100
+ else
101
+ ''
102
+ end
100
103
101
104
self . class . mysql_caller ( "DROP USER #{ if_exists } '#{ merged_name } '" , 'system' )
102
105
@@ -122,7 +125,7 @@ def password_hash=(string)
122
125
if mysqld_version . nil?
123
126
# default ... if mysqld_version does not work
124
127
self . class . mysql_caller ( "SET PASSWORD FOR #{ merged_name } = '#{ string } '" , 'system' )
125
- elsif ( mysqld_type == 'mysql' || mysqld_type == ' percona') && Puppet :: Util :: Package . versioncmp ( mysqld_version , '5.7.6' ) >= 0
128
+ elsif newer_than ( 'mysql' => '5.7.6' , ' percona' => '5.7.6' )
126
129
raise ArgumentError , _ ( 'Only mysql_native_password (*ABCD...XXX) hashes are supported.' ) unless string =~ %r{^\* }
127
130
self . class . mysql_caller ( "ALTER USER #{ merged_name } IDENTIFIED WITH mysql_native_password AS '#{ string } '" , 'system' )
128
131
else
@@ -163,7 +166,7 @@ def max_updates_per_hour=(int)
163
166
def plugin = ( string )
164
167
merged_name = self . class . cmd_user ( @resource [ :name ] )
165
168
166
- if ( mysqld_type == 'mysql' || mysqld_type == ' percona') && Puppet :: Util :: Package . versioncmp ( mysqld_version , '5.7.6' ) >= 0
169
+ if newer_than ( 'mysql' => '5.7.6' , ' percona' => '5.7.6' )
167
170
sql = "ALTER USER #{ merged_name } IDENTIFIED WITH '#{ string } '"
168
171
sql << " AS '#{ @resource [ :password_hash ] } '" if string == 'mysql_native_password'
169
172
else
@@ -180,8 +183,7 @@ def plugin=(string)
180
183
def tls_options = ( array )
181
184
merged_name = self . class . cmd_user ( @resource [ :name ] )
182
185
merged_tls_options = array . join ( ' AND ' )
183
- if ( ( mysqld_type == 'mysql' || mysqld_type == 'percona' ) && Puppet ::Util ::Package . versioncmp ( mysqld_version , '5.7.6' ) >= 0 ) ||
184
- ( mysqld_type == 'mariadb' && Puppet ::Util ::Package . versioncmp ( mysqld_version , '10.2.0' ) >= 0 )
186
+ if newer_than ( 'mysql' => '5.7.6' , 'percona' => '5.7.6' , 'mariadb' => '10.2.0' )
185
187
self . class . mysql_caller ( "ALTER USER #{ merged_name } REQUIRE #{ merged_tls_options } " , 'system' )
186
188
else
187
189
self . class . mysql_caller ( "GRANT USAGE ON *.* TO #{ merged_name } REQUIRE #{ merged_tls_options } " , 'system' )
0 commit comments