X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=manifests%2Finit.pp;h=86e49c8f4ea48ff029e0251da34f01c39d0e5d44;hb=d81c3d9476b14892882620723a02617c344f703c;hp=faaecc741332e6d970ec66c915d12b47c5a0f37c;hpb=6cdbe562ab6dc6a75ae57bacbc2d5f44dcedcd10;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/manifests/init.pp b/manifests/init.pp index faaecc7..86e49c8 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -1,5 +1,6 @@ # class apt( + $proxy = {}, $always_apt_update = false, $apt_update_frequency = 'reluctantly', $purge_sources_list = false, @@ -11,10 +12,6 @@ class apt( $sources = undef, ) inherits ::apt::params { - if $::osfamily != 'Debian' { - fail('This module only works on Debian or derivatives like Ubuntu') - } - include apt::update $frequency_options = ['always','daily','weekly','reluctantly'] @@ -23,6 +20,28 @@ class apt( validate_bool($purge_sources_list, $purge_sources_list_d, $purge_preferences, $purge_preferences_d) + validate_hash($proxy) + if $proxy['host'] { + validate_string($proxy['host']) + } + if $proxy['port'] { + unless is_integer($proxy['port']) { + fail('$proxy port must be an integer') + } + } + if $proxy['https'] { + validate_bool($proxy['https']) + } + + $_proxy = merge($apt::proxy_defaults, $proxy) + + if $proxy['host'] { + apt::setting { 'conf-proxy': + priority => '01', + content => template('apt/_header.erb', 'apt/proxy.erb'), + } + } + $sources_list_content = $purge_sources_list ? { false => undef, true => "# Repos managed by puppet.\n", @@ -34,23 +53,14 @@ class apt( } } - file { '/etc/apt/apt.conf.d/15update-stamp': - ensure => 'file', - content => template('apt/_header.erb', 'apt/15update-stamp.erb'), - group => 'root', - mode => '0644', - owner => 'root', + apt::setting { 'conf-update-stamp': + priority => 15, + content => template('apt/_header.erb', 'apt/15update-stamp.erb'), } - $root = $apt::params::root - $apt_conf_d = $apt::params::apt_conf_d - $sources_list_d = $apt::params::sources_list_d - $preferences_d = $apt::params::preferences_d - $provider = $apt::params::provider - file { 'sources.list': ensure => present, - path => "${root}/sources.list", + path => $::apt::sources_list, owner => root, group => root, mode => '0644', @@ -60,7 +70,7 @@ class apt( file { 'sources.list.d': ensure => directory, - path => $sources_list_d, + path => $::apt::sources_list_d, owner => root, group => root, purge => $purge_sources_list_d, @@ -71,13 +81,13 @@ class apt( if $purge_preferences { file { 'apt-preferences': ensure => absent, - path => "${root}/preferences", + path => $::apt::preferences, } } file { 'preferences.d': ensure => directory, - path => $preferences_d, + path => $::apt::preferences_d, owner => root, group => root, purge => $purge_preferences_d,