Skip to content

Commit c315196

Browse files
authored
Merge pull request #475 from sam-maloney/rfc14-max-key-optional
rfc14: make max key optional in range
2 parents b293c90 + f04092b commit c315196

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

spec_14.rst

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -165,34 +165,38 @@ A resource vertex SHALL contain the following keys:
165165
The ``min`` key SHALL be a positive integer indicating the minimum
166166
required count or amount of this resource.
167167

168-
Additionally, it MAY contain the following keys (if present, all three
169-
MUST be specified):
168+
Additionally, it MAY contain the following keys:
170169

171170
**max**
172171
The ``max`` key SHALL be an integer greater than or equal to ``min``
173-
indicating the maximum required count or amount of this resource.
172+
indicating the maximum required count or amount of this resource. If
173+
unset, the default ``max`` SHALL be *infinite*, therefore a ``count``
174+
which specifies only the ``min`` key SHALL be considered a request for
175+
*at least* that number of a resource, and the scheduler SHALL generate
176+
the *R* that contains the maximum number of the resource that is
177+
available and subject to the ``operator`` and ``operand``. By contrast,
178+
if a fixed count is given to the ``count`` key, the scheduler SHALL
179+
match any resource that contains *at least* ``count`` of the resource,
180+
but its *R* SHALL contain exactly ``count`` of the resource
181+
(potentially leaving excess resources unutilized).
174182

175183
**operator**
176184
The ``operator`` key SHALL be a single character string representing an
177185
operator applied between ``min`` and ``max`` which returns the next
178186
acceptable value. Currently defined operators are: addition ``+``,
179187
multiplication ``*``, or exponentiation ``^``. If ``^`` is specified,
180-
then ``min`` MUST be greater than or equal to two.
188+
then ``min`` MUST be greater than or equal to two. If unset, the default
189+
``operator`` SHALL be ``+``.
181190

182191
**operand**
183192
The ``operand`` key SHALL be a positive integer used in conjunction with
184-
the given ``operator``. If ``operator`` is either ``*`` or ``^``, then
185-
``operand`` MUST be greater than or equal to two.
193+
the ``operator``. If the ``operator`` is either ``*`` or ``^``, then the
194+
``operand`` MUST be greater than or equal to two. If unset, the default
195+
``operand`` SHALL be 1.
196+
197+
The ``operator`` and ``operand`` keys MUST both be present if either is
198+
specified.
186199

187-
The default value for ``max`` SHALL be *infinite*, therefore a ``count``
188-
which specifies only the ``min`` key SHALL be considered a request for
189-
*at least* that number of a resource, and the scheduler SHALL generate
190-
the *R* that contains the maximum number of the resource that is
191-
available and subject to the operator and operand. By contrast,
192-
if a fixed count is given to the ``count`` key, the scheduler SHALL
193-
match any resource that contains *at least* ``count`` of the resource,
194-
but its *R* SHALL contain exactly ``count`` of the resource
195-
(potentially leaving excess resources unutilized).
196200

197201
A resource vertex MAY additionally contain one or more of the following keys:
198202

0 commit comments

Comments
 (0)