Differential D21517 Diff 51211 src/infrastructure/daemon/workers/management/PhabricatorWorkerManagementWorkflow.php
Changeset View
Changeset View
Standalone View
Standalone View
src/infrastructure/daemon/workers/management/PhabricatorWorkerManagementWorkflow.php
| Show All 15 Lines | return array( | ||||
| 'param' => 'name', | 'param' => 'name', | ||||
| 'help' => pht('Select all tasks of a given class.'), | 'help' => pht('Select all tasks of a given class.'), | ||||
| ), | ), | ||||
| array( | array( | ||||
| 'name' => 'min-failure-count', | 'name' => 'min-failure-count', | ||||
| 'param' => 'int', | 'param' => 'int', | ||||
| 'help' => pht('Limit to tasks with at least this many failures.'), | 'help' => pht('Limit to tasks with at least this many failures.'), | ||||
| ), | ), | ||||
| array( | |||||
| 'name' => 'active', | |||||
| 'help' => pht('Select all active tasks.'), | |||||
| ), | |||||
| ); | ); | ||||
| } | } | ||||
| protected function loadTasks(PhutilArgumentParser $args) { | protected function loadTasks(PhutilArgumentParser $args) { | ||||
| $ids = $args->getArg('id'); | $ids = $args->getArg('id'); | ||||
| $class = $args->getArg('class'); | $class = $args->getArg('class'); | ||||
| $min_failures = $args->getArg('min-failure-count'); | $min_failures = $args->getArg('min-failure-count'); | ||||
| $active = $args->getArg('active'); | |||||
| if (!$ids && !$class && !$min_failures) { | if (!$ids && !$class && !$min_failures && !$active) { | ||||
| throw new PhutilArgumentUsageException( | throw new PhutilArgumentUsageException( | ||||
| pht('Use --id, --class, or --min-failure-count to select tasks.')); | pht( | ||||
| 'Use "--id", "--class", "--active", and/or "--min-failure-count" '. | |||||
| 'to select tasks.')); | |||||
| } | } | ||||
| $active_query = new PhabricatorWorkerActiveTaskQuery(); | $active_query = new PhabricatorWorkerActiveTaskQuery(); | ||||
| $archive_query = new PhabricatorWorkerArchiveTaskQuery(); | $archive_query = new PhabricatorWorkerArchiveTaskQuery(); | ||||
| if ($ids) { | if ($ids) { | ||||
| $active_query = $active_query->withIDs($ids); | $active_query = $active_query->withIDs($ids); | ||||
| $archive_query = $archive_query->withIDs($ids); | $archive_query = $archive_query->withIDs($ids); | ||||
| } | } | ||||
| if ($class) { | if ($class) { | ||||
| $class_array = array($class); | $class_array = array($class); | ||||
| $active_query = $active_query->withClassNames($class_array); | $active_query = $active_query->withClassNames($class_array); | ||||
| $archive_query = $archive_query->withClassNames($class_array); | $archive_query = $archive_query->withClassNames($class_array); | ||||
| } | } | ||||
| if ($min_failures) { | if ($min_failures) { | ||||
| $active_query = $active_query->withFailureCountBetween( | $active_query = $active_query->withFailureCountBetween( | ||||
| $min_failures, null); | $min_failures, null); | ||||
| $archive_query = $archive_query->withFailureCountBetween( | $archive_query = $archive_query->withFailureCountBetween( | ||||
| $min_failures, null); | $min_failures, null); | ||||
| } | } | ||||
| $active_tasks = $active_query->execute(); | $active_tasks = $active_query->execute(); | ||||
| if ($active) { | |||||
| $archive_tasks = array(); | |||||
| } else { | |||||
| $archive_tasks = $archive_query->execute(); | $archive_tasks = $archive_query->execute(); | ||||
| } | |||||
| $tasks = | $tasks = | ||||
| mpull($active_tasks, null, 'getID') + | mpull($active_tasks, null, 'getID') + | ||||
| mpull($archive_tasks, null, 'getID'); | mpull($archive_tasks, null, 'getID'); | ||||
| if ($ids) { | if ($ids) { | ||||
| foreach ($ids as $id) { | foreach ($ids as $id) { | ||||
| if (empty($tasks[$id])) { | if (empty($tasks[$id])) { | ||||
| throw new PhutilArgumentUsageException( | throw new PhutilArgumentUsageException( | ||||
| Show All 40 Lines | |||||