Bug #444

file type: sourceselect-all problem when recursing into directories

Added by John Dubery over 5 years ago. Updated over 5 years ago.

Status:Closed Start date:
Priority:Normal Due date:
Assignee:Luke Kanies % Done:

0%

Category:-
Target version:0.22.1
Affected Puppet version:0.25.4 Branch:
Keywords:
Votes: 0

Description

Sourceselect=all does not to work below the top level directory being copied.

For examples, I’ll assume the following bit of manifest:

file { “/somewhere”: source => [“puppet://server/a”,

          "puppet://server/b"],

sourceselect => all, recurse => true }

It’s fine with the following source tree …

/server/ |– a/ | |– afile1 | |– adir/ | | |-afile2 |– b/ | |– bfile1 | |– bdir/ | | |-bfile2

However if /server/a and /server/b have subfolders with the same name but different contents, then only the subfolder+contents from a is copied. For example …

/server/ |– a/ | |– afile1 | |– commondir/ | | |– afile2 |– b/ | |– bfile1 | |– commondir/ | | |– bfile2

…. in this case /server/b/commondir/bfile2 is not copied even though it is not a repeat of a file in /server/a/… .

This may seem picky, but it prevents (for example) the perfectly reasonable scenario of …

file { “/usr/local/share/icons”: source => [“puppet://server/puppetfiles/app1/icons”,

          "puppet://server/puppetfiles/app2/icons",
          "puppet://server/puppetfiles/app3/icons"],

sourceselect => all, recurse => true }

…. given the layers of common directory structure that will exist under the icons folders.

History

Updated by John Dubery over 5 years ago

Sorry, made a bit of a pickle with the formatting – should have looked like this …

It's fine with the following source tree ... 

/server/
 |- a/
 | |- afile1
 | |- adir/
 | | |-afile2
 |- b/
 | |- bfile1
 | |- bdir/
 | | |-bfile2 

However if /server/a and /server/b have subfolders with the same name but different contents, then only the subfolder+contents from a is copied. For example …

/server/
 |- a/
 | |- afile1
 | |- commondir/
 | | |- afile2
 |- b/
 | |- bfile1
 | |- commondir/
 | | |- bfile2 

…. in this case /server/b/commondir/bfile2 is not copied even though it is not a repeat of a file in /server/a/… .

Updated by Luke Kanies over 5 years ago

  • Status changed from 1 to Closed
  • 7 set to fixed

Fixed in r2111.

Also available in: Atom PDF