Issue #1572 has been updated by jamtur01. Category set to file Status changed from Unreviewed to Accepted Assigned to set to andrew Priority changed from Normal to Urgent Target version set to 0.24.6
---------------------------------------- Bug #1572: File resource with recurse => true, purge => true removes content of directory when source is unavailable http://projects.reductivelabs.com/issues/show/1572 Author: ssm Status: Accepted Priority: Urgent Assigned to: andrew Category: file Target version: 0.24.6 Complexity: Unknown Affected version: 0.24.5 Keywords: file directory recurse purge h1. Description When a file resource is listed with recurse => true, and purge => true, and the source is unavailable, puppet will remove all content from the destination directory. (In our case, a fact was missing, and a variable from the fact was used in the source path name) I would expect puppet to remove content from the destination directory only if puppet can verify that the source directory exists, and is empty. h1. To reproduce: h2. Run puppet with the following recipe to create a source: <pre> file {["/tmp/ssm","/tmp/ssm/source"]: ensure => directory, } file {["/tmp/ssm/source/one","/tmp/ssm/source/two"]: ensure => present, content => "diddly-squat" } </pre> h2. Copy source to destination <pre> file {"/tmp/ssm/destination": ensure => directory, recurse => true, purge => true, source => "/tmp/ssm/source", require => Class["create_source"] } </pre> h2. Copy source to destination, with a simulatet missing or unavailable source (like a $variable in the source name being empty) <pre> file {"/tmp/ssm/destination": ensure => directory, recurse => true, purge => true, source => "/tmp/ssm/missing_source", require => Class["create_source"] } </pre> h1. Sample output Output from run from the attached manifest (like the quoted ones above, just wrapped in classes): <pre> notice: //create_source/File[/tmp/ssm]/ensure: created notice: //create_source/File[/tmp/ssm/source]/ensure: created notice: //create_source/File[/tmp/ssm/source/one]/ensure: changed file contents from {md5}d4d36ee0f4852fc068b79561a4e5e65e to {md5}d4d36ee0f4852fc068b79561a4e5e65e notice: //create_source/File[/tmp/ssm/source/two]/ensure: changed file contents from {md5}d4d36ee0f4852fc068b79561a4e5e65e to {md5}d4d36ee0f4852fc068b79561a4e5e65e notice: //copy_from_source/File[/tmp/ssm/destination]/ensure: created notice: //copy_from_source/File[/tmp/ssm/destination/one]/ensure: created notice: //copy_from_source/File[/tmp/ssm/destination/two]/ensure: created </pre> Output from run after substituting "copy_from_source" with "copy_from_missing_source" <pre> err: //copy_from_missing_source/File[/tmp/ssm/destination]: Failed to retrieve current state of resource: No specified source was found from /tmp/ssm/missing_source notice: //copy_from_missing_source/File[/tmp/ssm/destination/one]/ensure: removed notice: //copy_from_missing_source/File[/tmp/ssm/destination/two]/ensure: removed </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 -~----------~----~----~----~------~----~------~--~---
