[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/drydock/management/ -> DrydockManagementReleaseWorkflow.php (source)

   1  <?php
   2  
   3  final class DrydockManagementReleaseWorkflow
   4    extends DrydockManagementWorkflow {
   5  
   6    public function didConstruct() {
   7      $this
   8        ->setName('release')
   9        ->setSynopsis('Release a lease.')
  10        ->setArguments(
  11          array(
  12            array(
  13              'name'      => 'ids',
  14              'wildcard'  => true,
  15            ),
  16          ));
  17    }
  18  
  19    public function execute(PhutilArgumentParser $args) {
  20      $console = PhutilConsole::getConsole();
  21  
  22      $ids = $args->getArg('ids');
  23      if (!$ids) {
  24        throw new PhutilArgumentUsageException(
  25          'Specify one or more lease IDs to release.');
  26      }
  27  
  28      $viewer = $this->getViewer();
  29  
  30      $leases = id(new DrydockLeaseQuery())
  31        ->setViewer($viewer)
  32        ->withIDs($ids)
  33        ->execute();
  34  
  35      foreach ($ids as $id) {
  36        $lease = idx($leases, $id);
  37        if (!$lease) {
  38          $console->writeErr("Lease %d does not exist!\n", $id);
  39        } else if ($lease->getStatus() != DrydockLeaseStatus::STATUS_ACTIVE) {
  40          $console->writeErr("Lease %d is not 'active'!\n", $id);
  41        } else {
  42          $resource = $lease->getResource();
  43          $blueprint = $resource->getBlueprint();
  44          $blueprint->releaseLease($resource, $lease);
  45  
  46          $console->writeErr("Released lease %d.\n", $id);
  47        }
  48      }
  49  
  50    }
  51  
  52  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1