/** * @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); }