On Jan 24, 2011, at 11:49 PM, Daniel Pittman wrote: > 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...
I was basically assuming that the cycle portion of the subgraph would only be produced as dot files if --graph was enabled, and it would store that dot file in the same place as the rest of them. But again, if no one really thinks this is awesome, then skip it for now. You've done the main bits. -- Love truth, and pardon error. -- Voltaire --------------------------------------------------------------------- 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.
