Issue #12418 has been updated by Daniel Pittman.

Category set to file
Status changed from Unreviewed to Needs Decision
Assignee set to Randall Hansen

Nick Fagerlund wrote:
> Tested in puppet 2.7.6. Of course, it only now occurs to me that probably no 
> one is actually using this feature, since putting symlinks inside a module is 
> kind of brittle and deranged.

Randall, I agree that this is a problem: if we support this feature, we kind of 
need to fix the bug, because it *should* behave appropriately to transition 
back and forth between the options.

However, I would love to just drop the ability to ship a symlink as a symlink 
from a module on the server.  That is just ... odd.  Symlinking things in for 
the convenience of the master?  Sure.  Sending a symlink to the client because 
it was a symlink on the master?  That is just an invitation to pain.

Can we drop this in Telly?  Should we let the bug go on in 2.7.x, or should we 
try to fix it there regardless of our intention to fix this long term?

As far as I can tell, nobody out in the wild does this, and expects that 
behaviour to happen, but we can't know how many people expect a symlink in a 
module to be a symlink on the agent too.
----------------------------------------
Bug #12418: links => follow can't replace existing symlinks in the destination 
directory
https://projects.puppetlabs.com/issues/12418

Author: Nick Fagerlund
Status: Needs Decision
Priority: Normal
Assignee: Randall Hansen
Category: file
Target version: 
Affected Puppet version: 
Keywords: 
Branch: 


When serving a directory recursively, setting the `links` attribute to `follow` 
is supposed to dereference symlinks in the source and serve their targets to 
the destination as normal files. However, it can't replace existing symlinks in 
the destination directory, so it's not idempotent.

Assume that `$modulepath/fistfuloflinks/files/links` is a directory containing 
directories that contain symlinks. 

### Step 1

Apply the following resource:

    file {'/tmp/fistfuloflinks':
      ensure  => directory,
      source  => "puppet:///modules/fistfuloflinks/links",
      recurse => true,
      links   => follow,
      force   => true,
    }

As expected, the directories it creates contain normal files.

### Step 2:

Change the value of "links" to "manage," then apply the modified resource. As 
expected, the directories now mimic the source directories -- instead of normal 
files, they have symlinks. 

### Step 3:

Change "links" back to "follow" and apply again. Whoops: they stay symlinks 
instead of turning back to normal files. You can only get back to the results 
of step 1 if you delete the files out of band before applying the resource. 

Tested in puppet 2.7.6. Of course, it only now occurs to me that probably no 
one is actually using this feature, since putting symlinks inside a module is 
kind of brittle and deranged. 


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