summaryrefslogtreecommitdiff
path: root/lib/puppet/parser/functions/guess_apache_version.rb
blob: 7537f6d93fc0d4074707464411a4b66817a75d26 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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