Changeset View
Changeset View
Standalone View
Standalone View
src/applications/drydock/worker/DrydockLeaseDestroyWorker.php
- This file was added.
<?php | |||||
final class DrydockLeaseDestroyWorker extends DrydockWorker { | |||||
protected function doWork() { | |||||
$lease_phid = $this->getTaskDataValue('leasePHID'); | |||||
$lease = $this->loadLease($lease_phid); | |||||
$this->destroyLease($lease); | |||||
} | |||||
private function destroyLease(DrydockLease $lease) { | |||||
$status = $lease->getStatus(); | |||||
switch ($status) { | |||||
case DrydockLeaseStatus::STATUS_RELEASED: | |||||
case DrydockLeaseStatus::STATUS_BROKEN: | |||||
break; | |||||
default: | |||||
throw new PhabricatorWorkerPermanentFailureException( | |||||
pht( | |||||
'Unable to destroy lease ("%s"), lease has the wrong '. | |||||
'status ("%s").', | |||||
$lease->getPHID(), | |||||
$status)); | |||||
} | |||||
$resource = $lease->getResource(); | |||||
$blueprint = $resource->getBlueprint(); | |||||
$blueprint->destroyLease($resource, $lease); | |||||
// TODO: Rename DrydockLeaseStatus::STATUS_EXPIRED to STATUS_DESTROYED. | |||||
$lease | |||||
->setStatus(DrydockLeaseStatus::STATUS_EXPIRED) | |||||
->save(); | |||||
} | |||||
} |