Issue #1544 has been updated by pnasrat.

<pre>
           # Recursively list the files in this tree.
            def reclist(basepath, abspath, recurse, ignore)
                abspath = basepath if abspath.nil?
                relpath = abspath.sub(%r{^#{basepath}}, '')
                relpath = "/#{relpath}" if relpath[0] != ?/  #/
                
                return unless FileTest.exists?(abspath)
...
</pre> 

This breaks as for dangling symlinks FileTest.exists? is false so we get a nil 
in the middle of the recursive call.

----------------------------------------
Bug #1544: File resource fails when recursing from a source directory that 
contains dangling symlinks
http://projects.reductivelabs.com/issues/show/1544

Author: ssm
Status: Accepted
Priority: Normal
Assigned to: pnasrat
Category: file
Target version: 0.24.6
Complexity: Unknown
Affected version: 0.24.4
Keywords: file
directory
recurse
symlink


Using a file resource with "ensure => directory, recurse => true" fails when 
the source directory contains dangling symlinks. The directory is created, but 
none of the content is copied from the source.

h2. Manifest file_directory_recurse_symlink.pp

This manifest reproduces the issue.  The manifest creates a source directory, 
containing a file with content, and a dangling symlink.  It also creates 
another directory with the first directory as source, and with "recurse => 
true".

The destination directory is created, but neither the file, nor the dangling 
symlink is copied from the source directory.  Instead, an error message is 
displayed:

<pre>
err: //File[/tmp/ssm_test_copy]: Failed to generate additional resources during 
transaction: undefined method `each' for nil:NilClass
</pre>


This was seen when using "puppetd" and "puppetmasterd", the manifest reproduces 
the same issue when running with "puppet".

h2. Manifest file_directory_recurse_unreadable_file.pp

This manifests shows "good" behaviour when encountering unreadable files.

I would normally expect a dangling symlink in a recursed directory to be 
created in the same way on the puppet node, pointing to the same place.


----------------------------------------
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to