Skip to content

Change to new official postgresql.org apt repo and support version 9.3 #9

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: feature/update-to-0.8
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 40 additions & 25 deletions src/pallet/crate/postgres.clj
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Links:
:only [defmethod-version defmulti-version defmulti-version-plan
defmethod-version-plan defmulti-version-plan os-map]
:as version-dispatch]
[pallet.versions :only [as-version-vector version-string]]))
[pallet.versions :only [as-version-vector version-string version-less]]))

(def ^{:private true} pallet-cfg-preamble
"# This file was auto-generated by Pallet. Do not edit it manually unless you
Expand Down Expand Up @@ -152,27 +152,39 @@ Links:
;; :packages ["libpq5" (str "postgresql-" target-version)]
;; :layout :debian-base))))))

(def ^:dynamic *postgres-org-repo-release*
{"10.04" "lucid"
"12.04" "precise"
"13.10" "saucy"
"14.04" "trusty"})

(defmethod-version-plan
install-strategy {:os :ubuntu}
[os os-version version settings]
install-strategy {:os :ubuntu}
[os os-version version settings]
(->
(cond
(:install-strategy settings) settings
(:package-source settings) (assoc settings :install-strategy :package-source)
:else (let [default-version (os-map-lookup @postgres-package-version)
target-version (:version settings)]
(if (= (version-string default-version) target-version)
(assoc settings
:install-strategy :packages
:packages ["postgresql"]
:layout :debian-base)
(assoc settings
:install-strategy :package-source
:package-source {:name "Martin Pitt backports"
:aptitude {:url "ppa:pitti/postgresql"}
:apt {:url "ppa:pitti/postgresql"}}
:packages [(str "postgresql-" target-version)]
:layout :debian-base))))))
(:install-strategy settings) settings
(:package-source settings) (assoc settings :install-strategy :package-source)
:else (let [default-version (os-map-lookup @postgres-package-version)
target-version (:version settings)
release (str (*postgres-org-repo-release* (pallet.crate/os-version))
"-pgdg")]
(if (= (version-string default-version) target-version)
(assoc settings
:install-strategy :packages
:packages ["postgresql"]
:layout :debian-base)
(assoc settings
:install-strategy :package-source
:package-source {:name "postgresql"
:aptitude {:url "http://apt.postgresql.org/pub/repos/apt/ "
:release release
:key-url "https://www.postgresql.org/media/keys/ACCC4CF8.asc"}
:apt {:url "http://apt.postgresql.org/pub/repos/apt/"
:release release
:key-url "https://www.postgresql.org/media/keys/ACCC4CF8.asc"}}
:packages [(str "postgresql-" target-version)]
:layout :debian-base))))))

(defmethod-version-plan
install-strategy {:os :arch}
Expand Down Expand Up @@ -287,11 +299,14 @@ Links:
:has-pg-wrapper true
:has-multicluster-service true
:options
{:data_directory (format "/var/lib/postgresql/%s/%%s" version)
:hba_file (format "/etc/postgresql/%s/%%s/pg_hba.conf" version)
:ident_file (format "/etc/postgresql/%s/%%s/pg_ident.conf" version)
:external_pid_file (format "/var/run/postgresql/%s-%%s.pid" version)
:unix_socket_directory "/var/run/postgresql"}})))
(merge
{:data_directory (format "/var/lib/postgresql/%s/%%s" version)
:hba_file (format "/etc/postgresql/%s/%%s/pg_hba.conf" version)
:ident_file (format "/etc/postgresql/%s/%%s/pg_ident.conf" version)
:external_pid_file (format "/var/run/postgresql/%s-%%s.pid" version)}
(if (version-less (as-version-vector version) [9 3])
{:unix_socket_directory "/var/run/postgresql"}
{:unix_socket_directories "/var/run/postgresql"}))})))

(defmethod default-settings :rh-base
[os-family layout settings]
Expand Down Expand Up @@ -872,7 +887,7 @@ Links:
(defn- create-role-pgsql
[version]
(cond
(re-matches #"9.[0-2]" version)
(not (version-less (as-version-vector version) [9 0]))
"do $$declare user_rec record;
BEGIN
select into user_rec * from pg_roles where rolname='%1$s';
Expand Down