module-postgresql/lib/facter/postgres_default_version.rb
2013-04-18 23:11:40 +02:00

69 lines
1.5 KiB
Ruby

def get_debianfamily_postgres_version
case Facter.value('operatingsystem')
when "Debian"
get_debian_postgres_version()
when "Ubuntu"
get_ubuntu_postgres_version()
else
nil
end
end
def get_debian_postgres_version
case Facter.value('operatingsystemrelease')
# TODO: add more debian versions or better logic here
when /^6\./
"8.4"
when /^wheezy/, /^7\./
"9.1"
else
nil
end
end
def get_ubuntu_postgres_version
case Facter.value('operatingsystemrelease')
when "11.10", "12.04", "12.10", "13.04"
"9.1"
when "10.04", "10.10", "11.04"
"8.4"
else
nil
end
end
def get_redhatfamily_postgres_version
case Facter.value('operatingsystemrelease')
when /^6\./
"8.4"
when /^5\./
"8.1"
else
nil
end
end
Facter.add("postgres_default_version") do
setcode do
result =
case Facter.value('osfamily')
when 'RedHat'
get_redhatfamily_postgres_version()
when 'Linux'
get_redhatfamily_postgres_version()
when 'Debian'
get_debianfamily_postgres_version()
else
nil
end
# TODO: not sure if this is really a great idea, but elsewhere in the code
# it is useful to be able to distinguish between the case where the fact
# does not exist at all (e.g., if pluginsync is not enabled), and the case
# where the fact is not known for the OS in question.
if result == nil
result = 'unknown'
end
result
end
end