From f1ca76dec569d7829603a249c96c1767c14113a9 Mon Sep 17 00:00:00 2001 From: Travis Fields Date: Tue, 13 Jan 2015 15:54:10 -0800 Subject: [PATCH] MODULES-1661 Fix issue with apt_key destroy, also added mutliple deletes --- lib/puppet/provider/apt_key/apt_key.rb | 8 +++++--- spec/acceptance/apt_key_provider_spec.rb | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/puppet/provider/apt_key/apt_key.rb b/lib/puppet/provider/apt_key/apt_key.rb index c80f41f..201c022 100644 --- a/lib/puppet/provider/apt_key/apt_key.rb +++ b/lib/puppet/provider/apt_key/apt_key.rb @@ -50,7 +50,7 @@ Puppet::Type.type(:apt_key).provide(:apt_key) do new( :name => line_hash[:key_fingerprint], - :id => line_hash[:key_fingerprint], + :id => line_hash[:key_long], :fingerprint => line_hash[:key_fingerprint], :short => line_hash[:key_short], :long => line_hash[:key_long], @@ -166,8 +166,10 @@ Puppet::Type.type(:apt_key).provide(:apt_key) do end def destroy - #Currently del only removes the first key, we need to recursively list and ensure all with id are absent. - apt_key('del', resource[:id]) + begin + apt_key('del', resource.provider.long) + r = execute(["#{command(:apt_key)} list | grep #{resource.provider.long}"], :failonfail => false) + end while r.exitstatus == 0 @property_hash.clear end diff --git a/spec/acceptance/apt_key_provider_spec.rb b/spec/acceptance/apt_key_provider_spec.rb index aa1e5a4..24277d2 100644 --- a/spec/acceptance/apt_key_provider_spec.rb +++ b/spec/acceptance/apt_key_provider_spec.rb @@ -11,6 +11,8 @@ CENTOS_GPG_KEY_FINGERPRINT = 'C1DAC52D1664E8A4386DBA430946FCA2C105B9DE' CENTOS_REPO_URL = 'ftp.cvut.cz/centos' CENTOS_GPG_KEY_FILE = 'RPM-GPG-KEY-CentOS-6' +SHOULD_NEVER_EXIST_ID = '4BD6EC30' + KEY_CHECK_COMMAND = "apt-key adv --list-keys --with-colons --fingerprint | grep " PUPPETLABS_KEY_CHECK_COMMAND = "#{KEY_CHECK_COMMAND} #{PUPPETLABS_GPG_KEY_FINGERPRINT}" CENTOS_KEY_CHECK_COMMAND = "#{KEY_CHECK_COMMAND} #{CENTOS_GPG_KEY_FINGERPRINT}" @@ -351,7 +353,7 @@ ugVIB2pi+8u84f+an4Hml4xlyijgYu05pqNvnLRyJDLd61hviLC8GYU= it 'fails with a 550' do pp = <<-EOS apt_key { 'CentOS 6': - id => '#{CENTOS_GPG_KEY_LONG_ID}', + id => '#{SHOULD_NEVER_EXIST_ID}', ensure => 'present', source => 'ftp://#{CENTOS_REPO_URL}/herpderp.gpg', } @@ -395,7 +397,7 @@ ugVIB2pi+8u84f+an4Hml4xlyijgYu05pqNvnLRyJDLd61hviLC8GYU= it 'fails with a 404' do pp = <<-EOS apt_key { 'puppetlabs': - id => '4BD6EC30', + id => '#{SHOULD_NEVER_EXIST_ID}', ensure => 'present', source => 'https://#{PUPPETLABS_APT_URL}/herpderp.gpg', } @@ -409,7 +411,7 @@ ugVIB2pi+8u84f+an4Hml4xlyijgYu05pqNvnLRyJDLd61hviLC8GYU= it 'fails with a socket error' do pp = <<-EOS apt_key { 'puppetlabs': - id => '4BD6EC30', + id => '#{SHOULD_NEVER_EXIST_ID}', ensure => 'present', source => 'https://apt.puppetlabss.com/herpderp.gpg', } -- 2.32.3