X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=manifests%2Fsource.pp;h=365ba13dedc69382dc317772285638f075a6f745;hb=7f6cc25682a168d96b872434fc12c1e256618570;hp=9ccad35b119dcdaf27e6b3a13a7c43fdd9d857d2;hpb=6c1fd8e819cc8ffb44ac187bb0fa7051d2958cc6;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/manifests/source.pp b/manifests/source.pp index 9ccad35..365ba13 100644 --- a/manifests/source.pp +++ b/manifests/source.pp @@ -76,7 +76,7 @@ define apt::source( if $facts['lsbdistcodename'] { $_release = $facts['lsbdistcodename'] } else { - fail('lsbdistcodename fact not available: release parameter required') + fail(translate('lsbdistcodename fact not available: release parameter required')) } } else { $_release = $release @@ -84,13 +84,21 @@ define apt::source( if $ensure == 'present' { if ! $location { - fail('cannot create a source entry without specifying a location') + fail(translate('cannot create a source entry without specifying a location')) + } + elsif ($::apt::proxy['https_acng']) and ($location =~ /(?i:^https:\/\/)/) { + $_location = regsubst($location, 'https://','http://HTTPS///') + } + else { + $_location = $location } # Newer oses, do not need the package for HTTPS transport. $_transport_https_releases = [ 'wheezy', 'jessie', 'stretch', 'trusty', 'xenial' ] - if $_release in $_transport_https_releases and $location =~ /(?i:^https:\/\/)/ { + if ($facts['lsbdistcodename'] in $_transport_https_releases) and $_location =~ /(?i:^https:\/\/)/ { ensure_packages('apt-transport-https') } + } else { + $_location = undef } $includes = merge($::apt::include_defaults, $include) @@ -98,7 +106,7 @@ define apt::source( if $key { if $key =~ Hash { unless $key['id'] { - fail('key hash must contain at least an id entry') + fail(translate('key hash must contain at least an id entry')) } $_key = merge($::apt::source_key_defaults, $key) } else { @@ -113,7 +121,7 @@ define apt::source( 'includes' => $includes, 'opt_architecture' => $architecture, 'allow_unsigned' => $allow_unsigned, - 'location' => $location, + 'location' => $_location, 'release' => $_release, 'repos' => $repos, }) @@ -137,7 +145,7 @@ define apt::source( 'origin' => $host, } } else { - fail('Received invalid value for pin parameter') + fail(translate('Received invalid value for pin parameter')) } create_resources('apt::pin', { "${name}" => $_pin }) } @@ -145,8 +153,14 @@ define apt::source( # We do not want to remove keys when the source is absent. if $key and ($ensure == 'present') { if $_key =~ Hash { + if $_key['ensure'] != undef { + $_ensure = $_key['ensure'] + } else { + $_ensure = $ensure + } + apt::key { "Add key: ${$_key['id']} from Apt::Source ${title}": - ensure => present, + ensure => $_ensure, id => $_key['id'], server => $_key['server'], content => $_key['content'],