a <constraint><general> semantics?

Will Partain <[email protected]> Sat, 28 Jul 2001 21:55:21 +0100
Newsgroups gmane.comp.sysutils.ark.devel
Message-ID <[email protected]>
Hey! I didn't say you could take the thinking-caps off yet!

Another question for you all...  Currently, inside of a
<constraint> ... </constraint>, you can have

   <!-- chk if we're doing something for a some-host -->
   <host-spec> some-host </host-spec>

   <!- chk if a thing has one of a list of statuses ->
   <dependency type="status" ... />

   <!- chk if a thing has recorded that one of its methods has been done ->
   <dependency type="normal" ... />

This scheme gets us a surprisingly long way, but we are
thinking about adding a catch-all variant...

   <general> something-in-here </general>

... the idea being that it will then be possible to make
arbitrary queries into ARK land as part of a <constraint>.
(A powerful feature to be used with restraint :-)

So what would we do with 'something in here'?  Proposal: we
treat the "innards" of a <general> constraint exactly as we
do the "innards" of a <param>.  If we end up with an empty
or all-whitespace stream, it's FALSE (constraint not
satisfied); otherwise, it's TRUE.

Now, this means that <general> constraints are going to
mostly be ! (bang) values -- ask the Python interpreter to
handle them, e.g.

   <general>! thing.version() >= '5.6.1' </general>

Somehow this doesn't smell quite right... Anyone got any
better ideas?

Will