Issue #2157 has been updated by R.I. Pienaar.
Luke Kanies wrote: > One other thing I forgot to mention - there's no real relationship in the > current code between file names and fact names. > > That is, you could have a file at /etc/facts.d/foo.yaml that set facts named > bar, baz, and boo, but nothing named foo. I thought about this and figured it would be really tedious to make many files one each per fact, so supported both. On the other hand I can how that makes it much easier to mess things up by having foo fact defined twice - but this is unavoidable since foo can be in yaml, json and shell script. How does facter behave if you try to define the same fact twice? Is this something we should call out and raise an exception or just last-one-wins or something? ---------------------------------------- Feature #2157: External fact support in /etc/facter.d https://projects.puppetlabs.com/issues/2157 Author: Paul Nasrat Status: In Topic Branch Pending Merge Priority: Normal Assignee: Luke Kanies Category: Target version: 2.0.0 Keywords: Branch: Affected Facter version: Facter should support non-ruby facts, preferably in /etc/facter.d. It should support these facts being either executable, in which case the result is the value of the named fact, or in a data format such as yaml, in which case the data file is read in and interpreted as the fact value. It probably makes sense to initially stick to yaml for data formats, since json doesn't ship with ruby, and to also allow executable facts to return either a plain string or yaml. Note that we can do this without supporting any kind of overriding, but it'd be much better if we supported multiple (configurable?) fact directories, with a search path. Thus, if Facter shipped with /etc/facter.d/myfactname and you wanted to override it, you could do so by creating a new file and putting it in a higher-priority location rather than editing a file distributed with the core. Given we're adding structured data support, namespaced facts would be supported with directory structures; e.g., /etc/facter.d/my/fact/name would resolve to my::fact::name. Ideally, the long-term direction here would be not to require any pure-ruby facts, such that the Facter library could be rewritten in any other language and it would function the same, because all of its actual data is outside of ruby. -- 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.
