Issue #3707 has been updated by Killboy Powerhed.
I realise this is an off-the-cuff response (very little thought or testing as well) as I only came across this issue today, but if most people just want the yum provider to remove dependencies isn't a quick patch better than nothing ? - this issue seems to have been ongoing for 4+ years in various tickets. Adding an override 'uninstall' method to the yum provider seems to do what I want it to do, then I just use 'absent' instead of 'purge' and the puppet run output is clean. The fact that an incorrectly validated module could wipe out most of a system by removing all of a packages dependencies is present but isn't that what dev environments are for? This way we can get on with our work while someone fixes the purge issue in the background ;) Happy to be enlightened if I've missed something major.. thanks --- a/puppet/provider/package/yum.rb 2013-10-19 00:24:40.931068196 +1100 +++ b/puppet/provider/package/yum.rb 2013-10-19 00:43:43.023276312 +1100 @@ -96,5 +96,9 @@ def purge yum "-y", :erase, @resource[:name] end + + def uninstall + yum "-y", :erase, @resource[:name] + end end ---------------------------------------- Bug #3707: Yum provider "purge" target runs irrespective of package installation status https://projects.puppetlabs.com/issues/3707#change-98939 * Author: Oliver Hookins * Status: Code Insufficient * Priority: Normal * Assignee: Charlie Sharpsteen * Category: package * Target version: * Affected Puppet version: 3.2.4 * Keywords: customer * Branch: https://github.com/mmrobins/puppet/tree/ticket/2.7.x/3707-yum_purging ---------------------------------------- It seems the yum provider will try to purge an absent package: <pre> [root@test ~]# cat test.pp package { logwatch: ensure => purged; } [root@test ~]# /bin/rpm -q logwatch --nosignature --nodigest --qf '%{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}' package logwatch is not installed [root@test ~]# puppet -d -v test.pp debug: Puppet::Type::Package::ProviderRpm: Executing '/bin/rpm --version' debug: Puppet::Type::Package::ProviderUrpmi: Executing '/bin/rpm -ql rpm' debug: Puppet::Type::Package::ProviderYum: Executing '/bin/rpm --version' debug: Puppet::Type::Package::ProviderAptrpm: Executing '/bin/rpm -ql rpm' debug: Puppet::Type::Package::ProviderPorts: file /usr/local/sbin/portupgrade does not exist debug: Puppet::Type::Package::ProviderAptitude: file /usr/bin/aptitude does not exist debug: Puppet::Type::Package::ProviderSunfreeware: file pkg-get does not exist debug: Puppet::Type::Package::ProviderUp2date: file /usr/sbin/up2date-nox does not exist debug: Puppet::Type::Package::ProviderApt: file /usr/bin/apt-get does not exist debug: Puppet::Type::Package::ProviderPortage: file /usr/bin/emerge does not exist debug: Puppet::Type::Package::ProviderRug: file /usr/bin/rug does not exist debug: Puppet::Type::Package::ProviderDpkg: file /usr/bin/dpkg does not exist debug: Puppet::Type::Package::ProviderSun: file /usr/sbin/pkgrm does not exist debug: Puppet::Type::Package::ProviderAptrpm: file apt-get does not exist debug: Puppet::Type::Package::ProviderFink: file /sw/bin/fink does not exist debug: Puppet::Type::Package::ProviderHpux: file /usr/sbin/swremove does not exist debug: Puppet::Type::Package::ProviderUrpmi: file urpmi does not exist debug: Puppet::Type::Package::ProviderFreebsd: file /usr/sbin/pkg_info does not exist debug: Puppet::Type::Package::ProviderOpenbsd: file pkg_info does not exist debug: Creating default schedules debug: Failed to load library 'selinux' for feature 'selinux' debug: Puppet::Type::User::ProviderLdap: true value when expecting false debug: Puppet::Type::User::ProviderUser_role_add: file roleadd does not exist debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dscl does not exist debug: Puppet::Type::User::ProviderPw: file pw does not exist debug: Failed to load library 'ldap' for feature 'ldap' debug: /File[/var/lib/puppet/ssl/private]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/client_yaml]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/facts]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/ssl/public_keys]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/ssl]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/ssl/certs/ca.pem]: Autorequiring File[/var/lib/puppet/ssl/certs] debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/ssl/certificate_requests]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/ssl/certs]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/clientbucket]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/ssl/crl.pem]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/state/graphs]: Autorequiring File[/var/lib/puppet/state] debug: /File[/var/lib/puppet/ssl/certs/test.pem]: Autorequiring File[/var/lib/puppet/ssl/certs] debug: /File[/var/lib/puppet/state/state.yaml]: Autorequiring File[/var/lib/puppet/state] debug: /File[/var/lib/puppet/ssl/public_keys/test.pem]: Autorequiring File[/var/lib/puppet/ssl/public_keys] debug: /File[/var/lib/puppet/ssl/private_keys]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/ssl/private_keys/test.pem]: Autorequiring File[/var/lib/puppet/ssl/private_keys] debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet] debug: Finishing transaction 23973287885200 with 0 changes debug: Prefetching yum resources for package debug: Puppet::Type::Package::ProviderYum: Executing '/bin/rpm --version' debug: Puppet::Type::Package::ProviderYum: Executing '/bin/rpm -qa --nosignature --nodigest --qf '%{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH} '' info: Applying configuration version '1272893121' debug: Puppet::Type::Package::ProviderYum: Executing '/bin/rpm -q logwatch --nosignature --nodigest --qf %{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH} ' debug: //Package[logwatch]: Changing ensure debug: //Package[logwatch]: 1 change(s) debug: Puppet::Type::Package::ProviderYum: Executing '/usr/bin/yum -y erase logwatch' notice: //Package[logwatch]/ensure: created debug: Finishing transaction 23456258088960 with 1 changes </pre> -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-bugs+unsubscr...@googlegroups.com. To post to this group, send email to puppet-bugs@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-bugs. For more options, visit https://groups.google.com/groups/opt_out.