diff --git a/beat/backend/python/data.py b/beat/backend/python/data.py index 18a58e273f9a08df0866fc287635528b6f676b08..ad303373f2a557c8ecd0fa8306e0b41b54d3b3b1 100644 --- a/beat/backend/python/data.py +++ b/beat/backend/python/data.py @@ -496,12 +496,13 @@ class CachedDataSource(DataSource): try: self.current_file = open(self.filenames[infos.file_index], "rb") - self.current_file_index = infos.file_index except Exception as e: raise IOError( "Could not read `%s': %s" % (self.filenames[infos.file_index], e) ) + self.current_file_index = infos.file_index + self.current_file.seek(infos.offset, 0) t1 = time.time() @@ -939,8 +940,8 @@ class CachedDataSink(DataSink): logger.error("Failed to open data file {}: {}".format(self.filename, e)) return False + index_filename = self.filename.replace(".data", ".index") try: - index_filename = self.filename.replace(".data", ".index") self.index_file = open(index_filename, "wt") except Exception as e: logger.error("Failed to open index file {}: {}".format(index_filename, e)) @@ -960,6 +961,9 @@ class CachedDataSink(DataSink): self.data_file.close() self.index_file.close() + data_filename = self.data_file.name + index_filename = self.index_file.name + # If file is not complete, delete it if (self.last_written_data_index is None) or ( self.last_written_data_index < self.end_index @@ -973,19 +977,21 @@ class CachedDataSink(DataSink): logger.warning("Removing cache files: {}".format(message)) - try: - os.remove(self.filename) - os.remove(self.filename.replace(".data", ".index")) - return True - except Exception: - return False + artifacts_removed = True + + for filename in [data_filename, index_filename]: + try: + os.remove(filename) + except Exception as e: + logger.warning("Failed to remove {}: {}".format(filename, e)) + artifacts_removed = False + return artifacts_removed # Creates the checksums for all data and indexes - chksum_data = hashFileContents(self.filename) - with open(self.filename + ".checksum", "wt") as f: + chksum_data = hashFileContents(data_filename) + with open(data_filename + ".checksum", "wt") as f: f.write(chksum_data) - index_filename = self.filename.replace(".data", ".index") chksum_index = hashFileContents(index_filename) with open(index_filename + ".checksum", "wt") as f: f.write(chksum_index)