/** * @param FileSyncKey $key * @param StorageProfile $externalStorage * @return SyncFile */ public static function createPendingExternalSyncFileForKey(FileSyncKey $key, StorageProfile $externalStorage, $isDir = false) { $externalStorageId = $externalStorage->getId(); KalturaLog::debug("key [{$key}], externalStorage [{$externalStorageId}]"); list($fileRoot, $realPath) = kPathManager::getFilePathArr($key, $externalStorageId); $c = FileSyncPeer::getCriteriaForFileSyncKey($key); $c->add(FileSyncPeer::DC, $externalStorageId); $fileSync = FileSyncPeer::doSelectOne($c); if (!$fileSync) { $fileSync = FileSync::createForFileSyncKey($key); } $fileSync->setDc($externalStorageId); $fileSync->setFileRoot($fileRoot); $fileSync->setFilePath($realPath); $fileSync->setFileSize(-1); $fileSync->setStatus(FileSync::FILE_SYNC_STATUS_PENDING); $fileSync->setOriginal(false); $fileSync->setIsDir($isDir); if ($externalStorage->getProtocol() == StorageProfile::STORAGE_KALTURA_DC) { $fileSync->setFileType(FileSync::FILE_SYNC_FILE_TYPE_FILE); } else { $fileSync->setFileType(FileSync::FILE_SYNC_FILE_TYPE_URL); } $fileSync->save(); kEventsManager::raiseEvent(new kObjectAddedEvent($fileSync)); return $fileSync; }
public static function addStorageDeleteJob(BatchJob $parentJob = null, $entryId = null, StorageProfile $storage, FileSync $fileSync) { $netStorageDeleteData = kStorageDeleteJobData::getInstance($storage->getProtocol()); $netStorageDeleteData->setJobData($storage, $fileSync); if ($parentJob) { $batchJob = $parentJob->createChild(BatchJobType::STORAGE_DELETE, $storage->getProtocol(), false); } else { $batchJob = new BatchJob(); $batchJob->setEntryId($entryId); $batchJob->setPartnerId($storage->getPartnerId()); } $batchJob->setObjectId($fileSync->getId()); $batchJob->setObjectType(BatchJobObjectType::FILE_SYNC); $batchJob->setJobSubType($storage->getProtocol()); KalturaLog::log("Creating Net-Storage Delete job, with source file: " . $netStorageDeleteData->getSrcFileSyncLocalPath()); return self::addJob($batchJob, $netStorageDeleteData, BatchJobType::STORAGE_DELETE, $storage->getProtocol()); }
/** * * add DeleteStorage job for key * * @param entry $entry * @param StorageProfile $profile * @param FileSyncKey $key */ protected static function delete(entry $entry, StorageProfile $profile, FileSyncKey $key) { $externalFileSync = kFileSyncUtils::getReadyPendingExternalFileSyncForKey($key, $profile->getId()); if (!$externalFileSync) { return; } $c = new Criteria(); $c->add(BatchJobPeer::OBJECT_ID, $externalFileSync->getId()); $c->add(BatchJobPeer::OBJECT_TYPE, BatchJobObjectType::FILE_SYNC); $c->add(BatchJobPeer::JOB_TYPE, BatchJobType::STORAGE_EXPORT); $c->add(BatchJobPeer::JOB_SUB_TYPE, $profile->getProtocol()); $c->add(BatchJobPeer::ENTRY_ID, $entry->getId()); $c->add(BatchJobPeer::STATUS, array(BatchJob::BATCHJOB_STATUS_RETRY, BatchJob::BATCHJOB_STATUS_PENDING), Criteria::IN); $exportJobs = BatchJobPeer::doSelect($c); if (!$exportJobs) { kJobsManager::addStorageDeleteJob(null, $entry->getId(), $profile, $externalFileSync); } else { foreach ($exportJobs as $exportJob) { kJobsManager::abortDbBatchJob($exportJob); } } }
public static function addStorageDeleteJob(BatchJob $parentJob = null, $entryId = null, StorageProfile $storage, FileSync $fileSync) { $netStorageDeleteData = new kStorageDeleteJobData(); $netStorageDeleteData->setServerUrl($storage->getStorageUrl()); $netStorageDeleteData->setServerUsername($storage->getStorageUsername()); $netStorageDeleteData->setServerPassword($storage->getStoragePassword()); $netStorageDeleteData->setFtpPassiveMode($storage->getStorageFtpPassiveMode()); $netStorageDeleteData->setSrcFileSyncId($fileSync->getId()); $netStorageDeleteData->setDestFileSyncStoredPath($storage->getStorageBaseDir() . '/' . $fileSync->getFilePath()); if ($parentJob) { $batchJob = $parentJob->createChild(false); } else { $batchJob = new BatchJob(); $batchJob->setEntryId($entryId); $batchJob->setPartnerId($storage->getPartnerId()); } KalturaLog::log("Creating Net-Storage Delete job, with source file: " . $netStorageDeleteData->getSrcFileSyncLocalPath()); return self::addJob($batchJob, $netStorageDeleteData, BatchJobType::STORAGE_DELETE, $storage->getProtocol()); }
/** * @param BatchJob $parentJob * @param string $entryId * @param int $partnerId * @param StorageProfile $externalStorage * @param SyncFile $fileSync * @param string $srcFileSyncLocalPath * @param bool $force * * @return BatchJob */ public static function addStorageExportJob(BatchJob $parentJob = null, $entryId, $partnerId, StorageProfile $externalStorage, FileSync $fileSync, $srcFileSyncLocalPath, $force = false) { KalturaLog::log(__METHOD__ . " entryId[{$entryId}], partnerId[{$partnerId}], externalStorage id[" . $externalStorage->getId() . "], fileSync id[" . $fileSync->getId() . "], srcFileSyncLocalPath[{$srcFileSyncLocalPath}]"); $netStorageExportData = new kStorageExportJobData(); $netStorageExportData->setServerUrl($externalStorage->getStorageUrl()); $netStorageExportData->setServerUsername($externalStorage->getStorageUsername()); $netStorageExportData->setServerPassword($externalStorage->getStoragePassword()); $netStorageExportData->setFtpPassiveMode($externalStorage->getStorageFtpPassiveMode()); $netStorageExportData->setSrcFileSyncLocalPath($srcFileSyncLocalPath); $netStorageExportData->setSrcFileSyncId($fileSync->getId()); $netStorageExportData->setForce($force); $netStorageExportData->setDestFileSyncStoredPath($externalStorage->getStorageBaseDir() . '/' . $fileSync->getFilePath()); $batchJob = null; if ($parentJob) { $batchJob = $parentJob->createChild(false); } else { $batchJob = new BatchJob(); $batchJob->setEntryId($entryId); $batchJob->setPartnerId($partnerId); } KalturaLog::log("Creating Storage export job, with source file: " . $netStorageExportData->getSrcFileSyncLocalPath()); return self::addJob($batchJob, $netStorageExportData, BatchJobType::STORAGE_EXPORT, $externalStorage->getProtocol()); }