--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 (&, &&, or and), logical OR (|, ||, or or), 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 to not 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, the properties operator is the default, so that a,b is equivalent to properties:a,b.

hostlist

Require matching resources to be in the specified hostlist (in RFC 29 format). host or hosts 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, or a,b,c

Require properties a and b and c.

a|b|c, or a 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.