On Sep 15, 2010, at 2:13 PM, Jesse Wolfe wrote:

> 
> 
> The real problem here is that run_mode was a broken model when I did it, and 
> the reification of it didn't sufficiently fix it.
> 
> I agree with this statement completely.
>  
> require that applications set it, in the same way that they set things like 
> terminus_class.  This makes everything simple and obvious, and easy to 
> change.  It probably even makes sense to have a DSL-style hook in the 
> Application class:
> 
> Puppet::Application.new(:mystuff) do
>  runs_as :master
>  ...
> end
> 
> turns out we already have a syntax like this, but it's a declaration of the 
> mapping from application to run_mode rather than setting a mutable value
> 
> 
> IMO, the main fix we need to do is to allow run_mode to be directly set
> 
> The reason I made it read-only was that there wasn't a mechanism to change 
> the defaults of other settings when the run_mode changed - if I had already 
> calculated the default value for (for example) $vardir, and I changed the 
> run_mode, the $vardir default wouldn't get updated - which would put the 
> unsuspecting developer into a world of hurt.
> 
> As to combining the settings into one and having the conditional in 
> defaults.rb, every conditional in defaults.rb is a *huge* pain to maintain 
> going forward, and effectively means it's very difficult to change in 
> puppet.conf or equivalent.
> 
> This is currently true.
> Looking at defaults.rb, almost every non-constant (conditional or otherwise 
> calculated) default is trying to work-around the problem that we don't model 
> different defaults for different run_modes.
> It seems crazy to me that in puppet.conf you could trivially write:
> 
> [master]
> yamldir = "$vardir/yaml"
> [agent]
> yamldir = "$vardir/client_yaml"
> 
> but we have no way of safely doing that in defaults.rb .
> 
> I've opened a ticket ( http://projects.puppetlabs.com/issues/4784 ) to allow 
> different default settings values for different run_modes.
> I suspect that it would be no more difficult to implement than any other 
> small change to Puppet::Util::Settings would be.


Thanks.  Can you make sure it's marked as a high priority?

-- 
Basic research is what I am doing when I don't know what I am doing.
                  --Wernher von Braun
---------------------------------------------------------------------
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199



-- 
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.

Reply via email to