Jason Wright
unread,Aug 15, 2012, 8:54:27 PM8/15/12Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to puppet...@googlegroups.com
I was testing parameterized classes using an external node classifier
running on a 3.0.0rc2 master and found that catalog compilation fails
if I have a parameterized class that uses defaults if I declare an
instance of the class that does not specify values for all parameters.
I was able to reproduce the behavior using 'puppet apply':
logos: /tmp ] cat foo.pp
class foo($foo1="default1", $foo2="default2") {
file { "/tmp/foofile":
content => "foo1=\"$foo1\" foo2=\"$foo2\"\n"
}
}
class { "foo":
}
Rather than getting a file with the class default values, catalog
compilation fails:
logos: /tmp ] sudo puppet apply foo.pp
Error: Puppet::Parser::AST::Resource failed with error RuntimeError:
Hiera terminus not supported without hiera library at /tmp/foo.pp:8 on
node logos
Error: Puppet::Parser::AST::Resource failed with error RuntimeError:
Hiera terminus not supported without hiera library at /tmp/foo.pp:8 on
node logos
I get the same error if I declare a value for either one (but not
both) of the parameters but if I declare values for both parameters,
it works as expected:
class { "foo":
foo1 => "value1",
foo2 => "value2",
}
logos: /tmp ] sudo puppet apply foo.pp
/Stage[main]/Foo/File[/tmp/foofile]/ensure: defined content as
'{md5}42bcc1edf4e8ea1f2aeffafe2ef26712'
Finished catalog run in 0.41 seconds
logos: /tmp ] cat /tmp/foofile
foo1="value1" foo2="value2"
This class works fine with 'puppet apply' on all of the 2.7.x nodes
I've tested; I can declare the class with any valid combination of
default and non-default parameter values. It only fails on 3.0.0rc2.
Thanks,
Jason
--
"Life was better when sun4m mattered." -Thom