- --requires=CONSTRAINT
Specify a set of allowable properties and other attributes to consider when matching resources for a job. The CONSTRAINT is expressed in a simple syntax described in RFC 35 (Constraint Query Syntax) which is then converted into a JSON object compliant with RFC 31 (Job Constraints Specification).
A constraint query string is formed by a series of terms.
A term has the form
operator:operand
, e.g.hosts:compute[1-10]
.Terms may optionally be joined with boolean operators and parenthesis to allow the formation of more complex constraints or queries.
Boolean operators include logical AND (
&
,&&
, orand
), logical OR (|
,||
, oror
), and logical negation (not
).Terms separated by whitespace are joined with logical AND by default.
Quoting of terms is supported to allow whitespace and other reserved characters in operand, e.g.
foo:'this is args'
.Negation is supported in front of terms such that
-op:operand
is equivalent tonot op:operand
. Negation is not supported in front of general expressions, e.g.-(a|b)
is a syntax error.The full specification of Constraint Query Syntax can be found in RFC 35.
Currently,
--requires
supports the following operators:- properties
Require the set of specified properties. Properties may be comma-separated, in which case all specified properties are required. As a convenience, if a property starts with
^
then a matching resource must not have the specified property. In these commands, theproperties
operator is the default, so thata,b
is equivalent toproperties:a,b
.- hostlist
Require matching resources to be in the specified hostlist (in RFC 29 format).
host
orhosts
is also accepted.- ranks
Require matching resources to be on the specified broker ranks in RFC 22 Idset String Representation.
Examples:
a b c
,a&b&c
, ora,b,c
Require properties a and b and c.
a|b|c
, ora or b or c
Require property a or b or c.
(a and b) or (b and c)
Require properties a and b or b and c.
b|-c
,b or not c
Require property b or not c.
host:fluke[1-5]
Require host in fluke1 through fluke5.
-host:fluke7
Exclude host fluke7.
rank:0
Require broker rank 0.