From 585cbc381ba1fe3fe0c1172e049f7d7ba2639edf Mon Sep 17 00:00:00 2001 From: mh Date: Thu, 12 May 2011 22:13:37 +0200 Subject: fix grant on newer mysql version MySQL introduced some new privileges in Versions > 5.1.6, add them to our set, so puppet still knows what :all is. --- lib/facter/mysql.rb | 5 ----- lib/facter/mysql_exists.rb | 5 +++++ lib/facter/mysql_version.rb | 6 ++++++ lib/puppet/provider/mysql_grant/mysql.rb | 21 +++++++++++++++------ 4 files changed, 26 insertions(+), 11 deletions(-) delete mode 100644 lib/facter/mysql.rb create mode 100644 lib/facter/mysql_exists.rb create mode 100644 lib/facter/mysql_version.rb (limited to 'lib') diff --git a/lib/facter/mysql.rb b/lib/facter/mysql.rb deleted file mode 100644 index d08dabe..0000000 --- a/lib/facter/mysql.rb +++ /dev/null @@ -1,5 +0,0 @@ -Facter.add("mysql_exists") do - setcode do - File.exist? '/usr/bin/mysql' - end -end diff --git a/lib/facter/mysql_exists.rb b/lib/facter/mysql_exists.rb new file mode 100644 index 0000000..d08dabe --- /dev/null +++ b/lib/facter/mysql_exists.rb @@ -0,0 +1,5 @@ +Facter.add("mysql_exists") do + setcode do + File.exist? '/usr/bin/mysql' + end +end diff --git a/lib/facter/mysql_version.rb b/lib/facter/mysql_version.rb new file mode 100644 index 0000000..1130d76 --- /dev/null +++ b/lib/facter/mysql_version.rb @@ -0,0 +1,6 @@ +Facter.add("mysql_version") do + confine :mysql_exists => true + setcode do + Facter::Util::Resolution.exec('mysql --version').chomp.split(' ')[4] + end +end diff --git a/lib/puppet/provider/mysql_grant/mysql.rb b/lib/puppet/provider/mysql_grant/mysql.rb index 2c44e0b..6582523 100644 --- a/lib/puppet/provider/mysql_grant/mysql.rb +++ b/lib/puppet/provider/mysql_grant/mysql.rb @@ -13,12 +13,21 @@ MYSQL_USER_PRIVS = [ :select_priv, :insert_priv, :update_priv, :delete_priv, :show_view_priv, :create_routine_priv, :alter_routine_priv, :create_user_priv ] - -MYSQL_DB_PRIVS = [ :select_priv, :insert_priv, :update_priv, :delete_priv, - :create_priv, :drop_priv, :grant_priv, :references_priv, :index_priv, - :alter_priv, :create_tmp_table_priv, :lock_tables_priv, :create_view_priv, - :show_view_priv, :create_routine_priv, :alter_routine_priv, :execute_priv -] +mysql_version = Facter.value(:mysql_version) +if mysql_version =~ /^5.1/ && mysql_version.split('.').last.to_i >= 6 + MYSQL_DB_PRIVS = [ :select_priv, :insert_priv, :update_priv, :delete_priv, + :create_priv, :drop_priv, :grant_priv, :references_priv, :index_priv, + :alter_priv, :create_tmp_table_priv, :lock_tables_priv, :create_view_priv, + :show_view_priv, :create_routine_priv, :alter_routine_priv, :execute_priv, + :event_priv, :trigger_priv + ] +else + MYSQL_DB_PRIVS = [ :select_priv, :insert_priv, :update_priv, :delete_priv, + :create_priv, :drop_priv, :grant_priv, :references_priv, :index_priv, + :alter_priv, :create_tmp_table_priv, :lock_tables_priv, :create_view_priv, + :show_view_priv, :create_routine_priv, :alter_routine_priv, :execute_priv, + ] +end Puppet::Type.type(:mysql_grant).provide(:mysql) do -- cgit v1.2.3