Validates task specific fields except its executor (if it exists).
| 1617 | |
| 1618 | // Validates task specific fields except its executor (if it exists). |
| 1619 | Option<Error> validateTask( |
| 1620 | const TaskInfo& task, |
| 1621 | Framework* framework, |
| 1622 | Slave* slave) |
| 1623 | { |
| 1624 | CHECK_NOTNULL(framework); |
| 1625 | CHECK_NOTNULL(slave); |
| 1626 | |
| 1627 | // NOTE: The order in which the following validate functions are |
| 1628 | // executed does matter! |
| 1629 | vector<lambda::function<Option<Error>()>> validators = { |
| 1630 | lambda::bind(internal::validateTaskID, task), |
| 1631 | lambda::bind(internal::validateUniqueTaskID, task, framework), |
| 1632 | lambda::bind(internal::validateSlaveID, task, slave), |
| 1633 | lambda::bind(internal::validateKillPolicy, task), |
| 1634 | lambda::bind(internal::validateMaxCompletionTime, task), |
| 1635 | lambda::bind(internal::validateCheck, task), |
| 1636 | lambda::bind(internal::validateHealthCheck, task), |
| 1637 | lambda::bind(internal::validateResources, task), |
| 1638 | lambda::bind(internal::validateCommandInfo, task), |
| 1639 | lambda::bind(internal::validateContainerInfo, task), |
| 1640 | lambda::bind(internal::validateResourceLimits, task, slave) |
| 1641 | }; |
| 1642 | |
| 1643 | foreach (const lambda::function<Option<Error>()>& validator, validators) { |
| 1644 | Option<Error> error = validator(); |
| 1645 | if (error.isSome()) { |
| 1646 | return error; |
| 1647 | } |
| 1648 | } |
| 1649 | |
| 1650 | return None(); |
| 1651 | } |
| 1652 | |
| 1653 | |
| 1654 | // Validates `Task.executor` if it exists. |