On Mon, Jan 24, 2011 at 23:24, Luke Kanies <[email protected]> wrote:
> On Jan 24, 2011, at 10:40 PM, Daniel Pittman wrote:
>> On Mon, Jan 24, 2011 at 02:39, Trevor Vaughan <[email protected]> wrote:
>>
>>> I'd like to see dot output but only if it was simple and human readable.
>> Well, the current output format for a couple of cycles is this:
>>
>> err: Could not apply complete catalog: Found 2 dependency cycles:
>> (Notify[a] => Notify[b] => Notify[c] => Notify[a])
>> (Notify[mp1-1] => Notify[multipath] => Notify[mp1] => Notify[mp1-1])
>> (Notify[mp1-1] => Notify[multipath] => Notify[mp2] => Notify[mp2-2] =>
>> Notify[multipath])
>> Try the '--graph' option and opening the '.dot' file in OmniGraffle or 
>> GraphViz
>>
>> In view of that, do you think it is worth doing the extra work to emit
>> DOT format data natively?
>> It would be almost-but-not-quite the same as the current data,
>> allowing a trivial injection:
>>
>> { "Notify[a]" -> "Notify[b]" -> "Notify[c]" -> "Notify[a]" }
>>
>> I can do that, but I don't strongly feel it is needed with the above output.
>>
>> Notably, the current version of the code will emit a reasonable but
>> not exhaustive set of paths, so pretty much all the value of the dot
>> stuff would be to draw up exactly what you can read out anyway.
>>
>> So, still interested?
>
> I guess my question is, who will normally be encountering this problem, and 
> how do we expect them to solve it?
>
> My guess is that people who most commonly encounter this problem need an 
> insanely simple solution, and, um, telling them how easy it is to convert the 
> existing output into dot isn't it. :)

I would expect the answer to be "me", basically: at least, me, in my
last role where I would occasionally make changes and accidentally
introduce a dependency loop. In that situation I really wanted to know
where it came from, and the output we now have would give me exactly
that. I only ever went to dot as, basically, a stop-gap to try and
make it easier to prune out all the noise from the old reporting code.

My expectation for solving it? Now we tell them *exactly* where the
problem is, right at the time they hit it. I expect them to solve it
by going and figuring out which link in those chains is the incorrect
one.

> Don't get me wrong -- your code is great and is shippable either way.  But if 
> you feel like going that extra mile...

I am torn. Maybe I should have it dump out some equivalent of the
overall graph somewhere under the puppet state directory? I don't know
that is very discoverable, but I can call it out in this code, I
guess...

Regards,
    Daniel
-- 
⎋ Puppet Labs Developer – http://puppetlabs.com
✉ Daniel Pittman <[email protected]>
✆ Contact me via gtalk, email, or phone: +1 (877) 575-9775
♲ Made with 100 percent post-consumer electrons

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