/** * @param BatchJob $dbBatchJob * @param kImportJobData $data * @param BatchJob $twinJob * @return BatchJob */ public static function onImportJobFinished(BatchJob $dbBatchJob, kImportJobData $data, BatchJob $twinJob = null) { $statuses = array(EntryDistributionStatus::IMPORT_SUBMITTING, EntryDistributionStatus::IMPORT_UPDATING); $entryDistributions = EntryDistributionPeer::retrieveByEntryAndStatuses($dbBatchJob->getEntryId(), $statuses); foreach ($entryDistributions as $entryDistribution) { /* @var $entryDistribution EntryDistribution */ $distributionProfile = DistributionProfilePeer::retrieveByPK($entryDistribution->getDistributionProfileId()); if ($entryDistribution->getStatus() == EntryDistributionStatus::IMPORT_SUBMITTING) { KalturaLog::notice("Submitting add entry distribution [" . $entryDistribution->getId() . "]"); kContentDistributionManager::submitAddEntryDistribution($entryDistribution, $distributionProfile, true); } elseif ($entryDistribution->getStatus() == EntryDistributionStatus::IMPORT_UPDATING) { KalturaLog::notice("Submitting update entry distribution [" . $entryDistribution->getId() . "]"); kContentDistributionManager::submitUpdateEntryDistribution($entryDistribution, $distributionProfile); } } }
/** * Retries last submit action * * @action retrySubmit * @param int $id * @return KalturaEntryDistribution * @throws ContentDistributionErrors::ENTRY_DISTRIBUTION_NOT_FOUND * @throws ContentDistributionErrors::DISTRIBUTION_PROFILE_NOT_FOUND * @throws ContentDistributionErrors::DISTRIBUTION_PROFILE_DISABLED */ function retrySubmitAction($id) { $dbEntryDistribution = EntryDistributionPeer::retrieveByPK($id); if (!$dbEntryDistribution) { throw new KalturaAPIException(ContentDistributionErrors::ENTRY_DISTRIBUTION_NOT_FOUND, $id); } $distributionProfileId = $dbEntryDistribution->getDistributionProfileId(); $dbDistributionProfile = DistributionProfilePeer::retrieveByPK($distributionProfileId); if (!$dbDistributionProfile) { throw new KalturaAPIException(ContentDistributionErrors::DISTRIBUTION_PROFILE_NOT_FOUND, $distributionProfileId); } if ($dbDistributionProfile->getStatus() == DistributionProfileStatus::DISABLED) { throw new KalturaAPIException(ContentDistributionErrors::DISTRIBUTION_PROFILE_DISABLED, $entryDistribution->distributionProfileId); } switch ($dbEntryDistribution->getStatus()) { case EntryDistributionStatus::QUEUED: case EntryDistributionStatus::SUBMITTING: case EntryDistributionStatus::ERROR_SUBMITTING: kContentDistributionManager::submitAddEntryDistribution($dbEntryDistribution, $dbDistributionProfile, false); $dbEntryDistribution->reload(); break; case EntryDistributionStatus::UPDATING: case EntryDistributionStatus::ERROR_UPDATING: kContentDistributionManager::submitUpdateEntryDistribution($dbEntryDistribution, $dbDistributionProfile); $dbEntryDistribution->reload(); break; case EntryDistributionStatus::DELETING: case EntryDistributionStatus::ERROR_DELETING: kContentDistributionManager::submitDeleteEntryDistribution($dbEntryDistribution, $dbDistributionProfile); $dbEntryDistribution->reload(); break; case EntryDistributionStatus::PENDING: case EntryDistributionStatus::READY: case EntryDistributionStatus::DELETED: break; } $entryDistribution = new KalturaEntryDistribution(); $entryDistribution->fromObject($dbEntryDistribution, $this->getResponseProfile()); return $entryDistribution; }