Merge pull request #505 from puppetlabs/install-lsb-release
[puppet-modules/puppetlabs-apt.git] / manifests / params.pp
1 class apt::params {
2
3   if $::osfamily != 'Debian' {
4     fail('This module only works on Debian or derivatives like Ubuntu')
5   }
6
7   # prior to puppet 3.5.0, defined couldn't test if a variable was defined
8   # strict variables wasn't added until 3.5.0, so this should be fine.
9   if versioncmp($::puppetversion, '3.5.0') < 0 {
10     $xfacts = {
11       'lsbdistcodename'     => $::lsbdistcodename,
12       'lsbdistrelease'      => $::lsbdistrelease,
13       'lsbmajdistrelease'   => $::lsbmajdistrelease,
14       'lsbdistdescription'  => $::lsbdistdescription,
15       'lsbminordistrelease' => $::lsbminordistrelease,
16       'lsbdistid'           => $::lsbdistid,
17     }
18   } else {
19     # Strict variables facts lookup compatibility
20     $xfacts = {
21       'lsbdistcodename' => defined('$lsbdistcodename') ? {
22         true    => $::lsbdistcodename,
23         default => undef,
24       },
25       'lsbdistrelease' => defined('$lsbdistrelease') ? {
26         true    => $::lsbdistrelease,
27         default => undef,
28       },
29       'lsbmajdistrelease' => defined('$lsbmajdistrelease') ? {
30         true    => $::lsbmajdistrelease,
31         default => undef,
32       },
33       'lsbdistdescription' => defined('$lsbdistdescription') ? {
34         true    => $::lsbdistdescription,
35         default => undef,
36       },
37       'lsbminordistrelease' => defined('$lsbminordistrelease') ? {
38         true    => $::lsbminordistrelease,
39         default => undef,
40       },
41       'lsbdistid' => defined('$lsbdistid') ? {
42         true    => $::lsbdistid,
43         default => undef,
44       },
45     }
46   }
47
48   $root           = '/etc/apt'
49   $provider       = '/usr/bin/apt-get'
50   $sources_list   = "${root}/sources.list"
51   $sources_list_d = "${root}/sources.list.d"
52   $conf_d         = "${root}/apt.conf.d"
53   $preferences    = "${root}/preferences"
54   $preferences_d  = "${root}/preferences.d"
55   $keyserver      = 'keyserver.ubuntu.com'
56
57   $config_files = {
58     'conf'   => {
59       'path' => $conf_d,
60       'ext'  => '',
61     },
62     'pref'   => {
63       'path' => $preferences_d,
64       'ext'  => '',
65     },
66     'list'   => {
67       'path' => $sources_list_d,
68       'ext'  => '.list',
69     }
70   }
71
72   $update_defaults = {
73     'frequency' => 'reluctantly',
74     'timeout'   => undef,
75     'tries'     => undef,
76   }
77
78   $proxy_defaults = {
79     'host'  => undef,
80     'port'  => 8080,
81     'https' => false,
82   }
83
84   $purge_defaults = {
85     'sources.list'   => false,
86     'sources.list.d' => false,
87     'preferences'    => false,
88     'preferences.d'  => false,
89   }
90
91   $source_key_defaults = {
92     'server'  => $keyserver,
93     'options' => undef,
94     'content' => undef,
95     'source'  => undef,
96   }
97
98   $include_defaults = {
99     'deb' => true,
100     'src' => false,
101   }
102
103   case $xfacts['lsbdistid'] {
104     'debian': {
105       case $xfacts['lsbdistcodename'] {
106         'squeeze': {
107           $backports = {
108             'location' => 'http://backports.debian.org/debian-backports',
109             'key'      => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553',
110             'repos'    => 'main contrib non-free',
111           }
112         }
113         default: {
114           $backports = {
115             'location' => 'http://ftp.debian.org/debian/',
116             'key'      => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553',
117             'repos'    => 'main contrib non-free',
118           }
119         }
120       }
121
122       $ppa_options = undef
123       $ppa_package = undef
124
125     }
126     'ubuntu': {
127       $backports = {
128         'location' => 'http://archive.ubuntu.com/ubuntu',
129         'key'      => '630239CC130E1A7FD81A27B140976EAF437D05B5',
130         'repos'    => 'main universe multiverse restricted',
131       }
132
133       case $xfacts['lsbdistcodename'] {
134         'lucid': {
135           $ppa_options        = undef
136           $ppa_package        = 'python-software-properties'
137         }
138         'precise': {
139           $ppa_options        = '-y'
140           $ppa_package        = 'python-software-properties'
141         }
142         'trusty', 'utopic', 'vivid': {
143           $ppa_options        = '-y'
144           $ppa_package        = 'software-properties-common'
145         }
146         default: {
147           $ppa_options        = '-y'
148           $ppa_package        = 'python-software-properties'
149         }
150       }
151     }
152     undef: {
153       fail('Unable to determine lsbdistid, please install lsb-release first')
154     }
155     default: {
156       $ppa_options = undef
157       $ppa_package = undef
158       $backports   = undef
159     }
160   }
161 }