X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/dde08aa5cf12c06dfe7e1298a5367b1a20686aea..d58406548fa7bfd73c181dc9c97081e87e3f7d20:/cookbooks/postgresql/providers/database.rb diff --git a/cookbooks/postgresql/providers/database.rb b/cookbooks/postgresql/providers/database.rb index 9cf9dd442..998d2bed3 100644 --- a/cookbooks/postgresql/providers/database.rb +++ b/cookbooks/postgresql/providers/database.rb @@ -17,13 +17,15 @@ # 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