Skip to content
Snippets Groups Projects
Commit 721a8e77 authored by sveseli's avatar sveseli
Browse files

add support for storage directory/host

parent 1655dcbe
No related branches found
No related tags found
No related merge requests found
...@@ -2,10 +2,12 @@ ...@@ -2,10 +2,12 @@
import threading import threading
import time import time
import os
from dm.common.utility.loggingManager import LoggingManager from dm.common.utility.loggingManager import LoggingManager
from dm.common.utility.configurationManager import ConfigurationManager from dm.common.utility.configurationManager import ConfigurationManager
from dm.common.utility.singleton import Singleton from dm.common.utility.singleton import Singleton
from dm.common.utility.osUtility import OsUtility
class StorageManager(Singleton): class StorageManager(Singleton):
...@@ -38,15 +40,35 @@ class StorageManager(Singleton): ...@@ -38,15 +40,35 @@ class StorageManager(Singleton):
self.logger.debug('Got config items: %s' % configItems) self.logger.debug('Got config items: %s' % configItems)
self.storageDirectory = cm.getConfigOption(StorageManager.CONFIG_SECTION_NAME, StorageManager.STORAGE_DIRECTORY_KEY) self.storageDirectory = cm.getConfigOption(StorageManager.CONFIG_SECTION_NAME, StorageManager.STORAGE_DIRECTORY_KEY)
def __getExperimentStorageDataDirectory(self, experiment):
experimentTypeName = experiment.get('experimentType').get('rootDataPath')
experimentName = experiment.get('name')
storageDirectory = '%s/%s/%s' % (self.storageDirectory, experimentTypeName, experimentName)
storageDirectory = storageDirectory.replace('//', '/')
return storageDirectory
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()
def createExperimentDataDirectory(self, experiment): def createExperimentDataDirectory(self, experiment):
self.lock.acquire() self.lock.acquire()
try: try:
experimentTypeName = experiment.get('experimentType').get('rootDataPath')
experimentName = experiment.get('name') experimentName = experiment.get('name')
dataDirectory = '%s/%s/%s' % (self.storageDirectory, experimentTypeName, experimentName) storageDirectory = self.__getExperimentStorageDataDirectory(experiment)
dataDirectory = dataDirectory.replace('//', '/') if os.path.exists(storageDirectory):
self.logger.debug('Creating data directory for experiment %s: %s' % (experimentName, dataDirectory)) self.logger.debug('Data directory %s for experiment %s already exists' % (storageDirectory, experimentName))
experiment['dataDirectory'] = dataDirectory else:
self.logger.debug('Creating data directory for experiment %s: %s' % (experimentName, storageDirectory))
OsUtility.createDir(storageDirectory)
experiment['storageDirectory'] = storageDirectory
finally: finally:
self.lock.release() self.lock.release()
......
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