Issue #4885 has been updated by Daniel Pittman.
Nigel Kersten wrote: > Daniel Pittman wrote: > > That feels quite horrible to me, and significantly worse than the use of "~" > to represent the module on the server. ...because there is no ambiguity in `/foo` being evaluated on the client and `~/foo` being evaluated on the master, right? > As Eric has hinted at, the problem with forcing everyone towards the file() > and template() functions means that you're shipping the whole content of the > file every single time to the agent, simply because it ends up *in* the > catalog. That is true with the current implementation of the `file` function. It is absolutely not a requirement of the function, or the syntax, or anything else. It would be absolutely possible *right now* to implement `file` so that it stored the content in a file bucket and gave a constant hash reference, for example. Doing something fancier would require more smarts in the tool, or more pain for the user - because you couldn't just return a URI from `file` and have it work, since we have non-polymorphic behaviour in setting where file content comes from - but can absolutely be done. > In some cases this may result in less load, simply because you're doing fewer > (but *much* larger) connections vs a gazillion file_metadata requests, but we > can do better than that. That wouldn't be a good choice. However, limiting our design based on some happenstance of current implementation seems as poor a choice to me. ---------------------------------------- Feature #4885: Simplify the syntax for specifying file paths in modules using a '~' https://projects.puppetlabs.com/issues/4885#change-55382 Author: Nigel Kersten Status: Needs Decision Priority: Normal Assignee: Category: Target version: Telly Affected Puppet version: Keywords: Branch: There is too much redundant info in puppet file source specifications in modules. <pre> file { "ugly": source => "puppet:///modules/foo/bar", } </pre> Additionally, we're inconsistent with our template() and file() functions. template() takes either a path relative to the modulepath, dereferencing to "templates" sub-directories of the module or an absolute path. file() takes an absolute path only. I suggest (after a flash of inspiration from Patrick on the mailing list) we use the '~' syntax in a standard unix-y way to refer to module locations as follows. Each class mentioned below corresponds to a module. File source: Reference: $modulepath/modules/foo/files/bar <pre> class foo { file { "booyah": source => "~/bar", } } class notfoo { file { "booyah2": source => "~foo/bar", } } </pre> Template function: Reference: $modulepath/modules/foo/templates/bar.erb <pre> class foo { file { "booyah": content => template("~/bar.erb"), } } class notfoo { file { "booyah2": content => template("~foo/bar.erb"), } } </pre> File function: Reference: $modulepath/modules/foo/files/bar <pre> class foo { file { "booyah": content => file("~/bar"), } } class notfoo { file { "booyah2": content => file("~foo/bar"), } } </pre> I believe we should be able to make this change without breaking any of the existing behavior. I do believe we should aim to deprecate the old template function, but that can be a separate discussion. I haven't actually spent time ensuring this is possible. This is just what I would like to see. Mailing list thread references so we don't re-hash the same questions over again unless needed: http://groups.google.com/group/puppet-dev/browse_frm/thread/688050b8f0668ff2 http://groups.google.com/group/puppet-users/browse_frm/thread/688050b8f0668ff2 (was cross-posted, which never works out well. ) -- 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.
