From: Peter Palfrader Date: Sat, 28 Sep 2019 14:41:47 +0000 (+0200) Subject: add a pg cluster list facter X-Git-Url: https://git.adam-barratt.org.uk/?a=commitdiff_plain;h=43b1d99e300dc785653c920b8d998f6d25487cc9;p=mirror%2Fdsa-puppet.git add a pg cluster list facter --- diff --git a/modules/postgres/lib/facter/pg_clusters.rb b/modules/postgres/lib/facter/pg_clusters.rb new file mode 100644 index 000000000..ed1cbce70 --- /dev/null +++ b/modules/postgres/lib/facter/pg_clusters.rb @@ -0,0 +1,28 @@ +# Get an array of all postgresql clusters on this system +# using pg_lsclusters. +# +# Copyright 2019, Peter Palfrader +# +Facter.add(:postgresql_clusters) do + setcode do + clusters = [] + begin + IO.popen(['pg_lsclusters', '-h']) do |f| + f.each_line do |line| + (version, cluster, port, status, owner, datadir, logfile, _) = line.split() + clusters << { + 'version' => version, + 'cluster' => cluster, + 'port' => port, + 'status' => status.split(',').product([true]).to_h(), + 'owner' => owner, + 'datadir' => datadir, + 'logfile' => logfile, + } + end + end + rescue Errno::ENOENT + end + clusters + end +end