X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/3a4b1c2078cd515e93a5f1bf8967f380fbd1646f..35f220a555dee107786152d3daff4d66d1655e56:/cookbooks/mysql/providers/database.rb diff --git a/cookbooks/mysql/providers/database.rb b/cookbooks/mysql/providers/database.rb index ab735cd7e..0e7e9091a 100644 --- a/cookbooks/mysql/providers/database.rb +++ b/cookbooks/mysql/providers/database.rb @@ -17,12 +17,14 @@ # limitations under the License. # +use_inline_resources + def load_current_resource @mysql = Chef::MySQL.new @current_resource = Chef::Resource::MysqlDatabase.new(new_resource.name) @current_resource.database(new_resource.database) - if mysql_database = @mysql.databases[@current_resource.database] + if (mysql_database = @mysql.databases[@current_resource.database]) @current_resource.permissions(mysql_database[:permissions]) end @current_resource @@ -41,11 +43,11 @@ action :create do end] @current_resource.permissions.each_key do |user| - unless new_permissions[user] - converge_by("revoke all for #{user} on #{new_resource}") do - Chef::Log.info("Revoking all for #{user} on #{new_resource}") - @mysql.execute(:command => "REVOKE ALL ON `#{new_resource.database}`.* FROM #{user}") - end + next if new_permissions[user] + + converge_by("revoke all for #{user} on #{new_resource}") do + Chef::Log.info("Revoking all for #{user} on #{new_resource}") + @mysql.execute(:command => "REVOKE ALL ON `#{new_resource.database}`.* FROM #{user}") end end @@ -65,12 +67,10 @@ action :create do @mysql.execute(:command => "GRANT #{@mysql.privilege_name(privilege)} ON `#{new_resource.database}`.* TO #{user}") end end - else - if current_privileges.include?(privilege) - converge_by("revoke #{privilege} for #{user} on #{new_resource}") do - Chef::Log.info("Revoking #{privilege} for #{user} on #{new_resource}") - @mysql.execute(:command => "REVOKE #{@mysql.privilege_name(privilege)} ON `#{new_resource.database}`.* FROM #{user}") - end + elsif current_privileges.include?(privilege) + converge_by("revoke #{privilege} for #{user} on #{new_resource}") do + Chef::Log.info("Revoking #{privilege} for #{user} on #{new_resource}") + @mysql.execute(:command => "REVOKE #{@mysql.privilege_name(privilege)} ON `#{new_resource.database}`.* FROM #{user}") end end end