|
Eric Sorenson and Henrik Lindberg I see your points there and I definitely get the idea behind not having truly private classes show up in the console. Why would I want to see something that I can't affect?!
To that end, it would seem like you would want the following:
-
private
-
Does not show in the console
-
Cannot be assigned anything via data binding
-
Raises an error on direct inclusion outside of the module space
-
protected
-
Does not show in the console for inclusion
-
Allows for different data binding scope settings
-
data_scope = local or backend_name or global ?
-
Defaults to global
-
If data_scope allows for the ENC, will show in the console for parameter assignment (but not individual inclusion)
The main reason that I'm looking for this is ease of maintenance. I really want to have rich classes but I don't want to have to repeat all of my parameters everywhere, that way lies fragile code and maintenance hell.
init.pp will expose the most commonly used options and, should you want to do something more interesting, you can go prod individual parts of the sub-classes.
I probably am one of the few that have mentioned this at this point but I also don't know of many other 100k+ LOC publicly published Puppet infrastructures.
|