Hello, "This is a known limitation and the data bindings were not meant to support the puppet backend."
??? Can you elaborate on this please ? The puppet backend just makes Hiera awesome for supplying defaults. Puppet not supporting the puppet backend for Hiera sounds weird to me. Regards, Stefan - Zipkid - Goethals. On Thu, Sep 6, 2012 at 7:25 PM, Andy Parker <[email protected]> wrote: > On Thu, Sep 6, 2012 at 6:45 AM, Stefan Goethals <[email protected]> wrote: > > Hello, > > > > I am testing Puppet 3 with the built in hiera bindings. > > > > Great! Thanks for trying it out and giving some feedback > > > The yaml backend seems to work ok, though with renamed variables > compared to > > using the hiera() functions. > > > > Yes. The data bindings will construct the fully qualified name of the > variable (so class pt3 ($var) {} looks up pt3::var) in order to make > sure that they are kept unique. > > > What does not seem to work for me is the puppet backend. > > > > This is because of the name of the variables that are looked up. The > puppet backend will try to lookup pt3::data the variable named > pt3::var. This is a known limitation and the data bindings were not > meant to support the puppet backend. > > > I have been using it without problems in puppet 2.7.x. > > > > The way you were using it in 2.7.x should continue to work. And your > output below indicates that it still does. > > > What i expect to see is the 'Debug: hiera(): Looking for data in > > p3t::data'like when using hiera(). > > > > What i see is this 'Debug: hiera(): Looking for data in fake::data' > > > > As a result the file modules/p3t/manifests/data.pp is never queried when > > using the 'class p3t ( $somevar = '' )' syntax. > > > > The code is the following. > > hiera.yaml > >> > >> --- > >> :hierarchy: > >> - common > >> > >> :backends: > >> - puppet > >> > >> > >> :puppet: > >> datasource: data > > > > > > modules/p3t/manifests/init.pp > >> > >> # 2 tries... (1 at a time of course..) > >> > >> > >> class p3t ( $somevar = '' ) > >> class p3t ( $somevar = hiera('somevar','') ) > >> > >> > >> { > >> notify { "test: $somevar": } > >> } > >> > > > > puppept_backend.rb > > > > def hierarchy(scope, override) > > begin > > data_class = Config[:puppet][:datasource] || "data" > > rescue > > data_class = "data" > > end > > > > # added Debug output here... > > Hiera.debug( " scope :#{scope}: " ) > > Hiera.debug( " scope.resource :#{scope.resource}: " ) > > Hiera.debug( " scope.resource.name :#{scope.resource.name}: " ) > > > > > > calling_class = scope.resource.name.to_s.downcase > >> > >> calling_module = calling_class.split("::").first > > > > > > server output > >> > >> # result of using class p3t ( $somevar = '' ) > >> > >> Debug: Automatically imported p3t from p3t into production > >> Debug: hiera(): Hiera Puppet backend starting > >> Debug: hiera(): Looking up p3t::somevar in Puppet backend > >> Debug: hiera(): scope > >> :#<Puppet::Indirector::Hiera::FakeScope:0x7f03abf1fdf0>: > >> Debug: hiera(): scope.resource :#<struct #<Class:0x7f03abf22de8> > >> name="fake">: > >> Debug: hiera(): scope.resource.name :fake: > >> Debug: hiera(): Looking for data in data::common > >> Debug: hiera(): Found data in class data::common > >> Debug: hiera(): Looking for data in fake::data > >> Debug: hiera(): Found data in class fake::data > >> Compiled catalog for pm3.lan.super-visions.com in environment > production > >> in 0.15 seconds > >> > >> > >> > >> # and using class p3t ( $somevar = hiera('somevar','') ) > >> > >> > >> Debug: Automatically imported p3t from p3t into production > >> Debug: hiera(): Hiera Puppet backend starting > >> Debug: hiera(): Looking up p3t::somevar in Puppet backend > >> Debug: hiera(): scope > >> :#<Puppet::Indirector::Hiera::FakeScope:0x7f79f7558390>: > >> Debug: hiera(): scope.resource :#<struct #<Class:0x7f79f7560b58> > >> name="fake">: > >> Debug: hiera(): scope.resource.name :fake: > >> Debug: hiera(): Looking for data in data::common > >> Debug: hiera(): Found data in class data::common > >> Debug: hiera(): Looking for data in fake::data > >> Debug: hiera(): Found data in class fake::data > >> Debug: hiera(): Looking up somevar in Puppet backend > >> Debug: hiera(): scope :Scope(Class[P3t]): > >> Debug: hiera(): scope.resource :Class[P3t]: > >> Debug: hiera(): scope.resource.name :P3t: > >> Debug: hiera(): Looking for data in data::common > >> Debug: importing '/etc/puppet-modules/p3t/manifests/data.pp' in > >> environment production > >> Debug: hiera(): Looking for data in p3t::data > >> Compiled catalog for pm3.lan.super-visions.com in environment > production > >> in 0.16 seconds > > > > > > Regards, > > > > Stefan - Zipkid - Goethals. > > > > -- > > You received this message because you are subscribed to the Google Groups > > "Puppet Developers" 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-dev?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Developers" 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-dev?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Puppet Developers" 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-dev?hl=en.
