]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/mysql/providers/user.rb
Switch bytemark servers to use katla for readonly queries
[chef.git] / cookbooks / mysql / providers / user.rb
index e027b4f5c27d1b427f5fa1a6a3d56b25831230ed..c2f5e58d2ab35a0d7fa1b0e830223ee2d26d81d8 100644 (file)
 # limitations under the License.
 #
 
+use_inline_resources
+
 def load_current_resource
   @mysql = Chef::MySQL.new
 
   @current_resource = Chef::Resource::MysqlUser.new(new_resource.name)
   @current_resource.user(new_resource.user)
-  if mysql_user = @mysql.users[@current_resource.user]
+  if (mysql_user = @mysql.users[@current_resource.user])
     Chef::MySQL::USER_PRIVILEGES.each do |privilege|
       @current_resource.send(privilege, mysql_user[privilege])
     end
@@ -42,17 +44,17 @@ action :create do
   end
 
   Chef::MySQL::USER_PRIVILEGES.each do |privilege|
-    if new_resource.send(privilege) != @current_resource.send(privilege)
-      if new_resource.send(privilege)
-        converge_by("grant #{privilege} for #{new_resource}") do
-          Chef::Log.info("Granting #{privilege} for #{new_resource}")
-          @mysql.execute(:command => "GRANT #{@mysql.privilege_name(privilege)} ON *.* TO #{user}")
-        end
-      else
-        converge_by("revoke #{privilege} for #{new_resource}") do
-          Chef::Log.info("Revoking #{privilege} for #{new_resource}")
-          @mysql.execute(:command => "REVOKE #{@mysql.privilege_name(privilege)} ON *.* FROM #{user}")
-        end
+    next if new_resource.send(privilege) == @current_resource.send(privilege)
+
+    if new_resource.send(privilege)
+      converge_by("grant #{privilege} for #{new_resource}") do
+        Chef::Log.info("Granting #{privilege} for #{new_resource}")
+        @mysql.execute(:command => "GRANT #{@mysql.privilege_name(privilege)} ON *.* TO #{user}")
+      end
+    else
+      converge_by("revoke #{privilege} for #{new_resource}") do
+        Chef::Log.info("Revoking #{privilege} for #{new_resource}")
+        @mysql.execute(:command => "REVOKE #{@mysql.privilege_name(privilege)} ON *.* FROM #{user}")
       end
     end
   end