Update the postgresql cookbook

This commit is contained in:
Greg Karékinian
2019-02-27 12:40:15 +01:00
parent 85b7278ccc
commit d8a0ecec76
43 changed files with 1272 additions and 2638 deletions

View File

@@ -1,4 +1,3 @@
# frozen_string_literal: true
#
# Cookbook:: postgresql
# Resource:: extension
@@ -16,42 +15,35 @@
# limitations under the License.
#
include Opscode::PostgresqlHelpers
property :extension, String, name_property: true
property :old_version, String
property :version, String
# name property should take the form:
# database/extension
property :database, String,
required: true,
default: lazy { name.scan(%r{\A[^/]+(?=/)}).first }
property :extension, String,
required: true,
default: lazy { name.scan(%r{(?<=/)[^/]+\Z}).first }
# Connection prefernces
property :user, String, default: 'postgres'
property :database, String, required: true
property :host, [String, nil]
property :port, Integer, default: 5432
action :create do
bash "CREATE EXTENSION #{name}" do
code psql("CREATE EXTENSION IF NOT EXISTS \"#{extension}\"")
bash "CREATE EXTENSION #{new_resource.name}" do
code create_extension_sql(new_resource)
user 'postgres'
action :run
not_if { extension_installed? }
not_if { follower? || extension_installed?(new_resource) }
end
end
action :drop do
bash "DROP EXTENSION #{name}" do
code psql("DROP EXTENSION IF EXISTS \"#{extension}\"")
bash "DROP EXTENSION #{new_resource.name}" do
code psql_command_string(new_resource, "DROP EXTENSION IF EXISTS \"#{new_resource.extension}\"")
user 'postgres'
action :run
only_if { extension_installed? }
not_if { follower? }
only_if { extension_installed?(new_resource) }
end
end
def psql(query)
"psql -d #{database} <<< '\\set ON_ERROR_STOP on\n#{query};'"
end
def extension_installed?
query = "SELECT 'installed' FROM pg_extension WHERE extname = '#{extension}';"
!(execute_sql(query, database) =~ /^installed$/).nil?
action_class do
include PostgresqlCookbook::Helpers
end