69 lines
1.5 KiB
Ruby
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
|