Re: [Fwd: Dynamic Host Markers]

Robert Ellison <[email protected]> Tue, 10 Feb 2004 00:09:45 -0700
Newsgroups gmane.comp.graphics.chromium.environment
Organization Tungsten Graphics, Inc.
Message-ID <[email protected]>
> OK, I had failed to understand that.  It certainly sounds useful, but it 
> doesn't really match anything *I* expect to need.  I would expect to have more 
> of a situation where I ask for 1000 CRApplicationNodes and 64 CRNetworkNodes 
> and don't care what their hostnames are (subject to some constraints; see 
> below).  I could generate 1064 unique strings starting with '#', but it seems 
> pretty awkward. I'm wondering if there is a way to specify my setup without 
> the extra strings.

You'd have to generate the unique nodes, anyway, right?  I'd imagine a config 
file something like:

	for appNodeNumber in range(NUM_APPNODES):
		appNode = CRApplicationNode("#appnode%d" % appNodeNumber)
		cr.AddNode(appNode)

Shouldn't be any more complex than any other way to set up a large number of 
similar nodes (and still a heckuva lot easier than providing the individual 
names of each node).

> It begins to seem like the original specification was wrong, and 
> CRNetworkNode() shouldn't take a string at all.  Rather, one might have done 
> something like:
> 
> import re
> anyPSCHost= re.compile('.*\.psc\.edu')
> node1= CRNetworkNode()
> node2= CRNetworkNode()
> node3= CRNetworkNode()
> node4= CRNetworkNode()
> 
> node2.addConstraint('match_string', 'somenode.psc.edu' )
> node3.addConstraint('match_regex', anyPSCHost)
> node4.addConstraint('same_host_as',node1)
> 
> node1 could be assigned to any hostname, node2 would match only 
> somenode.psc.edu, node3 would require a hostname matching the AnyPSCHost 
> regex, and node4 would match only the host assigned to node1.  I believe the 
> 'isinstance' problem is avoided here because the initial string essentially 
> specifies the type of the second argument.  Oh, note that I haven't said 
> 'node2.Conf(...)' because it doesn't really configure the *node*; it only 
> configures the host matching logic within the mothership.

It does some yucky things if, using the example above, node4 happens to contact 
the mothership before node1 does.  We'd need to parse trees of constraints (in 
general) to resolve "same_host_as", and we'd have to be able to handle circular 
references...

It also becomes more difficult to specify and handle some relatively simple 
cases; and can produce interesting results if someone unwittingly comments out 
or deletes a constraint line (when all of a sudden the network node begins 
acting like it's constrained to "localhost" instead of being dynamic).

The above *is* a clever generalization that's functionally equivalent to my 
original and avoids the new "#" syntactic element; but it seems to me to be 
difficult to fit into the current paradigm (with all its backwards-compatible 
behavioral quirks) cleanly, without introducing more confusion and/or need for 
wizards and gurus to create config files...

Bob



-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn