From: Hunter Haugen Date: Thu, 1 Jun 2017 17:36:29 +0000 (-0700) Subject: Merge pull request #682 from eputnam/fail_message X-Git-Tag: 4.2.0~23 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=c3bcd94b4b5a8f4f11efed68ef581b68b77c4268;hp=aea4731dc749ce896cfec0e194a80da86734e66d;p=puppet-modules%2Fpuppetlabs-apt.git Merge pull request #682 from eputnam/fail_message this failure is related to os.name, not os.release.full --- diff --git a/lib/puppet/provider/apt_key/apt_key.rb b/lib/puppet/provider/apt_key/apt_key.rb index d7e85da..668fd0f 100644 --- a/lib/puppet/provider/apt_key/apt_key.rb +++ b/lib/puppet/provider/apt_key/apt_key.rb @@ -127,9 +127,15 @@ Puppet::Type.type(:apt_key).provide(:apt_key) do f else begin - user_pass = parsedValue.userinfo.nil? ? nil : parsedValue.userinfo.split(':') - parsedValue.userinfo = '' - key = open(parsedValue, :http_basic_authentication => user_pass).read + # Only send basic auth if URL contains userinfo + # Some webservers (e.g. Amazon S3) return code 400 if empty basic auth is sent + if parsedValue.userinfo.nil? + key = parsedValue.read + else + user_pass = parsedValue.userinfo.split(':') + parsedValue.userinfo = '' + key = open(parsedValue, :http_basic_authentication => user_pass).read + end rescue OpenURI::HTTPError, Net::FTPPermError => e fail("#{e.message} for #{resource[:source]}") rescue SocketError diff --git a/manifests/source.pp b/manifests/source.pp index a9769ea..be743eb 100644 --- a/manifests/source.pp +++ b/manifests/source.pp @@ -19,7 +19,7 @@ define apt::source( $_before = Apt::Setting["list-${title}"] - if ! $release { + if !$release { if $facts['lsbdistcodename'] { $_release = $facts['lsbdistcodename'] } else { diff --git a/spec/defines/source_spec.rb b/spec/defines/source_spec.rb index c224668..79cc11b 100644 --- a/spec/defines/source_spec.rb +++ b/spec/defines/source_spec.rb @@ -373,6 +373,20 @@ describe 'apt::source' do end end + context 'release is empty string' do + let :facts do + { + :os => { :family => 'Debian', :name => 'Debian', :release => { :major => '7', :full => '7.0' }}, + :lsbdistid => 'Debian', + :osfamily => 'Debian', + :puppetversion => Puppet.version, + } + end + let(:params) { { :location => 'hello.there', :release => '' } } + + it { is_expected.to contain_apt__setting('list-my_source').with_content(/hello\.there main/) } + end + context 'invalid pin' do let :facts do {