[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Condor-users] How to check NEGOTIATOR_PRE_JOB_RANK?
- Date: Wed, 27 Jun 2007 11:04:48 -0500
- From: Dan Bradley <dan@xxxxxxxxxxxx>
- Subject: Re: [Condor-users] How to check NEGOTIATOR_PRE_JOB_RANK?
Steffen Grunewald wrote:
On Wed, Jun 27, 2007 at 09:07:53AM -0500, Dan Bradley wrote:
This expression is internal to the negotiator, so it is not visible as
part of the machine ClassAd. The best way I can think of to check the
expression would be to evaluate it in a condor_status query. Example:
condor_status -f "%g\n" '-Memory'
This works (although it's lacking a key to distinguish between the machines).
condor_status -f "%s " Name -f "%g\n" '-Memory'
Yes to all of your summary statements above. The difference between
macro expansion within the configuration file and references to ClassAd
attributes in ClassAd expressions is confusing. Just remember that
macro substitution via $(...) happens immediately when Condor is reading
the configuration file on startup or reconfig, whereas evaulation of
ClassAd attributes happens later, whenever the expression is evaluated
in the context of some ClassAd.
NEGOTIATOR_PRE_JOB_RANK = - Memory
NEGOTIATOR_PRE_JOB_RANK = ( -1 * Memory )
NEGOTIATOR_PRE_JOB_RANK = ( -1 * MEMORY )
No, because $(...) is a macro substitution operator, so $(Memory) says
to insert the value of a configuration macro named Memory when the
negotiator is reading the configuration file. Instead, you want to
refer to the Memory attribute of the machine ClassAd (equivalently
NEGOTIATOR_PRE_JOB_RANK = - $(Memory)
I'm still a bit confused 8( but to summarize:
- if I refer to ClassAd attributes, I don't have to write $(...)
- upper/lower case doesn't matter
- TARGET may be used as a prefix to distinguish between machine and
job classAds - MY.Memory would refer to the job Requirement.
If MY.Memory would be defined, Memory without a prefix would return
that value? Then only ( - TARGET.Memory ) would be ultimately safe :-(