]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/postgresql/providers/database.rb
put dulcy in production mode and enable backups
[chef.git] / cookbooks / postgresql / providers / database.rb
index 9cf9dd4421dce04ada41d0103ee072e322162ad1..998d2bed3bb55f550fbe9be88c8df99144fd6792 100644 (file)
 # limitations under the License.
 #
 
+use_inline_resources
+
 def load_current_resource
   @pg = Chef::PostgreSQL.new(new_resource.cluster)
 
   @current_resource = Chef::Resource::PostgresqlDatabase.new(new_resource.name)
   @current_resource.database(new_resource.database)
   @current_resource.cluster(new_resource.cluster)
-  if pg_database = @pg.databases[@current_resource.database]
+  if (pg_database = @pg.databases[@current_resource.database])
     @current_resource.owner(pg_database[:owner])
     @current_resource.encoding(pg_database[:encoding])
     @current_resource.encoding(pg_database[:collate])
@@ -33,20 +35,18 @@ def load_current_resource
 end
 
 action :create do
-  unless @pg.databases.include?(new_resource.database)
-    @pg.execute(:command => "CREATE DATABASE #{new_resource.database} OWNER #{new_resource.owner} TEMPLATE template0 ENCODING '#{new_resource.encoding}' LC_COLLATE '#{new_resource.collation}' LC_CTYPE '#{new_resource.ctype}'")
+  if !@pg.databases.include?(new_resource.database)
+    @pg.execute(:command => "CREATE DATABASE \"#{new_resource.database}\" OWNER \"#{new_resource.owner}\" TEMPLATE template0 ENCODING '#{new_resource.encoding}' LC_COLLATE '#{new_resource.collation}' LC_CTYPE '#{new_resource.ctype}'")
+    new_resource.updated_by_last_action(true)
+  elsif new_resource.owner != @current_resource.owner
+    @pg.execute(:command => "ALTER DATABASE \"#{new_resource.database}\" OWNER TO \"#{new_resource.owner}\"")
     new_resource.updated_by_last_action(true)
-  else
-    if new_resource.owner != @current_resource.owner
-      @pg.execute(:command => "ALTER DATABASE #{new_resource.database} OWNER TO #{new_resource.owner}")
-      new_resource.updated_by_last_action(true)
-    end
   end
 end
 
 action :drop do
   if @pg.databases.include?(new_resource.database)
-    @pg.execute(:command => "DROP DATABASE #{new_resource.database}")
+    @pg.execute(:command => "DROP DATABASE \"#{new_resource.database}\"")
     new_resource.updated_by_last_action(true)
   end
 end