示例#1
0
 public static function writeLog(DrydockResource $resource = null, DrydockLease $lease = null, $message)
 {
     $log = id(new DrydockLog())->setEpoch(time())->setMessage($message);
     if ($resource) {
         $log->setResourceID($resource->getID());
     }
     if ($lease) {
         $log->setLeaseID($lease->getID());
     }
     $log->save();
 }
 private function buildLeaseBox(DrydockResource $resource)
 {
     $viewer = $this->getViewer();
     $leases = id(new DrydockLeaseQuery())->setViewer($viewer)->withResourcePHIDs(array($resource->getPHID()))->withStatuses(array(DrydockLeaseStatus::STATUS_PENDING, DrydockLeaseStatus::STATUS_ACQUIRED, DrydockLeaseStatus::STATUS_ACTIVE))->setLimit(100)->execute();
     $id = $resource->getID();
     $leases_uri = "resource/{$id}/leases/query/all/";
     $leases_uri = $this->getApplicationURI($leases_uri);
     $lease_header = id(new PHUIHeaderView())->setHeader(pht('Active Leases'))->addActionLink(id(new PHUIButtonView())->setTag('a')->setHref($leases_uri)->setIconFont('fa-search')->setText(pht('View All Leases')));
     $lease_list = id(new DrydockLeaseListView())->setUser($viewer)->setLeases($leases)->render()->setNoDataString(pht('This resource has no active leases.'));
     return id(new PHUIObjectBoxView())->setHeader($lease_header)->setObjectList($lease_list);
 }
 /**
  * Make sure that a lease was really acquired properly.
  *
  * @param DrydockBlueprint Blueprint which created the resource.
  * @param DrydockResource Resource which was acquired.
  * @param DrydockLease The lease which was supposedly acquired.
  * @return void
  * @task lease
  */
 private function validateAcquiredLease(DrydockBlueprint $blueprint, DrydockResource $resource, DrydockLease $lease)
 {
     if (!$lease->isAcquiredLease()) {
         throw new Exception(pht('Blueprint "%s" (of type "%s") is not properly implemented: it ' . 'returned from "%s" without acquiring a lease.', $blueprint->getBlueprintName(), $blueprint->getClassName(), 'acquireLease()'));
     }
     $lease_id = $lease->getResourceID();
     $resource_id = $resource->getID();
     if ($lease_id !== $resource_id) {
         // TODO: Destroy the lease?
         throw new Exception(pht('Blueprint "%s" (of type "%s") is not properly implemented: it ' . 'returned from "%s" with a lease acquired on the wrong resource.', $blueprint->getBlueprintName(), $blueprint->getClassName(), 'acquireLease()'));
     }
 }