Skip to content

Commit 0623f38

Browse files
authored
Merge pull request #157 from bastelfreak/postgresql
puppetlabs/postgresql: Require 9.x
2 parents fbba61f + b57a719 commit 0623f38

9 files changed

+49
-17
lines changed

.fixtures.yml

+5-3
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ fixtures:
55
ref: "3.0.1"
66
stdlib:
77
repo: "puppetlabs/stdlib"
8-
ref: "5.2.0"
8+
ref: "9.3.0"
99
mysql:
1010
repo: "puppetlabs/mysql"
11-
ref: "10.9.0"
11+
ref: "15.0.0"
1212
postgresql:
1313
repo: "puppetlabs/postgresql"
14-
ref: "6.4.0"
14+
ref: "9.1.0"
1515
concat:
1616
repo: "puppetlabs/concat"
1717
ref: "5.3.0"
@@ -26,5 +26,7 @@ fixtures:
2626
repo: "puppetlabs/augeas_core"
2727
puppet_version: ">= 6.0.0"
2828
ref: "1.0.4"
29+
repositories:
30+
systemd: 'https://github.com/voxpupuli/puppet-systemd'
2931
symlinks:
3032
powerdns: "#{source_dir}"

README.md

+8
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,14 @@ We believe it also on other operating systems such as:
375375
* Scientific Linux
376376
* Arch Linux
377377

378+
The packages on EL are a bit stupid. The schemas have the exact PowerDNS version
379+
hardcoded in the paths. The main class has three parameters where you can adjust
380+
it:
381+
382+
* `mysql_schema_file`
383+
* `pgsql_schema_file`
384+
* `sqlite_schema_file`
385+
378386
## Development
379387

380388
We strongly believe in the power of open source. This module is our way

manifests/authoritative.pp

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
ensure => $package_ensure,
99
}
1010

11-
ensure_packages($install_packages)
11+
stdlib::ensure_packages($install_packages)
1212

1313
# install the right backend
1414
case $::powerdns::backend {

manifests/backends/postgresql.pp

+5-1
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,13 @@
8181
}
8282

8383
if $::powerdns::backend_create_tables {
84+
$password_hash = $db_password ? {
85+
Undef => undef,
86+
default => postgresql_password($::powerdns::db_username, $_db_password),
87+
}
8488
postgresql::server::db { $::powerdns::db_name:
8589
user => $::powerdns::db_username,
86-
password => postgresql_password($::powerdns::db_username, $_db_password),
90+
password => $password_hash,
8791
require => Package[$::powerdns::params::pgsql_backend_package_name],
8892
}
8993

manifests/params.pp

+12-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,18 @@
55

66
case $facts['os']['family'] {
77
'RedHat': {
8+
case $facts['os']['release']['major'] {
9+
'7': {
10+
$mysql_schema_file = '/usr/share/doc/pdns-backend-mysql-4.1.14/schema.mysql.sql'
11+
$pgsql_schema_file = '/usr/share/doc/pdns-backend-postgresql-4.1.14/schema.pgsql.sql'
12+
$sqlite_schema_file = '/usr/share/doc/pdns-backend-sqlite-4.1.14/schema.sqlite.sql'
13+
}
14+
default: {
15+
$mysql_schema_file = '/usr/share/doc/pdns-backend-mysql-4.8.1/schema.mysql.sql'
16+
$pgsql_schema_file = '/usr/share/doc/pdns-backend-postgresql-4.8.1/schema.pgsql.sql'
17+
$sqlite_schema_file = '/usr/share/doc/pdns-backend-sqlite-4.8.1/schema.sqlite.sql'
18+
}
19+
}
820
$authoritative_package = 'pdns'
921
$authoritative_service = 'pdns'
1022
$authoritative_config = '/etc/pdns/pdns.conf'
@@ -14,9 +26,6 @@
1426
$ldap_backend_package_name = 'pdns-backend-ldap'
1527
$pgsql_backend_package_name = 'pdns-backend-postgresql'
1628
$sqlite_backend_package_name = 'pdns-backend-sqlite'
17-
$mysql_schema_file = '/usr/share/doc/pdns-backend-mysql-4.*.*/schema.mysql.sql'
18-
$pgsql_schema_file = '/usr/share/doc/pdns-backend-postgresql-4.*.*/schema.pgsql.sql'
19-
$sqlite_schema_file = '/usr/share/doc/pdns-backend-sqlite-4.*.*/schema.sqlite.sql'
2029
$sqlite_package_name = 'sqlite'
2130
$authoritative_configdir = '/etc/pdns'
2231
$recursor_package = 'pdns-recursor'

manifests/repo.pp

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
Yumrepo['powerdns-recursor'] -> Package <| title == $::powerdns::params::recursor_package |>
1616

1717
if versioncmp($::operatingsystemmajrelease, '7') <= 0 {
18-
ensure_packages('yum-plugin-priorities')
18+
stdlib::ensure_packages('yum-plugin-priorities')
1919

2020
Package['yum-plugin-priorities']
2121
-> Yumrepo['powerdns']

metadata.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@
1010
"dependencies": [
1111
{
1212
"name": "puppetlabs/stdlib",
13-
"version_requirement": ">=4.3.2 < 9.0.0"
13+
"version_requirement": ">= 9.0.0 < 10.0.0"
1414
},
1515
{
1616
"name": "puppetlabs/mysql",
17-
"version_requirement": ">=3.4.0 < 15.0.0"
17+
"version_requirement": ">= 15.0.0 < 16.0.0"
1818
},
1919
{
2020
"name": "puppetlabs/postgresql",
21-
"version_requirement": ">=6.4.0 < 10.0.0"
21+
"version_requirement": ">= 9.1.0 < 10.0.0"
2222
},
2323
{
2424
"name": "puppetlabs/apt",

pdk.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
ignore: []

spec/classes/powerdns_init_spec.rb

+12-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
override_facts = {
2-
root_home: '/root'
2+
root_home: '/root',
3+
service_provider: 'systemd'
34
}
45

56
require 'spec_helper'
@@ -11,17 +12,23 @@
1112
facts.merge(override_facts)
1213
end
1314

14-
case facts[:osfamily]
15+
case facts[:os]['family']
1516
when 'RedHat'
1617
authoritative_package_name = 'pdns'
1718
authoritative_service_name = 'pdns'
1819
authoritative_config = '/etc/pdns/pdns.conf'
19-
mysql_schema_file = '/usr/share/doc/pdns-backend-mysql-4.*.*/schema.mysql.sql'
20+
if facts[:os]['release']['major'].to_i == 7
21+
mysql_schema_file = '/usr/share/doc/pdns-backend-mysql-4.1.14/schema.mysql.sql'
22+
pgsql_schema_file = '/usr/share/doc/pdns-backend-postgresql-4.1.14/schema.pgsql.sql'
23+
sqlite_schema_file = '/usr/share/doc/pdns-backend-sqlite-4.1.14/schema.sqlite.sql'
24+
else
25+
mysql_schema_file = '/usr/share/doc/pdns-backend-mysql-4.8.1/schema.mysql.sql'
26+
pgsql_schema_file = '/usr/share/doc/pdns-backend-postgresql-4.8.1/schema.pgsql.sql'
27+
sqlite_schema_file = '/usr/share/doc/pdns-backend-sqlite-4.8.1/schema.sqlite.sql'
28+
end
2029
pgsql_backend_package_name = 'pdns-backend-postgresql'
21-
pgsql_schema_file = '/usr/share/doc/pdns-backend-postgresql-4.*.*/schema.pgsql.sql'
2230
sqlite_backend_package_name = 'pdns-backend-sqlite'
2331
sqlite_binary_package_name = 'sqlite'
24-
sqlite_schema_file = '/usr/share/doc/pdns-backend-sqlite-4.*.*/schema.sqlite.sql'
2532
recursor_package_name = 'pdns-recursor'
2633
recursor_service_name = 'pdns-recursor'
2734
when 'Debian'

0 commit comments

Comments
 (0)