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.

Reply via email to