|
@@ -1,30 +1,61 @@
|
|
|
+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
|
|
|
- depends = Facter::Util::Resolution.exec('apt-cache show postgresql |grep "^Depends" |head -n 1')
|
|
|
- if match = /^Depends: postgresql-(.*)$/.match(depends)
|
|
|
- match[1]
|
|
|
- else
|
|
|
- nil
|
|
|
+ case Facter.value('operatingsystemrelease')
|
|
|
+ # TODO: add more debian versions or better logic here
|
|
|
+ when /^6\./
|
|
|
+ "8.4"
|
|
|
+ else
|
|
|
+ nil
|
|
|
end
|
|
|
end
|
|
|
|
|
|
-def get_redhat_postgres_version
|
|
|
- version = Facter::Util::Resolution.exec('yum info postgresql-server |grep "^Version"')
|
|
|
- if match = /^Version\s*:\s*(\d+\.\d+).*$/.match(version)
|
|
|
- match[1]
|
|
|
- else
|
|
|
- nil
|
|
|
+def get_ubuntu_postgres_version
|
|
|
+ case Facter.value('operatingsystemrelease')
|
|
|
+ # TODO: add more ubuntu versions or better logic here
|
|
|
+ when "12.04"
|
|
|
+ "9.1"
|
|
|
+ when "10.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
|
|
|
- case Facter.value('osfamily')
|
|
|
- when 'RedHat'
|
|
|
- get_redhat_postgres_version()
|
|
|
- when 'Debian'
|
|
|
- get_debian_postgres_version()
|
|
|
- else
|
|
|
- nil
|
|
|
+ result =
|
|
|
+ case Facter.value('osfamily')
|
|
|
+ when 'RedHat'
|
|
|
+ get_redhatfamily_postgres_version()
|
|
|
+ when 'Debian'
|
|
|
+ get_debianfamily_postgres_version()
|
|
|
+ else
|
|
|
+ nil
|
|
|
+ end
|
|
|
+ if result == nil
|
|
|
+ result = "Unsupported OS! Please check `postgres_default_version` fact."
|
|
|
end
|
|
|
+ result
|
|
|
end
|
|
|
-end
|
|
|
+end
|