/** * @param EntryDistribution $entryDistribution * @param DistributionProfile $distributionProfile * @return BatchJob */ public static function submitDeleteEntryDistribution(EntryDistribution $entryDistribution, DistributionProfile $distributionProfile) { if ($distributionProfile->getStatus() != DistributionProfileStatus::ENABLED || $distributionProfile->getDeleteEnabled() == DistributionProfileActionStatus::DISABLED) { return null; } $validStatus = array(EntryDistributionStatus::ERROR_DELETING, EntryDistributionStatus::ERROR_UPDATING, EntryDistributionStatus::READY); if (!in_array($entryDistribution->getStatus(), $validStatus)) { KalturaLog::notice("Wrong entry distribution status [" . $entryDistribution->getStatus() . "]"); return null; } $distributionProvider = $distributionProfile->getProvider(); if ($distributionProvider->isDeleteEnabled()) { return self::addSubmitDeleteJob($entryDistribution, $distributionProfile); } if ($distributionProvider->isAvailabilityUpdateEnabled()) { return self::addSubmitDisableJob($entryDistribution, $distributionProfile); } if (!$distributionProvider->isScheduleUpdateEnabled() || !$distributionProvider->isUpdateEnabled()) { KalturaLog::log("Entry distribution [" . $entryDistribution->getId() . "] provider [" . $distributionProfile->getProviderType() . "] doesn't support delete or update"); return null; } $entryDistribution->setSunset(time()); $entryDistribution->save(); return self::addSubmitUpdateJob($entryDistribution, $distributionProfile); }
public function getDeleteEnabled() { $provider = $this->getProvider(); if (!$provider) { return DistributionProfileActionStatus::DISABLED; } $action = GenericDistributionProviderActionPeer::retrieveByProviderAndAction($provider->getId(), DistributionAction::DELETE); if (!$action) { return DistributionProfileActionStatus::DISABLED; } return parent::getDeleteEnabled(); }