1
- Puppet ::Type . type ( :database_user ) . provide ( :mysql ) do
1
+ require File . expand_path ( File . join ( File . dirname ( __FILE__ ) , '..' , 'mysql' ) )
2
+ Puppet ::Type . type ( :database_user ) . provide ( :mysql , :parent => Puppet ::Provider ::Mysql ) do
2
3
3
4
desc 'manage users for a mysql database.'
4
5
@@ -15,19 +16,19 @@ def self.instances
15
16
end
16
17
17
18
def create
18
- merged_name = @resource [ :name ] . sub ( '@' , "'@'" )
19
+ merged_name = self . class . cmd_user ( @resource [ :name ] )
19
20
password_hash = @resource . value ( :password_hash )
20
21
max_user_connections = @resource . value ( :max_user_connections ) || 0
21
22
22
- mysql ( [ defaults_file , 'mysql' , '-e' , "grant usage on *.* to ' #{ merged_name } ' identified by PASSWORD
23
+ mysql ( [ defaults_file , 'mysql' , '-e' , "grant usage on *.* to #{ merged_name } identified by PASSWORD
23
24
'#{ password_hash } ' with max_user_connections #{ max_user_connections } " ] . compact )
24
25
25
26
exists? ? ( return true ) : ( return false )
26
27
end
27
28
28
29
def destroy
29
- merged_name = @resource [ :name ] . sub ( '@' , "'@'" )
30
- mysql ( [ defaults_file , 'mysql' , '-e' , "drop user ' #{ merged_name } ' " ] . compact )
30
+ merged_name = self . class . cmd_user ( @resource [ :name ] )
31
+ mysql ( [ defaults_file , 'mysql' , '-e' , "drop user #{ merged_name } " ] . compact )
31
32
32
33
exists? ? ( return false ) : ( return true )
33
34
end
@@ -37,7 +38,7 @@ def password_hash
37
38
end
38
39
39
40
def password_hash = ( string )
40
- mysql ( [ defaults_file , 'mysql' , '-e' , "SET PASSWORD FOR '%s' = '%s'" % [ @resource [ :name ] . sub ( '@' , "'@'" ) , string ] ] . compact )
41
+ mysql ( [ defaults_file , 'mysql' , '-e' , "SET PASSWORD FOR #{ self . class . cmd_user ( @resource [ :name ] ) } = ' #{ string } '" ] . compact )
41
42
42
43
password_hash == string ? ( return true ) : ( return false )
43
44
end
@@ -47,7 +48,7 @@ def max_user_connections
47
48
end
48
49
49
50
def max_user_connections = ( int )
50
- mysql ( [ defaults_file , "mysql" , "-e" , "grant usage on *.* to '%s' with max_user_connections #{ int } " % [ @resource [ :name ] . sub ( "@" , "'@'" ) ] ] . compact ) . chomp
51
+ mysql ( [ defaults_file , "mysql" , "-e" , "grant usage on *.* to %s with max_user_connections #{ int } " % [ self . class . cmd_user ( @resource [ :name ] ) ] ] . compact ) . chomp
51
52
52
53
max_user_connections == int ? ( return true ) : ( return false )
53
54
end
@@ -61,16 +62,4 @@ def flush
61
62
mysqladmin ( [ defaults_file , 'flush-privileges' ] . compact )
62
63
end
63
64
64
- # Optional defaults file
65
- def self . defaults_file
66
- if File . file? ( "#{ Facter . value ( :root_home ) } /.my.cnf" )
67
- "--defaults-extra-file=#{ Facter . value ( :root_home ) } /.my.cnf"
68
- else
69
- nil
70
- end
71
- end
72
- def defaults_file
73
- self . class . defaults_file
74
- end
75
-
76
65
end
0 commit comments