Skip to content
Snippets Groups Projects
Commit 616575be authored by sveseli's avatar sveseli
Browse files

fix bug with unchecked metadata additions

parent fe1131fa
No related branches found
No related tags found
No related merge requests found
......@@ -63,8 +63,8 @@ class MongoDbFileCatalogPlugin(FileProcessor):
self.logger.debug('Before releasing Mongo DB API instance semaphore count is %s ' % (self.mongoApiSemaphore.__dict__.get('_Semaphore__value')))
self.mongoApiSemaphore.release()
def getInitialCollectionSize(self, fileMongoDbApi, experimentName, uploadOrDaqId):
key = '%s-%s' % (experimentName, uploadOrDaqId)
def getInitialCollectionSize(self, fileMongoDbApi, experimentName, uploadId):
key = '%s-%s' % (experimentName, uploadId)
self.lock.acquire()
try:
nFiles = self.initialCollectionSizeMap.get(key)
......@@ -78,35 +78,35 @@ class MongoDbFileCatalogPlugin(FileProcessor):
def processFile(self, fileInfo):
experimentFilePath = fileInfo.get('experimentFilePath')
experimentName = fileInfo.get('experimentName')
uploadOrDaqId = fileInfo.get('uploadId') or fileInfo.get('daqId')
uploadId = fileInfo.get('uploadId')
self.logger.debug('Processing file "%s" for experiment %s' % (experimentFilePath, experimentName))
fileMetadata = self.metadataCollector.processMetadata(fileInfo, self.statUtility)
self.logger.debug('File "%s" catalog entry: %s' % (experimentFilePath, str(fileMetadata)))
fileInfo['metadata'] = fileMetadata
fileMongoDbApi = self.acquireMongoApi()
if self.getInitialCollectionSize(fileMongoDbApi, experimentName, uploadOrDaqId) == 0:
self.logger.debug('Initial collection size is zero, adding file %s' % (experimentFilePath))
if uploadId and self.getInitialCollectionSize(fileMongoDbApi, experimentName, uploadId) == 0:
self.logger.debug('Initial collection size is zero for upload %s, adding file %s' % (uploadId, experimentFilePath))
fileMongoDbApi.addExperimentFileUnchecked(fileMetadata)
else:
self.logger.debug('Initial collection size is not zero, updating file %s' % (experimentFilePath))
self.logger.debug('Updating file %s' % (experimentFilePath))
fileMongoDbApi.updateOrAddExperimentFile(fileMetadata)
self.releaseMongoApi(fileMongoDbApi)
def processFile2(self, fileInfo, fileMongoDbApi):
experimentFilePath = fileInfo.get('experimentFilePath')
experimentName = fileInfo.get('experimentName')
uploadOrDaqId = fileInfo.get('uploadId') or fileInfo.get('daqId')
uploadId = fileInfo.get('uploadId')
self.logger.debug('Processing file "%s" for experiment %s' % (experimentFilePath, experimentName))
fileMetadata = self.metadataCollector.processMetadata(fileInfo, self.statUtility)
self.logger.debug('File "%s" catalog entry: %s' % (experimentFilePath, str(fileMetadata)))
fileInfo['metadata'] = fileMetadata
if self.getInitialCollectionSize(fileMongoDbApi, experimentName, uploadOrDaqId) == 0:
self.logger.debug('Initial collection size is zero, adding file %s' % (experimentFilePath))
if uploadId and self.getInitialCollectionSize(fileMongoDbApi, experimentName, uploadId) == 0:
self.logger.debug('Initial collection size is zero for upload %s, adding file %s' % (uploadId, experimentFilePath))
fileMongoDbApi.addExperimentFileUnchecked(fileMetadata)
else:
self.logger.debug('Initial collection size is not zero, updating file %s' % (experimentFilePath))
self.logger.debug('Updating file %s' % (experimentFilePath))
fileMongoDbApi.updateOrAddExperimentFile(fileMetadata)
def processFilePath(self, fileMongoDbApi, filePath, filePathDict, experiment, dataDirectory, destDirectory, daqInfo, uploadId, processDirectoryInfo):
......@@ -162,3 +162,8 @@ class MongoDbFileCatalogPlugin(FileProcessor):
processingTimer = threading.Timer(self.PROCESSING_TIMER_DELAY_PERIOD, self.processFilePath, args=[fileMongoDbApi, filePath, filePathDict, experiment, dataDirectory, destDirectory, daqInfo, uploadId, processDirectoryInfo])
processingTimer.start()
#######################################################################
# Testing.
if __name__ == '__main__':
pass
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment