From 43b1d99e300dc785653c920b8d998f6d25487cc9 Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Sat, 28 Sep 2019 16:41:47 +0200 Subject: [PATCH] add a pg cluster list facter --- modules/postgres/lib/facter/pg_clusters.rb | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 modules/postgres/lib/facter/pg_clusters.rb 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 -- 2.20.1