summaryrefslogtreecommitdiff
path: root/lib/puppet/parser/functions/guess_apache_version.rb
diff options
context:
space:
mode:
authorvarac <varacanero@zeromail.org>2015-11-25 14:15:03 +0100
committervarac <varacanero@zeromail.org>2015-11-28 13:40:49 +0100
commitf76a4fb59f5724c21bd660e4262a4a9a5a89efee (patch)
treea15c3fe2a70608220e53f2ebc0dd2f9e666726c0 /lib/puppet/parser/functions/guess_apache_version.rb
parentc127aec5b7d9851ef2e19e1380fabde92d09c899 (diff)
[feat] Add guess_apache_version() function
Try to guess the version of apache to be installed. Certain apache modules depend on each other, so we need to evaluate the apache version before it gets installed. This function decides which apache version is going to be installed based on the `operatingsystemmajrelease` fact.
Diffstat (limited to 'lib/puppet/parser/functions/guess_apache_version.rb')
-rw-r--r--lib/puppet/parser/functions/guess_apache_version.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/puppet/parser/functions/guess_apache_version.rb b/lib/puppet/parser/functions/guess_apache_version.rb
new file mode 100644
index 0000000..7537f6d
--- /dev/null
+++ b/lib/puppet/parser/functions/guess_apache_version.rb
@@ -0,0 +1,39 @@
+# Try to guess the version of apache to be installed.
+# Certain apache modules depend on each other, so we
+# need to evaluate the apache version before it gets
+# installed. This function decides which apache version
+# is going to be installed based on the `operatingsystemrelease`
+# fact.
+module Puppet::Parser::Functions
+ newfunction(:guess_apache_version, :type => :rvalue) do |args|
+ release = lookupvar('operatingsystemrelease')
+ unknown = 'unknown'
+
+ case lookupvar('operatingsystem')
+
+ when 'Debian'
+ case release
+ when /^7.*/
+ version = '2.2'
+ when /^8.*/
+ version = '2.4'
+ else
+ version = unknown
+ end
+
+ when 'Ubuntu'
+ case release
+ when /(12.04|12.10|13.04|13.10)/
+ version = '2.2'
+ when /(14.04|14.10|15.04|15.10|16.04)/
+ version = '2.4'
+ else
+ version = unknown
+ end
+
+ else
+ version = unknown
+ end
+ version
+ end
+end