Issue #1057 has been updated by jamtur01. Assigned to changed from community to andrew Affected version set to 0.24.7
---------------------------------------- Bug #1057: can't purge directories recursively as indicated by the FAQ http://projects.reductivelabs.com/issues/show/1057 Author: anarcat Status: Accepted Priority: Normal Assigned to: andrew Category: file Target version: 0.25.0 Complexity: Unknown Patch: None Affected version: 0.24.7 Keywords: Short story: I tried to follow this documentation: http://reductivelabs.com/trac/puppet/wiki/FrequentlyAskedQuestions#i-want-to-manage-a-directory-and-purge-its-contents So I setup this rule: <pre> file { "/etc/puppet/modules/$name": recurse => "true", purge => "true", source => "puppet:///files/empty", } </pre> ... on the puppetmaster and made sure /etc/puppet/files/empty didn't exist. And puppetd gives me this: <pre> err: Class[main]/Node[chronos]/Puppet::Koumbit-module[rancid]/file=/etc/puppet/modules/rancid/.hg/data/manifests/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/rancid/.hg/data/manifests </pre> Indeed, that directory exists. I also get errors like this: <pre> notice: Class[main]/Node[chronos]/Puppet::Koumbit-module[svn]/file=/etc/puppet/modules/svn: source puppet://puppet.koumbit.net/files/empty does not exist </pre> This happens for empty directories. There are of course workarounds around the issue: i could just do an exec { "rm -rf" :...}, but it's much less elegant. Here is the complete error log: <pre> chronos:/etc/puppet/modules# puppetd --test --server puppet.koumbit.net info: Caching configuration at /etc/puppet/localconfig.yaml err: Already the parent of component[Class[virt_all_groups]] notice: Starting configuration run notice: Class[main]/file=/var/lib/puppet/modules/checksum: checksum changed '{time}Thu Feb 07 15:07:08 -0500 2008' to '{time}Thu Feb 07 15:13:26 -0500 2008' info: Class[main]/file=/var/lib/puppet/modules/README/checksum: Sums are already equal notice: Class[main]/file=/var/lib/puppet/modules/README/ensure: removed notice: Class[main]/Node[chronos]/Puppet::Koumbit-module[network]/file=/etc/puppet/modules/network: source puppet://puppet.koumbit.net/files/empty does not exist notice: Class[main]/Node[chronos]/Puppet::Koumbit-module[network]/file=/etc/puppet/modules/network: Could not retrieve information on /etc/puppet/modules/network notice: Class[main]/Node[chronos]/Puppet::Koumbit-module[koumbit]/file=/etc/puppet/modules/koumbit: source puppet://puppet.koumbit.net/files/empty does not exist notice: Class[main]/Node[chronos]/Puppet::Koumbit-module[koumbit]/file=/etc/puppet/modules/koumbit: Could not retrieve information on /etc/puppet/modules/koumbit notice: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos: source puppet://puppet.koumbit.net/files/empty does not exist notice: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos: Could not retrieve information on /etc/puppet/modules/kerberos err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/templates/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/templates err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/manifests/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/manifests err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/files/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/files err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/templates/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/templates err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/svn/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/svn err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/svn/manifests/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/svn/manifests err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/network/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/network err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/network/templates/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/network/templates err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/network/manifests/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/network/manifests err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/network/manifests/os/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/network/manifests/os err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/modules/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/modules err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/modules/templates/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/modules/templates err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/modules/svn/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/modules/svn err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/modules/svn/manifests/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/modules/svn/manifests err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/modules/hg/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/modules/hg err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/modules/hg/manifests/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/modules/hg/manifests err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/modules/kerberos/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/modules/kerberos err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/modules/kerberos/templates/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/modules/kerberos/templates err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/modules/kerberos/manifests/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/modules/kerberos/manifests err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/modules/puppet/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/modules/puppet err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/modules/puppet/templates/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/modules/puppet/templates err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/modules/puppet/manifests/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/modules/puppet/manifests err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/hg/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/hg err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/hg/manifests/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/hg/manifests err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/manifests/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/manifests err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/kerberos/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/kerberos err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/kerberos/templates/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/kerberos/templates err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/kerberos/manifests/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/kerberos/manifests err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/puppet/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/puppet err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/puppet/files/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/puppet/files err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/puppet/templates/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/puppet/templates err: Class[main]/Node[chronos]/Puppet::Koumbit-module[kerberos]/file=/etc/puppet/modules/kerberos/.hg/data/puppet/manifests/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/kerberos/.hg/data/puppet/manifests notice: Class[main]/Node[chronos]/Puppet::Koumbit-module[rancid]/file=/etc/puppet/modules/rancid: source puppet://puppet.koumbit.net/files/empty does not exist notice: Class[main]/Node[chronos]/Puppet::Koumbit-module[rancid]/file=/etc/puppet/modules/rancid: Could not retrieve information on /etc/puppet/modules/rancid err: Class[main]/Node[chronos]/Puppet::Koumbit-module[rancid]/file=/etc/puppet/modules/rancid/files/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/rancid/files err: Class[main]/Node[chronos]/Puppet::Koumbit-module[rancid]/file=/etc/puppet/modules/rancid/manifests/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/rancid/manifests err: Class[main]/Node[chronos]/Puppet::Koumbit-module[rancid]/file=/etc/puppet/modules/rancid/.hg/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/rancid/.hg err: Class[main]/Node[chronos]/Puppet::Koumbit-module[rancid]/file=/etc/puppet/modules/rancid/.hg/data/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/rancid/.hg/data err: Class[main]/Node[chronos]/Puppet::Koumbit-module[rancid]/file=/etc/puppet/modules/rancid/.hg/data/files/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/rancid/.hg/data/files err: Class[main]/Node[chronos]/Puppet::Koumbit-module[rancid]/file=/etc/puppet/modules/rancid/.hg/data/manifests/ensure: change from directory to absent failed: Could not set absent on ensure: Is a directory - /etc/puppet/modules/rancid/.hg/data/manifests notice: Class[main]/Node[chronos]/Puppet::Koumbit-module[svn]/file=/etc/puppet/modules/svn: source puppet://puppet.koumbit.net/files/empty does not exist notice: Class[main]/Node[chronos]/Puppet::Koumbit-module[svn]/file=/etc/puppet/modules/svn: Could not retrieve information on /etc/puppet/modules/svn notice: Class[main]/Node[chronos]/Puppet::Koumbit-module[postfix]/file=/etc/puppet/modules/postfix: source puppet://puppet.koumbit.net/files/empty does not exist notice: Class[main]/Node[chronos]/Puppet::Koumbit-module[postfix]/file=/etc/puppet/modules/postfix: Could not retrieve information on /etc/puppet/modules/postfix notice: Finished configuration run in 11.41 seconds </pre> The filesystem state on the client: <pre> chronos:/etc/puppet/modules# find . ./koumbit ./svn ./apt ./apt/files ./apt/files/backports.org.key ./apt/templates ./apt/templates/preferences.erb ./apt/templates/sources.list.erb ./apt/manifests ./apt/manifests/init.pp ./apt/.git ./apt/.git/objects ./apt/.git/objects/pack ./apt/.git/objects/pack/pack-c526497258c3622e501f880422e816829742c088.idx ./apt/.git/objects/pack/pack-c526497258c3622e501f880422e816829742c088.pack ./apt/.git/objects/info ./apt/.git/description ./apt/.git/config ./apt/.git/refs ./apt/.git/refs/tags ./apt/.git/refs/heads ./apt/.git/refs/heads/master ./apt/.git/refs/heads/origin ./apt/.git/remotes ./apt/.git/remotes/origin ./apt/.git/branches ./apt/.git/info ./apt/.git/info/exclude ./apt/.git/HEAD ./apt/.git/index ./apt/.git/hooks ./apt/.git/hooks/pre-commit ./apt/.git/hooks/pre-applypatch ./apt/.git/hooks/pre-rebase ./apt/.git/hooks/post-commit ./apt/.git/hooks/post-update ./apt/.git/hooks/commit-msg ./apt/.git/hooks/update ./apt/.git/hooks/applypatch-msg ./apt/README ./postfix ./nagios ./nagios/files ./nagios/files/hostgroups_nagios2.cfg ./nagios/templates ./nagios/templates/command.erb ./nagios/templates/host.erb ./nagios/templates/service.erb ./nagios/manifests ./nagios/manifests/init.pp ./nagios/.git ./nagios/.git/objects ./nagios/.git/objects/pack ./nagios/.git/objects/pack/pack-d27ec6fe908901010b1a73cff96ffe474ea8f963.idx ./nagios/.git/objects/pack/pack-d27ec6fe908901010b1a73cff96ffe474ea8f963.pack ./nagios/.git/objects/info ./nagios/.git/description ./nagios/.git/config ./nagios/.git/refs ./nagios/.git/refs/tags ./nagios/.git/refs/heads ./nagios/.git/refs/heads/master ./nagios/.git/refs/heads/origin ./nagios/.git/remotes ./nagios/.git/remotes/origin ./nagios/.git/branches ./nagios/.git/info ./nagios/.git/info/exclude ./nagios/.git/HEAD ./nagios/.git/index ./nagios/.git/hooks ./nagios/.git/hooks/pre-commit ./nagios/.git/hooks/pre-applypatch ./nagios/.git/hooks/pre-rebase ./nagios/.git/hooks/post-commit ./nagios/.git/hooks/post-update ./nagios/.git/hooks/commit-msg ./nagios/.git/hooks/update ./nagios/.git/hooks/applypatch-msg ./nagios/README ./network ./common ./common/files ./common/files/modules ./common/files/modules/README ./common/plugins ./common/plugins/facter ./common/plugins/facter/netmask.rb ./common/plugins/puppet ./common/plugins/puppet/parser ./common/plugins/puppet/parser/functions ./common/plugins/puppet/parser/functions/sha1.rb ./common/plugins/puppet/parser/functions/basename.rb ./common/plugins/puppet/parser/functions/re_escape.rb ./common/plugins/puppet/parser/functions/split.rb ./common/plugins/puppet/parser/functions/slash_escape.rb ./common/plugins/puppet/parser/functions/gsub.rb ./common/plugins/puppet/parser/functions/dirname.rb ./common/manifests ./common/manifests/classes ./common/manifests/classes/lsb_release.pp ./common/manifests/init.pp ./common/manifests/defines ./common/manifests/defines/config_file.pp ./common/manifests/defines/modules_file.pp ./common/manifests/defines/line.pp ./common/manifests/defines/replace.pp ./common/manifests/defines/concatenated_file.pp ./common/manifests/defines/modules_dir.pp ./common/.git ./common/.git/objects ./common/.git/objects/pack ./common/.git/objects/pack/pack-08cac6aa4e842150258c22c1816ad70b674a9640.pack ./common/.git/objects/pack/pack-08cac6aa4e842150258c22c1816ad70b674a9640.idx ./common/.git/objects/info ./common/.git/description ./common/.git/config ./common/.git/refs ./common/.git/refs/tags ./common/.git/refs/heads ./common/.git/refs/heads/master ./common/.git/refs/heads/origin ./common/.git/remotes ./common/.git/remotes/origin ./common/.git/branches ./common/.git/info ./common/.git/info/exclude ./common/.git/HEAD ./common/.git/index ./common/.git/hooks ./common/.git/hooks/pre-commit ./common/.git/hooks/pre-applypatch ./common/.git/hooks/pre-rebase ./common/.git/hooks/post-commit ./common/.git/hooks/post-update ./common/.git/hooks/commit-msg ./common/.git/hooks/update ./common/.git/hooks/applypatch-msg ./common/README ./rancid ./rancid/files ./rancid/manifests ./rancid/.hg ./rancid/.hg/data ./rancid/.hg/data/files ./rancid/.hg/data/manifests ./virtual ./virtual/files ./virtual/files/build_vserver ./virtual/files/munin ./virtual/files/munin/xen_mem ./virtual/files/munin/xen_vm ./virtual/templates ./virtual/templates/cron.hourly.vserver ./virtual/plugins ./virtual/plugins/facter ./virtual/plugins/facter/virtual.rb ./virtual/plugins/facter/vserver.rb ./virtual/manifests ./virtual/manifests/vserver.pp ./virtual/manifests/init.pp ./virtual/manifests/xen.pp ./virtual/.git ./virtual/.git/objects ./virtual/.git/objects/pack ./virtual/.git/objects/pack/pack-5f0779cf46e98acc4c05bef987fe11e05fb86848.pack ./virtual/.git/objects/pack/pack-5f0779cf46e98acc4c05bef987fe11e05fb86848.idx ./virtual/.git/objects/info ./virtual/.git/description ./virtual/.git/config ./virtual/.git/refs ./virtual/.git/refs/tags ./virtual/.git/refs/heads ./virtual/.git/refs/heads/master ./virtual/.git/refs/heads/origin ./virtual/.git/remotes ./virtual/.git/remotes/origin ./virtual/.git/branches ./virtual/.git/info ./virtual/.git/info/exclude ./virtual/.git/HEAD ./virtual/.git/index ./virtual/.git/hooks ./virtual/.git/hooks/pre-commit ./virtual/.git/hooks/pre-applypatch ./virtual/.git/hooks/pre-rebase ./virtual/.git/hooks/post-commit ./virtual/.git/hooks/post-update ./virtual/.git/hooks/commit-msg ./virtual/.git/hooks/update ./virtual/.git/hooks/applypatch-msg ./virtual/README ./kerberos ./kerberos/templates ./kerberos/manifests ./kerberos/.hg ./kerberos/.hg/data ./kerberos/.hg/data/files ./kerberos/.hg/data/templates ./kerberos/.hg/data/svn ./kerberos/.hg/data/svn/manifests ./kerberos/.hg/data/network ./kerberos/.hg/data/network/templates ./kerberos/.hg/data/network/manifests ./kerberos/.hg/data/network/manifests/os ./kerberos/.hg/data/modules ./kerberos/.hg/data/modules/templates ./kerberos/.hg/data/modules/svn ./kerberos/.hg/data/modules/svn/manifests ./kerberos/.hg/data/modules/hg ./kerberos/.hg/data/modules/hg/manifests ./kerberos/.hg/data/modules/kerberos ./kerberos/.hg/data/modules/kerberos/templates ./kerberos/.hg/data/modules/kerberos/manifests ./kerberos/.hg/data/modules/puppet ./kerberos/.hg/data/modules/puppet/templates ./kerberos/.hg/data/modules/puppet/manifests ./kerberos/.hg/data/hg ./kerberos/.hg/data/hg/manifests ./kerberos/.hg/data/manifests ./kerberos/.hg/data/kerberos ./kerberos/.hg/data/kerberos/templates ./kerberos/.hg/data/kerberos/manifests ./kerberos/.hg/data/puppet ./kerberos/.hg/data/puppet/files ./kerberos/.hg/data/puppet/templates ./kerberos/.hg/data/puppet/manifests </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://reductivelabs.com/redmine/my/account --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en -~----------~----~----~----~------~----~------~--~---
