diff --git a/airtime_mvc/application/models/StoredFile.php b/airtime_mvc/application/models/StoredFile.php index d5333afee..199ec6787 100644 --- a/airtime_mvc/application/models/StoredFile.php +++ b/airtime_mvc/application/models/StoredFile.php @@ -402,6 +402,8 @@ SQL; $CC_CONFIG = Config::getConfig(); $apiKey = $CC_CONFIG["apiKey"][0]; + //If the file was successfully deleted from the cloud the analyzer + //will make a request to the Media API to do the deletion cleanup. $callbackUrl = 'http://'.$_SERVER['HTTP_HOST'].'/rest/media/'.$file_id.'/delete-success'; Application_Model_RabbitMq::SendDeleteMessageToAnalyzer( diff --git a/airtime_mvc/application/modules/rest/controllers/MediaController.php b/airtime_mvc/application/modules/rest/controllers/MediaController.php index 9d0dd48fc..7e9e36df7 100644 --- a/airtime_mvc/application/modules/rest/controllers/MediaController.php +++ b/airtime_mvc/application/modules/rest/controllers/MediaController.php @@ -330,10 +330,12 @@ class Rest_MediaController extends Zend_Rest_Controller $requestData = json_decode($this->getRequest()->getRawBody(), true); - $con = Propel::getConnection(); - $storedFile = new Application_Model_StoredFile(CcFilesQuery::create()->findPk($id), $con); - - $storedFile->doFileDeletionCleanup($requestData["filesize"]); + if ($requestData["import_status"] == 1) { + $con = Propel::getConnection(); + $storedFile = new Application_Model_StoredFile(CcFilesQuery::create()->findPk($id), $con); + + $storedFile->doFileDeletionCleanup($requestData["filesize"]); + } } private function getId() diff --git a/python_apps/airtime_analyzer/airtime_analyzer/cloud_storage_uploader.py b/python_apps/airtime_analyzer/airtime_analyzer/cloud_storage_uploader.py index 76e9e6257..0b7d4a742 100644 --- a/python_apps/airtime_analyzer/airtime_analyzer/cloud_storage_uploader.py +++ b/python_apps/airtime_analyzer/airtime_analyzer/cloud_storage_uploader.py @@ -17,7 +17,6 @@ class CloudStorageUploader: file_name, extension = os.path.splitext(file_base_name) object_name = "%s_%s%s" % (file_name, str(uuid.uuid4()), extension) - #cls = get_driver(getattr(Provider, self._provider)) driver = self.get_cloud_driver() try: @@ -49,16 +48,14 @@ class CloudStorageUploader: def delete_obj(self, obj_name): driver = self.get_cloud_driver() - return_msg = dict() - return_msg["success"] = False try: cloud_obj = driver.get_object(container_name=self._bucket, object_name=obj_name) - return_msg["filesize"] = getattr(cloud_obj, 'size') - return_msg["success"] = driver.delete_object(obj=cloud_obj) - return return_msg + filesize = getattr(cloud_obj, 'size') + driver.delete_object(obj=cloud_obj) + return filesize except ObjectDoesNotExistError: - logging.info("Could not find object on %s" % self._provider) + raise Exception("Could not find object on %s" % self._provider) def get_cloud_driver(self): cls = get_driver(getattr(Provider, self._provider)) diff --git a/python_apps/airtime_analyzer/airtime_analyzer/message_listener.py b/python_apps/airtime_analyzer/airtime_analyzer/message_listener.py index f4df7f360..cc633cca5 100644 --- a/python_apps/airtime_analyzer/airtime_analyzer/message_listener.py +++ b/python_apps/airtime_analyzer/airtime_analyzer/message_listener.py @@ -176,12 +176,11 @@ class MessageListener: elif message_type == "delete": object_name = msg_dict["object_name"] csu = CloudStorageUploader(self._provider, self._bucket, self._api_key, self._api_key_secret) - response = csu.delete_obj(object_name) - if response["success"]: - audio_metadata = dict() - audio_metadata["delete_success"] = True - audio_metadata["filesize"] = response["filesize"] - StatusReporter.report_success_to_callback_url(callback_url, api_key, audio_metadata) + filesize = csu.delete_obj(object_name) + return_data = dict() + return_data["filesize"] = filesize + return_data["import_status"] = 1 + StatusReporter.report_success_to_callback_url(callback_url, api_key, return_data) except KeyError as e: # A field in msg_dict that we needed was missing (eg. audio_file_path)