Skip to content
Snippets Groups Projects
Commit 6f639ea8 authored by sveseli's avatar sveseli
Browse files

convert storage manager to use threading utility synchronization

parent 038b8fb0
No related branches found
No related tags found
No related merge requests found
......@@ -8,6 +8,7 @@ from dm.common.utility.loggingManager import LoggingManager
from dm.common.utility.configurationManager import ConfigurationManager
from dm.common.utility.singleton import Singleton
from dm.common.utility.osUtility import OsUtility
from dm.common.utility.threadingUtility import ThreadingUtility
class StorageManager(Singleton):
......@@ -47,44 +48,33 @@ class StorageManager(Singleton):
storageDirectory = os.path.normpath(storageDirectory)
return storageDirectory
@ThreadingUtility.synchronize
def updateExperimentWithStorageDataDirectory(self, experiment):
self.lock.acquire()
try:
storageDirectory = self.__getExperimentStorageDataDirectory(experiment)
if os.path.exists(storageDirectory):
experiment['storageDirectory'] = storageDirectory
experiment['storageHost'] = ConfigurationManager.getInstance().getHost()
return storageDirectory
finally:
self.lock.release()
storageDirectory = self.__getExperimentStorageDataDirectory(experiment)
if os.path.exists(storageDirectory):
experiment['storageDirectory'] = storageDirectory
experiment['storageHost'] = ConfigurationManager.getInstance().getHost()
return storageDirectory
@ThreadingUtility.synchronize
def createExperimentDataDirectory(self, experiment):
self.lock.acquire()
try:
experimentName = experiment.get('name')
storageDirectory = self.__getExperimentStorageDataDirectory(experiment)
if os.path.exists(storageDirectory):
self.logger.debug('Data directory %s for experiment %s already exists' % (storageDirectory, experimentName))
else:
self.logger.debug('Creating data directory for experiment %s: %s' % (experimentName, storageDirectory))
OsUtility.createDir(storageDirectory)
experiment['storageDirectory'] = storageDirectory
finally:
self.lock.release()
experimentName = experiment.get('name')
storageDirectory = self.__getExperimentStorageDataDirectory(experiment)
if os.path.exists(storageDirectory):
self.logger.debug('Data directory %s for experiment %s already exists' % (storageDirectory, experimentName))
else:
self.logger.debug('Creating data directory for experiment %s: %s' % (experimentName, storageDirectory))
OsUtility.createDir(storageDirectory)
experiment['storageDirectory'] = storageDirectory
experiment['storageHost'] = ConfigurationManager.getInstance().getHost()
@ThreadingUtility.synchronize
def start(self):
self.lock.acquire()
try:
self.logger.debug('Started storage manager')
finally:
self.lock.release()
self.logger.debug('Started storage manager')
@ThreadingUtility.synchronize
def stop(self):
self.lock.acquire()
try:
self.logger.debug('Stopped storage manager')
finally:
self.lock.release()
self.logger.debug('Stopped storage manager')
####################################################################
# Testing
......
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