Path: blob/master/src/applications/drydock/management/DrydockManagementReclaimWorkflow.php
12256 views
<?php12final class DrydockManagementReclaimWorkflow3extends DrydockManagementWorkflow {45protected function didConstruct() {6$this7->setName('reclaim')8->setSynopsis(pht('Reclaim unused resources.'))9->setArguments(array());10}1112public function execute(PhutilArgumentParser $args) {13$viewer = $this->getViewer();14$drydock_phid = id(new PhabricatorDrydockApplication())->getPHID();1516PhabricatorWorker::setRunAllTasksInProcess(true);1718$resources = id(new DrydockResourceQuery())19->setViewer($viewer)20->withStatuses(21array(22DrydockResourceStatus::STATUS_ACTIVE,23))24->execute();25foreach ($resources as $resource) {26$command = DrydockCommand::initializeNewCommand($viewer)27->setTargetPHID($resource->getPHID())28->setAuthorPHID($drydock_phid)29->setCommand(DrydockCommand::COMMAND_RECLAIM)30->save();3132$resource->scheduleUpdate();3334$resource = $resource->reload();3536$name = pht(37'Resource %d: %s',38$resource->getID(),39$resource->getResourceName());4041switch ($resource->getStatus()) {42case DrydockResourceStatus::STATUS_RELEASED:43case DrydockResourceStatus::STATUS_DESTROYED:44echo tsprintf(45"%s\n",46pht(47'Resource "%s" was reclaimed.',48$name));49break;50default:51echo tsprintf(52"%s\n",53pht(54'Resource "%s" could not be reclaimed.',55$name));56break;57}58}5960}6162}636465