summaryrefslogtreecommitdiffstats
path: root/plugins/puppet/provider/mysql_user/mysql.rb
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/puppet/provider/mysql_user/mysql.rb')
-rw-r--r--plugins/puppet/provider/mysql_user/mysql.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/plugins/puppet/provider/mysql_user/mysql.rb b/plugins/puppet/provider/mysql_user/mysql.rb
new file mode 100644
index 0000000..a1c2896
--- /dev/null
+++ b/plugins/puppet/provider/mysql_user/mysql.rb
@@ -0,0 +1,19 @@
+Puppet::Type.type(:mysql_user).provide(:mysql) do
+ desc "Use mysql as database."
+ commands :mysql => '/usr/bin/mysql'
+
+ def create
+ mysql "mysql", "-e", "create user '%s@%s' identified by '%s'" % [ @resource[:name], @resource[:host], @resource[:password] ]
+ end
+ def destroy
+ mysql "mysql", "-e", "drop user '%s@%s'" % [ @resource[:name], @resource[:host] ]
+ end
+ def exists?
+ if /^#{@resource[:name]}@#{@resource[:host]}$/.match( mysql( "mysql", "-Be", 'SELECT CONCAT(user, "@", host) FROM user' ) )
+ true
+ else
+ false
+ end
+ end
+end
+