On 15 February 2011 20:32, Daniel Pittman <[email protected]> wrote: > G'day. > > While Matt and I were pairing on getting IPv6 support into facter we > ran across some code that, on Darwin, would try and DWIM out the > "main" address of the system. Specifically, it assumed that the > "main" IP address of a machine was the one associated with a default > route. > > This is different from most of our platforms, where we just take the > first address, and kind of falls down in the face of some regular > conditions. > > This is consistent, though, with the ipaddress fact on Darwin – that > also does the same route detection, and makes the same assumption; it > even includes a "warn" when you don't have a default route. (Which, > incidentally, means that puppet raises a warning from the facts every > time it runs on a disconnected laptop.) > > So, my position is that the 'ipaddress' fact is daft: it doesn't > actually have a standard meaning, so we are trying to second-guess > what the end user imagined was the "primary" address for a machine. > The only time that has any real standard meaning is when there is only > a single address on the system – which will work right anyway – and > that we are going to guess wrong some proportion of the time > otherwise. > > Specific failure cases that spring to mind: > * a system with two addresses on the interface with the default route > * a system without a default route, like a router, or on a restricted network > * a system with multiple default routes at different priorities > * a system with multiple default routes at equal priority > > I would be inclined to say that we should try and avoid this sort of > DWIM magic in facts, and handle complaints from users by telling them > that in complex situations they need to work out their own rules and > use the appropriate fact by hand. If we needed to, provide extra > facts like "default route interface" or something that helps support > them getting this without needing to write custom facts, but also > without pretending that networks are all comprised of single-homed > hosts with a single default route. > > > One other complexity: the ipaddress6 fact tries a DNS lookup of the > FQDN as the first step in determining the "primary" address. I > actually *would* support this being our standard definition of the > fact, but this is different from the ipaddress fact. That later just > guesses from local data, so we have inconsistency between what should > pretty much be identical facts. > > Any thoughts on which of those two models should win?
KISS should win. IMO. Particularly with networking. We need to make sure things are clearly defined - the mess that is domainname/dnsdomainname/fqdn shows that. Paul -- 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.
