1 # Activate an extension on a postgresql database
2 define postgresql::server::extension (
5 String[1] $ensure = 'present',
7 $package_ensure = undef,
8 $connect_settings = $postgresql::server::default_connect_settings,
10 $user = $postgresql::server::user
11 $group = $postgresql::server::group
12 $psql_path = $postgresql::server::psql_path
16 $command = "CREATE EXTENSION \"${extension}\""
19 $package_before = Postgresql_psql["Add ${extension} extension to ${database}"]
23 $command = "DROP EXTENSION \"${extension}\""
25 $package_require = Postgresql_psql["Add ${extension} extension to ${database}"]
30 fail("Unknown value for ensure '${ensure}'.")
35 postgresql_psql {"Add ${extension} extension to ${database}":
39 psql_path => $psql_path,
40 connect_settings => $connect_settings,
44 unless => "SELECT t.count FROM (SELECT count(extname) FROM pg_extension WHERE extname = '${extension}') as t WHERE t.count ${unless_comp} 1",
45 require => Postgresql::Server::Database[$database],
49 $_package_ensure = $package_ensure ? {
51 default => $package_ensure,
54 ensure_packages($package_name, {
55 ensure => $_package_ensure,
57 require => $package_require,
58 before => $package_before,