hey,

----- "Luke Kanies" <[email protected]> wrote:

> Yep.
> 
> It's plenty dangerous.  In particular, it's probably pretty easy to
> get cycles in your graph now.  E.g., say you do this:
> 
> Stage[pre] -> Stage[main] # yay new syntax
> 
> class apt {
>   file { "/some/apt/config": ensure => present }
>   exec { "/usr/bin/apt-get update": require => File[/some/apt/config],
> stage => pre }
> }
> 
> Boom.  You've got a cycle.  The config file is still in 'main', the
> exec is in 'pre', main depends on pre, and the exec depends on the
> file.


since a specific stage isnt specified in the file, could the dependency pull it 
into that stage?

You'd still have a deadlock situation when there are resources in multiple 
stages depending on a resource - they cant pull it into both stages - but this 
should be a situation you can detect and report with a specific error message 
that makes it clear thats the situation rather than the usual resource cycle 
spew?

> 
> This is one reason why I wanted to restrict the stages to just classes
> - it would at least discourage this ability, if not outright prohibit
> it.
> 
> But in the end, it's probably better to leave the sharp knives lying
> around than to limit people here.

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