/** * Scan flavor asset according to virus scan profile * * @action scan * @param int $virusScanProfileId * @param string $flavorAssetId * @return int job id * * @throws KalturaErrors::INVALID_OBJECT_ID * @throws KalturaErrors::INVALID_FLAVOR_ASSET_ID * @throws KalturaErrors::INVALID_FILE_SYNC_ID */ function scanAction($flavorAssetId, $virusScanProfileId = null) { $dbFlavorAsset = assetPeer::retrieveById($flavorAssetId); if (!$dbFlavorAsset) { throw new KalturaAPIException(KalturaErrors::INVALID_FLAVOR_ASSET_ID, $flavorAssetId); } if ($virusScanProfileId) { $dbVirusScanProfile = VirusScanProfilePeer::retrieveByPK($virusScanProfileId); } else { $dbVirusScanProfile = VirusScanProfilePeer::getSuitableProfile($dbFlavorAsset->getEntryId()); } if (!$dbVirusScanProfile) { throw new KalturaAPIException(KalturaErrors::INVALID_OBJECT_ID, $virusScanProfileId); } $syncKey = $dbFlavorAsset->getSyncKey(flavorAsset::FILE_SYNC_FLAVOR_ASSET_SUB_TYPE_ASSET); $srcFilePath = kFileSyncUtils::getLocalFilePathForKey($syncKey); if (!$srcFilePath) { throw new KalturaAPIException(KalturaErrors::INVALID_FILE_SYNC_ID, $syncKey); } $job = kVirusScanJobsManager::addVirusScanJob(null, $dbFlavorAsset->getPartnerId(), $dbFlavorAsset->getEntryId(), $dbFlavorAsset->getId(), $srcFilePath, $dbVirusScanProfile->getEngineType(), $dbVirusScanProfile->getActionIfInfected()); return $job->getId(); }