Correct Aphlict websocket URI construction after PHP8 compatibility changes
[phabricator.git] / src / applications / drydock / management / DrydockManagementReclaimWorkflow.php
bloba312f109f2c3e6832f4eee332b0ba1c30390893e
1 <?php
3 final class DrydockManagementReclaimWorkflow
4 extends DrydockManagementWorkflow {
6 protected function didConstruct() {
7 $this
8 ->setName('reclaim')
9 ->setSynopsis(pht('Reclaim unused resources.'))
10 ->setArguments(array());
13 public function execute(PhutilArgumentParser $args) {
14 $viewer = $this->getViewer();
15 $drydock_phid = id(new PhabricatorDrydockApplication())->getPHID();
17 PhabricatorWorker::setRunAllTasksInProcess(true);
19 $resources = id(new DrydockResourceQuery())
20 ->setViewer($viewer)
21 ->withStatuses(
22 array(
23 DrydockResourceStatus::STATUS_ACTIVE,
25 ->execute();
26 foreach ($resources as $resource) {
27 $command = DrydockCommand::initializeNewCommand($viewer)
28 ->setTargetPHID($resource->getPHID())
29 ->setAuthorPHID($drydock_phid)
30 ->setCommand(DrydockCommand::COMMAND_RECLAIM)
31 ->save();
33 $resource->scheduleUpdate();
35 $resource = $resource->reload();
37 $name = pht(
38 'Resource %d: %s',
39 $resource->getID(),
40 $resource->getResourceName());
42 switch ($resource->getStatus()) {
43 case DrydockResourceStatus::STATUS_RELEASED:
44 case DrydockResourceStatus::STATUS_DESTROYED:
45 echo tsprintf(
46 "%s\n",
47 pht(
48 'Resource "%s" was reclaimed.',
49 $name));
50 break;
51 default:
52 echo tsprintf(
53 "%s\n",
54 pht(
55 'Resource "%s" could not be reclaimed.',
56 $name));
57 break;