/** * @param BatchJob $dbBatchJob * @param kDistributionUpdateJobData $data * @param BatchJob $twinJob * @return BatchJob */ public static function onDistributionDisableJobFailed(BatchJob $dbBatchJob, kDistributionUpdateJobData $data, BatchJob $twinJob = null) { $entryDistribution = EntryDistributionPeer::retrieveByPK($data->getEntryDistributionId()); if (!$entryDistribution) { KalturaLog::err("Entry distribution [" . $data->getEntryDistributionId() . "] not found"); return $dbBatchJob; } $entryDistribution->setErrorType($dbBatchJob->getErrType()); $entryDistribution->setErrorNumber($dbBatchJob->getErrNumber()); $entryDistribution->setErrorDescription($dbBatchJob->getMessage()); $entryDistribution->setStatus(EntryDistributionStatus::ERROR_UPDATING); $entryDistribution->setDirtyStatus(null); $entryDistribution->save(); return $dbBatchJob; }
/** * @param EntryDistribution $entryDistribution * @param DistributionProfile $distributionProfile * @return BatchJob */ protected static function addSubmitUpdateJob(EntryDistribution $entryDistribution, DistributionProfile $distributionProfile) { if ($entryDistribution->getStatus() == EntryDistributionStatus::UPDATING) { return null; } $entryDistribution->setStatus(EntryDistributionStatus::UPDATING); $entryDistribution->setDirtyStatus(null); if (!$entryDistribution->save()) { KalturaLog::err("Unable to save entry distribution [" . $entryDistribution->getId() . "] status"); return null; } $dc = $distributionProfile->getRecommendedDcForExecute(); if (is_null($dc)) { $dc = kDataCenterMgr::getCurrentDcId(); } $jobType = ContentDistributionPlugin::getBatchJobTypeCoreValue(ContentDistributionBatchJobType::DISTRIBUTION_UPDATE); if ($distributionProfile->getProvider()->isLocalFileRequired($jobType)) { $readyForSubmit = self::prepareDistributionJob($entryDistribution, $distributionProfile, $dc); if (!$readyForSubmit) { $entryDistribution->setStatus(EntryDistributionStatus::IMPORT_UPDATING); $entryDistribution->save(); return null; } } $jobData = new kDistributionUpdateJobData(); $jobData->setDistributionProfileId($entryDistribution->getDistributionProfileId()); $jobData->setEntryDistributionId($entryDistribution->getId()); $jobData->setProviderType($distributionProfile->getProviderType()); $jobData->setRemoteId($entryDistribution->getRemoteId()); $jobData->setMediaFiles($entryDistribution->getMediaFiles()); $batchJob = new BatchJob(); $batchJob->setDc($dc); $batchJob->setEntryId($entryDistribution->getEntryId()); $batchJob->setPartnerId($entryDistribution->getPartnerId()); $jobSubType = $distributionProfile->getProviderType(); return kJobsManager::addJob($batchJob, $jobData, $jobType, $jobSubType); }
/** * @param EntryDistribution $entryDistribution * @param DistributionProfile $distributionProfile * @return BatchJob */ protected static function addSubmitUpdateJob(EntryDistribution $entryDistribution, DistributionProfile $distributionProfile) { $jobData = new kDistributionUpdateJobData(); $jobData->setDistributionProfileId($entryDistribution->getDistributionProfileId()); $jobData->setEntryDistributionId($entryDistribution->getId()); $jobData->setProviderType($distributionProfile->getProviderType()); $jobData->setRemoteId($entryDistribution->getRemoteId()); $jobData->setMediaFiles($entryDistribution->getMediaFiles()); $batchJob = new BatchJob(); $batchJob->setEntryId($entryDistribution->getEntryId()); $batchJob->setPartnerId($entryDistribution->getPartnerId()); $jobType = ContentDistributionPlugin::getBatchJobTypeCoreValue(ContentDistributionBatchJobType::DISTRIBUTION_UPDATE); $jobSubType = $distributionProfile->getProviderType(); return kJobsManager::addJob($batchJob, $jobData, $jobType, $jobSubType); }