Newer
Older
#!/usr/bin/env python
import abc
class FileProcessor:
DEFAULT_NUMBER_OF_RETRIES = 0
DEFAULT_RETRY_WAIT_PERIOD_IN_SECONDS = 60
self.processorName = self.__class__.__name__
self.dependsOn = dependsOn

sveseli
committed
self.statUtility = None
@abc.abstractmethod
def processDirectory(self, directoryInfo):
return NotImplemented

sveseli
committed
def processFile(self, fileInfo):
def replaceTemplates(self, inputString, fileInfo):
outputString = inputString.replace('EXPERIMENT_NAME', experimentName)
return outputString
def checkUploadFilesForProcessing(self, filePathsDict, uploadInfo):
return {}
def configure(self):
# Use this method for processor configuration
pass
def setConfigKeyValue(self, key, value):
self.configDict[key] = value
def getConfigKeyValue(self, key):
return self.configDict.get(key)
def setNumberOfRetriesIfNotSet(self, nRetries):
if not self.configDict.has_key('numberOfRetries'):
self.configDict['numberOfRetries'] = nRetries
def setNumberOfRetries(self, nRetries):
self.configDict['numberOfRetries'] = nRetries
def getNumberOfRetries(self):

sveseli
committed
return self.configDict.get('numberOfRetries', self.DEFAULT_NUMBER_OF_RETRIES)
def setRetryWaitPeriodInSecondsIfNotSet(self, waitPeriod):
if not self.configDict.has_key('retryWaitPeriodInSeconds'):
self.configDict['retryWaitPeriodInSeconds'] = waitPeriod
def setRetryWaitPeriodInSeconds(self, waitPeriod):
self.configDict['retryWaitPeriodInSeconds'] = waitPeriod
def getRetryWaitPeriodInSeconds(self):

sveseli
committed
return self.configDict.get('retryWaitPeriodInSeconds', self.DEFAULT_RETRY_WAIT_PERIOD_IN_SECONDS)
def setSkipOnFailure(self, skipOnFailure):
self.configDict['skipOnFailure'] = skipOnFailure
def getSkipOnFailure(self):
return self.configDict.get('skipOnFailure', False)