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 @@
import threading
import time
import os
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
class StorageManager(Singleton):
......@@ -38,15 +40,35 @@ class StorageManager(Singleton):
self.logger.debug('Got config items: %s' % configItems)
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):
self.lock.acquire()
try:
experimentTypeName = experiment.get('experimentType').get('rootDataPath')
experimentName = experiment.get('name')
dataDirectory = '%s/%s/%s' % (self.storageDirectory, experimentTypeName, experimentName)
dataDirectory = dataDirectory.replace('//', '/')
self.logger.debug('Creating data directory for experiment %s: %s' % (experimentName, dataDirectory))
experiment['dataDirectory'] = dataDirectory
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()
......
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