[noctool-devel] compact configurations for identical machines

Jim Prewett download at hpc.unm.edu
Thu May 22 11:35:58 UTC 2008


> It is definitely a cool idea. I am not ENTIRELY sure what the best 
> syntax for the name range would be, but it's definitely something that 
> would be handy for many users.

I'll admit my proposed syntax, mostly in terms of the name range leaves 
something to be desired.  I'm very glad that you appreciate the idea :)  
I'm sure you've made 1000 identical 10 line entries in some config file 
before.  Yuck! :P :)

> > What do y'all think?  Is there a better way to do this?  Something 
> > like this would reduce the size of my shop's config file a couple 
> > orders of magnitude - in turn, I'd screw things up accordingly less 
> > often :)
 
> At the moment, you could PROBABLY use LOOP and friends, but that'd be 
> icky. The whole config file is a chain of macros expanded to code 
> generating configuration objects. On further consideration, no, you 
> can't (yes, I tested, no you're not supposed tio, it seems it 
> worked...).

If I'm understanding what you're saying here correctly: basically that the 
configuration file is "just Lisp", I think that is a good thing (TM).  
Certainly if we think we can specify everything our user might ever want 
to put into a config file, we are just dead wrong (Lisp is better than 
Jim's config language *unless* Jim's config language is a superset of 
Lisp or some other reasonably powerful language simply because how can 
Jim guess what you want to do and what your environment looks like?)

> I was actually thinking, the other day, that the current config-nesting 
> only allows a nested macro to use a single context and I was trying to 
> thing of a use-case where one would want stuff nested in more than one 
> and now I have one.
> 
> I'll get the changes necessary for defnested sorted before heading off 
> to work. I suspect a workable method for naming the individual hosts 
> would be a "member-name" config stanza, taking (say) a format-string 
> (either C or CL, we should eb able to compile the former to the latter), 
> a start number and an end number. I feel that making sure you do the 
> right thing for something like "l001-l256" is just plain hard in the 
> general case.
> 
> Imagine trying t figure out how many hosts and what they SHOULD be called when 
> faced with something like "rtr-f01-001-rtr-f03-999". Is that 999 routers, 333 
> named "...f01...", 3 routers, named "...f01-001", "f02-500" and "...f03-999" 
> or 2997 routers? I could make a case for all of those. :) I also suspect we 
> only want to support a single range, to make things MUCH easier.

agreed!

I'd actually decided this syntax was pretty problematic about 6 months ago 
working on the SCAT project.  However, since SCAT is a rip-off of X-CAT 
(IBM's unsupported, not open source, not a product cluster management 
software (that sucks)) I decided to punt on that one and just use the 
syntax you rightly note is problematic (and swear to myself I'd never name 
a host rtr-f01-001).  I've gotten so used to this syntax now that .... 
well... bad habits are hard to break I guess :)

When we come up with a good syntax for this, I can pretty much guarantee 
I'm going to steal it for SCAT :)

Jim



More information about the Noctool-devel mailing list