Files
UnrealEngineUWP/Engine/Source/Programs/Horde/Docs/Config/Conditions.md
ben marsh 9578285edc Horde: Documentation updates.
* Add screenshots and sample code for configuring job parameters.
* Add placeholder files for tutorials.
* Fix markdown linting in most files.

[CL 30893696 by ben marsh in ue5-main branch]
2024-01-25 13:45:53 -05:00

2.4 KiB

Horde > Configuration > Conditions

Conditions

Introduction

Several parts of Horde allow specifying a query condition to select particular agents for an operation. These condition strings are stored in JSON configuration flies as a string, and have a C-like syntax.

Agents report a large number of properties collected from their characteristics, which can be viewed from the Agents page on the Horde dashboard. Agents may report multiple values for a particular key, such as PlatformGroup: Desktop and PlatformGroup: Unix. Conditions evaluate to true if there is any value for a particular key that satisfies the expression.

Values

Values in condition strings are dynamically typed, and coerced into the correct format for the operation performed on them. For example, the integer 0, the strings '0' and 'false', and the boolean false are functionally equivalent.

Integers may be given the following binary order-of-magnitude suffixes as a shorthand:

Suffix Size
Kb 2^10 (1,024)
Mb 2^20 (1,048,576)
Gb 2^30 (1,073,741,824)
Tb 2^40 (1,099,511,627,776)

Operators

Operators follow standard C rules of precedence. Sub-expressions may be enclosed in ( parentheses ).

Boolean Operators

Operator Description
true Boolean literal
false Boolean literal
!A Negation
A && B Logical AND
A || B Logical OR
A == B Equality
A != B Inequality

Integer Operators

Operator Description
1234 Integer literal
1234kb Integer literal with binary size suffix (evaluates to 1,263,616).
A == B Test for equality
A != B Test for inequality
A < B Test if one value is less than another
A <= B Test if one value is less than or equal to another
A > B Test if one value is greater than another
A >= B Test if one value is greater than or equal to another
A == B Test for equality

String Operators

Operator Description
'value' String literal
"value" String literal
A == B Test if two strings compare equal for equality. Comparison is case-insensitive.
A != B Test if two strings are different. Comparison is case-insensitive.
A ~= B Test if a string (A) matches a regex (B). The regex comparison is case-insensitive.